From d5f571ca50c284efe2ced0190a060cd448705334 Mon Sep 17 00:00:00 2001 From: ashpect Date: Thu, 18 Jul 2024 03:48:23 +0530 Subject: [PATCH] code enhacements and etc. --- circuits/circuits/ofac_verifier.circom | 16 +- circuits/test/ofac_verify.test.ts | 4 +- common/ofacdata/ReadMe.md | 28 + common/ofacdata/eth_addresses.json | 149 ++++ common/ofacdata/etherum_add.json | 35 - common/ofacdata/original/dataspec.txt | 308 +++++++ common/ofacdata/scripts/ofac.ipynb | 749 ++++++++++++------ common/src/utils/generateInputs.ts | 4 +- .../utils/{passportTree.ts => ofacTree.ts} | 6 +- registry/outputs/passport_tree.json | 1 - 10 files changed, 997 insertions(+), 303 deletions(-) create mode 100644 common/ofacdata/ReadMe.md create mode 100644 common/ofacdata/eth_addresses.json delete mode 100644 common/ofacdata/etherum_add.json create mode 100644 common/ofacdata/original/dataspec.txt rename common/src/utils/{passportTree.ts => ofacTree.ts} (96%) delete mode 100644 registry/outputs/passport_tree.json diff --git a/circuits/circuits/ofac_verifier.circom b/circuits/circuits/ofac_verifier.circom index d79f69680..6fbb3e54a 100644 --- a/circuits/circuits/ofac_verifier.circom +++ b/circuits/circuits/ofac_verifier.circom @@ -43,11 +43,8 @@ template ProvePassportNotInOfac(nLevels) { poseidon_hash.inputs[2] <== 1; signal computedRoot <== BinaryMerkleRoot(256)(poseidon_hash.out, smt_size, smt_path, smt_siblings); - component iseq = IsEqual(); - computedRoot ==> iseq.in[0]; - smt_root ==> iseq.in[1]; - out1 <== iseq.out; - + out1 <== IsEqual()([computedRoot,smt_root]); + // if out == false ; then proof failed as path and siblings do not compute to root // now if out == 1; path and siblings are true but the leaf_value given might be closest or might be actual // check if leaf_value = posiedon_hasher.out @@ -58,14 +55,11 @@ template ProvePassportNotInOfac(nLevels) { // signal output commonLength; // true if leaf given = leaf calulated - component iseq2 = IsEqual(); - leaf_value ==> iseq2.in[0]; - poseidon_hasher.out ==> iseq2.in[1]; - out2 <== iseq2.out; - proofType <== iseq2.out; + out2 <== IsEqual()([leaf_value,poseidon_hasher.out]); + proofType <== out2; component lt = LessEqThan(9); - smt_size ==> lt.in[0]; + lt.in[0] <== smt_size; lt.in[1] <== PoseidonHashesCommonLength()(leaf_value,poseidon_hasher.out); out3 <== lt.out; // true if depth <= matchingbits.length diff --git a/circuits/test/ofac_verify.test.ts b/circuits/test/ofac_verify.test.ts index 86e820fdd..f907e4809 100644 --- a/circuits/test/ofac_verify.test.ts +++ b/circuits/test/ofac_verify.test.ts @@ -2,7 +2,7 @@ import { expect } from 'chai' import path from "path"; const wasm_tester = require("circom_tester").wasm; import { mockPassportData_sha256WithRSAEncryption_65537 } from '../../common/src/utils/mockPassportData'; -import { passport_smt } from '../../common/src/utils/passportTree'; +import { ofac_smt } from '../../common/src/utils/ofacTree'; import { generateCircuitInputsOfac, generateCircuitInputsDisclose } from '../../common/src/utils/generateInputs'; import { getLeaf } from '../../common/src/utils/pubkeyTree'; import { SMT } from "@zk-kit/smt" @@ -65,7 +65,7 @@ describe("start testing disclose.circom", function () { tree.insert(BigInt(commitment)); // smt stuff - let smttrees = passport_smt(); + let smttrees = ofac_smt(); passportTree = smttrees[0]; nameDobTree = smttrees[1]; nameTree = smttrees[2]; diff --git a/common/ofacdata/ReadMe.md b/common/ofacdata/ReadMe.md new file mode 100644 index 000000000..2ed5c9be2 --- /dev/null +++ b/common/ofacdata/ReadMe.md @@ -0,0 +1,28 @@ +# How we Process Ofac Lists : + +## Data Collection : +- We collect the data from the official website of the U.S. Department of the Treasury's Office of Foreign Assets Control (OFAC) and download the data in the form of a CSV file from [here](https://sanctionslist.ofac.treas.gov/Home/SdnList) + +- The SDN list contains the names of individuals, entities and groups designated by OFAC as well as the listing of maritime vessels and aircraft that are blocked by OFAC. + +### ofacdata/original +- The data is stored in the form of 2 CSV files named `sdn.csv` and `add.csv`. `dataspec.txt` explains the data specification for the CSV data files. +- The data is cleaned to obtain the required information for individuals from sdn.csv file. +A ballpark number of 6917 individuals (at the time of writing this document) entries are present in sdn.csv. Remaining entries are entities, vessels, and aircrafts. + +## Data Processing : + +### ofacdata/scripts +- The `ofac.ipynb` script extracts the data from both the csv's and parses them in json fommat. +- We parse all ethereum addresses, regardless of individual or entity in eth_addresses.json. +- For individuals, we parse : + - full name (first name, last name), dob(day, month, year) in names.json + - passports and passport issuing country in passport.json + +## Data Usage : +These jsons are later used to create sparse merkle trees for non-membership proofs. We provide 3 levels of proofs. +- Match through Passport Number : level 3 (Absolute Match) +- Match through Names and Dob combo tree : level 2 (High Probability Match) +- Match only through Names : level 1 (Partial Match) + +Check out src/ofacTree.ts for more details.
diff --git a/common/ofacdata/eth_addresses.json b/common/ofacdata/eth_addresses.json new file mode 100644 index 000000000..86c2a91c4 --- /dev/null +++ b/common/ofacdata/eth_addresses.json @@ -0,0 +1,149 @@ +[ + { + "Eth_address": "0x098B716B8Aaf21512996dC57EB0615e2383E2f96" + }, + { + "Eth_address": "0xa0e1c89Ef1a489c9C7dE96311eD5Ce5D32c20E4B" + }, + { + "Eth_address": "0x3Cffd56B47B7b41c56258D9C7731ABaDc360E073" + }, + { + "Eth_address": "0x53b6936513e738f44FB50d2b9476730C0Ab3Bfc1" + }, + { + "Eth_address": "0x35fB6f6DB4fb05e6A4cE86f2C93691425626d4b1" + }, + { + "Eth_address": "0xF7B31119c2682c88d88D455dBb9d5932c65Cf1bE" + }, + { + "Eth_address": "0x3e37627dEAA754090fBFbb8bd226c1CE66D255e9" + }, + { + "Eth_address": "0x08723392Ed15743cc38513C4925f5e6be5c17243" + }, + { + "Eth_address": "0x7F367cC41522cE07553e823bf3be79A889DEbe1B" + }, + { + "Eth_address": "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b" + }, + { + "Eth_address": "0x901bb9583b24d97e995513c6778dc6888ab6870e" + }, + { + "Eth_address": "0xa7e5d5a720f06526557c513402f2e6b5fa20b008" + }, + { + "Eth_address": "0x9f4cda013e354b8fc285bf4b9a60460cee7f7ea9" + }, + { + "Eth_address": "0x3cbded43efdaf0fc77b9c55f6fc9988fcc9b757d" + }, + { + "Eth_address": "0x7FF9cFad3877F21d41Da833E2F775dB0569eE3D9" + }, + { + "Eth_address": "0xc2a3829F459B3Edd87791c74cD45402BA0a20Be3" + }, + { + "Eth_address": "0x3AD9dB589d201A710Ed237c829c7860Ba86510Fc" + }, + { + "Eth_address": "0x12D66f87A04A9E220743712cE6d9bB1B5616B8Fc" + }, + { + "Eth_address": "0x47CE0C6eD5B0Ce3d3A51fdb1C52DC66a7c3c2936" + }, + { + "Eth_address": "0x910Cbd523D972eb0a6f4cAe4618aD62622b39DbF" + }, + { + "Eth_address": "0xA160cdAB225685dA1d56aa342Ad8841c3b53f291" + }, + { + "Eth_address": "0xD4B88Df4D29F5CedD6857912842cff3b20C8Cfa3" + }, + { + "Eth_address": "0xFD8610d20aA15b7B2E3Be39B396a1bC3516c7144" + }, + { + "Eth_address": "0x07687e702b410Fa43f4cB4Af7FA097918ffD2730" + }, + { + "Eth_address": "0x23773E65ed146A459791799d01336DB287f25334" + }, + { + "Eth_address": "0x22aaA7720ddd5388A3c0A3333430953C68f1849b" + }, + { + "Eth_address": "0x03893a7c7463AE47D46bc7f091665f1893656003" + }, + { + "Eth_address": "0x2717c5e28cf931547B621a5dddb772Ab6A35B701" + }, + { + "Eth_address": "0xD21be7248e0197Ee08E0c20D4a96DEBdaC3D20Af" + }, + { + "Eth_address": "0x39D908dac893CBCB53Cc86e0ECc369aA4DeF1A29" + }, + { + "Eth_address": "0x4f47bc496083c727c5fbe3ce9cdf2b0f6496270c" + }, + { + "Eth_address": "0x97b1043abd9e6fc31681635166d430a458d14f9c" + }, + { + "Eth_address": "0xb6f5ec1a0a9cd1526536d3f0426c429529471f40" + }, + { + "Eth_address": "0x9c2bc757b66f24d60f016b6237f8cdd414a879fa" + }, + { + "Eth_address": "0xdcbEfFBECcE100cCE9E4b153C4e15cB885643193" + }, + { + "Eth_address": "0x5f48c2a71b2cc96e3f0ccae4e39318ff0dc375b2" + }, + { + "Eth_address": "0x5a7a51bfb49f190e5a6060a5bc6052ac14a3b59f" + }, + { + "Eth_address": "0xed6e0a7e4ac94d976eebfb82ccf777a3c6bad921" + }, + { + "Eth_address": "0x797d7ae72ebddcdea2a346c1834e04d1f8df102b" + }, + { + "Eth_address": "0x931546D9e66836AbF687d2bc64B30407bAc8C568" + }, + { + "Eth_address": "0x43fa21d92141BA9db43052492E0DeEE5aa5f0A93" + }, + { + "Eth_address": "0x6be0ae71e6c41f2f9d0d1a3b8d0f75e6f6a0b46e" + }, + { + "Eth_address": "0x530a64c0ce595026a4a556b703644228179e2d57" + }, + { + "Eth_address": "0x983a81ca6FB1e441266D2FbcB7D8E530AC2E05A2" + }, + { + "Eth_address": "0x961c5be54a2ffc17cf4cb021d863c42dacd47fc1" + }, + { + "Eth_address": "0xE950DC316b836e4EeFb8308bf32Bf7C72a1358FF" + }, + { + "Eth_address": "0x21B8d56BDA776bbE68655A16895afd96F5534feD" + }, + { + "Eth_address": "0xf3701f445b6bdafedbca97d1e477357839e4120d" + }, + { + "Eth_address": "0x19F8f2B0915Daa12a3f5C9CF01dF9E24D53794F7" + } +] \ No newline at end of file diff --git a/common/ofacdata/etherum_add.json b/common/ofacdata/etherum_add.json deleted file mode 100644 index 971f09858..000000000 --- a/common/ofacdata/etherum_add.json +++ /dev/null @@ -1,35 +0,0 @@ -[ - { - "Eth_address": "0x7f367cc41522ce07553e823bf3be79a889debe1b" - }, - { - "Eth_address": "0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b" - }, - { - "Eth_address": "0x901bb9583b24d97e995513c6778dc6888ab6870e" - }, - { - "Eth_address": "0x39d908dac893cbcb53cc86e0ecc369aa4def1a29" - }, - { - "Eth_address": "0x4f47bc496083c727c5fbe3ce9cdf2b0f6496270c" - }, - { - "Eth_address": "0x97b1043abd9e6fc31681635166d430a458d14f9c" - }, - { - "Eth_address": "0x9c2bc757b66f24d60f016b6237f8cdd414a879fa" - }, - { - "Eth_address": "0xdcbeffbecce100cce9e4b153c4e15cb885643193" - }, - { - "Eth_address": "0x530a64c0ce595026a4a556b703644228179e2d57" - }, - { - "Eth_address": "0x961c5be54a2ffc17cf4cb021d863c42dacd47fc1" - }, - { - "Eth_address": "0xf3701f445b6bdafedbca97d1e477357839e4120d" - } -] \ No newline at end of file diff --git a/common/ofacdata/original/dataspec.txt b/common/ofacdata/original/dataspec.txt new file mode 100644 index 000000000..2b4563fd7 --- /dev/null +++ b/common/ofacdata/original/dataspec.txt @@ -0,0 +1,308 @@ + OFFICE OF FOREIGN ASSETS CONTROL + U.S. TREASURY DEPARTMENT + + SPECIALLY DESIGNATED NATIONALS AND BLOCKED PERSONS + DATA SPECIFICATION + +First Released: 12/06/2004 +Updated: 09/25/2023 + +PLEASE NOTE IMPORTANT INFORMATION REGARDING THE TECHNICAL STRUCTURE +OF THESE FILES ARE FEATURED AT THE BOTTOM OF THE DOCUMENT + + OFAC is now publishing its list of Specially Designated Nationals in XML +and Comma delimited (CSV) format. These digital publications as +transmitted by OFAC are designed as reference tools providing actual notice of +actions by OFAC with respect to Specially Designated Nationals and other +entities whose property is blocked, to assist the public in complying with the +various sanctions programs administered by OFAC. The latest changes may appear +here prior to their publication in the Federal Register, and it is intended that +users rely on changes indicated in these documents that post-date the most +recent Federal Register publication with respect to a particular sanctions +program in the appendices to chapter V of Title 31, Code of Federal Regulations. +Such changes reflect official actions of OFAC, and will be reflected as soon as +practicable in the Federal Register under the index heading "Foreign Assets +Control." New Federal Register notices with regard to Specially Designated +Nationals or blocked entities may be published at any time. Users are advised +to check the Federal Register and these electronic publications routinely for +additional names or other changes to the listings. Entities and individuals on +the list are occasionally licensed by OFAC to transact business with U.S. +persons in anticipation of removal from the list or because of foreign policy +considerations in unique circumstances. Licensing in anticipation of official +Federal Register publication of a notice of removal based on the unblocking of +an entity's or individual's property is reflected in these publications by +removal from the list. Current information on licenses issued with regard to +Specially Designated Nationals and other blocked persons may be obtained or +verified by calling OFAC Licensing at (202) 622-2480. + +Technical Specification: + +Format *.ff consists of records separated by carriage returns, with fields +within the records beginning at fixed locations. + +Format *.csv consistes of records seperated by carriage returns (ASCII character +13), with fields (values) within records delimited by the "," (comma) symbol +(ASCII character 44). + +Null values for all four formats consist of "-0-" (ASCII characters 45, 48, 45). + + The Comma Seperated Values (.csv), and Fixed-Field (.ff) releases consist of three ASCII text files--a main +file listing the name of the SDN and other information unique to that entity +(sdn.*), a file of addresses (add.*), and a file of alternate names (alt.*). +Addresses and alternate names are linked to particular SDNs using unique integer +values in a linking or primary key column. The integers used are assigned for +linking purposes only and do not represent an official reference to that entity. + + Releases of the database-format files are intended as a service to the user +community. OFAC's SDN list is published in the Federal Register. All of OFAC's +lists are drawn from the same underlying data and every effort has been made to +ensure consistency. The Federal Register will govern should differences arise. +Due to the nature, urgency, and sensitivity of the programs which OFAC +administers and enforces, it may not always be possible to provide advanced +notice to users of format changes to the database structure. + + The files associated with each release are: + +fixed field: SDN.FF, ADD.FF, ALT.FF, SDN_COMMENTS.FF +Comma delimited: SDN.CSV, ADD.CSV, ALT.CSV, SDN COMMENTS.CSV +XML: SDN.XML, SDN_ADVANCED.XML + +Misc: dat_spec.txt (this file), sdn.xsd (XML SDN schema), +sdn_advanced.xsd (advanced XML SDN schema). + +FORMAT SDN FIXED FIELD + +Main table, text file name SDN.FF + +Column Posi- +sequence Column name Type Size tion Description +-------- ----------- ------- ---- ---- --------------------- +1 ent_num number 10 10 unique record + identifier/unique + listing identifier +2 SDN_Name text 350 11 name of sdn +3 SDN_Type text 12 361 type of SDN +4 Program text 200 373 sanctions program name +5 Title text 200 573 title of an individual +6 Call_Sign text 8 773 vessel call sign +7 Vess_type text 25 781 vessel type +8 Tonnage text 14 806 vessel tonnage +9 GRT text 8 820 gross registered + tonnage +10 Vess_flag text 40 828 vessel flag +11 Vess_owner text 150 868 vessel owner +12 Remarks text 1000 1018 remarks on SDN* + END OF ROW 2018 + +Address table, text file name ADD.FF + +Column Posi- +sequence Column name Type Size tion Description +-------- ----------- ------- ---- ---- --------------------- +1 Ent_num number 10 1 link to unique listing +2 Add_num number 10 11 unique record + identifier +3 Address text 750 21 street address of SDN +4 City/ text 116 771 city, state/province, zip/postal code + State/Province/ + Postal Code +5 Country text 250 887 country of address +6 Add_remarks text 200 1137 remarks on address + END OF ROW 1337 + +Alternate identity table, text file name ALT.FF + +Column Posi- +sequence Column name Type Size tion Description +-------- ----------- ------- ---- ---- --------------------- +1 ent_num number 10 1 link to unique listing +2 alt_num number 10 11 unique record + identifier +3 alt_type text 8 21 type of alternate + identity + (aka, fka, nka) +4 alt_name text 350 29 alternate identity name +5 alt_remarks text 200 379 remarks on alternate + identity + END OF ROW 579 + +Record separator: carriage return +null: -0- + +FORMAT SDN CSV + +Main table, text file name SDN.CSV + +Column +sequence Column name Type Size Description +-------- ------------ ------- ---- --------------------- +1 ent_num number unique record + identifier/unique + listing identifier +2 SDN_Name text 350 name of SDN +3 SDN_Type text 12 type of SDN +4 Program text 200 sanctions program name +5 Title text 200 title of an individual +6 Call_Sign text 8 vessel call sign +7 Vess_type text 25 vessel type +8 Tonnage text 14 vessel tonnage +9 GRT text 8 gross registered tonnage +10 Vess_flag text 40 vessel flag +11 Vess_owner text 150 vessel owner +12 Remarks text 1000 remarks on SDN* + +Address table, text file name ADD.CSV + +Column +sequence Column name Type Size Description +-------- ------------ ------- ---- --------------------- +1 Ent_num number link to unique listing +2 Add_num number unique record identifier +3 Address text 750 street address of SDN +4 City/ text 116 city, state/province, zip/postal code + State/Province/ + Postal Code +5 Country text 250 country of address +6 Add_remarks text 200 remarks on address + +Alternate identity table, text file name ALT.CSV + +Column +sequence Column name Type Size Description +-------- ------------ ------- ---- --------------------- +1 ent_num number link to unique listing +2 alt_num number unique record identifier +3 alt_type text 8 type of alternate identity + (aka, fka, nka) +4 alt_name text 350 alternate identity name +5 alt_remarks text 200 remarks on alternate identity + +Record separator: carriage return +field (value) delimiter: , +text value quotes: " +null: -0- + +*SPILLOVER FILES: + +OFAC has made certain changes to its SDN production system that now allow for +an unlimited number of identifiers, features and linked to identifications to +be added to a record. In the fixed-width and delimited files these data are +stored in the remarks field. Due to these changes, it is now possible for an +SDN record to exceed the 1000 character remarks limitation. Data that exceeds +the specified field limit will be truncated to ensure that the current data +specification is followed. However, in order to ensure that users of these +files continue to have access to truncated data, OFAC has created "spillover files." +These files will follow the same data specification of the files they are +associated with. However, there will be no upper limit on row length in these files. + +The spillover file names are: + +sdn_comments.csv +sdn_comments.ff + + +These files will be listed separately on the OFAC website's SDN page. They will also be listed +separately in the library/fac_dlim and /fac_delim folders of OFAC's FTP sites. + +Please visit the following tutorial on OFAC's website for more information on +creating a database using these files: + +https://ofac.treasury.gov/sdn-list-data-formats-data-schemas/tutorial-on-the-use-of-list-related-legacy-flat-files + +THE DISPOSITION OF ALIASES: + +OFAC classifies SDN aliases as weak or strong. In the data files +discussed in this document, weak aliases are not stored in the alt.* files. +Weak aliases are stored in the remarks field that trails every primary +SDN record in the SDN.* files. For more information on weak aliases +please review the following text taken from the frequently asked questions +on OFAC's website. + +What are weak aliases (AKAs)? + +A "weak AKA" is a term for a relatively broad or generic alias that +may generate a large volume of false hits. Weak AKAs include +nicknames, noms-de-guerre, and unusually common acronyms. OFAC +includes these AKAs because, based on information available to it, the +sanctions targets refer to themselves, or are referred to, by these +names. As a result, these AKAs may be useful for identification +purposes, particularly in confirming a possible "hit" or "match" +triggered by other identifier information. Realizing, however, the +large number of false hits that these names may generate, OFAC +qualitatively distinguishes them from other AKAs by designating them +as weak. OFAC has instituted procedures that attempt to make this +qualitative review of aliases as objective as possible. Before +issuing this updated guidance, OFAC conducted a review of all aliases +on the SDN list. Each SDN alias was run through a computer program +that evaluated the potential of an alias to produce false positives in +an automated screening environment. Names were evaluated using the +following criteria: + +Character length (shorter strings were assumed to be less effective in +a screening environment than longer strings); +The presence of numbers in an alias (digits 0-9); +The presence of common words that are generally considered to +constitute a nickname (example: Ahmed the Tall); +References in the alias to geographic locations (example: Ahmed the +Sudanese); +The presence of very common prefixes in a name where the prefix was +one of only two strings in a name (example: Mr. Smith). +Aliases that met one or more of the above criteria were flagged for +human review. OFAC subject matter experts then reviewed each of the +automated recommendations and made final decisions on the flagging of +each alias.* + +OFAC intends to use these procedures to evaluate all new aliases +introduced to the SDN list. + +Where can I find weak aliases (AKAs)? + +Weak AKAs appear differently depending on which file format of the SDN +List is utilized. + +In the TXT and PDF versions of the SDN List, weak AKAs are +encapsulated in double-quotes within the AKA listing: + +ALLANE, Hacene (a.k.a. ABDELHAY, al-Sheikh; a.k.a. AHCENE, Cheib; +a.k.a. "ABU AL-FOUTOUH"; a.k.a. "BOULAHIA"; a.k.a. "HASSAN THE OLD"); +DOB 17 Jan 1941; POB El Menea, Algeria (individual) [SDGT] + +This convention also is followed in the alphabetical listing published +in Appendix A to Chapter V of Title 31 of the Code of Federal +Regulations. + +In the FF, and CSV file formats, weak AKAs are listed in the +Remarks field (found at the end of the record) of the SDN file. In +these formats, weak AKAs are bracketed by quotation marks. + +8219@"ALLANE, Hacene"@"individual"@"SDGT"@-0- @-0- @-0- @-0- @-0- @-0- +@-0- @"DOB 17 Jan 1941; POB El Menea, Algeria; a.k.a. 'ABU +AL-FOUTOUH'; a.k.a. 'BOULAHIA'; a.k.a. 'HASSAN THE OLD'." + +In the XML version of the SDN List, there is a Type element for each +AKA. The Type can either be 'weak' or 'strong' (see the XML SDN +Schema (XSD file) at: +http://www.treasury.gov/resource-center/sanctions/SDN-List/Documents/sdn.xsd for more +information). + +Am I required to screen for weak aliases (AKAs)? + +OFAC's regulations do not explicitly require any specific screening +regime. Financial institutions and others must make screening choices +based on their circumstances and compliance approach. As a general +matter, though, OFAC does not expect that persons will screen for weak +AKAs, but expects that such AKAs may be used to help determine whether +a "hit" arising from other information is accurate. + +Will I be penalized for processing an unauthorized transaction +involving a weak alias (AKA)? + +A person who processes an unauthorized transaction involving an SDN +has violated U.S. law and may be subject to an enforcement action. +Generally speaking, however, if (i) the only sanctions reference in +the transaction is a weak AKA, (ii) the person involved in the +processing had no other reason to know that the transaction involved +an SDN or was otherwise in violation of U.S. law, and (iii) the person +maintains a rigorous risk-based compliance program, OFAC will not +issue a civil penalty against an individual or entity for processing +such a transaction. \ No newline at end of file diff --git a/common/ofacdata/scripts/ofac.ipynb b/common/ofacdata/scripts/ofac.ipynb index b327b36ca..759055be5 100644 --- a/common/ofacdata/scripts/ofac.ipynb +++ b/common/ofacdata/scripts/ofac.ipynb @@ -4,12 +4,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "SDN OFAC csv file" + "### SDN List : Data Processing" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 490, "metadata": {}, "outputs": [ { @@ -152,7 +152,7 @@ "4 -0- -0- -0- -0- -0- -0- " ] }, - "execution_count": 2, + "execution_count": 490, "metadata": {}, "output_type": "execute_result" } @@ -170,7 +170,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 491, "metadata": {}, "outputs": [ { @@ -182,7 +182,7 @@ " dtype='object')" ] }, - "execution_count": 3, + "execution_count": 491, "metadata": {}, "output_type": "execute_result" } @@ -206,16 +206,20 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 492, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Index(['ent_num', 'SDN_name', 'SDN_type', 'Remarks', 'country'], dtype='object')" + "-0- 7252\n", + "individual 6915\n", + "vessel 861\n", + "aircraft 374\n", + "Name: SDN_type, dtype: int64" ] }, - "execution_count": 4, + "execution_count": 492, "metadata": {}, "output_type": "execute_result" } @@ -225,131 +229,53 @@ " 'Vess_type', 'Tonnage', 'GRT', 'Vess_flag', 'Vess_owner']\n", "columns_to_drop = [col_name for col_name in col if col_name in result_df.columns]\n", "result_df.drop(columns=columns_to_drop, inplace=True)\n", - "result_df.columns" + "result_df['SDN_type'].value_counts()" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 493, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "49\n" + ] + } + ], + "source": [ + "\n", + "# ETH ADDRESSES \n", + "# TODO : Get bitcoin and othe addresses as well \n", + "pattern = r'ETH\\s+(0x[0-9a-fA-F]{40})(?=[\\s;])'\n", + "def extract_eth_addresses(remark):\n", + " if isinstance(remark, str):\n", + " return re.findall(pattern, remark)\n", + " return []\n", + "\n", + "eth_addresses = result_df['Remarks'].apply(extract_eth_addresses).explode().dropna().tolist()\n", + "eth_addresses_dict = [{'Eth_address': addr} for addr in eth_addresses]\n", + "print(len(eth_addresses))\n", + "json_result = json.dumps(eth_addresses_dict, indent=4)\n", + "with open('eth_addresses.json', 'w') as f:\n", + " f.write(json_result)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 494, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "-0- 7252\n", - "individual 6915\n", - "vessel 861\n", - "aircraft 374\n", - "Name: SDN_type, dtype: int64\n", "Cleaned individual 6915\n", "Name: SDN_type, dtype: int64\n" ] - } - ], - "source": [ - "print(result_df['SDN_type'].value_counts())\n", - "result_df = result_df[result_df['SDN_type'] == 'individual']\n", - "print(\"Cleaned\",result_df['SDN_type'].value_counts())\n", - "result_df.drop(columns=\"SDN_type\", inplace=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Individual have proper names and some vessels are right name, but most of them are not. Aircrafts seem to be aircraft manufacturers and have codes in names, hence not of any use. -0- seems to be names of company or groups, hence disregarded." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "6915" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(result_df) #total individuals" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "6855\n", - "5924\n" - ] - } - ], - "source": [ - "# DOB\n", - "\n", - "result_df['Remarks'] = result_df['Remarks'].str.lower() \n", - "# for format dd mmm yyyy\n", - "result_df['DOB'] = result_df['Remarks'].str.extract(r'(\\d{2} \\w{3} \\d{4})')\n", - "result_df['day'] = result_df['DOB'].str.extract(r'(\\d{2})')\n", - "result_df['month'] = result_df['DOB'].str.extract(r'(\\w{3})')\n", - "result_df['year'] = result_df['DOB'].str.extract(r'(\\d{4})')\n", - "# for yyyy only format\n", - "result_df['year'] = result_df['Remarks'].str.extract(r'(\\d{4})')\n", - "result_df.head()\n", - "\n", - "print(result_df['year'].count()) # total individuals with at least year in dob\n", - "print(result_df['DOB'].count()) # total individuals with whole dob\n" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "4325" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# GENDER\n", - "def extract_gender(text):\n", - " pattern = r'gender (male|female)'\n", - " match = re.search(pattern, text)\n", - " if match:\n", - " return match.group(1)\n", - " else:\n", - " return None\n", - " \n", - "# Apply the function to extract the gender\n", - "result_df[\"Gender\"] = result_df['Remarks'].apply(extract_gender)\n", - "result_df.head()\n", - "result_df[\"Gender\"].count() \n", - "# result_df[result_df['ent_num'] == \"12610\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ + }, { "data": { "text/html": [ @@ -375,50 +301,169 @@ " SDN_name\n", " Remarks\n", " country\n", - " DOB\n", - " day\n", - " month\n", - " year\n", - " Gender\n", " \n", " \n", " \n", " \n", - " 2096\n", - " 12599\n", - " PATEK, Umar\n", - " dob 20 jul 1966; pob central java, indonesia; ...\n", + " 53\n", + " 2674\n", + " ABBAS, Abu\n", + " DOB 10 Dec 1948; Director of PALESTINE LIBERAT...\n", + " -0-\n", + " \n", + " \n", + " 54\n", + " 2675\n", + " AL RAHMAN, Shaykh Umar Abd\n", + " DOB 03 May 1938; POB Egypt; Chief Ideological ...\n", + " -0-\n", + " \n", + " \n", + " 55\n", + " 2676\n", + " AL ZAWAHIRI, Dr. Ayman\n", + " DOB 19 Jun 1951; POB Giza, Egypt; Passport 108...\n", + " -0-\n", + " \n", + " \n", + " 56\n", + " 2677\n", + " AL-ZOMOR, Abboud Abdul Latif Hassan\n", + " DOB 19 Apr 1947; POB Nahia, Giza, Egypt; natio...\n", + " Egypt\n", + " \n", + " \n", + " 57\n", + " 2678\n", + " AWDA, Abd Al Aziz\n", + " DOB 1946; Chief Ideological Figure of PALESTIN...\n", " -0-\n", - " 20 jul 1966\n", - " 20\n", - " jul\n", - " 1966\n", - " None\n", " \n", " \n", "\n", "" ], "text/plain": [ - " ent_num SDN_name Remarks \\\n", - "2096 12599 PATEK, Umar dob 20 jul 1966; pob central java, indonesia; ... \n", + " ent_num SDN_name \\\n", + "53 2674 ABBAS, Abu \n", + "54 2675 AL RAHMAN, Shaykh Umar Abd \n", + "55 2676 AL ZAWAHIRI, Dr. Ayman \n", + "56 2677 AL-ZOMOR, Abboud Abdul Latif Hassan \n", + "57 2678 AWDA, Abd Al Aziz \n", "\n", - " country DOB day month year Gender \n", - "2096 -0- 20 jul 1966 20 jul 1966 None " + " Remarks country \n", + "53 DOB 10 Dec 1948; Director of PALESTINE LIBERAT... -0- \n", + "54 DOB 03 May 1938; POB Egypt; Chief Ideological ... -0- \n", + "55 DOB 19 Jun 1951; POB Giza, Egypt; Passport 108... -0- \n", + "56 DOB 19 Apr 1947; POB Nahia, Giza, Egypt; natio... Egypt \n", + "57 DOB 1946; Chief Ideological Figure of PALESTIN... -0- " ] }, - "execution_count": 9, + "execution_count": 494, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "result_df[result_df['ent_num'] == \"12599\"]" + "result_df = result_df[result_df['SDN_type'] == 'individual']\n", + "print(\"Cleaned\",result_df['SDN_type'].value_counts())\n", + "result_df.drop(columns=\"SDN_type\", inplace=True)\n", + "result_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Individual have proper names and some vessels are right name, but most of them are not. Aircrafts seem to be aircraft manufacturers and have codes in names, hence not of any use. -0- seems to be names of company or groups, hence disregarded." ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 495, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6915" + ] + }, + "execution_count": 495, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(result_df) #total individuals" + ] + }, + { + "cell_type": "code", + "execution_count": 496, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6855\n", + "5924\n" + ] + } + ], + "source": [ + "# DOB\n", + "\n", + "# for format dd mmm yyyy\n", + "result_df['DOB'] = result_df['Remarks'].str.extract(r'(\\d{2} \\w{3} \\d{4})')\n", + "result_df['day'] = result_df['DOB'].str.extract(r'(\\d{2})')\n", + "result_df['month'] = result_df['DOB'].str.extract(r'(\\w{3})')\n", + "result_df['year'] = result_df['DOB'].str.extract(r'(\\d{4})')\n", + "# for yyyy only format\n", + "result_df['year'] = result_df['Remarks'].str.extract(r'(\\d{4})')\n", + "result_df.head()\n", + "\n", + "print(result_df['year'].count()) # total individuals with at least year in dob\n", + "print(result_df['DOB'].count()) # total individuals with whole dob\n" + ] + }, + { + "cell_type": "code", + "execution_count": 497, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 497, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# GENDER\n", + "def extract_gender(text):\n", + " pattern = r'gender (male|female)'\n", + " match = re.search(pattern, text)\n", + " if match:\n", + " return match.group(1)\n", + " else:\n", + " return None\n", + " \n", + "# Apply the function to extract the gender\n", + "result_df[\"Gender\"] = result_df['Remarks'].apply(extract_gender)\n", + "result_df.head()\n", + "result_df[\"Gender\"].count() \n", + "# result_df[result_df['ent_num'] == \"12610\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 498, "metadata": {}, "outputs": [ { @@ -460,16 +505,16 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 499, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "1549" + "0" ] }, - "execution_count": 11, + "execution_count": 499, "metadata": {}, "output_type": "execute_result" } @@ -491,63 +536,282 @@ }, { "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "11" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pattern = r'eth (0x[0-9a-fA-F]+);'\n", - "\n", - "def extract_eth_address(remark):\n", - " match = re.search(pattern, remark)\n", - " if match:\n", - " return match.group(1)\n", - " else:\n", - " return None\n", - "\n", - "result_df['Eth_address'] = result_df['Remarks'].apply(extract_eth_address)\n", - "\n", - "# Filter rows where 'eth_address' is not null\n", - "filtered_df = result_df.dropna(subset=['Eth_address'])\n", - "filtered_df['Eth_address'].count() # total individuals with eth address" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['ent_num', 'SDN_name', 'Remarks', 'country', 'DOB', 'day', 'month',\n", - " 'year', 'Gender', 'Citizen', 'Nationality', 'Pass_No', 'Pass_Country',\n", - " 'Eth_address'],\n", - " dtype='object')" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "result_df.columns" - ] - }, - { - "cell_type": "code", - "execution_count": 14, + "execution_count": 500, + "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", + "
ent_numSDN_nameRemarkscountryDOBdaymonthyearGenderCitizenNationalityPass_NoPass_Country
532674ABBAS, AbuDOB 10 Dec 1948; Director of PALESTINE LIBERAT...-0-10 Dec 194810Dec1948NoneNoneNoneNoneNone
542675AL RAHMAN, Shaykh Umar AbdDOB 03 May 1938; POB Egypt; Chief Ideological ...-0-03 May 193803May1938NoneNoneNoneNoneNone
552676AL ZAWAHIRI, Dr. AymanDOB 19 Jun 1951; POB Giza, Egypt; Passport 108...-0-19 Jun 195119Jun1951NoneNoneNoneNoneNone
562677AL-ZOMOR, Abboud Abdul Latif HassanDOB 19 Apr 1947; POB Nahia, Giza, Egypt; natio...Egypt19 Apr 194719Apr1947NoneNoneEgyptNoneNone
572678AWDA, Abd Al AzizDOB 1946; Chief Ideological Figure of PALESTIN...-0-NaNNaNNaN1946NoneNoneNoneNoneNone
582679FADLALLAH, Shaykh Muhammad HusaynDOB 1938; alt. DOB 1936; POB Najf Al Ashraf (N...-0-NaNNaNNaN1938NoneNoneNoneNoneNone
592681HAWATMA, NayifDOB 1933; Secretary General of DEMOCRATIC FRON...-0-NaNNaNNaN1933NoneNoneNoneNoneNone
602682ISLAMBOULI, Mohammad ShawqiDOB 15 Jan 1955; POB Egypt; Passport 304555 (E...-0-15 Jan 195515Jan1955NoneNoneNoneNoneNone
612683JABRIL, AhmadDOB 1938; POB Ramleh, Israel; Secretary Genera...-0-NaNNaNNaN1938NoneNoneNoneNoneNone
622685NAJI, Talal Muhammad RashidDOB 1930; POB Al Nasiria, Palestine; Principal...-0-NaNNaNNaN1930NoneNoneNoneNoneNone
\n", + "
" + ], + "text/plain": [ + " ent_num SDN_name \\\n", + "53 2674 ABBAS, Abu \n", + "54 2675 AL RAHMAN, Shaykh Umar Abd \n", + "55 2676 AL ZAWAHIRI, Dr. Ayman \n", + "56 2677 AL-ZOMOR, Abboud Abdul Latif Hassan \n", + "57 2678 AWDA, Abd Al Aziz \n", + "58 2679 FADLALLAH, Shaykh Muhammad Husayn \n", + "59 2681 HAWATMA, Nayif \n", + "60 2682 ISLAMBOULI, Mohammad Shawqi \n", + "61 2683 JABRIL, Ahmad \n", + "62 2685 NAJI, Talal Muhammad Rashid \n", + "\n", + " Remarks country DOB \\\n", + "53 DOB 10 Dec 1948; Director of PALESTINE LIBERAT... -0- 10 Dec 1948 \n", + "54 DOB 03 May 1938; POB Egypt; Chief Ideological ... -0- 03 May 1938 \n", + "55 DOB 19 Jun 1951; POB Giza, Egypt; Passport 108... -0- 19 Jun 1951 \n", + "56 DOB 19 Apr 1947; POB Nahia, Giza, Egypt; natio... Egypt 19 Apr 1947 \n", + "57 DOB 1946; Chief Ideological Figure of PALESTIN... -0- NaN \n", + "58 DOB 1938; alt. DOB 1936; POB Najf Al Ashraf (N... -0- NaN \n", + "59 DOB 1933; Secretary General of DEMOCRATIC FRON... -0- NaN \n", + "60 DOB 15 Jan 1955; POB Egypt; Passport 304555 (E... -0- 15 Jan 1955 \n", + "61 DOB 1938; POB Ramleh, Israel; Secretary Genera... -0- NaN \n", + "62 DOB 1930; POB Al Nasiria, Palestine; Principal... -0- NaN \n", + "\n", + " day month year Gender Citizen Nationality Pass_No Pass_Country \n", + "53 10 Dec 1948 None None None None None \n", + "54 03 May 1938 None None None None None \n", + "55 19 Jun 1951 None None None None None \n", + "56 19 Apr 1947 None None Egypt None None \n", + "57 NaN NaN 1946 None None None None None \n", + "58 NaN NaN 1938 None None None None None \n", + "59 NaN NaN 1933 None None None None None \n", + "60 15 Jan 1955 None None None None None \n", + "61 NaN NaN 1938 None None None None None \n", + "62 NaN NaN 1930 None None None None None " + ] + }, + "execution_count": 500, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result_df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 501, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['ent_num', 'SDN_name', 'Remarks', 'country', 'DOB', 'day', 'month',\n", + " 'year', 'Gender', 'Citizen', 'Nationality', 'Pass_No', 'Pass_Country'],\n", + " dtype='object')" + ] + }, + "execution_count": 501, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result_df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 502, "metadata": {}, "outputs": [ { @@ -584,7 +848,6 @@ " Nationality\n", " Pass_No\n", " Pass_Country\n", - " Eth_address\n", " Last_Name\n", " First_Name\n", " \n", @@ -594,18 +857,17 @@ " 53\n", " 2674\n", " ABBAS, Abu\n", - " dob 10 dec 1948; director of palestine liberat...\n", + " DOB 10 Dec 1948; Director of PALESTINE LIBERAT...\n", " -0-\n", - " 10 dec 1948\n", + " 10 Dec 1948\n", " 10\n", - " dec\n", + " Dec\n", " 1948\n", " None\n", " None\n", " None\n", " None\n", " None\n", - " None\n", " ABBAS\n", " ABU\n", " \n", @@ -613,18 +875,17 @@ " 54\n", " 2675\n", " AL RAHMAN, Shaykh Umar Abd\n", - " dob 03 may 1938; pob egypt; chief ideological ...\n", + " DOB 03 May 1938; POB Egypt; Chief Ideological ...\n", " -0-\n", - " 03 may 1938\n", + " 03 May 1938\n", " 03\n", - " may\n", + " May\n", " 1938\n", " None\n", " None\n", " None\n", " None\n", " None\n", - " None\n", " AL RAHMAN\n", " SHAYKH UMAR ABD\n", " \n", @@ -632,17 +893,16 @@ " 55\n", " 2676\n", " AL ZAWAHIRI, Dr. Ayman\n", - " dob 19 jun 1951; pob giza, egypt; passport 108...\n", + " DOB 19 Jun 1951; POB Giza, Egypt; Passport 108...\n", " -0-\n", - " 19 jun 1951\n", + " 19 Jun 1951\n", " 19\n", - " jun\n", + " Jun\n", " 1951\n", " None\n", " None\n", " None\n", - " 1084010\n", - " egypt\n", + " None\n", " None\n", " AL ZAWAHIRI\n", " DR. AYMAN\n", @@ -651,16 +911,15 @@ " 56\n", " 2677\n", " AL-ZOMOR, Abboud Abdul Latif Hassan\n", - " dob 19 apr 1947; pob nahia, giza, egypt; natio...\n", + " DOB 19 Apr 1947; POB Nahia, Giza, Egypt; natio...\n", " Egypt\n", - " 19 apr 1947\n", + " 19 Apr 1947\n", " 19\n", - " apr\n", + " Apr\n", " 1947\n", - " male\n", " None\n", - " egypt\n", " None\n", + " Egypt\n", " None\n", " None\n", " AL-ZOMOR\n", @@ -670,7 +929,7 @@ " 57\n", " 2678\n", " AWDA, Abd Al Aziz\n", - " dob 1946; chief ideological figure of palestin...\n", + " DOB 1946; Chief Ideological Figure of PALESTIN...\n", " -0-\n", " NaN\n", " NaN\n", @@ -681,7 +940,6 @@ " None\n", " None\n", " None\n", - " None\n", " AWDA\n", " ABD AL AZIZ\n", " \n", @@ -698,28 +956,28 @@ "57 2678 AWDA, Abd Al Aziz \n", "\n", " Remarks country DOB \\\n", - "53 dob 10 dec 1948; director of palestine liberat... -0- 10 dec 1948 \n", - "54 dob 03 may 1938; pob egypt; chief ideological ... -0- 03 may 1938 \n", - "55 dob 19 jun 1951; pob giza, egypt; passport 108... -0- 19 jun 1951 \n", - "56 dob 19 apr 1947; pob nahia, giza, egypt; natio... Egypt 19 apr 1947 \n", - "57 dob 1946; chief ideological figure of palestin... -0- NaN \n", + "53 DOB 10 Dec 1948; Director of PALESTINE LIBERAT... -0- 10 Dec 1948 \n", + "54 DOB 03 May 1938; POB Egypt; Chief Ideological ... -0- 03 May 1938 \n", + "55 DOB 19 Jun 1951; POB Giza, Egypt; Passport 108... -0- 19 Jun 1951 \n", + "56 DOB 19 Apr 1947; POB Nahia, Giza, Egypt; natio... Egypt 19 Apr 1947 \n", + "57 DOB 1946; Chief Ideological Figure of PALESTIN... -0- NaN \n", "\n", - " day month year Gender Citizen Nationality Pass_No Pass_Country \\\n", - "53 10 dec 1948 None None None None None \n", - "54 03 may 1938 None None None None None \n", - "55 19 jun 1951 None None None 1084010 egypt \n", - "56 19 apr 1947 male None egypt None None \n", - "57 NaN NaN 1946 None None None None None \n", + " day month year Gender Citizen Nationality Pass_No Pass_Country \\\n", + "53 10 Dec 1948 None None None None None \n", + "54 03 May 1938 None None None None None \n", + "55 19 Jun 1951 None None None None None \n", + "56 19 Apr 1947 None None Egypt None None \n", + "57 NaN NaN 1946 None None None None None \n", "\n", - " Eth_address Last_Name First_Name \n", - "53 None ABBAS ABU \n", - "54 None AL RAHMAN SHAYKH UMAR ABD \n", - "55 None AL ZAWAHIRI DR. AYMAN \n", - "56 None AL-ZOMOR ABBOUD ABDUL LATIF HASSAN \n", - "57 None AWDA ABD AL AZIZ " + " Last_Name First_Name \n", + "53 ABBAS ABU \n", + "54 AL RAHMAN SHAYKH UMAR ABD \n", + "55 AL ZAWAHIRI DR. AYMAN \n", + "56 AL-ZOMOR ABBOUD ABDUL LATIF HASSAN \n", + "57 AWDA ABD AL AZIZ " ] }, - "execution_count": 14, + "execution_count": 502, "metadata": {}, "output_type": "execute_result" } @@ -729,13 +987,12 @@ "result_df[['Last_Name', 'First_Name']] = result_df['SDN_name'].str.split(', ', expand=True, n=1)\n", "result_df['Last_Name'] = result_df['Last_Name'].str.upper()\n", "result_df['First_Name'] = result_df['First_Name'].str.upper()\n", - "\n", "result_df.head()" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 503, "metadata": {}, "outputs": [], "source": [ @@ -744,18 +1001,12 @@ "\n", "filtered_df = result_df.dropna(subset=['Pass_No', 'Pass_Country'], how='all')\n", "passport_df = filtered_df[['Pass_No', 'Pass_Country']]\n", - "filtered_df = result_df.dropna(subset=['Eth_address'], how='all')\n", - "eth_df = filtered_df[['Eth_address']]\n", "name_dob = result_df[['First_Name', 'Last_Name', 'day', 'month', 'year']]\n", "\n", "passport_list = passport_df.to_dict(orient='records')\n", "with open('passports.json', 'w') as json_file:\n", " json.dump(passport_list, json_file, indent=4)\n", - "\n", - "etherum_list = eth_df.to_dict(orient='records')\n", - "with open('etherum_add.json','w') as json_file:\n", - " json.dump(etherum_list, json_file, indent=4)\n", - "\n", + " \n", "name_list = name_dob.to_dict(orient='records')\n", "with open('names.json', 'w') as json_file:\n", " json.dump(name_list, json_file, indent=4)" diff --git a/common/src/utils/generateInputs.ts b/common/src/utils/generateInputs.ts index 24723fa38..b3b00b948 100644 --- a/common/src/utils/generateInputs.ts +++ b/common/src/utils/generateInputs.ts @@ -10,7 +10,7 @@ import { import { LeanIMT } from "@zk-kit/lean-imt"; import { IMT } from "@zk-kit/imt"; import { getLeaf } from "./pubkeyTree"; -import { getPassportleaf } from "./passportTree"; +import { getPassportNumberleaf } from "./ofacTree"; import serializedTree from "../../pubkeys/serialized_tree.json"; import { poseidon2, poseidon6 } from "poseidon-lite"; import { packBytes } from "../utils/utils"; @@ -168,7 +168,7 @@ export function generateCircuitInputsOfac( ) { const mrz_bytes = formatMrz(passportData.mrz); - const passport_leaf = getPassportleaf(mrz_bytes.slice(49,58)) + const passport_leaf = getPassportNumberleaf(mrz_bytes.slice(49,58)) const {root, depth, closestleaf, indices, exSiblings, membership} = generateSMTProof(merkletree, passport_leaf); let exists = membership ? 1 : 0; diff --git a/common/src/utils/passportTree.ts b/common/src/utils/ofacTree.ts similarity index 96% rename from common/src/utils/passportTree.ts rename to common/src/utils/ofacTree.ts index b08604de2..e3777ee8b 100644 --- a/common/src/utils/passportTree.ts +++ b/common/src/utils/ofacTree.ts @@ -8,7 +8,7 @@ import * as fs from 'fs'; // 2. Names and dob combo tree : level 2 (High Probability Match) // 3. Names tree : level 1 (Partial Match) -export function passport_smt(): [SMT,SMT,SMT] { +export function ofac_smt(): [SMT,SMT,SMT] { let startTime = performance.now(); //Path wrt where it is called from, i.e circuits. Replace when export and import through json @@ -75,7 +75,7 @@ function processPassport(passno : string, index: number): bigint { } } - const leaf = getPassportleaf(stringToAsciiBigIntArray(passno)) + const leaf = getPassportNumberleaf(stringToAsciiBigIntArray(passno)) if (!leaf) { console.log('Error creating leaf value', index, passno) return BigInt(0) @@ -148,7 +148,7 @@ function processDob(day: string, month: string, year: string, i : number): bigin return getDobLeaf(arr,i) } -export function getPassportleaf(passport: (bigint|number)[], i?: number): bigint { +export function getPassportNumberleaf(passport: (bigint|number)[], i?: number): bigint { if (passport.length !== 9) { console.log('parsed passport length is not 9:', i, passport) return diff --git a/registry/outputs/passport_tree.json b/registry/outputs/passport_tree.json deleted file mode 100644 index 744d57b87..000000000 --- a/registry/outputs/passport_tree.json +++ /dev/null @@ -1 +0,0 @@ -"[[\"2297956191616054971926195616453251162435757323532730659068876206828647863779\",\"2869417801130714023341221313898002899597961549955169693438939249085990391894\",\"763890127689429597136796258675728214814775219730309960141815705638256275911\",\"9097190292581204753791616201506704453502077378961547993363657628104771684663\",\"7073581848660413639247262217141065807882785022695369491983022072244614624122\",\"19629224292569484481850965894525216965208412548735573152986201146145882076249\",\"17929143551789589977854881643400532955083972639100777700533647060051876227845\",\"2346682267242108852875742803791569052222205399932201494622432014598428582922\",\"13407025980850317294288812216479148519766226181704953876845043917194340337732\",\"3820480814971129927912891185038626616070596747640518043732963258264186508902\",\"13222453688490114023074187517912715994804316428690778088789067305222948622752\",\"14463312153520392926945602900818469962362892716892354281820644216621535513332\",\"362526333246051388725004850709670597820579130421356516508084637119712772343\",\"16473991100037340848097354659777935772346608814022010634579253485243373158240\",\"930118398020997430113447594506744442191380266306636322312116305386218557649\",\"19742630956057158267897949523745381187195644146576820893605928661956844494286\",\"11398959815437553224463427932557320979525044747135444593159684546517527323454\",\"1448775660656902950362430624605882830563038146329541479784750200015037591796\",\"7980305332864140093790977623536510569488228114962636143669539705002795232306\",\"13222668992619276236118687739370619949079740553715269757000979139605321185301\",\"4780562335160511017357491695003889881422629551569648496728899544281596660999\",\"10296291783167236758737437536188050187912190924847585811120102353803864537206\",\"21675663703388212860547767809966597309151680920641796416462515873645351104512\",\"20823228008181038955763139783079002808566956940341758730909444764337475026336\",\"8103748345979221166047741281840143831471915299358021928130570717591545767207\",\"433530174571600567361999960281615535118993564696557729947679790978448168608\",\"4716291401504091606089903510046073519606265220789636207408531139295199583980\",\"19975445073759600819439070787598295514431043772790934999217661903819019770796\",\"872578284650747559668264245711924320587853611714417683598801975852850082427\",\"6490202674572301667951797712809043010988720730975330087410869381373600571186\",\"14238826175424602833094901171166995407132588912536293548477533466846324819240\",\"11345236887105022304804792683673671534802543598041833640630170525227994103881\",\"18106813967543543595979310707718000618727454615120486542657981343605530195364\",\"2316689167989241773452381012014680185791661798057383099696094239771414261760\",\"2203941597094411519643742048462734191756035197608647759789006491600585262709\",\"13305502132802920061597297758334189262248896782715294742268708479965485995175\",\"10508932749590441127535316447515931198217081407012297587796327958629272210773\",\"10327741337832555932385362203383208714668002644527096749894493956647778824397\",\"3883479526548251515942494806338248576254798586342644207111034485241651137708\",\"15472391148447034453587923798655539900491416718942926812293257212780060593268\",\"18709488944353223248560025495568553395791767905595400853993286165293608913461\",\"2889965889466199503475211573000815958881434708501868053733796605895122762685\",\"3316237722411750681634322819952220025893595569457334868176072085890726459502\",\"15541656940836462103588827707414670212681253776705854475910665542724981979842\",\"7858402865060048494437369395045486876720974817005203358154398670733819976241\",\"9964427505578334995356433050428468903801521911429534386347693420986161807660\",\"20797310815384539645353448452748383555809747523307282113612553281839679904664\",\"17480681137342824636803952627960571188346939273343519835502473799421899617307\",\"17814054858491580650784542999378064620280878150719145358835519586082733494962\",\"10438785984083726343059881556797981331206500952256989813302514750812204432040\",\"18658437276728900181203005128628811390732175463110957243761584714529765809257\",\"17752360156515883551625875493287009017569218812940387351814996481505200461219\",\"15409936359270975227142382803148075493760265398672896668417659258447022725743\",\"10646015405555415163379736368940746284015226885805961178439730232459612692334\",\"11851889173174069483236502569551520398968883009266705030677944839568277266984\",\"16101234553090567636558874245976654585887692569405171163999470640564727506096\",\"14294415974426809682547082312503513674125466253050706080547773338462357872773\",\"1165680233430043541479353395153494363340217164494852228859751477326518765511\",\"11256931019780567636985371821851651322754264992233618427856039012792527576445\",\"20611327999052505471016035438885106967623984085219698153940590989743709130229\",\"6848960963885937636406091558565357887926929941265394241068057458025349409220\",\"13649198525844834377397865469987141138023279701197219924528183480380302410250\",\"20620097317904515579348702325630586618917084735240287854276404783141681964260\",\"9584893277803458452983137148382577595041968389416068944907530643582707867527\",\"9170468671232504640893714887050814536360816122543380346317735551011474665589\",\"10595813469682619098015843900004265049000089859810422848240993752964276657867\",\"15444502860376714271872757345675802749867019343779276872760916968389399178410\",\"16144234176056074525272192576793961805722750184356983148299315419084833726663\",\"12345611213617889251921373324414178007056754753447337589252554972790201525852\",\"12828483354912071680165813250462053508807873042503529286044296774022075207063\",\"7118680796195232727123161456677006142098187613138261870538815777926445050622\",\"21623990699115669866847994193420888011216274014351629948868370124012025113500\",\"4236202394180149192794570882487979330833977564640074653414395676751165725637\",\"15994893550293462436923878961834922358923057286049421277177523700804662453939\",\"18918905807396046932144213056777722841947808574943035677538057960795667548156\",\"11638631875721038902616425934324426183688508245476992502566968844508265542789\",\"18313559150397084501649475319288381711977922912947206652032056422045791522572\",\"17318083056585990032435956024572961836171984036854129710632248054302702097402\",\"11134700821974697311580674331131523134571361140270299033339392027300726214622\",\"16766275830320524287847010652546000953434103705855155762714141636190612482561\",\"10786532133547457069116793765688756512364712598343523954501548682401958501521\",\"13010120615710641564500190595379636157498651298140850738830968759314467278026\",\"15529347448130015021359053495279222722875126301271487815180378795563920778813\",\"8675475799400382083794516699359016125864238609629146666503792812523427428724\",\"1017673290739175953174331716940240389673034811891376022017155226266896145827\",\"2130395918828253021468860942166549567800155987751268743829627003957924041705\",\"6051005395204805330497893512717504985244132493678467101070085098473328531289\",\"13857031043101526999771877775048103842974829314522345326681677397049545226907\",\"15772941540430980264617302450296661226545473680695899687091809277501234170215\",\"4747127360987738199102031789448359507496878754919512540915724217708939205647\",\"15466651537374979952093479908592414971365623133715718010468568294998532616922\",\"3120854676983632762324157805522750912288880801579170733302099152363598027063\",\"1730196836273043561615061038058578404014942955751194930851123929935545659418\",\"2324857200761867509990790859362390856367224233407992124382420519953749298882\",\"11379538206070150439570904952636025894549606224766105864657960844486391574014\",\"19964683983981197098719754646449124256903785751900418551739881242011780268484\",\"12858403412156371081469205968928340369419954902447094472028793409850843312742\",\"14727152909677507569056191926051851899684847358749191391937471746295800444993\",\"21530278014723132558014057590846775352811697500186780013295117579663182278570\",\"4305620045231419446964119517513479816895634624514819357460213784333824584720\",\"3516362908884783835402076092352027541799163275527994310725750238865282991001\",\"16803003394617278371461373795011029278535716584237415432301257472408120016420\",\"4493351883493149880731015526258168797540633691206538106737267433103489242016\",\"4871251092438360378828184566292167911246625474985743009241306229617036623299\",\"8600541339236445314792202529349483304697491218249699660904640459660905464257\",\"821271785492507835765812895968011325367741728813725710554743103399400442787\",\"3339907974788141616519670100047097118193430256900069689206709398473414088065\",\"19521621373937277359434105328271609016820197083329560090340457939017063853482\",\"20186729485720998752587038162440191540130659871232710093840558085017994052339\",\"7260559504631866851351123125415918774470108070002780630136531070446445486074\",\"15822485495190315229099941790845750488677001378443100241520498114865874853921\",\"17718336832247444446585181765932949744475600464015566614823707097118380669512\",\"8964661622406004672905617493264374653066649484657420507470060689834472571608\",\"16959365262406179267410272448591435619324555135725985583826358915989410214347\",\"10144057752516017669846446915417196377471166962981337203993789576336588041196\",\"16635993305551287444409954878175703592804768232817826644845236165762968887764\",\"2756953247589663460397969581151013859617034033055396828592303123891011583418\",\"16598475527508514779980868674142376366562681457653839239132398938488032077073\",\"10375137964753235519823742493360182358733628187797458861712088981757197726142\",\"1850367086066620221404462688804050063798177374950661283150244791732187351928\",\"7168077752555724035960185769427613049642831596293941737513723226704866533213\",\"8179569180927237728570443780778873960765941831809521202187291262171295209703\",\"8511331888646757425327300505349747158145587083538281067211961852149424814635\",\"3875934744030144471063479817734459808829447587424628416663613718544756633299\",\"7889737349873722486963641582989459444986517950576933191812877361290642167143\",\"2992355274776626799507159895657128383468396135437621562281662535169353550927\",\"5906207868379893756185956424546239070495117057664031505497243856845812529658\",\"3260588717138860592962340923956836575164928478739504060401689473151650487454\",\"11648654788285074955228208861298005587303670743898356373469443290527610977882\",\"19583886785429585270905693140220979545633956806510357700642973478798083475288\",\"5990084327494525969926080187427058973575096857851176111612857733524983026535\",\"21216953060324081839478634981239477060909157810640487527989223669259440550789\",\"8326349212433288503278980318233400793326005201775019349945612992263680160180\",\"9980204217799586959386152252371196090478995990287111095115244296248898472230\",\"16280789869608692239695057735529918957940663902113050131910095868212170324163\",\"10564290604695810869709178319555163756718232650509031425374845137445066691244\",\"6598112919516952390509693567817902893452078722327007192689961111881566140471\",\"2214735443780245397466691281244141842138703905048288905088827930320773094154\",\"6901160697622497166101521198406694794880001794168452207753608039115367737120\",\"16454422379033894136561668392142764365519630341452275079285764011422194558617\",\"17412751884514847389331842796596725840470253067815905842661219313611382872891\",\"18146638290561923058687519611009548941377511693018834761892293586142097307996\",\"601905670430652883219555654863552176377247276528024785605614700960780210653\",\"18562185082532408572244742338163926544569259733320671725213345965259351668352\",\"16541190397745655146291387349958340146238257900581127690845402060422971426087\",\"6165160564678959246283904262783968180553101890784245420562375565142046571560\",\"5483527832062670317846464026395790869419306574791944627649891393565629049174\",\"19817386538127456243018226880003840608420012474736088787456611052375937138815\",\"8499765801401718921401645872098332467491698949819122941227251597158578220674\",\"9403351548169522914262483264064188610172275782007778946161428544893978476375\",\"12653726110080808098499784474993016607789061868596098859844569405806114879883\",\"19324422010292830443763254290869433683188012516075628798558068521534335223126\",\"13289685999181813299793153881236330127239822975114390889566311102749951751936\",\"9368652176106111763235896271350968000037082732431842790962525842934583062357\",\"1894609033077313473730090666770011240679024907325133884721672159504637183470\",\"7927098604813358615824561510268589607125986437706803189683909183961935141923\",\"4707734154251741081386104474818054076309454184043129619722599398455001981005\",\"12405009197268815282111978453227076641680860988221589169076316547432999619254\",\"13899438128872117597361098234682579281635522743696820992053086278036302410320\",\"21025117606095524767212553786319330371449227315577046863138050957177385020320\",\"6539900965705618226261988492350646763576419045614483651751809731516595239780\",\"16830215763451481979848898183319645921350313541353454890596974375215256511634\",\"9072441075877230541451014472799715295134640014216291518227852629986528012456\",\"2885981720033482288992635725709370820907182602824446116474401891043834530863\",\"10468831243268966986473530312178362242492808678368334896288332067672856165264\",\"21856798353250457621410009430245438244147549453376465123640103237870652893029\",\"3034264791333500978588372615709679612484485680550984980458023589392821891770\",\"3785386237377050242111783366869807826069481475611366539341967950416792926090\",\"20323397688942349779114161089084458612497296854024008423808956116438694458986\",\"8851665495577878224148380387187774915940138783833319332368001749950982458235\",\"6789389342889264686462686342787781236079973461359627605067614935618827890979\",\"9180278007917837751438891476124550336041756227990930791987595041981929116135\",\"14003831834591720047336306919458819725595617836950876039818194325951658885302\",\"15199877852602595679544919911228466476548677388607186682630356995967932378812\",\"18727965058030824889190390810535199399549686563647676797953923029759611368936\",\"3679999763549159456576296331812487903008654159730789253867929208269066360111\",\"7575839561276302908652014845848581794018796269795322864522756123793944476412\",\"3788621147520509073935753573761969526960347445307578781041121095433278362044\",\"14382615609779561008042047386840609227993585458050021547899482858489093555599\",\"11597459406692235722025304165392651025012368646574537284189297453268458599745\",\"19901999571555486886950050475634271644039747722332141141898283519122707678898\",\"11689714074660333140650103764440826660311348219790725514454411021903863175387\",\"5385261764782295983433716131357468970859236842249528217778751326646743226087\",\"7152312353822487425163960015730774748754877411713023941185470797183178775037\",\"4595968437304548400540032746516847619218399295953085630238168019134532357087\",\"5963089625826472877667273897211434685468957020889748842462548048911440571612\",\"13919203279492706921137819756230446807886758545486139564351752605769467301811\",\"19898132964620952615160131130893507240098887209351216618734486133371028489881\",\"15645921247985551394845590476117358604763521059987621215572367546165963064092\",\"8549776326055098847521968888323609923915287616866967855898849460916615341863\",\"6937206797035995834297749662111193269902730949285815294884535716041908043704\",\"16254273118557720659713266503526815490035806847552326461222059854474261165003\",\"10601853795652166921160373690032875671931485889187014864009163080507980374152\",\"13519562900397239592232724047452788301156339664400801647237047545463721046329\",\"7960273853887181832172302760679057421184582211294074915454698904461190687760\",\"5438597288000240404061296433451208947788702155422927216425100444577343478371\",\"108399255548627924116105997281155451761478942843608576752416238365722529117\",\"835278493471704750841293681628730313425974443784578173402624156352332864654\",\"10898039163991732220878304515495107787118143507176056770246514871121901467665\",\"2467007456959963522534166662786099094896591847891432444417072272416356067393\",\"21651145060763404507839911125933384501223555495270835395426515298895305515411\",\"4995899307854952405346290195967105981867081050366528097050518247645864123914\",\"10147582027257925982567688132011006342015731717704991045048643568019640482813\",\"6309620053666012195886788602385483335421278398618953540406735761803773679646\",\"7166169169421470492294402254395030699054944156455652111239312240922906099483\",\"4131310768741581112604090904046453615454544857555118571409406114575414647144\",\"3274265093087694583830147930001216444890496750902524567478145746089496470054\",\"7147377255281053158138435800474782749611581187670901965438348867512992263889\",\"18699535215465018217712067426129179372733703572408771920282328657109362440838\",\"14161969207123418014410401886562681400637447953947373387585700709178322960358\",\"4406089650765860438384959122456913180788502224271631280803133820112358780081\",\"6959720787580289407883586988762082921172085301258326535694669982970652057925\",\"21835947049995711533990362209956721048159177193386263454661884333741745408493\",\"4720464071185245382394669921116041264737740735964605362998563356623472752206\",\"2437748011283998182897565341576044046870156849044350500805057271132611820404\",\"247021513907631875936654672805588209878205211197326037619989491219893115372\",\"5251582789142503737842682420836670887446557829961875561683291796372139634920\",\"11562498492321485175458882094862049778789367264451908288386687849204107417610\",\"6679262453482567845898609796994421427977440315689492668102877730972305299080\",\"1421925917174283702905846224272661755322201461552209523643619584692748418353\",\"21276294197375600109290903981701855503273665255712710818923685915485898439529\",\"12136422656391189607236429144088630956458956680640544297433821957593580749916\",\"16445521152590670116141710646032973333378429876675291128311064206939256276123\",\"17506350155061406349528332951580607561677669211225381458231706705237373561399\",\"6282317612473938247584003789204134503633949188820177810059821752490742529041\",\"9221830278328545186854414755300747490017553729705521188025510028398403417325\",\"5141171412356245419335988751314779149741548695179117814449248120693501847726\",\"10713522211686715585153676375666462271979841809448649164586577038742843854254\",\"6642140415939523824206766124602326181733716953803518095189144505917030996166\",\"8613552908317050800802864216176719601573679703329644685252723331441849937348\",\"21738054933296886695090454517572496267755933439016716287501541069029307413219\",\"13143096592470584413863527031528868119121981025271034951365755710351312341888\",\"11571034829772186630493549182820442551854500703415756517335168551661371259399\",\"11998360761191500489319136223799972305555212552499616227235763476497672698529\",\"11532667193982223745566355863653577265505613379410178250435762219026540009961\",\"11363678610746264601007104274488638867309963548188538067152320397018225886457\",\"18213117042476239677664293423535498444741804712209736499594071287957065388903\",\"12419158063422206573976387767204391606971881722019544673058799069884449282918\",\"2153163702925057490158682508882752546124122997999778264298061032470433488687\",\"19518256272635778262540876661934996935263519039975847527642387200949621237134\",\"10716798091792649526451052114937667434273757106139526786167319412401771148889\",\"4439803550618219099244668223535517744173266476763346040675772178406887785129\",\"5925260914010535233335059595987551833266250273720804599064190511002729096850\",\"13264334121637957152297546093103936696894258956314428554722811697377646187839\",\"12756379076388330811799359947925803903810953039085714940291373948884684538547\",\"2695257253092127757477278512989555334849672059344680162231931135265436230063\",\"18129394184434658791100036914843556889966132283688993426648086301634553020059\",\"2416048671607513117837354526101750423542593998032763954575110520268091275523\",\"5375708925112218308687079185792423516004610735643197300672401496523997047923\",\"4259448741533383474498521769410632183584691907198529009051519888338048398964\",\"2004316014773190788067863987038355322174925852124392534578468429685119057052\",\"12210971962462673278295809195274929050188375259452958040417516411993369121207\",\"10817959631280490285113396994127552665412204221711418100470143679903039463075\",\"19605235551919811660210478145435417254816781436419510287744393267176492946989\",\"14323842481138455025292795565919804363610997229100042610754142767134640725361\",\"12977227271008458051601611147216589414868179638351494450608853336560312715881\",\"10630498477591753417449680007222913476068947754906235260678918312963380137630\",\"328656344537266992480035156413928768345603781736395740909986709977309195426\",\"3552025387604085489375254071348977408046087857544104626148719263171646891865\",\"6235647793674573759862707338383183954456963338696972564149792444226042300597\",\"3555734243190553100329183670137765656066957483972585667355708248110303687036\",\"13440197803748804190391008530564780768516107998489301450508846595504512165439\",\"17517821085246861119769915821757256654959940579142672560178285409889263135626\",\"21020064273421499072923376927027459621275769610387619341264284448007542626183\",\"14248727178391944637325708644437240266856909720773019792798801180506471866289\",\"2318521644428652098897665961380867920941003421622619532641262708368746006935\",\"6978477971009041929633106181796437288815360847842661258559946310224148231416\",\"14703414337153236987301687475602142243244963140199263167613423196526242631043\",\"19047269651034538297549253501365740412797444045010866063869208770584098342595\",\"12847095375520366130760004673741694379375736739373576397169731142391342260030\",\"8028406037888514487728563381293599305293763076342212764395894825599731790178\",\"8594122903986232020391491682265556603156681283306011229167756030099743663945\",\"12638098773931842229916625330509681353147371687901711743594702357994373627512\",\"9856628288613947502399651497969704455550649559461426715610938070956243460397\",\"7691415000630556787288240967245127439564989298230819839161159796551956881156\",\"20195595232591885878008996421774793680992120717004202452040687075681644952769\",\"20540108322692931369796105089379397795343749271048920632637112532491270604651\",\"15031752251908406099727642581556699876673699694652274869245719227553326869807\",\"6086635930433149232026656359164466263162170004554784158510993905042978540747\",\"743314123647979823101853140498689607701757984694295384485872001043498834077\",\"2786350316347232828465454846852606549824826885521250539273137351431939414359\",\"5339963397796232376730088583217966611321348770847810134705429283991629994863\",\"5061624074461077415971457201948897849898490849026354711073733111299983725180\",\"16151781875545927097325996385787507918136840891258360604339191975546570741532\",\"9181720216446476301658477145850479105970047587175482467437327227929053065191\",\"18221708085833561400512254853728034572999757034488741423885795557538286879835\",\"14244770856638478379632974230119880397290649977051399321126666242010288921796\",\"14646706016634529208407132350398051212727778679835801088575005861735278536033\",\"7591441374950401627111162889102424392562001008332754232790220413690313646154\",\"17786098325273354256175495887713344318842842463635725052409945798288571789985\",\"551698600796535248845428979336981714854125763778062661018175666628711991675\",\"10494610404127184749922094821942655258840940307637348491955786138123655099204\",\"14727620908682968225948546772870331126479163126199362964830885729259720675632\",\"570392040318487887030094430744380115328107043565592320512422312607814307794\",\"8975257026883243304562838915163152408737419426059168363199314468732664628397\",\"5820752567970880571276465948692993002611257805109662452096133547878915543054\",\"5272409987583342998688382493930783248663903932016960534615752903173563364090\",\"21348982928349159971567562590228881084558070857472981620400958236139475371789\",\"3166263190183256475802793963546822562801593650600752100838501868674777531434\",\"7347596026968073252909167837813502469733015953111129747740539757387694843861\",\"1605169937935774888374183383594225903671718649770380838097760591508388117827\",\"6018829822047857063858470332232647692004082652857452931626904476690573663653\",\"3892572129255852484668777756438830976786801641627405038269776231502111948288\",\"15987714308499209602537778789676464577812402416084142171295850321149506734629\",\"4558598457460982907532044470921318669317390259836346249168218022050013567496\",\"4747047893531030983595988538207115823618647334028017109688125876677318416138\",\"13119259816745288477514018546325536583646298767167097555288862552340836606710\",\"11090817374468380707100182784719216704482655943846681703122605888623203734282\",\"21432894106158396719602533338904265699728365765976818769742437379689535302181\",\"14147183620695379938340172953857591626598855000190819318944030356831307809407\",\"9841000789204076036380307880780511533259225799701661028086192000894153776215\",\"11940078019793329675757002072415236417584547666227763786330331370816634034154\",\"5516949443367450128284224720748285057603279172004291290787038771491334877941\",\"4954814857087915977248651074791881407332034239371160856806686510495167992139\",\"13447829413480019107505046405773913040774672544816620722248340047019884329030\",\"3842279406978605760855589949216949283805981876510421184965816222550322391039\",\"6318107340282564124145234944216344735783054839184450401487646048579639583764\",\"9065226863047839279553291191049627926378503780799885819686674443697488729428\",\"15564275577887447025119728541182632832593473951336210453780287381681100748937\",\"2780985472899343773578024847080846463275906018638751334469099787825584695299\",\"3459582820598046833600768594737131600591432128111638453989498741799771846552\",\"8336960677548028461711312030098302181801636069681793850815052014471450801522\",\"15419938412055422478476899108811148953548270646394392363625904722292493837156\",\"14204427986677505826477697295481801379046208600971047948395044199380433575256\",\"4042451396454534396405240051292396180248769885290990910143177445554552383179\",\"11117924279309545140669222799287940854594738744600704792784592989374687597080\",\"11589572032980183496105754645595127232779982387874724314536423236797589877910\",\"2269668668224578328903642252719096844381879183515797154083948922487831957377\",\"6517584488578701754547253953735246072530944849672460964884868218756037341640\",\"9928361519187986884153214715416090218690204049556880596153951002517743851458\",\"15500038373129139924336641594654158700359855285522224391187592182727703492027\",\"15207687373833519390911541287747695205355827769826176456771076944917606984903\",\"13949055438030325156771544825145925878574298682873460727663168968655412863290\",\"7107187710065755015519270504330154369051780014046675616512361257856717060592\",\"11144402836650308091328499289802246192477684109405995673485741296852959083909\",\"12913455002488086045820576310240568803860384856237037117792818990094906154584\",\"21483186370138083368262616461278033410297744494463819793595109776678944297257\",\"840526874508094933020075254929456142285932787604406402733795588299581727856\",\"2017649658738700469312252567808576097183947254812928902177341130290823749935\",\"578144021640840882802524428957213054844907643548076420047259508030897391054\",\"2812909992662722366425839034867040455749309524476236295010139264968000237807\",\"18617828615637688450840486638599634191383509059499056002997368011079959301555\",\"8789273902031479021192943518658215546927159033523657927840910168109603073164\",\"2691858759248551612402642048699436541410152583429481724240160285048924078019\",\"15646415580587351340330592775056266656210938251580845946638660999736864455951\",\"4593371871984584642954610302739247005798895590471465036104612331842495695379\",\"10309409812166701048521399494960905110959488537115669664702947469171482377866\",\"20806280280292982979851147471683851881863029801315434649830098051084109830859\",\"18072195682026225666154257521621346443782821438221012555112668336856674278082\",\"6673534303811056043704912521869225673882742382925101415719975698120015192599\",\"10419422928962354708777522840525272827976139168358567544288677270784388681068\",\"1995960082857010381128924133624073401128882581330990158306288644550096768929\",\"20823223451971804443347433329133813465153032178291111014632969972924415385970\",\"9074209926673073596043206195249768275978010076112172293239775444897460852741\",\"21641197861586789720919035860136540784385985612140701328104622682526048619509\",\"14514823612597229779099857929264203044934407606978430023899250997451775431821\",\"5469712209987718119560829742003551045634965165627629702254976089011094686456\",\"891084160110234946017253971208868788066196900583272569254834994885298583978\",\"10705236268060062240222175474482885722727078753444513750327953339717204341613\",\"15863475203976605285204188723488239836985898475088686977048062326948159415672\",\"18084816902793249336308218913255360683775117181339795641713941907661644389108\",\"8627697211864276360870524350236084998238159951230206453287550647691434535556\",\"5033770610520193332578112623795301473467882662689983587620131853053165013113\",\"8494152247276339728865859099183530391400954738798837334344233067920686494767\",\"7090485228411861866512600170610994255677783414168874335934822389708926149126\",\"17541723066943372484460354597334839995047169507759283739647208604326032253687\",\"17438334738167583891480753510852738837697132680789992792285999425233047258116\",\"4079728998504516658434050656317658896996867292449349876443037113190479084650\",\"2937171147440910273947018956016927546297900238720937343404570748816402721604\",\"13662077042502150845106028854908529176376120717168042612435246072410702299955\",\"8447452700189471563186358836447889982274136151463211003838880083797894032759\",\"2022124169801451862511734526716011646697004173074798702760487066773289444356\",\"88679927457909456131590769451198008331839311380575775599111347862171947564\",\"7759787118571179404082170799542228098975220908167965824258520299971338420603\",\"15386519108197496237125570427371791673214419172343488287227834676374384689734\",\"14401384789571930699876144550730484268639753357562172410382475720616557281072\",\"11891053417181775521350559566823065925410995697897547667784985331942215100593\",\"7534757249283463263250667353636286444242610469500060027854878397234957323599\",\"16575847015958129544427542400719058436784377643142132686945262700795599511820\",\"2071720722891685958017998825210224760358583920904891686085524953032648575477\",\"16976853651668188993600804262461910453276117581241682421258625944838999143343\",\"15933885384128774070999756448856545729965355530606433331540273288846243081612\",\"5202326592405187923888342874619688825455538000530131966945721177511084405825\",\"19348504179830999494090290477919320452371062398975855006612193883484566752409\",\"535196128148195942860831392165558083536951603019860092652535022620390992023\",\"2441458703833570057116242104887845169899253958928890043319838415451858391396\",\"17123635025841550829927249862145658016863811935007407361387768289432009572272\",\"10233348488944050035845823882576431652732634651444536071871614667126320211529\",\"17410056314817045573476377031469277200534714888967864169954229344345257095822\",\"5300734293680259211888001305648485993994082210105523098902147031820360723142\",\"14701467096494771634783628737960646745847853856946674248880672788247794203156\",\"13235245450952321160115275285828570189578039089541397466764098048804542912680\",\"1204666081583461775532056867587104053721832785396293807315471649440917691539\",\"3952360294947667595521723000252381015320266892629221718827186465811751522922\",\"7690389920568667427709063089249701153324187848535140942662681879985230321868\",\"6406294541646965166985748253535873046815198447959391712679493900394693484157\",\"20587102420714410276574195025877918418533837580749137281577363148244009684227\",\"3756789121628892061607027096330923552982312624754834369193658221796606743729\",\"2309109255400675779420842555358276604384250089426341709153988935270008464633\",\"13524753553593135093108129719644306048928819838013661734014459572260264735378\",\"18963702263742725616355200273342568354565241904509563030377831682442226397090\",\"1973505430614242820130580296893758032613317286923858410909279667437420741633\",\"18708811312613383202334086538233851368819288600697971900095335410221400098591\",\"20843254325588936195422551005143234161978384889096774984161435772621771183676\",\"13135216427495156619099184030738942414130677375916583652503269886399774714532\",\"9364370089869118540926067556668967870653122561498769853005082061699313637874\",\"18774877872745469375223918928520253204144168796531114061869999461817506854739\",\"21117898207795375055841048052867074168087978271366839250296260266224341079164\",\"2848821299976584046216725760233802306481121067226738660881675500621512495870\",\"19304225100960220401739671428241515461149717488639026898107435311488169807465\",\"5020029049107991636361172326751547935729534582008935056559118407538576401316\",\"15739227494992262752580776601703279754961599642540452876243593970538995123858\",\"8297809165534807644214040103336201552764145568579889953705051052740322620392\",\"15292739646773319563169411851487026067098248738782704438432790659803072934503\",\"5774039791606328429863185672971340667022706518374995995403327464402090407385\",\"16990505919293357886535355119804327327124816326723262057635695280691184569488\",\"13427909561288835787659908126427544427522296236267430355548644412852832974198\",\"346678036097566077205586279139162844086605858463745900142123550500674473357\",\"20378492460649257836814931107036358501991278624873253026153208603197589046068\",\"4048498675825787225940951957325508328964212967574357638995202641926728184250\",\"3216421782967808090553824524305287173347091822660583000296209166347656851138\",\"19378463006833395365107737548446061070205240691229284490379626153269032586499\",\"13935316956685775188276713701258289514095866007878596089010477597390436353137\",\"8754225636366115423338712771963402863882395213641965479007201678482462390392\",\"1239523733201070558800157326574864372830232214863650413065583679774031307669\",\"5330136922378277391970758397417558826937951188349284781799355662088510624843\",\"2961211357153616823480726054157351524903332780718735175637019342619573940459\",\"20053609451401404744581496345832216565805242268686239009521985345520064277041\",\"7636147089307664632578460953937729141164861623838936646513966459922074176622\",\"5833481179577659405843594234380403869777876990370250712643946065045172692935\",\"2898654031744102931609468856936819906075353881645199748285035951284452969897\",\"10571507643816367460372263310223759396927591884019392868393812926054490705778\",\"7297515098318174495685934716616195556731683654538033744748100041197747618620\",\"10719273238890389558229995600105457151441301708650199357792611991338730049666\",\"1740494680554265510068458518482632057395381820811813916730844558709333425116\",\"18311625440324416475313583066057343905945798325695048591082934743881294398803\",\"4061126223810573503701170459175280187846746786762795281556693033669594874345\",\"10697879178163575711455184543787376477215333545031890004008791437021048862001\",\"14390774210074548144900850256869425696945609990141815436305898346870512389700\",\"20169031822470073440915930730006059846706359616262038767845543177991502334779\",\"5254328783523109589381957027052888598544958708604454761245974854470534342350\",\"5941330581843374604268234779633822642585660150765113667908590665416888169336\",\"7798122103014134090382662444708956146532601699873596334644424519896734009353\",\"859410329661211320120866387806982921441067791066915485133927682328416936224\",\"16378898430694600129044530281786575430706096612796941603653687488548300626409\",\"1886259628247278166276621996455470624237474328536604170101129439428297422785\",\"3117946081719548453767500498889939950855735621941533144891473722723527782315\",\"19083064936784342706941322799093789844925780297442797182053553776782984614493\",\"5006366955526727326464585725187180065669476001720425035193210685983592512028\",\"17688059417052756374798386784603963858853585224282501767291499712794913503749\",\"9487319552745693789312701148505105156353762289183456327896408660204747881310\",\"15305312410304777921927754161724149483657324833128812907980835089063819019437\",\"4600966021487341204361325432985500519774223876052549553574755067147023745409\",\"11970397288248942457772560618055978919160915286217702544115116131448024019957\",\"3479841271233376783419289493193140379015671946293532151809556209857862537855\",\"20430485524406045841632813860952778360842182607293216769657856980500534405072\",\"5917280271935490721115445826845928761215927018249690167708876248528112105012\",\"16056103173860545417926030535914552632035274352117357476290766802514182527350\",\"9699210835777941637736069964119747880280406844240163157526189846329227007196\",\"13108276539249902589943589659649460499824651972581715649144565356142429998089\",\"14327715042670191797944546942583397898720532289925670755792770250548755276511\",\"21500616148613467696728458043586698643992407934128639752297021075081230950070\",\"1745298330596876465928792591286335040572063164259639918926612490819544795515\",\"829696885766711849012189942156633864277308286507647347451927223968750091079\",\"13276102627910149799355906016536911091392699150819439766520355798587778468579\",\"8807685941008572562764561606584175937830820809613336593306029196590891545549\",\"19067549668533091620453328640350657014336082309330321367080562627096826014451\",\"21521794488502892575254867890690346673033353049223999539853859916455317710592\",\"7119637290312496102860437991426809861233561319614890757008648335217043849183\",\"4825394647669146984940843573478183959758263283925663892282829644062985760084\",\"355821753643334061160942101745866766154081836297792805320456117467542230794\",\"1279299773039433810025856817277770394808972720904225206591175206731899585931\",\"4767653214938472682617088468470847350985099323158596849183055224463950683131\",\"12737915785123788262679796463447779280002502603954287210178211615875605753929\",\"11537568002298278670327493069191216891030310853383310145427688194207223433177\",\"7598362421163405869699118665715946827053785227929414182021096515961090233762\",\"18719704522204031605588327209610461936644127408619969170465084458580588279140\",\"2944206885649501168679042470236611900532547888688125671125149556648704708296\",\"1004430537195706390439978903828979050045406040990502079486190643963880878294\",\"2918894335442930709822286484911301619984150502785233771717109777721116748221\",\"16883077689276700496314083940722333500158614719218644433609079090321014844090\",\"12689233379604835227382495651851204408375574860904931316896639790899367640852\",\"18590531784434852343159316968725555389368195783521833225540572570438677405115\",\"5009293235429311363348747324077237088915358618488618475746131781803050958258\",\"4659765498619440408643675978910309359534880633636496475774302209351893183706\",\"1795196474401349299474092016599816044275943620655782010312014265219405852649\",\"18107738774055006283262812760780783314950019539840790071911877853999166830345\",\"19692680556624077085620667472523017584601854982672444675070487763933061900733\",\"9966757529971846801931237523716845049802849043669023903666642979363631424625\",\"18615055961987663447788550561169296796305597692672814977366079738564274617535\",\"15374012089791951070482002306273063339801206525648078387205293099661923105715\",\"17750205851581816428521597585311744252863830330682409692660375007976332285216\",\"13238744712663563704004369967639519509395323741223230391320502253387968077975\",\"17166679538073471169018051710123678391571118499551372128663607716957335242785\",\"655619180628925399174918049278109116899528788795478074262938140937789750684\",\"8253338029999391622123354212168953990960164052396431961074135825638695176031\",\"16930603440212350259032610595509736766232171810649274614696835045400638729200\",\"21628292684011814285529566625936757183043189260797494776278618167485546871118\",\"4750826090873455630692725230397514015751903607793689655021605099365217751228\",\"17566134010606620348020838633763163165320379963634822860289657097210304379347\",\"1769878151720044077598515466954647909804615075953964669290121023530176896039\",\"5091377949426293404510239304763134402232864845067392741146619169582626130992\",\"20054970836670980108454313538122721164996062413099265507647387073056759580531\",\"19095097910016268147955379155013959028753022443815655346417110679914733916509\",\"15706970654225343598764974852980390049742407774350893456674790197850564703186\",\"1015154021750485703907461770320673253583603978778417572416631509559536726105\",\"5966410497334290213784702924377904312184920619055749232641665847983743657393\",\"1105109768924270689881918348314285652405697419984684956600184074754104487602\",\"12168757932401930331774194385156232219594247556902737813592253822105622227652\",\"9876489589309070241618694896540126427542100425141535928170365168489593155772\",\"1930625602413928530763299824562202898442717419617270667462803937187719517654\",\"21373946284434629024016497853009796120869300509286741331425019138565491505588\",\"5879934424023991462025869653588872622511136288575425401511917015886501431661\",\"10702987839790011375192184675733096313219030739025318405335224886376781781236\",\"13631093250479895347664363827728297859810548168264949440540160679363701720035\",\"11823710956248135835404574603953653493617530488298557529798251882227493367027\",\"17701864216080419446142875548762978645876905233021643811369632139615741402666\",\"17401427245840680812129659290756680146404536161066149465452538980300770226654\",\"11826945972124126441345730444381317246371881786658395432388532183859570692903\",\"9540751914005725043665835992065468936305588264220368287523210136018031575751\",\"18676318025399522172409023587687396994685051871137763599291728529582796834489\",\"2289062896511712089232654415666276827956669591512874969245718418254859890907\",\"1418381372569471817175319443356556992999086572114089230421966568673386626842\",\"9913344972442380122541025836537537017568661043336989699325753014445798919549\",\"9327084019813975455731572386217853554674658717965612400563101931223598830507\",\"11537566047909492963130857984213970211704207421587584741254314782984095502558\",\"6983844342682396893389153621286685815529466929321334591109368433992485910749\",\"1295210552813716751458461719486309694965274858469209487118094135792544851158\",\"19068190931148832297854512892676232198746356305365484176258275014411897583423\",\"10769245684010708496268992654880699466241057751191384827339987934150437807146\",\"12921298037574032788965112626685962572641420526595825700779779826962986709825\",\"6966264424425368282734127731255437135824594894557656091505142367213862685992\",\"15348662493732528653056913359371389114498829568059960553899054465307976491091\",\"3917045216366249775023187089065607400586232523015884331619692939313657305370\",\"18371707183445660767123563386922796239041786378379253862976723396685207261236\",\"9043391294106552856674135933480315027576160188864618213708946724923300540630\",\"12594166554569750670735942715448304562124828143130313686141663015241685742922\",\"9354141544978512652907718458176900953476963899978547313577428431464129727159\",\"7742361910736650360461869641783571399525871665705789087168961881237247526538\",\"4829964334744241750954471720220407076883609071931157893215170082841688021595\",\"6804270263509203001266421218687897235096519459051596701515133625742089471260\",\"17923323631072154115241752361969166435772887530908022576005108804627369376242\",\"14546412971123737002339816038902291380678030607788304239640422462296434815488\",\"4553562961814962142032234568121877691279729281809669265654929647857899393273\",\"18000656038200331425472913659231105481032504399247566502064552839773308160916\",\"14971617860795720147539950726149946244975057149188952952214580443940843439920\",\"19312432427686264064989983170229136190046158505650474797921553507402985194526\",\"10775795547968830065384658535522583761826277871190150528109600056384065193582\",\"1282724347918936472362056586620452129815640004753055304931597931490584938327\",\"19103694136559004892486138800058902259691778288152207030534069416516350000643\",\"15043760929627124182527040339250960405824533418690893374194942330317347850901\",\"14803318554925873209861285310809760183099808019350276838919371070255091769059\",\"14967784843670422990586144628247509383832161400561434121446115881637388239643\",\"7510004697622991409839685068048884932874006500756113132236538639388155432189\",\"7073148149038768220360021687930502355817544708410718323081954913153042935003\",\"16550203477858482461424910619854560044095327770083491547047190390404679971967\",\"4456050667292070084292868863655518515575475440263568219412601238331675532638\",\"21745811270280542396675129179581644843763425966095378779720227954415693775465\",\"7436111899726754150515215626296792178279476428553106527900287142251623351217\",\"10172572910484645545801754994063270772097930445876505845341992048034945671449\",\"3276649406980311720428375098694224739262571648329737461110316864707306276766\",\"8198997882387153254071606343179460130782446732412052887870690049163908323739\",\"2849333961201369775134403958011373948191861737085016994918372279176567641751\",\"14900939921972703310242138540913274420479919612145169395954188529680194635470\",\"16556063890940187661516298362466550070612952416209839532666891764481988562746\",\"9546703642414398876887371826010657325810161956558033297594353690967523840103\",\"10034181394761392591875390868483493652613260495404952635769748950454436773624\",\"4734673201562429685533818145495431166200589846298467127565150977770855996460\",\"18626007676857614261127447809387916853104704602853501110582497027065447956523\",\"549501341586136578489910310592993792892297551933850512623893550964989193343\",\"10910971000810191857761710544181924413165620339728595683602060972530977042409\",\"12911997355615710538684974599573537105509377138259934058346003101826564091673\",\"17340889361734196399557769427901946767671402528073915174916770309634935201779\",\"4265420013097270428978116936980895815870558128152821874085169485612807862706\",\"10630784193871842872727851952436242167924927186941837271637384574633905073257\",\"3532948178520823332381202148504923199414116206520290942058949729207519786962\",\"12603931209924227894800525903541313695906642172077594987312614751253542931970\",\"10098529633644669292831805597390930132302041430074773644815629320881385405380\",\"6870563513473467219356624955373140753705628309666905181440406228277278187591\",\"7237518702055771445764742553360910705171659202485574693911177381720712579104\",\"18296171800657990773234018469866841803238970291367122710251145425715052693796\",\"4554159912205766219733133489533988942856059103727380963484820298566081586277\",\"1325103361745995424507724266961184255051848551477958329481965801592855703978\",\"4145453880349761421274092961953016634196603616542345209480278688613066735905\",\"15712906415889651628878662079142333769043399147634051298425628718103910516355\",\"5312182040265549918251087162057418043473180456012692510881292922269090054402\",\"20591123677596384948701371522229032628641002609391157445507558768511252217041\",\"17979508761516933487053292726388886834487313575484676522928653919226402180599\",\"19818734374115441304370002384733111372814417144972475759290743951033417727914\",\"5668409552997133610239849317673232308051461144169865264667137392894805485204\",\"19621522222087772790011044537801433860869484021207647579686215969084157051093\",\"4301086097604540051470644652666422658809349276191633097189391122505883316994\",\"9277921732980768431716449957711831497421068029784961445898632081201721114107\",\"10949973349253173033946794602258007727382964089947576692148710389484096639898\",\"47195220371981527753638511681814588334483210762889915385599749800003915274\",\"6839400042316038568924237309341022060802710291525303835757660256287266948824\",\"2857978087937665922241733047099293832540254932963203281227441207143900945174\",\"2944742002353030089537463690229695801310126156427182943565967386604372315759\",\"18182855480141698165061663898893030577559885876610689228019749787208123774976\",\"4650014849292028197289449924655045733009962749625772681273689627275275181828\",\"1835366255756026861125362180755011553417626403851250937207874103223879839740\",\"7937000227882568243131402605843406169238668650385399335267556753554963427593\",\"5072534043100309060605255730268012441633499273166367911977080299773424373373\",\"15647935868580211474176630971086015925027107738867891925636341910801564292912\",\"18517731951414937683463820998002172643091525327760033115694153484945895175307\",\"11247403514101935835338587235196780618946477307622250956739776461155044513555\",\"21119795378790721125722744199530085774083048029030951530556215829958647721086\",\"18325579328826434343625525590220973476460619187318132853789280976291562076609\",\"3422047809154519956290339480781400798583091738054217749874088230799418835847\",\"13467732467297025560540073239950922189759525201150245888169417535602552089225\",\"4817371756588054778918270790585610283902451081960653927960947099053745900247\",\"18609734692823369061674804170958807215269685436762852228491420392190404729705\",\"254474078624872515860706654579979731675002464043150685123801407888019644331\",\"13545320837685819013515331714608443495718336817867055605409286205736700365004\",\"11291068579896176929457925802712770113017849956869216728607731958663629734657\",\"3429997979296106515738927740095467544099086328554605006351829753086717543999\",\"1267523403480204132122632852913484877256378782168939195051380656219053217474\",\"4123589290921330963997705744477096532555996234712969260070879600473044463140\",\"2254377828230933315684777368189897035168290531348639121603932897393606340500\",\"673814534952280019704003562739756392081676771631244803882462526630223824180\",\"14207965568341866713090558120706264684116427044873662966417844684322551789289\",\"7116807816703963104513000275367267489515551118753851848295339119816062561686\",\"15617779480221726195290931280708068450796460149549344586212858862821287184105\",\"13660134327292326476830446772732151793709051998148217739646775315154808747438\",\"15364073899748497880268360601538436071297665356671536585572712821464026652144\",\"14289665389810995465824083159312610010301348756343390241401057262040663151996\",\"18239270031831939274207440662659974845274961843166654788310615188177275428980\",\"4854887495483806607560599706425060936647006941287251961544003994609354758576\",\"2203323221712962643217197801313069957280771217422123065291039294183894340826\",\"3750667683943081920131666618694797715423373400159423668013111012151261790200\",\"2648762804399624524340841605010446426077976835630877512556916263990385703822\",\"13720176166101316115921154103026325517527916027780056911131523655004213453484\",\"3511210127867182542449495920880711152689017911599633718508460769665232903380\",\"19541319994794194666106035266975777517393304224139379425229240748406993203430\",\"8357690291018901528636111276770792384207542972474804202668776909424241931522\",\"5476929973624960359691559867769075148734629949542203700650401103548785121052\",\"14187511984116552532746016258010661734978272093144577900228748975224354896032\",\"4050474255426390936987857304864482524713794575832311508811329914737099312532\",\"19204552018306541840976942199413673694850672343411485618631489681321646852853\",\"6499278125086225736854028986694130833055576078784101492704065569000240792477\",\"20662578645298273145705171751929569546501457390057921163767219801446254717422\",\"2908631278287325519327863375190525803207361326431218379892801796829742177485\",\"6692439132597697742622369720482625946013484527439284832563797102270836441370\",\"15685890793101992109226124774075318574230813148257935354339786862913794363718\",\"9708680155025432983399701830107180789281165984798967357115543927801951712887\",\"427091540450832534774514386643981080181993928579104654630232677328757979622\",\"16171986767271064112561559975511827053721246575119135695142552174014714663218\",\"14948986336244366583439746444743700761315860474447153176648966712245844946853\",\"3047674133536071388678309511813216415376636540352036009997175432753892914214\",\"3916403972226738001403319458288593809266118435211993682215642254513872422759\",\"6911495317048536811192234158969600751598878842829831083368086380057355930701\",\"34027094595767052000293198529476751342710654196223507212421397972081868836\",\"20541425943872599801765671700544384330953108510160254125565501781847670961684\",\"21882659515016290543651721608791600740443742753507274814507480985132851532421\",\"5550887398904841553778611920133707480464698173569265642592718892111817138329\",\"8969318387816823831964947101354359009380137683142203274341384875989100285488\",\"10914377977105832983614971043599803597540320762523374401790370336317401832775\",\"19774181276022622480203954875025019126749464986048074893053968268569017670259\",\"20110131929165126671794085054066028327891977025851160120811062291570868700717\",\"4158986011153669073270002462176542946342959397475308577792221753460810016622\",\"17731770759698289615988013037417133677737048687099335759039928448376845957491\",\"16479578423807166159252863796057211799632497278771762011791843348264927375885\",\"6018045860455006300029919816596800332596866134982420403966045404128849403271\",\"129336285117455886066988595335588917259230844160378470998868200279415275618\",\"7424170546850249338856639279150057300997560903961320973741712532462856644411\",\"2118009409185249805944059696296032647815084169705956594240750629228941475130\",\"5597146326795152255679456943992346565505378927822444926516160085144479027011\",\"3590991238124606418100606416848363054119097155171420447056646584757558104506\",\"9847174864085168629883497654394612346855843296554453628196241491944152619747\",\"14851466081546619623949486728834546124318555578374425976373812369869686493005\",\"8910665950530981123712679832930265619128209215306698275762908550418343198962\",\"3076461918356838699721803142091545427343615318217909636383876463136758703622\",\"12369431167695250921600488731595513595447650675889983654561465974966570505188\",\"16614940661308230150508152514788629499060484702054156801778855606557952248928\",\"7127227257348147327471489078824149879674173981426017091125687075115341720131\",\"7608703703878521327190786216476451488040196812475312019852535114935376554473\",\"753551545170154266062460832722130715961015787774115232285259709602742846255\",\"2985418968942213706163027326633628553192697826885102543373710077930590733582\",\"16745741951949976030623024639702041523762026368310320223872586821399629437696\",\"13300721379785570081110828931775367037506441989405603765122940644503852771590\",\"724033740045922945586788180380816451479807731458855317176122748886817681613\",\"12383136464837038799537097833609287687469091294148371837346719383528366570760\",\"5198525028197385723679459595664697864762393073954686367530266092813991865120\",\"4753731286105043696607473081974850613188318572669968453577576776189088154588\",\"721449494537396608331732089837618019654324875157208210542436085118889200716\",\"4871955582330228074269037660155552733979336144450402941864483947814138613343\",\"3679110069888806997788710345158441596747151610837657136987037476533649634727\",\"20989369048634817260339833656619588807376203209480743507500029478608744039584\",\"2576100381738912911293579722352336077556367256894801852221112534443597425851\",\"21288190061881111662630172443628823715089361334993600209888096620286712540032\",\"6659431769581686060482329231944788896213199155120624661312335494658821367869\",\"4116401114438083724282826592829441238281782577318491397135827642694398398070\",\"6100051471003978099726384568040603992619444079919323738641550039078015726456\",\"19718803716627866574472843366283189356024793299511299514380266134789314953724\",\"11915108833782590063144063979271413161882883842019706568455312338068232092031\",\"9777456590690367223922506615740611633965806113084898266900397959362792253432\",\"19054435932327388025696100889644744133732963654679351816684866206574139375598\",\"18748653026763150133085113057408398257408205174826574255975092361351837919240\",\"6961576313265534854541847650568623039544178434891927742195786835398159458725\",\"19222007614946709197574952359493550755715159732432739040530911763885677847920\",\"19036036578814971598895768702497032624691754536360363001708154020532303515078\",\"7674811178260091667299971537930641323003702051288921880122910343866550352398\",\"19489732568476815170076469716462472314740884784933702530560002552402762768460\",\"7619382668526439723919916268800734880980909107437800536549947343255935407481\",\"5406690564004755365877220174431781560481944843637401931559358106235542210081\",\"16682686922773053148590074037893321103986113373026445420345436911860237025319\",\"16669660790463402970474959697626209496128411504780643595379651465071676875878\",\"7501511383907165236972214395518082435928629177874837700202042188488320362923\",\"7158175358123942320226639450754973012579997006460385425551613453480322973819\",\"19367369905928060681357085476573481494046033896372049351496280552992625274079\",\"8411305242852035863884110820480491650654379020384774641435181740989528245742\",\"3456051504171131882246230380081448362693057173189469582254909754071860694560\",\"1509807648070026451730705907808638634064466670090564104961353151748192745623\",\"20163150148806943652051946953769386849210205305627759199275592799549162123122\",\"21437808766101647688807213257193186122734845677711886268066036475989296410\",\"20941366323415342900438516317637671583618089087845635551331821001151108041267\",\"11645496766389348530441083239242172683430387461604472339008932863955270712591\",\"1949501446851778094072970966928253271731971863991019283010376040246034030689\",\"19377569735389129791733851472817305492168629822353050586591097454211621340007\",\"9450593020898545243371077179220791710568312741853837729112999001838071885882\",\"10247364318173457322564906573198523159767603104357962262465077195532119279413\",\"4630992094443739626858986897715205854825305319334926365758620235442876538908\",\"2097429910890885080179222238537752399738854235869097125009004064129717927190\",\"17111288102901168272106702868256574821336508239870750572021197667300253362522\",\"7414315673787463024569398130385078755189322182788375882310290567219012349869\",\"20228166890807681857814710368457359061346881097102429325609500758240908396595\",\"17773709523006894307969337556072520154381719259807154218136048132965345838664\",\"10282011029864851370504612495169250760358481439265667868969728712173951486977\",\"3428584983575937610554963725521442655638836001264286227290808082818253141851\",\"14837069114477297955618931034673359767235933800077575859876242677674834958543\",\"2081062680876169820326058996918267428966027692076114679128182179936469180495\",\"14254168470429233951941612377967535716360561699804212823048796928536751848445\",\"20249910082322768631857045924618888470791846781984838923523405181887291365977\",\"20074196933413674221036983117987938625795097124203624206098931727240766751369\",\"19458721769563566407563507027608203116476812308541909649755410490348254843659\",\"17653158292533997153338282325403701711196781761750892480005419294366415248213\",\"13949557972605540421115085366915142294520775086971954134586656064685810925522\",\"10720813908115827717913368881852413742238137063691424987013506811486899613202\",\"5217243584401969552473822420071003997314643047442314904292419704730706245191\",\"18417244767900334371135458858201317840564015809102041612470139353568423159542\",\"15089477232118388245278021699675988283757748908917609171042346196518912161619\",\"5346923020674872385341140547711508255820758993633366043319629167038665743976\",\"5383457362960498091395258520338769604124323892567042354367136056888848070175\",\"1068860916775140248090332633676277423572047667172266025754544096936012040917\",\"3994221224542951465146272408499931371853764286479082013431127551664460066821\",\"13958393757358292534806576659489791623303478509624525616051891890776295135460\",\"20003355201676569649832482824071584060998586461254655268550304173858016761477\",\"19577306002658858217377270927511496960874629925747755449321864074275568158618\",\"14224407744234999201999245907674097424805287029032870795166308252033621892405\",\"1736944582617611899893242133444894582769815338844045743559888009836859070806\",\"19459043926677281704779868550689662173936138110808587549195477715688336410289\",\"3713597248796999102863862007205049878546974474052210185835136174089759896246\",\"16912674794334866402098402367787192162306970669341171725227578961524971272006\",\"4822658516735958198565942303070365410871455299549821564290362364383653767934\",\"13775020209540905614683329567711462838794706326404481775393848065248908928722\",\"10041287017710176396950101451476656480098284367444280464144802882813856795356\",\"5599282643130713511978675299369509738468186285533430138549327372124875515527\",\"6876149086664216974573432879477056718979553696802401925338259598291338373256\",\"2353428382028061657864896700662201603684021285311751130936997661421928848038\",\"8663603130459489264393289472829964109787543407338460619461836329914710912015\",\"3298600965779761302109165587969191612068041104533155681971936182801702274214\",\"15102162564974853511206771183434482065529966347429953779591239870216300698328\",\"10343782872743779248796587921991566364245277388640051019273785394908507734786\",\"12345853151175788743299007018910110870844601917707622087569299616155826600516\",\"13561541133744072934366967264655282142423990162095423241039938045712057058307\",\"19716934983843108830205668652461017360328492755423466755974187924363667457829\",\"19583901817556224398005359314301903785387875554931770910290479994157884575275\",\"10706234909783699858624372576452539760777203985874478038353075844452450842223\",\"3905035839166266010953533798835999213835652414897866848852423994710909260281\",\"13066057135597027103388548847900971968044022606105901646140653807495383915234\",\"250271598084154086753190325882724311848989054221231662488714985148706716322\",\"9424454907051703512496607521171856797607590694517411802791445298171191290367\",\"10010028122547460868989883419864540688856944050789631910211252934908685394942\",\"16977106213165996895747296338901478409286388240539427303274772126538529695922\",\"4848440632516192870435033451287555097982354808569209354800280205281243008639\",\"20922576257221460439655650819402881386199880786093054852836549780128907276038\",\"18987238250439564660633987150480604009437703283054856001030575185905386598162\",\"15173541508533300195692088377973724521166184340034070302819101858162700635727\",\"10625500413457871728060323164132640025350864664667203024609651053743730008328\",\"4352621889420771639525663701477006412245118565715380734180848701137873947230\",\"3976969667524443724066028919199038990833291784089468764569537665437062566102\",\"8372553409265839827775511739406379230042894715674950114146391134318509326070\",\"11724922425475908878100040322921623341110924872829166000969166764448145417650\",\"11918760833865071055353415344503116407069864592027426453415195500054412015952\",\"19294004171753003886085145434622191242537883146697443266129118290039622472606\",\"12358852848317607662028553835954648901268139868137979020412832714138692192906\",\"4969906564838088116648050032973402757674763703412687960360344905562776034845\",\"6478740461476219758623406671555492632656229909459822616581666982199180428161\",\"21887651272351069170785743890657416390073473780475349638364878365364001879506\",\"9724474490042466440912020265507375177829187364896473873640614434626153981184\",\"19056470258892079108928776653791780372296471940674613667837683105658744522519\",\"6082084322989824510631753801127153703391115623402420749337842818110007670775\",\"913861987366330619480353615779442977974279185820123641737485182027758634702\",\"19785777594318821274581307921509556401898857773899607961283512691268206887484\",\"12438224532078902553201836643152339380263134053447885659605782248178272384939\",\"2583788378218449575244852100727295129467538071694819186384203309502387441034\",\"8818726053451156430716371800688951689932404758778023881198778908735437856190\",\"19451681282989976330023718306995733020851118268785793093007404058416826986605\",\"14245870533010658997498773073419698688359175117094653369044243149402672056819\",\"15415291299958523156223238999385490595747220299732536530112844548040935351645\",\"19208344259795515449439844023889141424744424502311883273483958989200381477982\",\"7487421546608944036371460239753578858150618536062513217233675191256845384006\",\"21046671470531677027250865402523148794661234148975175219671035606963131054712\",\"11149631147650796326342452287474425578974456078022086165902338440853651946971\",\"13235712297568597377252592327783844984962196997174487919425696595124656045657\",\"16634196795502464481645352693323680902630381100919731616509412546791521117856\",\"16186314745413638269237367336900312824366924556984703605617774186275724306113\",\"17768668692882457061181735230116636348115562179383226179577882889785027855764\",\"3355222388833096401373600827927135003913090037858032590180253537993861783976\",\"15186086865988253693078160869974504659523340716293946473572820987192841935808\",\"2949409684565307237660675069671196190006039601748079521305355413564689289118\",\"18422826851664535811765878757305705582978791341144677493962765200685235718316\",\"17298099022534609992245371063841147513322789410049395572815028896741261675712\",\"6167920550582470934184163717203223892015115307163879955835188395881776621231\",\"15423180031011977336325998183579966357965759385147856116068851936312751273349\",\"9083161952639937430034336211204134734106870527260705511982688530283300593700\",\"5152674741021644461859457970158144498407985497383607623191323993088608195937\",\"7537988040752299199749466802702146390219373524773816516805834049206148539112\",\"3492154554547998927300012533732296646314380596960462785706037726266118051274\",\"17130323255731604820490104573391487081395210222138736649967919448775919157326\",\"10322601560672395859220399451120228732942235078842432850599302416464921603340\",\"11409723123715995364771166862978849638122159709087521306942805648520325971114\",\"15523398739354796432424590530565688931849622636699675507193058805689277356049\",\"14366071186384013988197932953569061185777993189349077938071807612566117936137\",\"14425059405693757123388629136460411850173965195786041945791122190614549893833\",\"15612553546341650988527327647289380304372708258577048441757945731510608644776\",\"7606410553372658194216335036453546701827875956978092272537972514201623376263\",\"7230136299766324718337323901308000856850222914653730505523131504394127330857\",\"558651758886218215723734468301764801625355031784939192289684924465583886473\",\"9665939145348816009229434147575683315718227098902562594796064306934981957052\",\"4664574051594942248891104993061430338611924932938447579311483942117411902936\",\"3792161848138613056061350647280029556692892075220480058600187786739012727462\",\"15782634114704303462373815908357919372859388608791411007767828965407693653777\",\"3913091269451640301919852500449581475812026111410159269522728879788147305483\",\"8852068746683908369440219374786373775541250181030093403854343627449072486416\",\"13811036126663901566417175435468179085038455259997793890624229948998350141574\",\"1724164971055309344777698789379632669172452374504577530464258951571131861922\",\"14255324120772467989342407970844757313850391802985375461364323520248451836461\",\"8624915673058936441113362702446825779285558077795871987346088976815169802754\",\"16443768883929649643792120397327889152508454452558267950006758927536589065402\",\"8993323116849286568458034774119226621265415228456290913421821872234163642301\",\"12304675300764570336267151073324411122809500879979341495190833989358384407150\",\"12220061503040454298564402906108917492570721988433384854513540323353228929120\",\"11417280221255265075797946446838739738525844392180492438385442106927019199566\",\"20144591204766006955197485981840608670111517873918244151750196501918435322029\",\"15513629807207280417894528507683147638124849393514851467760095138162958501914\",\"21782674219737452664700590478545949037832084148228791911363379928822930474876\",\"7022892948034916204791945329436706420764206989073832707440737246937163150949\",\"12765448475495854805476276265709385265037383793398506267347206863300901278198\",\"18699890614480303460497869168488867205285464063107552608833482251774263131176\",\"15290617577637185733973769742604126037668444573927664174252588929285414373871\",\"9024125715143008378040443534111292896759661102844583773043861349402062048047\",\"18669666857354309650220829751112294997032703878604215379927713010478134347977\",\"14569042938793905866331324279973240460978976563928595415308313626772564300822\",\"9601124171080740568447995960320546914515466606430611303450783685148171980882\",\"18662228379125121510408112277688645856067826640602658556752244794951039615233\",\"4292990038112101856835689351539149710357717519486077695123028998122269481751\",\"16474001532909757988284640857423747467382129061327556153349055529921308760108\",\"13501690803846760047945278127526746006498831848977851944080334948244540515674\",\"13624105263044423279837827645048541967782505441853662825253358792081046302656\",\"18082744273060611715453462690661311991627457623005413858449986424825677010541\",\"15431437986926369026580437395023570584179733533552031545989786400557449613275\",\"6891075207853137204596258120417283010470503072171990151045973085903420071177\",\"21526816091336927867928552843536180085298817374153760502495265176487557739763\",\"13635597069010241903592432978657838988132860685592947620926441564205127650608\",\"7433360160755309455598269232013392980560722888920428802833455849228489021681\",\"6610384520939749480625101346742828895941487522783009036371964395470890391964\",\"18618779669409965995025540930511663971135398736274406679533726828253660706348\",\"3612769560443920385009838538815273894646881640744583361145036005925818358178\",\"5484203439854778608799742016921570594774568267295648787074572481588206082964\",\"10218323554838179155841761756165023107083338906766299636498327930914367050390\",\"4746463896947638522855289383948038751743683006765344992252906295803774728567\",\"15163060207875165469764021107065919765698473610615044637949915601557319871287\",\"2453567401308446499857562594951182444027643766232460560622735506755941878526\",\"15534827061174700220010258496417572869907112902802454531569859972556199169473\",\"5395832584627558191160752596576460167040916029429477778732477682520802416717\",\"15968278833631652912835261617071273560221134725312850880845877961157286600848\",\"5393557881286431208409244959102724414860120136367781133802379058967684921204\",\"18953273347417735019356746029733615883573064698167751680582961950491263528399\",\"11821088793773808919812215016128717033456749533852797799066968279216547981736\",\"10166368075333440873117054153515003152633721969934053947768133627681050184188\",\"20617807409399532948764291653265511782080160842249524780699016227312684148679\",\"10708442885020377087738104507541252334946773150008484084479466060431574566647\",\"15556712293664012400181843620627796708598537954474013765619421159611134435309\",\"12367276245196612005183774142814785719892335825252900562926279357436609556807\",\"13041335835727558787515580222729882056892015162541951439938641208533817975665\",\"11219798524758209201566121338005786840271127010842121777528354898537633140469\",\"13496917169422286090201088948967718322054234052523151344543796186593388359856\",\"12889434445354098251896619094769806389807146697436014513840509451874117298048\",\"13080891571273155292273302312842716412618639151458712812167342367090587000200\",\"19666621840182043561740287908204276603089163673266631289617124774220022876112\",\"3141300071001082870829849020600908228887017683076819778516561518117453366631\",\"18599912016555906847647408300476131680697801750525803485917045398619375838393\",\"1782171636172528786456045561545896896536026655886415504382503870268379101908\",\"18479424623173207785288761755249828754537249649326627603720165703122559176913\",\"20256215841427997163759014429980158567360370776983078291083570593812558956096\",\"8869497104666012414098949921670829417598256931651402354797067180451194547901\",\"16170583993624995138223107423517507476209736019826001035145140171353945159897\",\"5407751774971242408866400681900519524012539175259465951087186280333371549125\",\"10094146125178250524624393694285127950299075115526936579163515068997476435946\",\"14448873184163137713492445777589176304773672019924310225225532251048480659118\",\"7276359756636396286811061059687350551891671933667387400354581560853387701536\",\"5379509872134644571830821241922619811965031603745117152070069755585276632943\",\"10106007246714399595036274771747844826127981099861709092958667964364951247427\",\"1011735235805904786115728414878308755714409078124261683125625676764686231714\",\"3720654343735682178997631735053640606657584985188571349035087158513611657476\",\"6223182686088999419288573021759466126432018521717831442602493971522090006398\",\"13113839118629272710224454716918924289576764573471400614140652934141890547163\",\"9481294040915449163650303294459935142247005017062892352066295277656620127199\",\"9350000701782926664455399171891448662653822246759193580834280265340437215872\",\"5349561240145873479854462391639101001917007989410712831473002003268382006460\",\"1705531116770106535680791966161846978886628317713648602560548521682571473962\",\"9239070482140015841477114251015112677400261427881710483347604301178359594268\",\"19447285899578475643624515210222501546466113705503758586121385839789828694366\",\"495551644686517809218254189464030447359435838203673543797371522702755850818\",\"20453993476859777586468863081201872582757793904812734520090747887274439785070\",\"3167737853236362008708677137437114273092772785779195809272808053337600635720\",\"12909244150068166622807290765814753495925204134285955857219822695695884128879\",\"21619719584456253631188406372604463581101736762443831964743742643072951546390\",\"16805870055907551857760089760588011647695730064405884518776228289189262146033\",\"17669920632156289474596737549064108860340776527292533255130691606518451226509\",\"6690198817501915724464770354275308853214329216381622269658710852592961574813\",\"8499309826664195181006485433200759407256416922712440616354626204684586727232\",\"15457682012031653289377718533778083941659597601082158213664018069133280614968\",\"3681415837427860015876533502048678272122192899038799722346278287717242231480\",\"18575921819018137680260288741130402048017136429800544655808235096535450769722\",\"16249648569462724535183707379326250132859278933841103396510416104825113897028\",\"14061795464810032897002346550505720900939725675606705524652782042242594860906\",\"16429936598586469533392544812902956450204956476966406891255372927240866592817\",\"7674903801029140390224194538738233902827443868864875558495815199222588887270\",\"4012117902565765375808069756796012034132184939507490896091704467879685094354\",\"17343775149347483859683932841432967570554756811801392210171477139489350989692\",\"8944356046707247536725476170118167683874190577615511008791802622328354444093\",\"9694341613648265682592422825620209500015695935479015341981179746864299239757\",\"2897396310259663754354057750600306875263645275135990623447660374091118097793\",\"17592194982765266949970639197600435964022410891187294838572920067410794695571\",\"11911704938053288915034004780043248034226676926786189279657328758617239451107\",\"15015524566544955311488394684550686211545451857350607297162997464588732976522\",\"14293212302896732598088164995939742338154495643751496878020994720111039893710\",\"10869831529782901250175533696511255990981274039104220549755268577610506149451\",\"8249330726288143243235867455110807397715130700405745562884292816132609867049\",\"2294485830871660911946212082016461891705245481546180869922890132178834167270\",\"13410822541895479764354206075049459380533033282910415811941366097637108172389\",\"17673723545039035479553079614828422070562793155143477814470874330497048740558\",\"2018386059263596778576036375683113462213489531918621280095566438749306408673\",\"3760122044488065576962299811597106487053968493705545718944248157677296832849\",\"18127695100567530777382312821931231043184651594606275639073733330729692898252\",\"6060544581459138110117947629599769539457049477342187371712095854568241742419\",\"9282533864694761072376879543982297825866231853448350109048461154220594025476\",\"20621531098183270254419112700963686309901645454913595306411751028298280994308\",\"3390132284631866957620989472489794746986883882819147302060945243242610949252\",\"14663250755176528130460668492415806968373121020351498348784775165538178238092\",\"8769978456935442130817309903868824821834711210982868811247609253802961032835\",\"10594823329453464036593626572335830437784383124933842065412029357552014815688\",\"6623677833541909659845402858420882051134168694626692860853204145712694512847\",\"5237190467835030313926918571926738123537244509319902789115332056610895505823\",\"4530271282572494407020574923230493513400344833141326560089751724953811871340\",\"17290089053053196168316348319007776405940593923022223814306652618381182903749\",\"19176733453749627255586148888033669195908253014530610808132866986233993986189\",\"21078018907532958122746883554368223161698184337770935721500759847044539161159\",\"3035211985427089852208438645242391077089579650575671238691237681888983988116\",\"14389198461852354586276039135244181975917451951061223296925742215518851913185\",\"8588229605731001097807760967554875346354917037472665261664850387534818822938\",\"18343814712657704515398699437080491913970045572256545013035531362237592347359\",\"566640924464348838306759646536493654563112556710959704849565487030587611038\",\"19167453904749286834937595134275076676689057639823881428008035314136138562311\",\"4601386284000043990787655848366095854998590618952568659025749993031519671682\",\"8196882456546779669165538613225118143211255506402262983382306258598338654017\",\"13206185706806210571595370261637953553112122843345330373874680857446097510512\",\"11231562351925817079748345316047056647147458653767684087718640825060550238414\",\"12746015597906411418110355013134680927280910040642101989340945851245376777503\",\"18538931523354619947323009801296319286516669445291849173288255180051706045158\",\"686562883792089766034388524114175326141729488322213368185242720769192966664\",\"708444881813853485936124538327733796569002449149839564788295266799087220091\",\"4018656189425561261125083686773694105507556379961593396012910372997094390177\",\"17764800796646174927424456182135586965022865674815941937888202812130843876189\",\"17399066703567490964629203247141752613805763593840622994363896880335966798919\",\"7178605323760978034897984905887293074673781114967261197977990888429692591504\",\"18348674965988566901323843378965954933507529251677918260344918219758074274251\",\"17457690155585759282170972270848179204372802678126226483752168070009153737603\",\"20682273681733902954980578316760344574666187095186379440276439936241679460923\",\"17253089217411267272336503265378825844320002582474649411699022553318946469806\",\"20253270838230831409713430423645055662701008849823774178282449328241462414122\",\"1298014226629577041403404069059356796933979957197422295618461051887260145873\",\"3808621654670156138559167894997622738691998447149425154426273742974989688274\",\"13789137621552534211866441748253230428056914452913518509982748187144892361180\",\"2543200143501102279079419890034559184985604797707596731728973650999689930357\",\"7878162441437256779410849186181471717953971309472118214207793649612879225706\",\"7738350728620677282260164446029471458633351986126957834078574268458866827740\",\"18892357364953307175608620456255666811024258466821733203244378403657965761862\",\"17715877598010611018720375465720886481549976798081877557061167246631746909208\",\"8224300520486348291695282093217337278703159667935695206658604014866777538002\",\"1768519138743707754452894368789482809962273291614467513100345134086348035608\",\"12378721265161304108889508166247709421248168662295157825367615740769808227437\",\"20461257166239702472314355507875776510633970759877039652716761531044630187671\",\"5960678725868066094484498226859512288531443839016127505906707843508614222283\",\"13013248577472649358765052455986889108207990771171530612758179106275436207400\",\"4641547859882890641327431695789835907041951112686241261293918373719802920778\",\"19033861533704902589329709828333325093301596847323912156257685649212492147191\",\"7884654747588522784290186645499188102231562472420674183515942868781162480225\",\"5714247888494026895809466696968225909476348065363041610544636980085033383877\",\"6532023583199333669912459974803034239394405487110461543199235475902375794688\",\"6989564070277025070940607687863689155286386882129072225750851812881858916501\",\"15750984514460479125777896812308247822688634347721360768009484839063597300988\",\"15798204299395594533425854906767389651230726299867884743802515539652890799038\",\"7251073256980732673177465898596206527336553604501629604432752454684776836789\",\"17552650553227693627170534213604352328001622006773763531188887814166586659844\",\"2458640823183886098069203196874553132474257772294703618925856229630503203826\",\"15827982645394879149086003119570656939905883096674627163898567949404891990723\",\"7772903353667198423376333063131606440740265442220961180393286710192451110818\",\"10262359278427217663001722199761108446353262896551460923886898040412425704967\",\"14932463978357564584861239550268064044197204917793077707392141845321844255466\",\"17707506227491927326507961152108627301226132180819901622216825214999015523002\",\"13630142730176446978392709916539386453522816209001568115822837966322781777505\",\"8371509728219782850774853970037238914126792672762441536871426038379566843415\",\"626226839407456016164220198094607783780765364481319004578255164781572182319\",\"9889908516908794023020337451896238769177998132154369637093096751900351038165\",\"20795391119728506624350493004075946748129746368643828517693560133579048920593\",\"5112643285507096378512768369024811021828921704378325349857775122349322580881\",\"4446719748389101408660186808446239161872947043882434146062568502636657319347\",\"323779022153119504815448645206442363963925324963998140943358780245504142244\",\"10218565056749309412817716864757502608006304067708789797587228621088680448105\",\"13152308190441988413512820427486346488699923722424719183357621430121196486326\",\"13460563119874482010443999109779676671759770004934738858750096837097891087902\",\"18965830002987770691574190591088538286421798495543307542884181797078723675995\",\"6395434840213248068608120312308812917099742700812265750784980113592594242929\",\"7342183204374735574971054909110302311801460056357936950629844088054724907060\",\"2432786582476238205545154281636364005136123438944306692489299035511728158605\",\"11637894523589160776917459392004349397763597336514836268421207577977494652399\",\"2256998770722113505021853634127271536365099727730735904209492025581931613215\",\"10317315158319972215389047234164191439186590269235583701664547495969426132471\",\"757643826639011478968124079839012522100339780952837425984793910644907864690\",\"7794711446303832118990616759885513164703711671489146968718521306510132244885\",\"12770769623774232682104262732812149586722261406326012723701799844727078503067\",\"9820391725161715709428424515952440374829958590924426889410235652934409967846\",\"20285167315999617852115728776331482611161207330607143963987206181062320356354\",\"7791657372722222292454800283899880879252765834177066475835439667506233679099\",\"1050411366976472099181062492936136800294924454765001698662748367397139289793\",\"16057100173692506834613220250181095137029091405998900058182126417471969381406\",\"18974407343204457824024334339700617302538178694659687468596381792369784889276\",\"20574704503838889174606264355804273405560259665933087510981531318308514552430\",\"2563131508434180122066582876483110107721030176246091351328881881351704990350\",\"13260143364819082709322471633109561498218908436351898986187557562864184040739\",\"3649601954651743717734730532083848194977167542189930377620649708404821941483\",\"10375028590912396926556715037194092336942288134214523628075182539295399371728\",\"13172981329328023164584054131047518787769214336537205789915446559067421893016\",\"13780815073797937539129605802502604310816014593517555845928154877986502613150\",\"3114673741120136133533661012852917912232001783397249458634866493382715078818\",\"16419738003308440445601681839760142492931382102250335016069062944574450414882\",\"13404481799230181674460708772222964321956929722351505460981307200836885417155\",\"10417789178746442653437684185992975792585819448404554170025142115652474183302\",\"12577482763167728111740855429860768514872715928507125107158587396065824307020\",\"8324983204603581008900654647671614866198143976486280225380307305987925950635\",\"9167814969720617796762659111371628796024893768441001981900717456257638344130\",\"10563626684370729851769714987458051649663627295560113605895276551320191415565\",\"2311972920517990467095847137819745226340817440378960082045272040329522833611\",\"18834332795966893633427593026968004524461860002535212092793382985365491657531\",\"10781290283062482660391783026219932739586647749113307603046318810091481660960\",\"15408985189767300790463520668841009868004818549678004366239311852024956061043\",\"4422286042893828363537885222785210558009228279798257480662561354814194736790\",\"14390931737752616333659602112684727472096978725894413158640696114701386555891\",\"875314213497531517800473971685730872271142089395533337047931178491827899356\",\"17959969718416917118406742248111979760264943714380031986450292973993707525258\",\"4902070865316215373580280850027411519276910590950332514915917632392391678757\",\"20733104231384106799054425413945298191307642705533832444597584132913671794786\",\"6962212690092276947038385318010635423635928091899630119205730069110628765688\",\"14790573104446360667185216802640699458356198713454648799891793057461791071033\",\"15110582830859941997208694243634055215525051057946618997507264337126259346133\",\"10775302117469189559646440779733062139562697851431810028034833755627935420079\",\"13547485601944705518266219794229054583701866141548782019069757932703931833738\",\"19863879464170713445090850396798587627822432710833820746116193319250896944246\",\"14765182890783770007056871234844498128492831845653393854956874113146433586379\",\"5877041188597741242021193351628968784904818009538500815871636525608126248614\",\"12058483086849423126047711787800909871697138799179497270029784864801200300780\",\"3959602983934034489074202063142368078047963497689643949584635546264643449965\",\"7610148366017427837957661800288973622422001458965468883228108001124271960204\",\"8100127111384594626719290748125423377748116811023299896901237095688124828893\",\"2722395625568049838744957507397899127546359207602529009217466916776169745304\",\"12645733509136665844669537653353287064929487441169017525480330127078904957109\",\"14506651939564277951128470775595095012470609367683624855836412111819308409717\",\"12299427442314283970851453336868916577518587545781317774204607958295600208309\",\"904064624463826988612302269968429817641785225668187239246138021743406105352\",\"18160990917992556442570899220187097542370423296331179601124918220679421328045\",\"3284172012879275965028298947519212178303506694088744599663637632455487012819\",\"572067530823817513309495084210045366858447023708912329738870257691846618349\",\"20975858020107586741911570069347676155422652872148453137816885832202903915728\",\"3752259472381611139528637238097724379105016268514895680215038607822664180797\",\"9338774895915597404344490432409339910019184437434737548178170569930095167969\",\"5796005090031933796046390733209107958318680617287550912549690059842097233551\",\"9771517993626409597093699427744210813869252133553459477061253856221647921281\",\"13838068119685058898818907931040009459099936517424169913408078611301329841184\",\"372087121768965543715582026403898279943103733089396160991346163535508678122\",\"7997215425238580997089391972875657774851915647123762715032568944787112485185\",\"16439407970288893521716803369089370613291830120949558724790552811524495419851\",\"11469590944567016176677961261945962893593500734734770603072483045224943713930\",\"678072363042399450395679338063770742407620036635228879693159461926373790839\",\"16689056436423909914019775923305587185530733653785336704575073598749168085616\",\"17057240625885877716016725115447379135134519084686611235280695191187515690528\",\"4800012649909435659136130253781784085074770488250675145209124285269582615452\",\"6446757606652874026119630044788563334032396613333882335514040733338867253108\",\"8382931481534732282421483168468370539360343834054506810402368287055554800679\",\"13177337355282649116725052341253169161640198137560409570157477310116224987221\",\"3361627854157120011216812962315298578949946330848484982457407849350188273393\",\"18132442541298167642813632444180599845694290107373825818282833609572665838307\",\"21425886662726255697892037055094206244876364322737898543220219514396028450694\",\"11256011757165106164818182379520050974028925317097631121811508526792290229086\",\"11790899660255180838714991487565194337936310202049215496431817750022644474008\",\"6362287063721986117351493310906731082766563149765235607469711808314386709943\",\"3431995455195192381568577861412016815190650124462345930398584168497840634305\",\"18234998973527489747051869574135163414287703670174393393270820243531559523325\",\"8700323338701499772145961309722659435343368626700326106966892315024560831413\",\"15462613467952028448438346799758810146493193426303078669768895219045079186040\",\"302905897476104399409537454513149960671991204462120784211231558803363344393\",\"18493385184633735505430762982473818630315055966150179191951427082055629278282\",\"6732189943501558120511976038222678992170159984199286379490801436647833432487\",\"6794583360466263985130674096594907724503592586106761195424567829817481833397\",\"16361775488474820082219518612306424614596597903487116650578133574044014872726\",\"15971602755392693473418366293745066582628257197193159047047707228311639026847\",\"4245509714593938856589361972933570514144283306999544050634459916019645984817\",\"9820160841008372232580058188623046502918922071443586489750092292874200897660\",\"3470794128193499826056275594160566443601805439598226031316965835755159760809\",\"20439086237553780498275495997651203564700253298313143742627719787238240173307\",\"5598343841742963981529400488131920875553845266365432638399294829863607416673\",\"12617008745010526375112240895869507876342776382954925888781653975065883059107\",\"15653402937260759143631989780865902167329215425745276916812895695140432662385\",\"21558882929959763284390343718173748562558705484313487124533383536955419682807\",\"1159620059325522393536445078173730440639256578545449847715955394724693616080\",\"4767819985038639106695025597704230151375451065057484113281822751974206802239\",\"9146608832135825329011532471455327274348822014510520321768124074538353534294\",\"3920643093833900579057689752381128718853444352154095663521977830792226026594\",\"1687102028539051626708634534849736595705038717975341921219679071205866692359\",\"3826846205860502562793921236842065777011072396126541628442978275032345422776\",\"19422571001870880148678454112168021217709925616938435782562774955135944694075\",\"5507274154626799029192733566442522852372361187801732279007724773440994109515\",\"17890031321119999797855569877766967062813540434001836114536233542250843681797\",\"13311400966021141833584602188914932996279822829028276070697952661870707074190\",\"442355179001736204950498833005108720305645692518592661235859749673909696258\",\"17177306790090488083008456816215359398845065776290906445707878133341209970138\",\"9016389103488904789678502067768666547389530131791696421496902922471975523962\",\"18002214353501189140002562172556146883304070434562807203280748324876739910407\",\"6857612534866607221898715009309654444954423780765746605503692574480841396434\",\"19912481139851325474068136338895667887122413743908190528850668861253427082265\",\"14391108351753852088627525694608002792186953372144279254309911226253162609715\",\"13145474587915429844119001372670755490061312768357958129355170356636013617231\",\"20390435428545002295988153403199909953949818798676742547436610149741286450021\",\"15506443309551362166741564134020007125698448216736767117249126375127715456428\",\"903834763743041187149782829811693598909843205500384681731117079373892217849\",\"9955260922854949359375916585528231059406567153470717762206347831299887899500\",\"14020406325574895446167407903595124065584534377855843960696229211811918525655\",\"19740700258886963340374779745179374723157461558579049881748280402427883224432\",\"71864324653524323137902127463720316438109696392780349758041135676018762512\",\"14973613804355867197220356174931675310467844899454570022094553342594931233467\",\"19691519074078662836842248540547810333931302278905938039516223874325950638280\",\"3917583595435422145363218638096209976903264146150949015252038952321848519521\",\"7434194476682284231459877281529169327906195356593924212137376620293748912782\",\"15086681783151199262540666427296003163894799274602970617232446202409224225127\",\"2255042551152225031563276090558072344635444371907797470673957609696714712839\",\"2707561655163549906108825670353471342501752287996160622738989697686709518500\",\"17063608822236420031391583158566625620292081664282972735462889826833569478321\",\"14515890360609810305665664319357765299066176878944831623803302468880088138603\",\"20881573252590870377233372328452640029828339290745799674645129791589434283416\",\"14896988894085427850411227585998442630246820935339015003338486047488356639746\",\"4928603111758110163537889822492148723961192118349516359555581841236375399635\",\"4948769302455987417847869401631780721853890505223578253411729902603247761345\",\"11191332635763192110100833096712552970012385268575237575262666321583250269564\",\"13833536687287268421884920880577076991958632537502932699566510968512965903061\",\"1378199618546333016355996110658088283231580335323706691316527537834417141378\",\"9434605625114572019923296709064540231564342015774659256109318152360610833712\",\"20441610243837986661423366459596037126320324921643772112713345228245768414154\",\"17150535881222868634824028640626581751624817390033101973751962557445353578520\",\"14654836921620221599498098270427461972719346639960232743406510363087219969083\",\"9982414959957868883482671602124612047127756978115249166588160903138051478914\",\"15871811030210776375161844937090641193772996221720397192194590003082051961899\",\"10034204935713375067690285560562912454768833067297464406864511828386790882107\",\"1907940279167570838513913004926450490344701528155633010473822762336354773605\",\"14437176123646453929018929777617280450403976487557884657879607636791855715919\",\"5937515461878637077526012132368759338622392834835525709087999970543784139507\",\"21843887271475686702511657909485175751572096959296414930483950528675667686487\",\"17523564076617624019555396077310988713192908792816298070519525562785913975837\",\"12270081714593997771159765312626289616927090584870153995248975449022666543939\",\"5759748104694346467819872468766806064324622398432048847347935009700607537051\",\"11419483402566256478292881658760366321143142857188689888365907325366259754237\",\"12528070718486375187806505320782900664466989515946975393193902704198768177259\",\"7902743011041839959836654256380187074779510251491774575278605287477699024223\",\"4367458674798807182789440208695727207028547312923136776852123433065567409535\",\"1601942090852441672402709481708733125974680980827909998882825617902766308084\",\"19653065214845862490938094111089780746887985612471244787139119614464775757206\",\"1748087692517718250724758897957610172492181788333113408227647767380634857558\",\"11815033506686998641609983014882524193151653432629087898287404735818192226461\",\"13052811100241744761360709235953991432604400747474030877212807337005476923775\",\"15311815445547962951740451618471505729631217218460701492784547771910038764297\",\"1750625337184026973335409386101378699130254654440828877288654232740437625435\",\"18869713276500922602303189008924658562194994378314425025320204077030894683228\",\"14309060136048694121054486883908824507269592909270080865974966980624802443667\",\"11276079872642307035454203783211011571915836324491300483374120944227632475144\",\"5517713643817326395658400132263788560396576012767557743003849723486688698300\",\"18679936331929088099923651946992166732112665674345885889367287800705915428550\",\"20391026566873780799337162246725244538862443233224348369419776554609124726009\",\"13148736899176938198370377548959991219089661388623432234807618182115722904841\",\"20011679760768428971800105241807299103431955899065308742083389394827715303295\",\"6909170379827993492990710840148096538939935812044715176437839021552925766498\",\"16809414083943849257397771908438955714975989894328211437893599326406100451331\",\"15465037164819674890512779206783840568492417920066031735067213953144359530778\",\"18034055574867684120294761626350374207040412395629290416992708650476288017602\",\"4405583432899965827983551632820716004264400639051365534921754748899986916227\",\"16694023912761159671928598074313851523188673414332435650062308539872640718527\",\"17682983735938335254490502852443513418239335563565702624643095176901141226106\",\"6924516765583860998515271587659365441844024586831025414919994234612043452561\",\"20059598458414008200734665861510631007555436755733065834912831658276973960549\",\"19541784987749118614174706336920188757449626567508941410502096834211965373831\",\"3729797592909718966619002549150171491093610877302781060829393194238100844319\",\"7074142682423333500387588444027269602677682803175887935884263186869075402233\",\"21516735465733427360235538686696278300795602007256637424357111966951064005473\",\"3301687178926122079566647123039080980209020551326085538441236614414310374162\",\"3958545657862456625848733944142843281346742858111020633759707113495353247587\",\"2627929278707201882013688372527773635722717065983430316013657590124640291917\",\"5963003521893583624353512882427482504070317246454479586342436961214941423624\",\"21759784277495653920277261036776507578005283316752547358845529618541347394807\",\"10755248540103247914530651478717480921447478571030181001228915363410264317033\",\"3516911264874010357330219458563400824951772596559481530668306286457150981445\",\"20657415733357002630745619375938756851968428730674400338005241366494781904232\",\"17354728356304266896253045490644088205070593613370012653631230180358212999915\",\"594560537546870239358576272672590852534539310074781409112046373770505438084\",\"11286966076054513146151968451461708324108566938314463288764997956430828584512\",\"14499214793194520996320905107999806161070028404256141201520627130875538218051\",\"7149903937160933134711631638893528471471947871101291172702541618540101135576\",\"12144638184709464700915314972877573935959507785852505682967488746746804593352\",\"1560645403305136544095271056842680683524518402946072203636136033869787312873\",\"7699764783373640940585329975655562415856178444461852672706532020184491901239\",\"8845517912097920261449098033932969277200553731881394181154585341677149577920\",\"13412605149470298887930067036915228208579376321030292134486882254559921441738\",\"8241907094646228514297524089594837596944172771426514895290929903072412084426\",\"14012342656118297209304689952077433186329683353440001914454309832790904787691\",\"15453315165707219816564018932525410228814711688362487914606474649826484133160\",\"21277639471126113372767534844395035561091113414795692814182650710708159115874\",\"4380631187943551349434414224642176962344863082899146080933593011543307234638\",\"5834235134173546540482543889086649463128919319281270876646420964533974404299\",\"2228848168131965322136449997194743510781908010803008962089128391784830106067\",\"20016573410846526402607404203086002149405194247374112210645239254712277575212\",\"17538369885189135193370135377578110892745249453758673639120054231528268393876\",\"11755244658560018710520249442503812184207380925923509347046770279839160913083\",\"17141275223896631904004155293548991593397805884678668668021470818770359934856\",\"13805452398576059543832184684190494311717597077145395559156401553143299578662\",\"9158573163854182567111120047333958177072158098434761062168070641132572840853\",\"675122371252592251311764347905180217346946818448699883366586868525490690664\",\"5408106960629364307352565455258412808357081194422175550621692566858474561546\",\"5547118808352317691722969542066199650552733078550209020309073745919124024510\",\"20478326165007411627851739450319606523076613947083965696917222394327565544633\",\"18591995007401023383411064622242143317284493375160788702143626196575027113782\",\"21332200010291170465884615483448166063857879908087160978618505454186970303507\",\"21544186250178885335501478338805315646098822037128935380821402586923149025156\",\"1825395793680089988195898831588803325786294384790650751633840627631131245908\",\"16094775761263804745594959236598111970982932852808336277237096372430641821416\",\"759910903865427688149531267234194907215850150103948909193158849638079720544\",\"6413859303434325987183526774039752734148234999769732637108681060639924099381\",\"19692384425058086985508411787044058322265466189279169386075464044444494572485\",\"19876519365953597097225071337450544244836254379041496889202025252085047166251\",\"1359641078162965777036446676679788033406346269624268162464382110949200855126\",\"14082998965857378125325034505593865909052763952156060762803832254172879439803\",\"856716055985457547210906194739541422919607524697602153704999829300200017818\",\"11196632626093741726775821446967325870078624316678162585566373828786086878514\",\"617117671208696840324239398943540659218791933240234283953102817444118121389\",\"12090012687386391115518391962986037054168593677551077137508404992867099939186\",\"14701994629876325253717122415852049984598761410760179106548508979509027116687\",\"16522742473705889617018283548034262325594426097849042841572838376859245118617\",\"4225394542971960670018809271073365846659471274918299987877936283760136525358\",\"3858410298747162071887089903210199720162598612331291608219242628233273172881\",\"4790308829493764982155764333228790870645344160852516257597376418676272493261\",\"4695672129264721158697439272439575733936369620422673464523523876358645609455\",\"11137202413752703209289091132249810922144180218214127838866303586713691044209\",\"1192000935387966871747348015178551448842558399303053969484298958032585306168\",\"10825241402969048090635365511209918126017165962294175365443806101924891070013\",\"14818462836928595616618636084788941380041848984076708916329741658164710492585\",\"2086436941289568110610874449076012473742615397464217442797495760708223744906\",\"11183657468206109635899803836462978495553192062360214968306494936242134923942\",\"4169582503475069342854742731583341780137200594303334531202436509724753351063\",\"21079599261906440668941824991013722789763248324265342878954192691278115324522\",\"18273179334913797197174593225379699229298292408351357632532802467603596884078\",\"19585694426615705788413446139863685576507131380892536339066466428880749307270\",\"5529379381824027481651298637428382548134822857490755654141660361962270031120\",\"2199210611707581867112987793197024877236906269222016735576064949741253378651\",\"19709734538569640232258967113564134063684232560716603341269953129990480638041\",\"14924755385229705250198882445618159594704940024580388982069384347203693105420\",\"3264599914076326480141932044533918638493405364833550242899540119065769803317\",\"9728161759065398592364746250576888596721699925885094169175587383448197790484\",\"3840813180431317611289991321845832326839104510966385434624553185555592804429\",\"14810991840699544048720442180246750683338432010317695834472528099111524347701\",\"14697115560932886452688199159082440387266096046531260740950665453381088312620\",\"4530742312563524552081378394091327067636990603867010151263552457815113592489\",\"13465337136588918023348938879463344583367675512524383657473518014417737208993\",\"13340610891292339508013922944746131081879588452657231183746579113944627418969\",\"4853728967121158990449034010296521267852140598550362275739208684799144208705\",\"3866752166921606892043127368246268477655586831311165446892909532652176889528\",\"20823430924318785323409540417846873774685073222055985895969040543636743768633\",\"1895588147513029140386431705476649815939930185901719892839919987749524241000\",\"17285795972323641449826712378621580799115412643480128353189826937705856930118\",\"14554823368406078752805035865764387028611755048059770309143512687106951527191\",\"10551198111969483717796607057087861513072324163833200202383374618361696397654\",\"10710061152603998852336797832160605901755464171276216874358077881817035096669\",\"811875324153169744393275701998401689586212341835240445819803035100741907403\",\"21014796110947596642121819385224997308751019727816039604454463072934091143404\",\"17633231671576508216700113912115061093224640980972144694482955270359690917672\",\"16958197235196320739183058283203402535408114997208375608720623734620822402904\",\"7394072114362218320907596573354092784217357127535222438125874756468999340787\",\"14118991848918528362872147945171558464576226200308739822725896249905641885786\",\"9220835159849679849577395967976268197686269569269685160402977763493297642875\",\"1209092684929854868193721160160929548627231469185114547319882882043383943758\",\"17164131530041460156494157795179189456939958336719465372714135888734302394061\",\"13176320348889938663037539064627788036404872505677678728234689700948462266098\",\"13642080093441647813955143974656478373027467221815890942454255598534018586163\",\"19762178868967134351112847317902135824138135992866630267793828798271604659193\",\"17086072846993836933341942172747083185957318591158654848286459582036827387580\",\"6332375185659844623416041250733178356082139870954432425613593591337073852534\",\"17787312452291756020448279381021076260262654577230936664960117464451710978988\",\"19442223487623815173186483220526326959551669285330677817483906181515537569847\",\"8217591066360121784676482062663458020886462320255046045088544155030542974062\",\"17423820401871569762097384645073017036570057232489335462662318090137269838481\",\"13867772498297638978007652546517652853732554628600505544141588284030290083027\",\"15338833650207302479823773019490102918929515996556514227713805930467131866802\",\"20172863390235830374426114785485952870424432043657111667087391940673877453465\",\"3089226251431866503920953143600892852286134617829989583268471312117663412338\",\"9134475712237454807289981884757291273249288399614501354017378072197533266835\",\"10294168234111428402088676012702030137253304543651953948691490368899173789675\",\"9390901913224335216586117183443912352944379153303504810162952005698461055914\",\"5860324102892645316254476052042904612049080352915086670010732394665268700571\",\"21028823964254925046393410314355083280927401151884531526927130767375210211831\",\"20984971718503327273115975920044445523797995306109018286159376745133048335215\",\"8292870322565102586910344769321166946042678632163159930693743448806489476671\",\"16594843326781864591501358403608268916223236171186620239242616918683826282737\",\"564589935442943817798817845222450752062069024004817769507408550707595361684\",\"2643859081249916876421840416938576905982534211388306814560847417032914201505\",\"3486556980140370133049717668107763602197711720065072986662911066153062633865\",\"16690928820868456595507105764369812524253391799647433797922079585870896517845\",\"21327602432466518880021158907961669429028400556264077636101396508894300032602\",\"15412240354218738185233183663786748742833307230111753034403819881457809505260\",\"4064845355116372465532151073687857902212490930830768380535434479440204240462\",\"5330977036913588599927706890238704493687243885841570055862080845975934856013\",\"5218258558488314188532336217665756096556664753271505210389602919735113734022\",\"8288002416617408439771219138456867743956535665550076435497364482481980853605\",\"3096167106186976229078118694236524113765526993754632325828639525624172187430\",\"9294755141103987753108129652292990038787387638387203307445054775212163506863\",\"6518175531898365390201370490740351148124266311238885916449832613920155748894\",\"19563376188579241237341588130559713755781080769546040866499401430616893071698\",\"16335891134752681100063086124196902655448693313449307169326469833591614267107\",\"17932937046591371436375321907448462744731762791593829043807201030152288705826\",\"5374379792142630870497595735064060521538289850453408489714823682505132948347\",\"14184452571294840164029668558009728128394632088779246682237077751851144951574\",\"18757639104929155442645954946034014125336122448314479707898097630386054884137\",\"3552977503957389885527412828418676978672481139188710745814564568522976438179\",\"14715376243354345079852547250988098569693428455270941465711576363621581167717\",\"4781199917056866322378450843166661806703744932807514863061720072829281569040\",\"21203058022404909534947794017645180283746282950415609929631157065224002569263\",\"18549439324996512923887164620910612787950271710281237638216091690993689145689\",\"19214110463630407424899762715723931951211221968763907365931158794130457858643\",\"11173638210786275022517220923303854790363179195081214904087413146317278278618\",\"18868825669008169941256562019713283149338989328936886285879334386086437994143\",\"16456317984672229703792628373828561742616971471550338268897922500796717909005\",\"18204001387216247176601789986940508700337238480496949709620434584644643192447\",\"9539304161970180024572434455332445052939171564118180249319503309816001146154\",\"4119572613735365008840703691751523625742981975082280461858528091903730280008\",\"14227973140168526064363035020828035708028895651518843629339428121847088248229\",\"15927320239752710105215270846418220240697297662073591219825765265296126815966\",\"11721511744114565717297977415155768855549658093363327786449999431665416998130\",\"11769090441994565988505743600588116476814471384131634615998715457454463936613\",\"15234655825696705992886582819158877145570076046300760275236899060622479739748\",\"20633017613910191096655991525550346813302531272870923601879700661142719791089\",\"12532701925745831124935856139176278013349451193116447819945331277851077170423\",\"18251613869677022620245796032831729202336904479018156650485211067132634929705\",\"15112544728824554545412361103925514619630421867997923262355665914060519642972\",\"4886447291824399047619026312955814286187244161772880028915691458491047151516\",\"9809814985777581101267645629537292235248711365640159998031621125030253451873\",\"12019725386351224317609176853994016967909972196457965232298324031268201069323\",\"6507126483027511688148295634502470093470559184811488125360270145463479776804\",\"21778856650453486955796089798942895290620755635808855362879672352695595982591\",\"6142089642752579320177998627202129953258562192776279728123068398762014130208\",\"9039073976696139196224812848719761260101674287723898933177188061103800314682\",\"10628367357925792549578543532242483006689244851483103240076339974321366598361\",\"10318100765318161243918483342551033278480983128072528459627901903915905803202\",\"5948772961447657028903371359188465441425324847096805209143545423412108394456\",\"11580496960010671238103450620893571321719919920095599668584335169917935563891\",\"16578778589099553662994407166457050885650903579642243779295495853274260176955\",\"10808781901232321987791357272744399416876705248380187897047678265579415411685\",\"6800715570010787793201256051491630488680793977993246623377902797575858768126\",\"10859262986263964733593049001701126748653850694346888165798589382523154415977\",\"18622451330870069144628901121031205562798774400596219887465705468638691966055\",\"5903854534232802238716715745805729926024329173249081854036455867870777144252\",\"2004290494139219708560815039959864698238527354114324643043632796179850942756\",\"5251374590561627537329777852546467844886595628313238559471437016037262713052\",\"21533223752323369756181077293197222682559196212099757348749197963656683981485\",\"19122944485668014329075199226763324504531224797266797057550447753355238297226\",\"15735145843731219461522727178661202507730556007433676450207860658446952320971\",\"8927316110729836451090625319006602616838415596055788134688608975041905883431\",\"2425413402922292402900548280510091901109878053805042889420158963398061669177\",\"1595565431872846624785995011698479610976900102315605826492489521695464818386\",\"11329431884844456429242953521188338350625988450226921723937065667327200838414\",\"12671311240192517168491756282068792004713502583680247741955808075272953388500\",\"3478401252426377127378311613461293687625375135647832449108554382348850959985\",\"17942479302304659269129098857894551408931659149105276657916129731443868139933\",\"3286251558526795611121494073216010503514760338204040339194912194371929072929\",\"18406687448785582966539398421826103366959197060076959100450098683551934018114\",\"16413287511794075681907615812734189527536168989459482303033272330128926649724\",\"10407757756468357131043971619385528986752616307147886415833846639365351506564\",\"6203130330382573309690879602903900582973079866012094144213449328864545252127\",\"3691980070314360932057340919463650265446522817283598194960807541743822263441\",\"17667369142779283019178966551495452034331142493286725290608105674590277634118\",\"1465221326403585928228856962080760160443125984023471899862863215224193850\",\"10184123466900884195455931997164182063315294941564084195845668337555321067369\",\"3422859384970293640550239852619087790619370956603141543550149049160992126868\",\"17362916194308476548408068177026074598053675221911291880715317357831087568574\",\"11355386916530693674188096800304570066683220931528321416467897690313265901358\",\"20038333764070532586366635925245339543487993698395058040995528719851690364556\",\"18638540713696046083301989068277873692079562173360804867576881856419252464161\",\"9867403619615522262148635934248253851110751765684587703894766898604654807\",\"16483808922206393199465487139239826284771890088942871837575612867687758372978\",\"6797290610075223552087623312642438163570894744776773406385431968783831869973\",\"706481599045641991318044791602625879576498123920193156963641146896732808724\",\"19574465416607230376335138338699092124671524255581567994747287727295594955619\",\"16874502285895359630957103123058502121205333958010846201388918415108743637847\",\"2831145416176102013172564582106352385393236972577596311907566411556566483849\"],[\"2932447645100402121531261673445736513488408874029070539061585167380415556198\",\"15728584650055760753085245981388421022120738578832169878693611292738275486054\",\"6912140218284853252840735096083035728615247835346229642118131305165203715125\",\"9986210504114101747654926823646708988313131177266170736027732042199588498121\",\"18463742540124171992472542337024460585137499957659504278432084241201367240502\",\"5308537675408438713848871679671406918500675428681987556686093138900300129888\",\"18310154775519015852222714751910317388800726626487764787012453886463341021364\",\"6377239515293380036186054619751208043320535156585232918798170854581928127120\",\"17158045470856307922882292224735228048580432170454177985594317519613940274441\",\"11575872126444896539549919818825259394137403569862233176183998930762349466634\",\"2937046182643637379976640088776735041130799374506249884511367888404941200380\",\"7143952464299897463517699191790759970398547199671108963144492242495708594229\",\"1730201137747078139225552738525690128826259940889601434938638760647538387154\",\"17857858214265125773132270061115832277238085547610738668306560634463236170348\",\"5563423309267776488660984923377764229617319578143128967934801431068082187191\",\"14330882067295314269770143767367159208357381590253419542750447004180372063124\",\"19377611085928231153780435031298710658744840904477158717284733183521395928485\",\"18873084655028115272504562279722783954570620374642692005380011674018711047817\",\"9834748232340889536285001813466094762716547938176625909879972955165428288066\",\"106993462221042190094474322913743069258830671756025103976768638167124332795\",\"18172013949114376259312456737973621143144482650703079433411258996932182457636\",\"18805803003712881311995317597060785102805726732507094405925015136683294962530\",\"16094269069736901099345545252268005657950321897103012656795631564759267467417\",\"17468403988392725492052673260409383025030805071114329946524816140859141913835\",\"12283595554226561753615433505913199251494312401526966233055609251491338039195\",\"20017421403334365937485749168058517020669066094720340214616738713541254186415\",\"14478691238645215587130915996539115641104508686481730498534403888993923483150\",\"12227904964870445016615054003054652362381255566250099798695829464023585477110\",\"992199353572304945755420892652847393172560331936227789496450119447748642823\",\"5809379726390032447074479368263609356574832459231308745503681630268879553358\",\"9208718616228874868114734456930693789492260061743431604499777821354603002422\",\"5081371847538783553864941460629438549711239949449907457527325631649030128357\",\"725741937400728007249254773118734504991188714203703286455075592345543834593\",\"19117758144235666232500940435512357467102596578822334961010689772488953318290\",\"11839941129294455668343925267168325300342541874408946237093471152275990983526\",\"21387267067435129158650283305206710377642462704283415654512624276042837633526\",\"6748044218693342479152402068476448388685686605499404900825076059604050202541\",\"21477064953625409421172782304667789944568233906951522567422451061160991799282\",\"16602355380287875259150857294049610216967176829476346625589950592956056527650\",\"17982228591382170512027641029464427075359028491847955858898379876698394659996\",\"17295181088098684337516010626028559792650985542147639873294783674354741877608\",\"11684585338701625307988867669964290222516889046326318196868431010686136421672\",\"4712017026156377899128918420910645475746843982526565101366988668658263288676\",\"21181997205272901538848359191379418216685065445498863372005610605208677137446\",\"4736259052780583927413384662913911383807230553189760696040026537216854966804\",\"445186116239155961276368837224189644602015797241194335940191626697746714257\",\"5167059895533218825443907643258812098574930943709216217471857526376963038373\",\"14293387564080600912413708449270397444416198748139714226729851735832052183621\",\"20126917533013485840012062872405430245360753288654139291952495517379961786690\",\"6568538143399901524213946789368245884538245588063554905568846834823939596122\",\"4157188685525584312528259647330996804640810275645772726519955532438287566984\",\"5518093247315381631647107276345708024869126099129597044698506644528366191755\",\"14485019706978003483708252973645348522000515402868516164543115956001655351289\",\"14570387949319135232983055379127809832617855991269832271074115140780360676346\",\"5142236457530932244000188154618257398880865998607451770101168295206942195034\",\"4006311728905870880210723018610616854038007507477481852257145163441937675247\",\"20085747451771922426461062232869041881868842984175445408094263228604295647572\",\"13043412893849563374396590057581631332639082414852618463478990790869767648439\",\"3450559042738117517025514131382847941088983625377167271864335772844667239653\",\"17529993740903497861215735105484329750569742484944208444722639246161473816687\",\"11296740616590082083763527559451155755852625598656471672999042193106248209376\",\"2425807546966987152494550122701748175538837425726886194031456459059177417621\",\"11022051062382912155739309045964871851759159712816381699003710086723511104245\",\"13492487839213120224608561617891376058956705795825532969258102415076374981958\",\"21823284991489996590258909056347475987001791119984673007326343626691281554095\",\"7566905514097158581358755910558561020007677537198317337846469908316533631215\",\"10255983229559051788718993966849608075354896148537407095942161791346054614614\",\"18703590914088483104862982545963194152846132086269334243143430340773968874339\",\"1956635797111151192359335255849762379658971736857265683549776171500925168804\",\"6000577167006602431498792053490020654859101563391201807660705577507640839235\",\"4969487006997283430158813905438626131370623271135005597541328289270118699100\",\"14491980118918451264836258555203454234033014861342243419351967643386931635425\",\"6171055964460688978630288286307244596796238600148473712239980039675580655252\",\"10262379095877588066980978612049472823549436407846555120708353384382192881646\",\"18601990970302778516508470128554691601640586760534558194674035306626370319870\",\"15238853791183008475465509209360339127798648969137754595690141690171600597640\",\"20424329436809824880781549369225033568786801758942571140749543127392833283565\",\"9767706867918648771400261308067613634384235899069660722420151429207848246223\",\"6119279707025865422653718623850813587110642742822264182705682265923322283288\",\"7501625715061251176381516526901345594109737649613422482391359854794676037146\",\"17246162839789717853211660132618309478387637263457361557988732880101741651506\",\"14513226519431762456172615805921519045832173636104369068631920258191731616515\",\"2165083068739418705871140189674588918725401281798212319791820469752425996321\",\"591583253850858862325842347280438352803659103323443810886970171396919080926\",\"466938658506188254390650030168245253209279867365949683388240631355346009760\",\"13735447712520391770359905122288788293151727649208548528410631195234492902093\",\"16142215488993708513347632107252249807706565704722698587015706595312260668542\",\"19601318937919675020631154349663043210053875305314529845113295397821246702771\",\"4869321883917294931005523334517086209278054083620023760764494291738490627083\",\"18657277259638023535616408186412312872180942715877343975133067964167180197992\",\"9368604554625392303910255751463555743588057667659377914115781304486180430099\",\"14036871066807748196511847918642158574549835938684040927553900515794068677923\",\"2624821596461765831843089301936835975183666186043737114982919553415664139188\",\"19833875269929561209879398301199133780966380238234477856617737920349222659795\",\"9240329137378907914299532763585756605631438570535074033846438912983385880431\",\"16294346997439268693296838784818034001521866722694312573064934044551964389083\",\"17089716235567890701980191681901888754934284284527796826459753801200803072868\",\"17896281557699071264808458357370186668081561459001875697984594757052509765936\",\"3383098576536306152901772404243532434526427903925349636862620008785179112233\",\"12500428912263858523037327745717371099750284466345691442585026268899228544732\",\"14955939937575923692914476746924349006795523885573721451761972785340517305655\",\"640244493378283033030472644880055016115435685699676076073642621312454063114\",\"14003306379096047461221744673349497211099228854612783441242066581413257280746\",\"2958020539731887472172392615651488044950325156281430018448747582548787013877\",\"15971898708919548394009269852770857026242346082318863130025605736575897839402\",\"17719081619066727835957103596081799899401029679000260647513840228097404845210\",\"19630937870873198673656200422871758983841023280182891202430383750472886700081\",\"15183091852319835123135339618383444489543748924887876167505102568545231578755\",\"7783381288542303875292706448594002465115754637955954980890183832177452656898\",\"1038847434546156215964308887788174096064763167135037373994456654981805537511\",\"10578156138603155800031019603391098120502171306219800529972970575135695922310\",\"20606667095237754451037407621603279617461045480505282054025324106123926962092\",\"4607188967892457716070062880972050174137555277164516026105253558740574226295\",\"13801583049427173066112517596698314068349557310126596940872995409545497534146\",\"12144571175086732820341096450745262189067988827123287830110681176678549263258\",\"18332491136988848366115186720340751561994291898079282370832589544802349800844\",\"18017794115810071641307542942363088035731383341802109135286932106002976147135\",\"3016779307664956990341980372096009490418040591512930811673228360503986776454\",\"16203132397852594865460505392122975973444530624161493855393146201752357021541\",\"6171444061004872905939367507031584432237493852783935453908284330892956715266\",\"9876688444780565206881485667240775917071053116747766124161735278449293912667\",\"17040381911179582832120242265957121284358918865951020426738390790577165408701\",\"11274613240761348984919629814247318585778822153476562055615003946589455170555\",\"17455586047261420260814386164277663646471225828687985468102771199890382240919\",\"5737725012399310515181144851263725359370430281351626437924908436513065730148\",\"19349609909298989624559690927194127254899155746895601115315567245431835893477\",\"2796857244288706000941060149480910278086962008600221671310818278930372098709\",\"4672717251060491266213556115828696355926086240901213363096577463086966816999\",\"19386767857690779461617231479099855551620322008019825496985229168012511108956\",\"18022642938665489748394568593618868250214531298148577119194394215902472226599\",\"10947971543840986567263616143442342459016095469043132189047853093298244661435\",\"12869860364935098755652391489876031485253581923963761916118793556772259950040\",\"7907782131519079343311797244842726984523059191849180609150051850467737312171\",\"14246764860825585809216076087160180925996391120115043954391129977205676283911\",\"17235826731417207204544794206207877170627740250449581532495863069816482720603\",\"18535591677761421885695709560051088281550489784867438938114327294598096111116\",\"10676680618301924946657397723722796131881135080505113823490810199608581981806\",\"11578405630622973256592857552014991586559480409275766458931090225583825494664\",\"10817422877998155455385217431823273691124526192995745200836614182261794370387\",\"15672685861258358957286623565151773792240286162106307890846161134616705533528\",\"8686713982705105434150476227652974559178944566757549242211473186800770376085\",\"13664149416632006324744741898898726430935737942121242634713308921590882042114\",\"19342817923827179779229696483139198737987041842667433585473073130154142659216\",\"17375705878198294828718373214449235844587957665137037111338061931584172180351\",\"11299632604223898830589979381837049802991777002259740048236775455948876759273\",\"1886810833142358673654688685303545720813788535354801538350677447586321749788\",\"8536623684352473581076184396473887783174603664351493632469877625174942481303\",\"9016909255887993794135066948979150818567576427843997378269981879176024356385\",\"13261619779848646080712394755050424516016202259464048792978477141762216780335\",\"20910694988094365895945769599281549177983948687488608780003786697935264660613\",\"15176690847267213234880389583635393548188288044485184279458045330288197754229\",\"11441835555424586992397371694278094361854004260543224277843763188689153728426\",\"11732424593618745640932170348195297395515343908782071687444257715192714222842\",\"17836371706077093078162115452731325525223932000819362777146932718911490100388\",\"720259864027826499765431318794446904913307932031251880042089636581224230310\",\"7624011186426173822295459740104160538808885138794265434953748062961084022928\",\"1510918602607690960209875669502327525677490725159425730586263817715444795261\",\"2452661385933851684507553626374255547688536755650249198300584573128590590580\",\"14479298582590431792564753500627600259991209349319849309727922920347370610983\",\"6529885988318623131434822592866308169376052751136673217076786606762906243616\",\"9853423155000884928632673027942737974672577940609712678953157891153612064020\",\"16348704487112669110030130998931996029690002043978618219261194235727082005690\",\"17333232006275131070910638557878480089817813567657447344293692998874510022594\",\"21255761268269801248751866207746834729375096097371590054259239007798693317094\",\"5799527049116576189006168670115576372340855024826044833036145405458728311204\",\"19110185713430015981772702656849573374058734579817422121130524015036839572034\",\"14389372907009028054285899740978952185504892330121158760033163895036911249871\",\"9500623558895537922433950598486487617335978509397035657791753203741971599178\",\"248878102926700641810348019593960238147547811668974885462089405401084033712\",\"3277896551675581056285362687023710013961329339525391569253649551373219704174\",\"225330778138580308229189442514852272081054578467592521230544138909747123381\",\"17404531444696929206875112828570866329917673469164226010821601831707099462705\",\"3349714991349950550127847183798390311256891567895074548802313091734948086060\",\"16997754358360718786910196326255938412166530013049681385372205483997057282960\",\"19905522130449523211523966705610160262361709165212337333542559376415799988825\",\"10644384958019341325720828311722857697887545394090892391849620485925486430193\",\"12151807341159502211539990527494947923985235703622834174764164861939102252641\",\"8760343037288354605166227171850315096901575683583412819596198556920065849843\",\"13955636703796024279931798872347874121369494269547446708782200643721396009455\",\"18559091374514556387948008794001965806065629525461933689164843046211827736600\",\"368784998043864181730212099483370416685293254448229245346854457047970510850\",\"10271143362181316289740394218013739401345581351884732965813991922468887463215\",\"2451559382332221563452125656726925634635517313272106563555661415330584937366\",\"696261212626039586414746433454235336640264037332730032078146284873425397543\",\"19383966412607616125560484408990536532982138217206758160401324070375869687703\",\"10650686275141655592478216737016236350110514378520063822958419624588436899220\",\"18515429324281464427129405914306743288580835006030541094896241273501995336501\",\"2049130588904433946364611928637084851259101331041344435515272337623352484596\",\"6888846517078450902360779029819737223186060699213069127659983059311101328122\",\"8572309736208464305398948582063526961826649380319613238288034468027811379138\",\"2264090068560965806843445773475567157425289889715261988675507600493850479091\",\"17160985733306497764296603444025497584441023751415561739758229510921520138992\",\"14679481508815164051173430443030352844747430801230530410871837466680970735417\",\"21081825558193570453085814474188935850322650776567888962238579226941555447538\",\"10909242561428556430212052830066383883259035113754426122143438565796089247849\",\"21644351889644080817294786901452220773632077028206840563989927198507978450518\",\"10548448827044540448747437020740422682076990922775093519325938298622831916616\",\"16581494766538019508667243951729471134366469362642493690555292095176155022080\",\"11557054081637693699657727895291541197334891781122939598407672058929016118337\",\"13501168174008846644482112660236884940559882874575299421152448895384445427460\",\"4898421752014106056404300090849933017441418735066122812037876971461053161110\",\"6480164284903760642396136794613780784217912812213857329401815791646864944072\",\"15888036672849321961709266066097577764665846935645284088987186983795042795033\",\"11932532130549290504457901712230752276486062444610035546591630142352051397931\",\"9016600782189993643334872753806332307519949958890997865268462914513779459642\",\"3232232531588571838523343774232977258501764302506962701617118078009297612975\",\"15088757977275994018761024117946535121722509225582449228492056076993181560612\",\"1439782887071004050560839274095962093129936872495743541395337218963102043692\",\"3363734611772768013354082199105995156121225819604445555958441702282630335684\",\"3354966309332164412568534790225249838164169863260760801946115927997264907542\",\"11554133435594575683231125264766960409338855578259581127203403573844145852442\",\"9218272475426438870914315122729278686391837746846609431070758256994339764405\",\"8644147977052115277049167089267039491003837336777028648282472565381115365291\",\"10005779874312378429859514023407330112087624501871272955558935183214700418793\",\"6752729654048186648693972396504419798018451944929145892774244430192846948871\",\"2734225095717800848118318509763631422939504918536073680890011374281783597574\",\"6607894680731678396456966590228502615948268937354189972608968147090689098902\",\"5395384650446277355759834808145558931802092967328190034745288302997966158967\",\"15976975641742615208207410364530849608840922779631391157275873712257091450013\",\"19377467370572101839796831386570647427642791838803730415789202206250698892476\",\"8827154665905416629606446786264692295837932041928651481276798927628168512576\",\"21078797766114970973944922340286708104150395023077684624619697182229927835555\",\"21802798952957192803620585217880230233192699134531065123589734709176463909136\",\"7805510393488962856355164591960416725157161712107683329993290148284427620081\",\"14446218816285431670786278318647589567174685200905341284218425120604334319302\",\"2444924384154449043483209080511803145004128317035665092650140356791185493542\",\"14373717193589047086730375980897050065406689444358806054102514630253945207713\",\"17410706405868235499263605282517271287741273188889479526346611033803520881680\",\"8018090541830161475051000825550606354233277611042785593649126906845085368327\",\"7713592088782182553810015408198445553358843528145081262739242673867136535506\",\"20989806086603629401771261755450734954848639762723703313569752964487809277174\",\"3718536955179987147357694863521771159605781632032454446796924118755629415484\",\"16168707217024388077897062995072025051990018662670157798166279718975739350197\",\"20389302969688523619738490838412383328387424284275196078520675565857197984215\",\"17714477807189123497794124235261228200093607352512300413347573353013149011430\",\"11367329988633772871122569152012910898191296385197474117833312249448317054588\",\"14378728608928272158897937432007557673756686981883703765619565999096803580404\",\"1016633773305253618237848741498859192459147077811314969561804079126089852988\",\"21283496538253936321963215925889028313341947109019167739792597576504710692023\",\"13637320928560464239994227230254372968798420812006415426375695232374464569353\",\"8068746224065469809030003247674359401205223351273503767032036450612748721193\",\"9369745157705126402725738230212697499376132072175404452109589509218353006930\",\"9126878870954409660206311971259667365512462667989746894494667484435740616729\",\"13902162235307658041718587462258142893859442544228117057986541250476571191159\",\"13269529575993345577568900119043878406429417205257077198572685724441261052298\",\"6843219456001958309466461406476260682978763521547386115037694062578730426737\",\"1496773548148206922103000371275543748988695312656312635065469513930569475464\",\"12184058103233337182843333896411560982314609750331052793494799614003408605864\",\"17083356383093707066394469225767222979899762350392540110891225144273068537479\",\"1537568279088693525889853479791681231269560404410034071955524316242903192495\",\"12137648781852930331591811681634584255494680541433445294557998715187893449600\",\"3786569526724762180218793679682656537331522526737872135411896406023748828909\",\"10046241821699158556686671819230006912197626437808169568058617350987854703531\",\"8320669644675777802363770013292321411057924516722039499704187289850039760601\",\"15135499413242242558773441671697678105067490513178414448991270413595207308381\",\"18982499648192494071725045582596688843514846438693747836126485045741595207253\",\"18332362556395922286422448239365392930393960284461796721597079334151350204286\",\"17589998793293916485542167800066927181689268151778228729061704247334805313666\",\"18130900413737763100804883642387371292528138932318516186096985874786691401965\",\"14392454375410338101495748781723252292812323496915842522995266310605117416642\",\"10961183502695880560329450669493289407485040387606498357647364120892835546263\",\"11640582050192991320478364488315821616011919696380491877568019787596816979248\",\"16339176665033097711489823272285697222402845161051515592125077638047720076855\",\"3575412959230645060654914210278328386574505333194948481220364533254792096714\",\"384039490358394083086521694952439938844945665862683857540761065215222904138\",\"13010562833526905009747130423037960416394960002551571860497861382047733249132\",\"17516009705104719587703420922258055205096070431780246123089923156693342236968\",\"20191734480720014910003460283743837178542357574805893371260966293455071411067\",\"1096896925807176756845137327444117388188075677657858150642562158761317721651\",\"10831782407662511476951291772029856109007357470101830144269632339814152773738\",\"5154521979967006370825776881537552622182138702939803878052485355778264577297\",\"17919902175092183645886990190680370061669312236805031201822356429236347161169\",\"3883349654202504607966831340470972654973427801197957305702118389196764201234\",\"10797214031176637331548913619290319717421647075654292426060142899667712643645\",\"20266505160722155857400327616356525420390455157816507174414951556210987699379\",\"7334321252908604221414760157976614406615685089087986432934539283759377273020\",\"5466545479446027900658895516546829295206846408972453436769721487258672334202\",\"200776348531463206499664472393888909811866496352229309075005149364960178545\",\"4840602200577135389642045228873381213930983180745647428583485842537919784636\",\"11379969652957860687040046838011510648175529973571365593115472957792005365606\",\"3098207154699756519960763916415033880063786372798170169315868377825051225378\",\"2555278925702454117759519011644048795278104380834826512638114690100965793329\",\"2542009438156126368836251124888809776241680910959725380804928981286839898083\",\"8289635212874064574579204002375100236758637930427388846945131584683093169225\",\"1370217945087542993579438049107243917547650002316430413790116258772124099844\",\"226679906303516455605637271863542791145298456799088849473203771867153443856\",\"15595918309451253825061403686581049155467651800978661652944708398850211102201\",\"1106441626244845633225678031653920887534003190431675443242924428981778909156\",\"17196798450051109956666657934415932810110992666234410329179564409989606012046\",\"8278968204426307802548984402550234068330181754965697252611908524066149011789\",\"1351265062190421392880315603032348901026174662474954712814750352435124766088\",\"17645931515773580736104986958253728553547333005362292745426164231541724091501\",\"16765701482862073958220692540554970028314977464479013486313287285498396470282\",\"15713513157933267716323510525482900849831520738914236033495480193150594098411\",\"1681890759828470749655968574584606685798436752358292927265840951155425061083\",\"51464925505393810086106101962991000442548815750208703852284585844867345070\",\"15090494920012451033335513426107095919571607771857122601511580133334701850006\",\"7983357977192396768336589217025680610633335264869758041158416736920040041324\",\"9205716948824137662067166214609236070261503897356747663125715703711055962996\",\"10446756868874555301546237388440946201929231212355950156775904632724727254844\",\"15878866293813082823778285732811315863006631321205386643773288637118359981572\",\"1223862317482997310218787134698615779059967248014780619278373803562941080098\",\"1938829065085381912146033588006428172950687193233277705253190475628906976686\",\"20809978124454429842496169565322041563671796255157308121765808674512217097513\",\"4918283034180658404930761563226817224773828839541188713854692572111237009951\",\"360487467497640649685453353133636479493249339847990786148321637545090440392\",\"18885436544941560197758606160860663416808605084568023064698340337987775572838\",\"9358819477564778104019733393512654762355096658711883897385435695657694030890\",\"19924805831079498129407283176842559084799629688811450894793572724686029377884\",\"39777646883227546948360208762181734647363775828388705412545854655903488412\",\"7825600361020833844100952555698593557285078643187402485979546008499605983767\",\"6040152226925367134743374686278219489020047424488175466855000387627600996385\",\"870642586329415408021828419030397731250087170822098832354577414808617795396\",\"13703510473290825746789361674399681669155014701013802557338423418338932643509\",\"18121054627407515442600826181125675494731584047055611294875651393239019998436\",\"3814859073623623627697483778422277003503739399820959589100950417959139017134\",\"19155692498656405466944037672502924871651373255257389476263200371702845041675\",\"4558204005070382130835957747405478922117057285120954401930633162291187553392\",\"21144258236038672365132831067073728819839170655445629191292728770523943210885\",\"5926716649846346004327468529851731926488847569683810040652870039461656880560\",\"5521989353304332804600963042910273630389401262673747048525434629392315291044\",\"17613837373101326393450203696707179441356450323611751294144824539539732420447\",\"4788666034725142107432647225246669945693407067096126072156390013020458067930\",\"7403944972576107772949467559718352778711795737875726145721089724256610375786\",\"9693309491210751436843048028911387168426003632294571787298725533832525531369\",\"7036318912212708662180478846633806492540348079972581382446159024621546586443\",\"4451819063605175632288325048722461781035500005823772263905136993905826869093\",\"14379684585826425632882758519933860166671418736206196423334421224721600399750\",\"19006953631919671451757225968298131422959843098815670272294496037753315001441\",\"16692197767481045594633562349268281721846536771498133280110226179861661227289\",\"20410452074698262196546380264232533694099601913385241856354724716788564357048\",\"5869068141115261590066858813293566050719685604047338700856253936232113433271\",\"6804245919988381808818640723253597632902482635242462159972607072840211044089\",\"21816552969147045196665152685711832443222423152125241097868587941037304234016\",\"14796070505100974474022980187332806162019130885080694696747357903239940065290\",\"15160826421009149236403739696237399848543055161599654087829201042932440085739\",\"16057404621523997363641958090422776978536039867002259409434581713496137591917\",\"4204194872346805463926069932601046065839697311902426191469558354125010647675\",\"3686864601490825789846490438697697158075886095551829055199093802449222759655\",\"15302357056828881453413869355440596094231754775635928536880085086161849754494\",\"6618383157140813670472324195797255761237544736981866068698022822680031200\",\"12976749351271004873763083232543845319199915437258228751246185107977703627854\",\"20563332740782286573695847989697780598489250904945587140699874170759106634964\",\"7717004101387966317212045112068340518852425154288492161596773896794241709489\",\"2890637990463646501954168982088287743777814016033851210449300739636453905281\",\"21567578015090085203256122194791395726487363250572936989837481308217776265920\",\"10524456043506349620221802692936958423543166117117821264265492702865112188047\",\"12819990824684462604948468150679767124176559307618252498646163598369301270638\",\"10049993003790619377819352529504071334832589337784876544091053083472884508430\",\"9144064348138668759604063508663522609106401149769803103108974266235908100543\",\"11702049631723290433194906933160703914827179609509625721249457044499801528320\",\"15373750706713396447629852981445081701334277272290114060178497342095400124005\",\"14362833080312527436727051561896187750197712749613254292876037160638230329835\",\"12354772445164377659458721586694840234344151194483433716764422300670097003787\",\"1654223564508261150179527909803719772110283994492807180409025940235376927273\",\"11801117833946804448836726826603912755487321481098278492538894045907716060187\",\"10273162063238318173530103332933450802418301863324016702373711441638106126874\",\"19720192432187013362090749539273433334821454315103629655447895131614679487455\",\"727048228960221361259609296291868937143910669367158178628897528294698776678\",\"1946910484451835772985916741421900075159946168088747355187762571371848621708\",\"109145652577607848216229066548685468278540353468429252646964996401711271309\",\"11636517175259568684395688549441234062874502735662249981732334836622198894577\",\"3514336290194573829811581859820214600076588221401774676628979980364936405491\",\"17418711332239612410247283500801588564397860826764503675515688335893340201117\",\"16608499283100518632275098532113155606956085314464442086890110532663852519186\",\"7011092063333459103613647711899729796768046910621970613048368675527584800272\",\"12979433153733133911342139730003466215483039151792853942917097413724909325515\",\"20545540415103743072600529359258365811707941123211722265541257167993273251665\",\"20514514950671333480332337178358939622436417357497846493979772027734279981175\",\"19420973428429680859209227516817694609437857142310584187880624742423442053762\",\"3266199360364477458222201283364385997669880336091460912907212715414200676229\",\"17665778848957296821775446035229530607531526016278899239870163408274986240452\",\"3034196459457292828380964407793881711566973905847751433785354340926493468629\",\"19240335331019828704371009272269230045432451856134801597449673864628409306759\",\"11885937823941723698977829829762560814006579202831662583430758914508665605992\",\"20748079365575583171419483717744467004095403478465425919193522727080823467829\",\"4049685423635337287182361443257230012105137157522706895639589580067335861938\",\"5238393342369515785576456692046670765231605670320688912385399698787885608577\",\"9955092966824224162451003198878021280195772837735075850715770053839643712069\",\"14688505293765234656634638519762347662607697304695615277621765532733730188419\",\"19667655515330057374736272316212309311700068115288105502070719518225038697356\",\"6526339539137420085994871834034432408534008015900897508573173828308491721640\",\"6451214596968580075755938100320763595865038174472868511789683341490536335313\",\"21298385519391832823696743051703479008661792779266553521653427507311508632836\",\"18147689037090145990270207042653329396930196519665328383906535662424661663312\",\"4843060932358341223960753138686790622946636417021734254270880124762543766044\",\"9777393135017030416045479171540375064902540733249597905194558225086244517476\",\"15612939018253820863919073630818143764727417891653104922877539008381225432149\",\"14697709443688059058245115178846988913933691795638492876817631423516791836488\",\"18685431823164660497414628030768265470745209188969922795972118254060721448517\",\"17686833596648613678202225512342514492314737558670009322348834547575331500110\",\"7882715644205900432071501600304213269920517951747748280514662954153299343267\",\"483370642047218553378805283037899078321245336881795759789080079097990022631\",\"4214767752701198707531348978678949850289665750125091916638917779439038899570\",\"17739787271860123878318706336116258359583326294444533536841630015270251927525\",\"9526928971976737145118681821939318616765549581927950584830945326579348627425\",\"8935840337753947646624064880223972405020262631854843060412509535755342868871\",\"4508113215648400797703453255618244900721881286549475159439856620284712264123\",\"12266821303743608411529804312522184719574222952438393806239381001090443229781\",\"262221458028899336643427987052317116855747374483717813382735888249369915880\",\"9481533275716105906863965310095912870781981488829966566437625772678116098160\",\"2590353724336937202067050709307578670703735714997584033570195549814509909643\",\"19028154962333320480304884676819386027270021828120972063367009986583898647119\",\"12035848107346557872832336310555339014430405222326955169086205148117093831178\",\"11812542992332662713110834209110903826741026903989329453451676812370580995155\",\"5873996603273556171811050516740060317168357114001546153466147991702053079584\",\"14576965459796679704673811354977210833443362034655100725998198458196744282688\",\"10316512096752239588802233905510931291856770155274915632005094238062775660119\",\"10264648906996140128331833716848017549048252370059901124476087491340055514298\",\"8880383828179094945950450708381958610513170383481335197440031062766174220013\",\"14242862377965208077513387865862320912325974322076434437422549287520747895997\",\"18637115439392135168308579660486779125138315088129349989293712098599532807271\",\"3005137668240345183791453080908803277765013412659274486705869851649537674907\",\"20645749529991907965849981811309936839991467513255938187911379321548206967203\",\"12378054617199633894620216371153764612815542386071834543053247957483890255946\",\"3646226531747432346103241852810113354961867068559217651053045111341227985795\",\"14759549922639010114255549224580415703599125393161055746989171853271812414827\",\"18269217181089743825176838874281294058155416989983010692102912626063220363761\",\"7910495326528154641309254900636237502515509481205622818959547679087135539847\",\"17670251047080249942299307088018854109647989033189303163676383339735819642494\",\"15374030748956904449129818979816621319335620970903154421269975277151944868016\",\"16734434744484582489689543688796631956933626930053400361893179117399802151977\",\"6088097808527122434004249518680202313580640436515299135161563135919653281636\",\"11044355129559058730645356524863358412993823390313206625679909891050726548236\",\"17977103943483746771914575051008459826627122037525326999044945849462225183385\",\"3605948238280820819990757979211114856518246202528686994219126029897398085990\",\"18914357373568077496725421383674819908401258893741340280679658299418211065095\",\"19504893016205201415909900288479564477076629861756605608382781965092678517873\",\"21184282159750064102910078759238797053568266928814516373825788799767235957220\",\"5798496339815399889027780359565163087691841562530534153512150971901561632925\",\"7407367628372014591944010536792581531688850332787298964878278556668869516109\",\"6620723768780575849792210538209551484096254444581903248515408399017039944771\",\"11077695872453120160098690112089225857745942432343936352812164913044115740604\",\"12238100917097533002760656332988829005928917705521133971984340015295175191072\",\"875236409460041887888286451548481041645658353252056281378432165873168950289\",\"11648303774130646880250983590325137351169470278616544553747085949049189672938\",\"10731253232847751598970028846721065790493043959574349490977925950658023615795\",\"14382670405940824386833816683144888337215790494297818793130390281307128565676\",\"3653568436311690555866124641405725679284269675088980983138646828643696506925\",\"17395317633901186783477101667898735025173635227228839813132997062388212194616\",\"15099755867414631089461479944474272522593177975448562561565835967907545474910\",\"7907462608010515180262819733796800263041642254661953969577561832322932091253\",\"17678758973052293743075114022998172472167054025307585311372687509635525971832\",\"9110137365842963725170139156220709201595936735752253375241312884619979585370\",\"19552476197566641459746895655164048489681225859095783005179526667407341540173\",\"6655481470012317533819550396951139237175281745277680726638562854802283008611\",\"12316381394943604959492378602823071426795240169206165599927428287094436192618\",\"11034373451188850099143075356981929859865984550698326533614083496294370888406\",\"13027874823621935014586365687137893289028895238772538901449705049128967038304\",\"2660056500907409335405246064478226527929559066369311083087276521530017061191\",\"16374436815337052823703076935151574934030480901671916186936659906582892825607\",\"20206957428811575575611584481132511825273020541925625920768070930882856579172\",\"21354949550970746587670034450849404988868504183984610420341862741188502938265\",\"67413478685613301018157058700598981872361106521077757994234011600616139244\",\"15192094429072653266379488265394692074013097680677914051580947969593595191097\",\"13025002774505654148499026922502049982892215740788550515043394154751297975722\",\"6657534813195475546084613963967285802274975962885721281343185565896941716915\",\"17723716874769252700302230541714578705836657411450206186074955734534157919312\",\"17253490901095298849824425514901504786443385217811054873942497533053487669027\",\"16922900445425377303544373649381054068993830000681719776010255737658294939845\",\"14618957541854923553448466992840192881608145525028106746152213908293219432332\",\"14344587571592542133209254096718666377739773898390917076855833527631944233947\",\"3398398247632812315523173363480488198342690848206761727012792502509809891214\",\"8116685899493778372765675332656328105508285610857993788991877604574035594277\",\"6869127364629955573589383686756729293712173044144179650147117231130247697440\",\"8482840334675290244909043912147352126288825284639284454752003592877819718809\",\"20392443505357021785451596916047413504191698580920337000986381033167409535776\",\"16439574087125698599652724183383453411991058783692929492048867272957817092624\",\"426979905422387556220006321176616367297573955579134653955469511756806197322\",\"84044454779936330756678696183108064193207143432005546383618997862541424618\",\"13540746790658328634245297650915088761762278290659796689107388264293452983696\",\"2756410127534441995580077129628491724461331569473668046029374603276406181642\",\"19152279897235838389237053555508890447555171923304371080451590473930970583015\",\"4810143165272535810848639940580637312240797459551046008543613130820610493515\",\"18150820481249486019385147882323035601184425180143230039956749224075249537600\",\"1059808061055324345164261962951244307590662613600037567981218138436147450159\",\"9459817473838302265697832156425404472835938613970961217599447752423754731286\",\"16095606355714314058045626988150790126092029683739311388605991500689308524619\",\"9727099478088534181124635614521684019735088037315725257407342125168159380849\",\"20561971450112380041051801680290082047696805919158536294166574450780215271851\",\"14856260940282734597316470805561580229372980351891093421382771276458392143734\",\"14513974699892011662250077332450990022508721399214084941403586413829014625355\",\"18008212597509917096668060159914462947792286351959302523193703356039192666509\",\"8546093131028306568998798761356673471005500698629722043217047910415953781636\",\"3133230800556149149152939901352436911150212052482064202682625043697199561375\",\"16983239224351878411068769717250066426897169014702779017727330086257110206956\",\"11110278249959306744241051203566566215550735787546020012057331225240085992934\",\"16262696174856581625866660060068827617765979152566177012242773568245465151627\",\"12578907642126448054556118826643731801554662360067463011543991057749475372561\",\"17013692272042952512709215918588129014248992662975053218304174885059400479314\",\"2422212018849455990358772112215953794722910754898395170069809576557617834674\",\"709271023964657282936236190091127945994297780129960523974424083862403523577\",\"21410959444102628159102008688462629589440368317043309364747574336556449119951\",\"21559173918934999584379705090024002629436594211472560044283687223770777228329\",\"6204989013045466367048993926393518531430205365537578797078401014789639295880\",\"19696784690910754106155615171177458124912577271099077141368425045157964769739\",\"13245695764147259968304428984578377733138126334274711024833441076338685784425\",\"6365655878304865747882542885588518306848575580387390483534116155757954711183\",\"5826431952660333754429712443770933846440787651418380842155477173315454960840\",\"3703422599602057452873949777960467563900584837956800447846757393556903600083\",\"14954956325990589449881682154947326911290456842522733927749579600774126067358\",\"15179080236802732114736711048808330603819446388651070516930599152680513464782\",\"11805349818150371593511439563685384138369975062385658059278496941354174970558\",\"9651288106129128563311631588038004724593294975778048421446807829930650986161\",\"21760263334776457736073831231113044863791789659986521299394911320950440260673\",\"6907233955157203407156869682480585459384177337541426814240734600649579718276\",\"9903916041089037923298863620308399555498694718001764615091839581232825071799\",\"4836358302554906904513659564610324433322390003433877730827563810239242681649\",\"21676284556284259555477186800366366384786817900947602595433561453770258833262\",\"10391300138866766499321700192173476461299691572161778277942372441853614533106\",\"536587107892597726864935028319498853358543027728722918369566127523064827285\",\"1578575194991188362806860268300974988061190676823070970727122039837428888894\",\"3041780664964429822223604007046154392235904373926706550878312582848859856998\",\"5136896845596076977135012787946292774133020528654347704063032894335585022116\",\"21052979429306740532104917861651393786921409909564191990750767574188713677867\",\"1097058137715732031007766086883942431551984771217103649788817565616983302189\",\"21272628070620009861202583163919696175984312254331674346123725823040623607079\",\"16378476394522224235957492357291060395108269245977581755963905078349240116701\",\"17693155235477545703491786204934830898729725054123088197784070401872933430816\",\"15731308595546544819758651658781791265113928137179278959498952128943216295859\",\"7530842854450422511116939321947786891558898604833012793593290887235410236462\",\"404975156514996026770206536260436548881724966447689396669192639262025285570\",\"5341097521503410551282756109672645311840826118117863925825110671406455918923\",\"15884742160336704419922970884556060584019966404790579940531780865384424227289\",\"16929215434194234475302187878192359956501557541564936914794902600001884758914\",\"7492122971866044838318572731806064484883554460089382726099469360928581360728\",\"6700702586178642739231758718782433867470456232465580859522147968949924784875\",\"6297151683826381517004502658274152253370283873200413423956415843848358501810\",\"9051098685924067475680250891220976353358050325232619857433342076585432506939\",\"9960063926281826481722567250122902715643911687048399469013137297060544712757\",\"20205376197099044701918434633943080210860311844221360953707480271709904924081\",\"2543717003139796132619165397560252560854088506999796791094850151466159804660\",\"13042920986756507485853165216118435873225574681592749502938371866202986604950\",\"20848330505245681377942201126578758328094807890409920377882331316834809001767\",\"19581757717730519849666380874815773972394967074680863461040459328974760657887\",\"11277751109659037290709908190451475956852255973638140313335585315044824749432\",\"19987785756452607247082436881672024515070931417655879535559962179125179739576\",\"10379463777630879089948927655380821806375178975241728632310432601087513786157\",\"17532662843172504270932315765223539642925875278519695948693743660609055641700\",\"4047591761288506566015130784406901936071223780093632607554518705953986502444\",\"14914780196866017218773842756360070430660889650204913126972886704029096036627\",\"3665335396372500085397703923707262369399532010508796477551162974227802018837\",\"5486243895207568211513278338143779383542106096614607786761922166427880303635\",\"18315760378731420967085921294192667389845162610466508465622407006084763933610\",\"7652088168334511718728143257805201600869450130616105678684504422537904827633\",\"11796391019448484082152104711058401273780367541076592557570852278109445872477\",\"13379408558285256524953064034114552434076294331434492499487938269162871295380\",\"2297160223322998510051224366640611721019695513360388591193559444324049184361\",\"11304533964822659726529686226327426445177912292041983714876081682450613049161\",\"9557392893415370060517226083043164708593908504401762706183393453443840190815\",\"3785030756631142741127343162456300778275269245326976147637223883933311949288\",\"17305188798400742551317958069415159652760470562522104790935966708432912387201\",\"12870468338153575723621770509628286722701280628235401304489165480692619129635\",\"14456688836715378588954614429554186252457607537234043304293406142681628816143\",\"8722366555458922739518832060679435112264686493437511966863405317145810507853\",\"17035733041457910598702435138375064923384505831780114858502801881159639543075\",\"21808049797483227476094206723244312086071069127528584593053050570360521357801\",\"17704040016671994632648894777831701322063660288505443513137503325727685153320\",\"13876586410154795144040290215403416520896098184297294965775133687113354901562\",\"19981536753243701544545851573411752544841929257367068036587115636372336629496\",\"7890609702492549905355522582297028694737989297191505444026926324491246101857\",\"18848294738278337484685971706657977324805300878273146618533014940737014681638\",\"14101025631948592391522296217984794678228517297963952203835069088839783819178\",\"18595577917416393431846949548962407678582073821314827857177324924723777055088\",\"7467858085651774120826950772302956503559398789324215879697175741734643697622\",\"18979854935287033559610174595517967125913513320033874826195481203926891446716\",\"10963569742096847974877354056643851056637398397995399648305934953455500209465\",\"4490062325521753895843740598860241783319009858808672123970845042264142639663\",\"12083198550991257025127959119671989584005085552387783576120954521550395244804\",\"8989924840144107639087434157692510415155339819536965230009216140340615167614\",\"18938116911591276453818271042800071480914558009368064925513361569211446706478\",\"8920165300758764368290061059068066213232006901298108485478375720472104331353\",\"16591861075421264756938294264737603461724591079478764124216123178867394181444\",\"7583472685078034356864813080537148751395698334601727973198338673022440655320\",\"7242871747683663557665458681524585530364238913174341137238026401140660398729\",\"3598562286799604013223022395064167858716722723314318978325414000089492272201\",\"8622245536877425207417602124322162298358474051572644956168914657332509360790\",\"16690953547789899936369188387903678406279744724671441605618734413480745718368\",\"13276841967321216511771603973684645559881109979053629010218089423335059729066\",\"275065924571163907459899334463012892879284349581659981069143488705714476367\",\"10010373926932432195262314681478589834844410764621223023262503598849791896503\",\"17758242930596075318219288604155820005213655714295455976304797904160012440619\",\"15905553940206639109821109394632358684875946632326178427355025237964193136459\",\"10699676471596134795777802498518480434296030916298305905755213580391599591212\",\"18035190644758348881957398022724876992434268240903362755280914880548144262995\",\"15065235662968574093553944382569978252758476005256247597008073901209339624767\",\"2821508567320225655804275148607593143128714361103437898620936533366879432198\",\"20038902796571348250150338644957970274453167862796254447303710744587788485591\",\"1884662833464073024829799757131441287629945893549771629736683877421023084121\",\"10743566605614103387995848196369649488636244994948464478187768937669999789068\",\"13122662180269375816477735544381076550422888833575775306311655955334384012625\",\"8843540419965867660865861350528661015549357075577825489418614167061332959567\",\"16490240195342918523284415384495139960016862294910452223763096136520605658998\",\"11902189100881075351580014371989575813037528647866657389163876833834266784692\",\"9826538920403595271003548532755173003267713322016730392474694259748619675234\",\"71251595442584554214078150483515747679113933933084362515648325961494748246\",\"17185855471161471066953802692395699956168886891494189546413157337699793224525\",\"19387647401037795211932948613857149764334786484269581899945575672021884395424\",\"5543851192440771148552033769826947349538379675994249718843750646646771716618\",\"4980528655489680865755192847068640673760124303895528899279894497190752532239\",\"3600780158657116780756513399984112942726753306113906440669946264878473629825\",\"7067863315104693415041924691967233741378412667113102984625686628725594435229\",\"9462516684130493090842052919011899132379766400706777803769715272491647287370\",\"2081859596824334687143159866066082173474618294833665637001675608778560443781\",\"743931637728823087549752972025269277296436518254275197547867241870207493489\",\"12193029072355787559239305705330790365275339812225779212407970061512815178457\",\"1705720373462866657373899088573102980828358197364286472935546943516685877783\",\"2625215932915282028888345948424937846485658111628229408359199164052224260255\",\"1724474308155668434293701897700073109644721272115032267090067168885343789541\",\"15309585331816879142904659201307873662238255705713891587678791203110586845624\",\"6927347968177596105193899207541740822717928917284987389309181944460894403715\",\"8349614732481116319463754999270287503617033081784712878739172007625557301493\",\"16948255904262139824653525679271935374717145825573439877598303824869885491727\",\"2090105154259612686948732141479265379527414219627684152201859934186639171746\",\"16406882646817857747781872873375480450474651804422787766936336977472093759658\",\"2618266836341782832240195111243483253778529173231477932181777686830566809220\",\"18584423576524357751019233779143442308241899873971279956336890252406824602793\",\"17443342633972364906481045686787741429650643707663087237050517933297870625161\",\"20966940978481734034445375650076804474657510054986997183158142297747866344637\",\"8368122510644566811171267694864033568002371833690760593008452008976318445477\",\"5951208809751111695703247856605752400892346258499095203984289856921250318965\",\"10667841337069133486614427757996324401207976379879021506386127523783624081305\",\"15196210587926532728764913693457072768468531001623414142760275011945826362333\",\"1486867000427068945771986473039130903060038022812068372918762195224095509706\",\"11802225412124457230779098453173955169986971011302545269503457419316431222794\",\"19006532796524137307427756017166493176867503025740844487987955953888670501223\",\"8170527960627944648986415004583007886866286866716966277993742729430418720593\",\"1436457230687745487487992422466594504385470810772426824768602971363652179887\",\"19940939953391826968833853949053756069562116881711923430965107415858021544621\",\"21390709689063271327814709758118656467994486121192004346897552463905523085033\",\"6574387941675367401242881031016559833538569112812665324796005157415923309342\",\"11756038129059989556239624384396977179627421398026061837287599906784461085740\",\"8016796184443441769902578436118926911065066691634452102326104916238265146620\",\"9207862996727844023153671037777129970877135565640497029561700478058264583174\",\"1100219274324403415647537045100134744871173972454438605123733121940268846636\",\"10939369979565393406638603262346184787511459479117658606424769014219087759021\",\"14300907374718292304172070034419217071424100538972401612968591008645298192006\",\"333932899477295188454870364214752607373257794960596639417791631915277398142\",\"5355588887061793880802971159716547383818362717765210087272793828254121514206\",\"1790384112597055841755935406370859839464928559184340290654349622516985227750\",\"11198429336747740708808386516699939761142796048741061758171327543256047280968\",\"6036249889698589433579593127779181126352087911247674200533019552471272193224\",\"14800301173665094359819961505736096356794556410804532444199022658724268632089\",\"20412029786442886852155665566579755674208038777431774445754906816057679775348\",\"10896432335623444100797669862121463136872067217057170301889030903211463165490\",\"20187451962338850792096451901499570648488409414040553917720285295676535136839\",\"13529624735114646812322618206388663738032357644945372149609050218596975056256\",\"3592024137908521748137010802499490637601801709474844002484984758929322547856\",\"14318294932187374214029272582003949756117895525056747163633065806553077486483\",\"6109459050616891409967202866565599962413601685985031714888454188846331144829\",\"8737378691018982258347311396573408656269057103024762460261631671201127556008\",\"2866382754444063454626258198081431083552769984852243458257929759711505198611\",\"13657412066507643657576299275168752212470702248537178654069211455848350684250\",\"20558458487264092798604803094780203745284195577118872841976487433013154500900\",\"18235936493448970246334767705753077022914281065551140721317223210821605384512\",\"1739902416004517815038539655891551128369530247559474111441778492997847200786\",\"14836387122299451512595293617087848097498473861382331595056042730428209579981\",\"16630832829283077437715721563055853549908517877094500005800897920325996397291\",\"6830484992653901667820039299592232444546058649905199291309177621378505667264\",\"12151694771955403590678593777746275552133799308335658798889668570245158339203\",\"12095666954811848733394198368068067120433656529054587562291267796721415823467\",\"21299464021121922289471568571395202026417703560519303174353279228599888864507\",\"1284785260007635040300654224263987865206838967033221917323024183468694463214\",\"11190689084782262963064131672594270170439072919734090668341911534350004723813\",\"2135417604730509045400917266107793571178857938875396170908340471806405831774\",\"17709589679291539790724106240929767549174986803440767349196275794472268599484\",\"2311013405766873840500064468506106671935694645196492473536894730449862134127\",\"2147872523241665099834960881144729609923446397399228113179434410573562020402\",\"20461926025084649920330494063087063284083985490060017491171853511042658620589\",\"4536627649222570810903666614905523039719777324512920467759853069979838550012\",\"8082801548229282492379348632344417180086130946828353519238690355844134304258\",\"21280397819957790995312699915258507113119935698675565680384229467053502654337\",\"20228312207139401267896419406233882961644416467400947232702399799011315652090\",\"3132769974078430088285003133388906750362865042387896958498848899254093245076\",\"13449532516327989378129272869066507005174411146500232595617429581376019178256\",\"16693406961621633717817457560174378281196756538546593226548754909360720057900\",\"1410163939258922423904881706337944746443155075329159910875662729361786404151\",\"13317335505779946291527666785197333493818832869820674204958416521904148752312\",\"10080441158021418028192071008873187025468423620781801146937912508773991314123\",\"8778763506510732005249561217986947446990395681657059247738548277066137483637\",\"19866156058486362287380836046424356866595521683590124463753347450214651613557\",\"6099599651080157665194328692826105590907140987727234488875044559141979950631\",\"12103854299720159466710655158369725586849656441049535534944547005408411653351\",\"6056250777474790385236471424623403385815971393086850014978595908108530107691\",\"13332463145934626229937004123615862756039050667494081719511508592846314239381\",\"15569650358226398191295465865768765071334529431503976179554743110749180863564\",\"9967804285216635086937557749179542819704861071273562040424599154753190658151\",\"11892975896908044860634028905822746019199489613281435617327177479190551801490\",\"2347624604008547971897888845836952627273846523467166705515337191392723942790\",\"18696987089928827568891818772452892944046233272857295717059802194893830085632\",\"18748086167510648479426417475438843148425103701110920020579081912896821597665\",\"8622240712636780428724658222742727465152858733431931361986650749058841612932\",\"16656346416891867208037140414270571162832334512966128965670879696290012081473\",\"268512970311057727942724069225403218477438422897645677980823022378301432540\",\"18190647718975003242422388386017088795681546504431947443526604486724468687607\",\"11838832753045405204750043990558554187749623614069558564773792398990477628520\",\"9464934381134085152971818606204176194860800728133103116444247623978503895705\",\"6506889954459308603054171097397841017571893891902643953475605640050265966150\",\"4902915336088494756131595448310113933435156894934385079827118283274301520231\",\"2499597876602527059973362587832304947785692147486232964988391917806132099963\",\"6987866854856682612598958465493745430617865011585309257776951257128732440033\",\"1990385095913340798232064795955190694880167518668997342360371176613466709045\",\"10773652624321265366352476275813437384202975604133168494985774035316914202180\",\"17957208936813992530679473144234209662853219309810670970314357779476825526039\",\"16133794280866377366857190855410131185007238914255854299379216997181067915372\",\"11262542972773859562615810943478674162604936411590211733946965801502750601721\",\"6876696686871725740768311478592189712287113894823242237149324075109592323256\",\"17449392208179892665785495059971867675212855159379173642344270820496709845238\",\"7281527188055581259452191919798152206006284955524135240059409348829412135187\",\"2831145416176102013172564582106352385393236972577596311907566411556566483849\"],[\"9080047542124276391360279650106072738388651350565854896881071591102512407557\",\"5276122158090580342929721224953092862639544059036613936304023853693473232114\",\"10764371146952844418468525092821434325003719900457631107861386404564954075698\",\"19403198022970738562228686595229575533374690683982633296667458544181107273648\",\"7617780693471260765302765064053145041702624896098783992782122460859872779857\",\"19979279031178601432043876080294781392310841361191452639938339527943213121261\",\"14821572925534450445825511881469335494637184460935123237295240163884542885098\",\"11938126045666388058085030428188372703308486544944167716672008972057921153956\",\"12529139823092514752454237398207131748671811208004531820830982339024587734476\",\"14226827104698268390647661365553762395294420055803153385976438166858326325567\",\"17691309138765014642404252178990756749736524777834230759817554916134018608982\",\"13049138009833647532081623757740045507746031983984660912351834975636759362733\",\"718136294269898177733253423391272862596179632754770660557163040295989458575\",\"20583826393485945145778224257309417274672706294471454637508785698845076256021\",\"12519859054375782307240475803437267694765197207860138937353813057252594235294\",\"616358304405321436682146069191889773092526543505025820285937653073108856198\",\"19027499347471164729264506367402561179736141269147953955354430439835206923441\",\"8802840947326495903608735666852390017514130877225065382739027003114034586102\",\"737487820908130860666560734994205728879111378541341508487808080272969589667\",\"16886957522779443547232948301887673970753661645603822969064575019364431057213\",\"10217718718127051448998349927469142542726883049384364046785069492493621561850\",\"7810106773139555296639866448367265069838919713599596633936553113156050629242\",\"1086283628451741419332540504588469509520700909468394471508656118122901918070\",\"21227550367622709891576712614646065093035846623780880269720862725564093946239\",\"2652301174035581116868286528685726695816665676165731874901337961607686925229\",\"15347888658346178085958949919092380565651594421789610674173853004306989430036\",\"3386990753823914179722166076442315845390068563186359286817453069617356694952\",\"7300187113522015908753835591892195110283914583161733102197793350861445311401\",\"1597030276140912858366849900717933399299890060190015643693235482590237837158\",\"21027805133716353460969735553880453493869975427157127625016893112019698789431\",\"752966488264965183883835444182870215652541469697618947650955590272373479387\",\"3383475132377075154085287537078615756046151130643223456666831304932272749452\",\"9915290148503750884401280920013209377038354769441127582654712712529482042918\",\"16804769620569342794352016768800598904954850398336283274708971580634322503740\",\"19847086165130950361698298011135799659743068608904725147957775211892272823671\",\"814989649098774280189344211035118977616736822054178900995595618815192296768\",\"13345629169484139874427336660830489795154915144620635844076787809462791645305\",\"5835655389969013483167198666935720680066116264279752864629539742724628221744\",\"10618730136791932753078251600199451075617798416347974063129018356147306179490\",\"4983185300497564670869460530634660078752157358832810873382026317112092352786\",\"15359443383252355175214324094433086505017165263146924886559669806328263861964\",\"4610578472698755945418742731210620316262766472622923772387926870671641422306\",\"13017734149286688552434901529383567489245440242201484783876432425496757765879\",\"4371540920590768707894841594408594206178540062890629339089144297410880088583\",\"20848477491240533170597229309351062936244795667938724517194415434423973819353\",\"2607803571839181461136655192982588018927424309587203845134908711111617712015\",\"212819579203703258269474813759117759498572796913679128490037181673558581426\",\"14622217693328788088115719247888608646474258446259422182136710631271749604303\",\"16966080255141520815070974909966240929925066047538561527533977172657165549037\",\"12611282158550470806392698282621140974912257965885594305567359455027041196249\",\"15162523420701791469199118246491478211567665653295604522943764463701581648788\",\"13352413286019233384408117985326621823966404249919757351397387409822137798619\",\"18431215803317726838156928669149721126058095352132952651345062851718702488105\",\"9009979116741845411475442619914004162601992262158250211299337358800016959191\",\"3799715926223590088547722430963223806105292348642334865841428564076749579261\",\"13364516898673021789293235026151298982950472354814295289699091685730366990358\",\"1361783838886995747715089163923783397165102895929664173036632284133822829151\",\"14406650581846280662703920104342420204182391817667599961161109441659458227257\",\"2229398519216059313521287188719725028284521943590001252062806837489792411351\",\"19932156041756564632126996611584176773390684535350710299759489083914243129751\",\"11217309830419319070900412445782453650935833539033044198732006886348798362573\",\"10975287981080294002544975254080760229753703525615189105584910965586345780703\",\"12615160249508951003352547360010413974437420896756309260003221458317501052773\",\"15006519892249937139923430658401874386418962681926266028409154212105236857266\",\"17198703848868253199805054110184876584850091183820598879095826898067929701908\",\"4024567968862144197503562461147603630290904912156605654805753234372300364772\",\"2777530901028829687798732783543421908149385208980103396135459593356272537514\",\"13470249775261391274355246846702972363436381999378532925356900370750847444243\",\"2974906271299505244227729868075710025679975735248841485652887791721257359008\",\"3749929161543958533997958310700362727580589416646383626640376726686968969533\",\"10385542344141606719057295774808822528557128917637818873901483412172301584296\",\"3442985045124097783764636957103161103224802611428357560573286747812812851904\",\"7502400800206542824819861615777653655350097540443177251068604083363607409656\",\"10612861041731507818793903946429986474891757619718927178692491813408124791822\",\"11914696148204715326968428513169716275723634190228715066249378728409495671973\",\"2170667345551848492442454557154826057463422725373027702546972322258159303488\",\"18981667127864758975587693096501243346303259886744547448066016714559613812697\",\"16626005925016431383050853388115060231470511697497018470460717490709009917085\",\"15501584058764626703534597892923613202049259468980747892136199418093766513217\",\"15730789668645271086835931591643029787658934414980608801745117155328673159230\",\"19011170135369086814334987548513509387732818991120874272142603371578122705090\",\"18981593814502542380985171335239725714827710300611719704760361645239921027840\",\"8204671237874363270501474306459706683218739756431944927040817184973852892994\",\"9220931966223704467465240665019209015574159162539720002892899799004151240654\",\"12023731358604880493394717785613916381030425054491372874201648297309307390452\",\"5287478971239585017567711151120234071872851405192957839458996739148117581550\",\"7418839708474467584604814025607890788164448435201128932868749916339427975677\",\"3062186026437989239131743898577595617816904165764940830343246151064166767690\",\"10691472075176539345385088830769338229533818604441570368437466658619478856368\",\"776256961572697563464153992672499846766902384183000731255258718350966125569\",\"570527266847026985911176401170721887757336104290012774865357778914518334921\",\"8294506346453050969437044318969940244715623710647646522290424852679064146867\",\"14720561218697983627826983205512864293548537917322444818780795758808187920231\",\"8816148157217674796628422559150428280275982139196916472216866423230124632222\",\"19914020608360863681341965050837561610363294962912777662812602754981148121889\",\"10979648052719506515019734532727026573709841158197636345119784698107986171868\",\"4748188852666806976674079353770920169176082809034591193830414711389245596202\",\"1872007258264364368639217088656766551036585115764185452288944725844623428761\",\"20647905618416040710043772155483282866585966791356860567773758238824698660736\",\"9266268716488163642807450040401857508691160879860491628463220567124631852192\",\"18366624887134931009605601036305260857274295406239889162172679999341095279086\",\"19144111549553556088659314653667399657450471208349774177519031662793572155271\",\"11267057724338184555975813713389282241914733212542668605897837961973142146429\",\"380317276233874228843676126130081263826760302203865022221220637268010484511\",\"10390874850814064888453072102532558102715715986969880821559099688458166009374\",\"6378139242305405164153786590691483142765905474633785591822613305836922118571\",\"21132907217679255386965446544413892931509064584710445900964897288181774759424\",\"2181285359483250871300808618800457704644644412112841398862375360570101690153\",\"14203565562768544349973154970476704265636426903671260165397643825283737884696\",\"7112029049860348672702348456200160359831447550377202896544198477314349753754\",\"13191196332506811105741511415737935630660361375521465461022001060399156220665\",\"14022276973565544584401585335290081448932574474382889621321500706626401098791\",\"7149077004616944641894855932249381706279362366526144399921583759655373601010\",\"10589037909332552945671084632720227569332001983653720432927254898236050625678\",\"1762629766551594156477226324782419668659295995777170895804947478836347289866\",\"20239859106851350826679544128924402144971454861781204214785100265635595938001\",\"1284220603607867375800034647998832987977368485754938663497614033129600846397\",\"12721555783902784505712823587484218493048678576055848963564548652240214248129\",\"8599148942425493687347603222125149426780293657928087218658226865807534292984\",\"17883925113874213730697756929024074743203103750764309334664977226680488405903\",\"7171768842528649631291700070442603227356919114652280988225781313819282740977\",\"14569810522744821180222567977052977070351123923847084494306063944696547627094\",\"10628471516457980502284656646092713853283333702166241908605724570441706741850\",\"16311339433343198808763657428372692752119311610262858597601862555736309072705\",\"1158594099984818229929742149189939009880243097148128722699205834955776817984\",\"21369691158453703185372282671777728233082349019382107729738613265073360029754\",\"9578658698422278466120285429122595695867058639905444900713256791127884134655\",\"4193957445441809846399321111198772433031669989659148910718585686245927708573\",\"3540627743672616616063692779026964698170829032366198679197971574678316041883\",\"4190018303744817064116691125102219568939683002147295750004816871826133417349\",\"5021719233648988665847264229951711502627651031563948566254925552939307116986\",\"16992783667911300791044729311927243203904044735592662222023006862349350627852\",\"17180216576050497849178662892910882367242533841807726084460997939959131614736\",\"5025509039107722606501798729030234602896173103755030123502069644861658727796\",\"21404076710532568922183982478219115863162032686177914044794213148034670176491\",\"13592665427931372265905934817755095910511743486993106895646868052310349000966\",\"15649826506020866669836312234783829811239881540339056115538094787162873110129\",\"5989105694819757440545190351993965718946909997022103298961904541255267903739\",\"15710047755755218440561237156793129298335333567469653630650446282080612614704\",\"18476898786020176426731203881629643308951698471725945401420681848767984011858\",\"8184840367353493178445240140405939626720476872078599529588766127842048220769\",\"4193960835832994525127288086467507665300579151146001919529945457027910462132\",\"17470572321510756831568633045973811098409274006900892154465284347726129567276\",\"5086401644256259897560225181103457465330778391882128130777838173144721687275\",\"3602848888292538002164349465518674978067806447602903878198517053716029974924\",\"20047972972015860141831774874460154413517205305951147041456139365370581026022\",\"4327770748205925291563805508301491204203015805402820190656193556089980182163\",\"5053507829369869646023105716494516880223934809779814830967653697213799893289\",\"21516153988151469504939732108641040382518184261078620313308441920974392777325\",\"20628135206988692324381228336228111706037245833189288481078956725624267506726\",\"15786245305567644431194857062369270424817519830218621267438630601226081459977\",\"20748809815556855279092402259476021286382378677158013708055695856953316917886\",\"17914648085111622806081215462221150909515950590861740260278018693945865268283\",\"12595742712079542821426440838223181382934372918318265004253307282426565136116\",\"7421110642658262001429425276532943625971655125703095065696697937360828433422\",\"11213587253057967257931523109189535932157398054691974326908121533991131473448\",\"21421262858168688341966639067122737140236961844675171402496172736876885855006\",\"17582544755029903422086455082509321573963401821860959162627924508588210041988\",\"1211181408987512555660992519887854090559450989191411371736050610008236829445\",\"13472728618337515763200558679804940517450772795492147567794450853335888332213\",\"12399325213820657348404614452623393205241082153615429302404496922438070550461\",\"15902157030139543362692914099440051439186217557477250187163988052221780870682\",\"13325864726900597147136515294547297122363287751498628253739322469592800720251\",\"10154253762690922929824926454774665004136883918647621978453407087166407637220\",\"4588035435457334999785390097297842120192407080930843119200024708466576414011\",\"3548842373019213111762251957672054882623263801759844242911740752367157496523\",\"16037190702854491008467840249557371384460208879186459834184089445813613947725\",\"11775899170025931720608903049483666273684061711341342363318825215727370009203\",\"21270363399167578581778243072556186107278215715958936915131218315785474251471\",\"7137648840133244712620470895424760766856506408403929297684503969222475898522\",\"21822537386041769891995905283994292734212770617170322114623151440857241243857\",\"912792982086860900570481250050416483807527290257944858707775396640820246891\",\"20988609522572014637586632624040520445852223256657719083353731577320203249080\",\"18955069623120549100639103463067562560667323099114258425336739370876512986570\",\"15978124520214679981704248876966401000037692954713503699149271151648477536475\",\"11099947595850545492653550065107257232161959822720660477734046543800823154089\",\"13754468007504135291973163005653827441668238116864379531201726364314287296425\",\"10791440050373518838225291896133374352555040502953092978913921635495138767649\",\"7575451772922186899856829917818715855035763349457390720077695432353710577102\",\"6054780183893323443122089718052968453360931731184314656373266336026697210550\",\"20224101051413053646743040983974984312870431929734077272788202485819195930511\",\"12143712923037158831734558231032064623590785014689695873815613701490686934055\",\"5147677147749798323347719781340229920403212002780203627463940417581700685420\",\"20085270501299353433900717680578569127457394138400353285596659431041588848797\",\"5860589965911082280607010833850495272201786117927335356475333617052789704342\",\"10519360500573008903498528819267706847408760693918739519551076657075618423428\",\"15171090170890022737423923360711840638189142501847062960727112934817211612691\",\"2674867750974291424870385050334777228676037955377134170349252922448270003498\",\"8781570344357516412458635161184318351908978630364709459578737221356357607927\",\"21153975840387723201480033102811947909369549270510340108663069720378506264411\",\"19781375072656430276769998344281666654535596514081591972774963373030669939481\",\"19267217672827854979188792621427040131155117351670903718468260606426226268313\",\"9609992621478667370718072875975048495983992350520473716630736261884131010430\",\"15740595216895443177612685774692631521490602025793139261266592376108811650013\",\"11689898704347837204267707430258169264615108559576837576203634382571817514296\",\"4920561585989429407698470281567222019025788559608717076999925764226466000976\",\"8297959532799043087500559897023151977947004813456399834204223834516068694128\",\"13240817296974646189042954995651549390657864246636591650921957574040474471324\",\"922769776656469428982125502656124014881753001350191980304958105305877834045\",\"20289568367991816578237252157547226896278825244477037490929526761390927311570\",\"7009512054021494430275179776943022314085307442297734416900196858393003231542\",\"13218908493746029195944009435022484764038960383012726521017102573316292914852\",\"20127116180416490783506885676023700587769472173674033646437641038735614278849\",\"9142682648518324465227411398850032251424403052135444453711724020927980945379\",\"4543981511937157490453307015073906099630853940737237192345175015792175684184\",\"9745324930403933982955083788431141653592087363629403905266108658580483870537\",\"20067192802894576334320373013063928533240535980955505576912908194451776285572\",\"1402904410604669678030314149191410033153771846753287764051785066143628926980\",\"14800393620418537771146667424112249799069071592430464371285869773351449014682\",\"10278271527102738699894165976508095172512134005121124488058897777627239860882\",\"6685669209393626984076784267518333106255031514940992468705214002608480967816\",\"11240912649716894161037867927422590816279895345726323101378594339559190039631\",\"1043190805238784537107692203192932842331550814305095263113433171242768740752\",\"4868433328900738599420319388182100684529601035719002385432777259532115800641\",\"8509711618044834280471518476774068170999049231330175647063669447759266442171\",\"15712202244060446950790130035177824602892850873021214112392927728198193018109\",\"6068653096290277283034097590010218286597904515154831791426097626383493887397\",\"5693173571226605773796630245331315716021941073774198332791355948365308767702\",\"1786196792056567112967530509711665988347521188694478457856145781074635708907\",\"864265129955073488758459287071084306526623423193446439189485147630270808058\",\"18469411747774234361986321526756684950752270085639473308911128477982684619378\",\"3655623425454859860308418371068442013301986449112151435879741514947918771218\",\"19766228717549742423328659535979384588511476698566329964429093291581862172225\",\"7591083604833307868278324245731462116125774710487632643076625127572952828131\",\"16150827912776112370352686731879818995956089008883332128171065617546431717230\",\"2826831921974077959315983004530823449459931138663213763654612670035179223627\",\"10563614635309062940003788343593761737852028334737786529411799634936709982236\",\"11394997581032427403371886957172525646073790923483724597870318745681069878745\",\"14886336332257716044771757300000140680798758673888017654546818082660830362601\",\"20143643628436621384266015546869992663592607840141523761506873105499878154977\",\"8093872979154723174067932326997218973549275315473244483217021662294755374492\",\"4890024538836574447494278313943556510896178303358761611017538223079588219335\",\"2569314751313095394338636832167184005708494084807195918775114823854142880579\",\"20463762475937602343642427257748123222074164679514377051728723361646249807169\",\"6912061026365901007203458721496160293834487946886055506820014075120326822705\",\"8057021297425089739686581639461631708439604202898776661967246298013837177826\",\"20407836009459539542104986293516814943200203357527374927053018757246799646657\",\"16338647801428993940438905357582359280457878638823198565287393000066980828531\",\"5263900285747077547688583077162449867699035859325537576884297601252624133971\",\"7038434191080950652961778454009515227714925710151415547237809383949009711827\",\"13511889798063839709261290538160471911522809592297434106897768935345699098026\",\"1157227913049381996503936234013138181631647372567253751395226916991410992491\",\"14376166068151518193586839588748579735855841731245653408127778749666415946491\",\"10334173955890858349065282254072114665502980471571706392716801853180823912645\",\"13327800276437296966126164104831636137608082364001901934777612127628877845408\",\"14173951264780388718203930079290002941441668187263662118993912654452307840244\",\"13961002934410980015605406031559130308379972690061812763104024431509356630978\",\"20808382895299974788646589014617751165894445812047578222894029574180186994231\",\"3501149777589280862113418597902043236777844117090342151748536304462708939142\",\"15578701974472442902513517340271935576491714231019327941486356681289301143643\",\"7421684540591098882914897472073539866288406936669895592859767140266434789264\",\"1344006006491492357617397662660803287213218798259192160486646212287626624936\",\"9761086090405558129004047655513283160451650153323813551974220235062645372087\",\"2349602782021305994164534196463609913263531465970567375546190833146088311489\",\"19124196449102105457598674886344107515982922887422505288524336629019829584026\",\"10803864133488414078634749178732405414841690212058132806026617645617039782919\",\"15486283580835841134341307505340640037698056226117419019204438900163388830955\",\"4273897040035847053563468123636733639703001850800846988850450632384182543506\",\"2877534438247488217273959344927446481042213079619366022101210595735826603613\",\"20954249556438951487670252013998612844873928125142130990813163650962733129820\",\"16104491390174870908980100554929133574444180153001019844075395915615687672938\",\"21778156846969574730191194965585411981148737276242369976356930971170092459605\",\"2910803464126858569767582790136902804845984708505042681958927356784568116346\",\"18062101881624698749018002005880546668989943410984286698882375874497314367651\",\"21135877573496995446356431633890398065271917136187500016866262804718724719354\",\"9876776367386347401181710863215493428897377830629138473595259586716738155969\",\"20182772649692324656763056681441785651590968642525089474912236271462708892812\",\"19491507455990796942300215612442841937347717641433714118931595151330352288415\",\"4791850202697271027207534529047665733852154030863691817566457990361979260986\",\"18097344710135266480715431991129425652796108629067448104651779228949936260236\",\"1382378546684557284234408343970532136023613317869992315894429874795548643982\",\"9312945535581260662772870346722525445050312083662825210773112586021505795076\",\"5470864680810226643751409900925448497016097759648633824348840141836173363200\",\"5836591847406039532628847014387772499675113065884256338107181272563950363506\",\"2186728416385522451496949175396979075271852920582378382145827372871443556239\",\"9962003905659192967422675703813537963743106209536182606290625420511829317005\",\"7115135163573703294435212844393119287326798770027746199460222691105506848695\",\"407982429276308630091088103481041102549703936823312261205643010019624347827\",\"19195728920925380445394981150950039849239129218873219312431904959123989520186\",\"18304653407684506223054246029572835028541393081398110160129944194839612778732\",\"3266901065835031108930313850857576662027676958579467636017743229370121974598\",\"5750620492340859791839980178976732777941632005647723982711814938720796072767\",\"13770560980836954720201269184443805170267378941799296891174550975074571500399\",\"3041562838495307188599914738931486831002908083736647078626277954464335850799\",\"19785642491270273603340614043092693860211842792664221145018080060938536291834\",\"11245393723401932545618893664036930017064505444774538258055504743963474515993\",\"14522930448902440612161198483802687183974915730617932908301055222776908809345\",\"6153042793337985129226529615699502741374852270750862564579969369538569098153\",\"18293280897857645240554677100926831178247880953492311598096235811265652001814\",\"6811642068009508354512831575380316238838960299496964695197323194236963590890\",\"16642578643700098178407660415303627486243251861680760622576853592175357908314\",\"17847984953094235656334678218316166456507627510302985199718695248693529515362\",\"15227368123802103388477117936778307740409679884626850937896411142820851225248\",\"3041183397530485105421360582206759887706824900677784449084233103978438872668\",\"928879036309217904112322244771386834234578755430204849619124239529005418677\",\"17722922001676468001672109116228556858584948985450056797152903961008513161339\",\"16104764081095673181755189638404572068941566240340268116227222519706346543962\",\"16945698960340075156964419441962294103605743604502654007356544890405690141404\",\"14852750462282885022133975424307712212890481425560254334182933496496489436102\",\"20006727604667176025109658597358239105756885016553951209140593162378555575371\",\"16993175982034767066177955084083577170750299454635525128337239117864115856469\",\"15627698479593115084230851671484822529401466363738798898018494699461786021646\",\"12802559713597367483734874309779613518842382004345626219845235320867081074965\",\"19331060506094288999135011171461147371751704853864161024373797129164651846421\",\"11481947944821001056839731944141543795914102970020391691308276075143193679622\",\"12495668619093421758325803244691198120891972533998411717038170579511189259796\",\"2630649615188262490467779061192027583717814367432987149431498033365181273937\",\"1059202354663499534426308229358183148823038435462396529400155620271051607367\",\"7088192795410672071940822111392048390174038478560324903355246953598053922472\",\"3802972948187415952783595012024868032067168157535106360486170223312772021856\",\"6637133945982532157773420860313885838783106116490691531124208209701816442667\",\"17125048256453245717664658238285967906109695282272401777661617031240187675218\",\"11058065288574277716407726465334936559209831146806624389657714283516156035904\",\"2210244367967283465594862994828820295915073318264688760113771142287163771275\",\"21481017292956984894791664188992668601859136565139289596044016678799648786080\",\"5604924435964879946633295054451013832699407147054859264748695411934653635150\",\"6862936229419051723105301527536875519570938814143480041340097360916607478365\",\"10638457638264338044014584136959255386048212223302595683314684455928172422904\",\"21253809334659577195400068928581934134099522764716668116113750338662197633418\",\"11605800058520320892331049187639494116416554859346819693405316581046839263197\",\"10468538802556900033257463740562643173232935214779663003280394453515057966322\",\"16536900893861631625998248235306684228088551964585283986043703137190436328350\",\"19677336267818939859560199898175326119910149525019507159182574802446897505999\",\"21141956657820067916576016937184063758663964120641612044442741349869215042119\",\"3407602384948360795465801838973415821435321466964665505463686630065980646508\",\"4296220370898144228004947782238333434805068001296089841853579008458602438562\",\"2505470306286886924403791238926836229530807645322402354503967468730578155281\",\"6520438316220583351625930985004135494802279134141310767134113308633209868583\",\"14600442970931362319641643161642924778075705935992415153728901383655417704657\",\"5242913836945020647241034596859316927355269931124121605331794187751321755886\",\"20123772800004945170334971668810829452634441426370818711630762629987326759\",\"10304498508617170354368268875585390295538438351103594550569700486705801354075\",\"16942040435867070253168736060291125738830914464484502845235220359652447981842\",\"8413139765475709781660394235559185162156324170757515335312868803866146017447\",\"19381497040591594270644734352258414548328268043574885817432075222894522838456\",\"5269665301431692694110499788846039424555889295632967648286716019222093521800\",\"20925646932691809597999976369610095403098345622395555124735276562135024421249\",\"11460055135625877002273664133557112631042633194026154032985532447860343281974\",\"15476735566944390203091666306638742111221982888593893456379272600632934537428\",\"17688140062346296431125886663100337797782213398709793807303050834643936463967\",\"12040587958010061890675878908876281352249418062361454571184917886453874917146\",\"3177319001474590583336947470846397738238831141887392944462311793414677536661\",\"5392648397844634521365093384691538347615078547808916279283257184087843888067\",\"11460722280002678124198753464446040779220096143536960902813430515677680426613\",\"297311513150964273356065749154712596716789040002788028825768542959471881987\",\"8119699840155352392596702203998242820877390172273779086195494490235200415491\",\"4288088497237928901328013646899070786863652994360849064795550121785415241084\",\"4696258615759271437281500875236649694693027196357275063320357257240268053504\",\"20771141840346536558617667602055032318865205820043155705762030923540319901630\",\"9494829003774798931908309150008314516158783054181910839937986131367327994308\",\"11144766282926493709589444808083287370988626764213073082371425042731965064104\",\"16897877569943720735946647830465680655414258858846550730676626145339199158469\",\"9222123710960823881499330550949009379211454656879013692720710393444739240758\",\"19553211495322271992832055942416409824007354953749424059299556685938962371423\",\"12092147293762065820579029795788031319172286687315454649285919779695977457364\"],[\"13752160005526568922111648191613509667620407995859771944353983816852377572489\",\"1786144906095748434098418471326080584825357034169689100341776630626975401982\",\"21507779940869208214693897774700547157422817908353120262181489891695467273146\",\"15457392624768596700400624133352891175895610885757860048109497002507474321734\",\"6698566432964350550055566967827448968789784927222384174592064813742004101089\",\"2318482255835694623568831797292644949004208584563793721521358755349740180970\",\"14224964110100958172434598811556946836458615201322879875099494308276724664240\",\"9431164872304734524906450536165937351362649806967884796340088294455531441987\",\"5126747006460578812213066839771175649816679551479106833582714835189265690065\",\"5261572533770177078500302027506130031299613246325660641316358391461805775632\",\"845255499893872784885389881544317940998964176249670053300339985539816261597\",\"21060955830500702522950950463486032621681631796137511958937629748464529216463\",\"2567069712515941646868146992675265018391965057336924916849746427694687379029\",\"2657860675722697630786244290212914077498139948928104887528152178304059749301\",\"3043714810542380034529637068048503164664326423871099422024434772807315522292\",\"3357994850024034306384849089408439818090591993931891585244593838477270919548\",\"9824147476368289787748204245243100996318176697053071074015561765820067685669\",\"7438792368150427443469432783112759105629130155983129893220152113726617199109\",\"10093404422094358875414278573258228358786383965823836946700353269769324581585\",\"12634985515278979072714527720750368291053877500981311659170793545978754874696\",\"21678497611158676566804812281399751048003628880958860459606768540324008456907\",\"4788731498640263409419897088408868960034366022810459306054355123252885262602\",\"6542301384913338747269644627616792128448417194672819094078866885305767563356\",\"20842765861092438884700759924923788808863427981119980754065166636671379247086\",\"18581823972807515617614599076372192455710500974743299517527222459087452782954\",\"13441747682976730720771587607029259454781078418428166875180824158848294995788\",\"20205550452155713318987845032301398420348930008272269886120284276731140923223\",\"1079016019965005886836020759891010665708668797165853490604737956851593097253\",\"5478423666271946029648971489549382658559333257444786624997037229252805287909\",\"7241555776755434495290797618326352652560992572269147657962917893177879077346\",\"13898145113698095561678150837905844887654793622348038216148809471047966338239\",\"20923740196001980690964371162395821870992841618159612791059777778556673491231\",\"11269138979750557663990217383276807484722470487058930711110616229246843986445\",\"13777689608323671743495825109521701795804030306808410879206636836646313702764\",\"10965502342457173118251537899833151409249856602957578231954683676385855507206\",\"9636557478814482092484288496712925496401030031915258436652111311276950044971\",\"16660979497426044500119328746936819579244898472081188413686435076554902705221\",\"19520628651401716568192412208399248953688467739722031754598608410981612011134\",\"15811088434439464321324040266440951785639451879389682668553367411184296504012\",\"12012191242940344378114904524846652699866333905722408134709346815482057832880\",\"6372591415284476423289964807797807888133704999927589820321976413654330585767\",\"21788582123708766996811831097328878495608794378524726602742547265100761104327\",\"13789606459994753873470246620508626950188626499431627110743963351560127369915\",\"2893171950591431705027788471941527523789867107097911602997484258915122395461\",\"14175136454551366600024009586774824037893796061891828859868563401543448890372\",\"259380900527380397311932726422460598173694563169593196644975297925827568088\",\"19739334393226817478713473179943836090551340032136465293851700158406370356867\",\"16894324351478362646388929125279500097116264528171837092169603261470198215841\",\"19033080119455844786117082763882580291334148840523320157421359290762027688385\",\"11367251817392764370436896210798138645430523687633181349735587479865493049611\",\"12692361014699391481852251252561466207399142863315218923765878091043671318327\",\"2639248670194111779951481902124302136096701393623731025621621626947672758563\",\"15289925205301065738306573961891298116616628813434165293330464909644257001490\",\"14769150103623848167009630760558288217309362280220241660168383965745130975099\",\"20027935774285131720453057222026998675775779592002900466240078369730929151379\",\"20239949645171819361580214361293385680531489531432163842699901780581644065167\",\"12084660342736981472147106264490757578759107019386217655702242753169644902902\",\"2667673698569752531642285369050178132975111390605337677152469411045394914867\",\"2089799033993499850861473525636392551563056219298419842789986858296825495035\",\"17860758476973998328900870383523486282599531149307876712886796704241711503459\",\"5680857625794355088917721076550350491307229532973232495338856375902423964378\",\"7902529544487815231792712783111401681615545032508738578500736079837017880245\",\"14596682999394122266199282590803428298094689197745028755741211513678872146430\",\"7081596861140990066354524851485261830100378783986596848702800565262995786146\",\"562493323750760718878491281146118281727908306457122707405620470053831754547\",\"15675278466515683283091811009072008967311214447820451564877633393951788622336\",\"1144154811626991074684359845859406855833126600850541534220074389827286980021\",\"10900759996148699816839613468174345999673212791051691261895443486632019167099\",\"16150568533804344271313963590077774026268775946325925464325704310476285043244\",\"13748418765042742709511950042020950127645799084367452942269912962921393223427\",\"5721543257440126897485757515213934988206252087661519360964757146262688737001\",\"20388021620585835032377766490273581073646650008878963826086673775384399318550\",\"19124979056453114453749749554808261673340066437964440164017176976175844523918\",\"11477887654021718653022718519283696738295105413087294164070070412658056580229\",\"18343869873095293508109477007553754148196428436514838769729372964675787022660\",\"8222065747238972290658327571098186625013945421631786242141663863041538190157\",\"10692016856935418117834618356775352154123398843785753253315802231271285563523\",\"13849850045544821058070519791800444305080093752086419042612214622095266908335\",\"14271832937575305998343675189795467526511877474729254933038418649540569821917\",\"19226067934903080859959407198217180977185683895223669060421064993026601648094\",\"1263650541521655464581826579141419922733221783766293232109212896713369345994\",\"15292539389054785926192041223088664968353654744760691259310680882184677501030\",\"1512164561322249957703886626722921989112877476976697178104645796524022702547\",\"14393906713618772394250721789630084860484756004815160413444041700105007209455\",\"7635054589000581275402117114118161631838784001439356586821570898940924612569\",\"17183822870056913498991712898554792134959044606053491653423116626739479645834\",\"7598118042902789897672483073116986551896949128938574574162017973453999933506\",\"4361288942088816766441825715784014377738261058267991599918988741199081556790\",\"21540250546306085893017645720361911372584605956069189048940244393829986093379\",\"9893105793947030696916125834261596994036826847663625694667053962953806308674\",\"16354995425052135255934037110464125819889460001872739921055500796998644414308\",\"4856255039953909142625638286612232577038451356970907187026806093377066684796\",\"19043564167268729307111276667009153324075282921361200837697988149912186334447\",\"11231144975962911561630494806701834529163061908324202804640153287724183233572\",\"6304139139056788759329624710348226753586941962638325772745950345662973777303\",\"211466420331275110054559368022240966155930461279930202083193645716477249140\",\"7760346147376703477419586486512785823976724557505256486711920879761119895961\",\"2971827574414125434596222514244848926476250470102941940427181355353058478117\",\"9763089828416974898168909850943321917558580846191508436825986126043612149821\",\"2507342993815382055052559308353583580452506588819153078509029590661762038726\",\"9453643695900921604119111651211740725724036750198396010591694414335693687182\",\"11921876003651147457107554009692164636220851497811463350996627226617144000696\",\"4471335225479710478202616273380613056292351330889414169025935563995221117175\",\"19461073029310787168114366617060343611060136076117715600799451740047653275007\",\"17227164766802923689078739248795486416730797883901186099703781887452957960644\",\"9903501595005990200757583737371553111432535141416802138253667871881724329839\",\"15180003777423707305262681887076328725333073475795718815779208704530822057354\",\"14239592603271772062457761682824375998361606125734506605648165873086055420222\",\"14172244058834694219971930450321271502410043086645800096192499733242370415145\",\"9446292409539474831832437671772154325976844862743778888235312519315919664825\",\"19324244613623761398174588359718443509108234330394086019368868289761290126346\",\"5357621190947644176775702003495749300049697976453672929599272661822477819142\",\"17058129362092633286407354798010597876647571724175178646216547278905559206266\",\"11351239468959528086004357164443236151665165586516652382012674996023151026445\",\"6030217138086669555174928849369418233175076829751030174612009298449524963209\",\"1074311459191566685389430344869545261069758178990443595826477024974020338885\",\"21638483806851972323252235937574294391491961746227134665363728664843909271438\",\"10177390292709789490155312215544510546873197805320814509930012388050519097020\",\"4034749461405082666839903862018334373311268125208536731078659268067529636575\",\"12254537640673678268950281993455395604896201703587912382427894928778806792169\",\"7007122364740769926475892942194694589584867439827302474502991532322377455794\",\"10905922057842003975154429973388426180818920443713655856077001687397373479761\",\"1062011226601873512001144032522495560843219491347348642646940022182187567567\",\"13495114261884548896643787943903691739451505948881908862625414309516383697049\",\"12104630059105157287025104146771000364760121302795832069263067879693781848815\",\"14352790417948566675650726900726039103678967855492275632730115165896017203598\",\"2873075598788513109028963607990199314738863851079919011172388173571027970299\",\"1168791927085011854712680328074643764672161700491012111472986804618849060360\",\"217126863131405443623272229490492322911154180522321719257253658491068469324\",\"2357836199698976457012450125924334187942330304509062390674505621475842222704\",\"8269337124941661186027921029328884717683062907024118549870750459554696603326\",\"12467185828107638745980764818311295284293154708425196098975499376158667037674\",\"681223356546417691494743559006774847590525815593775725568756757293140196295\",\"5406593102859764098727986041925609384814798450444480006546740723056203015446\",\"18042532775044559952584984595722506015918862191427613330386555457787211261032\",\"10803493805961499813737440724036311721390210679579431872614631979701477754292\",\"18098227825131423922628948299736565054407610651030293316254500950122297974142\",\"16817295653504382410192100545901635589226323916495806720087735534896273133568\",\"14263971024095627688949907543051080598320036580599112435934793193180022338768\",\"20608778717470609166111881003152947762859886414389135225028701387948879243034\",\"6321278132305632655825333791280968487575481236307477928513756112973819084835\",\"20479802283450239593588373644166233581887081940025233765185777149227006884703\",\"6220634231379588562618615111857847168719242697627878945122530898051165745386\",\"2220859971584332765237776710560822345025528769037416958848362608364394042588\",\"9720840252408282184936749801003190230520318244326210788260620916979831111871\",\"15953130931440535520594053990809731275480511851456276894171163461721234512359\",\"16332396790519071322761316142362813633650316298874522492981436284021529299225\",\"4003903413851431354235806578955855013405037998584921303699554135851042939792\",\"4394596400782573826492143557814260416572795188588751094906427348618551770165\",\"16739645977841685274843431910660956520021423657501156064650122964182728794040\",\"11730753538258397896179563910805200166155693301186610897864881958784477524814\",\"1498475145171212602743541226633876280402549482357616470702263364787465728017\",\"4233283702160401483586413147138883207957189120702303975331723185899589861858\",\"563421567548247468639121288981149945232086949850436938717885098858902396008\",\"19132250599883333984201522559253663887099426997051065988193056265138381173018\",\"10012444886782200967861462982558778075274702762630062746493391594443772703562\",\"3189714894222417549382458173712256730712776953909228686567318081605313212762\",\"15582400369795174124049135582085696890065910698120057920954716643548922443547\",\"14603905504688324232898876473245897344376130677186501635245018032484740220265\",\"2891450873328975790336044600437239451146770780399633753871409690028856220385\",\"16951375753253763027466267151023405912627089973086514225596161037135629252196\",\"791536219771272269040523004401595958449099681442575828394898066253845781203\",\"8229600290088786145705282096758091051555256183122361761861278204543675198125\",\"11852661671633843540604300006180674755234713787001681405855301649145917606318\",\"17565413454111162061716005784830208970527716360673804160749873285395370695502\",\"21318530310443203516922683003656229548185296716696479810499696843318681490676\",\"16786723074761996998026766870986416218456999260977916342910240101943782370815\",\"8677451226732220172148053968451213705217565132478757954504446438215491646784\",\"16465413797046816762080233676044121687850241780072325482979242876990559170713\",\"19860285040424634418543824441507318208918714442299121523765201265609460323035\",\"18312731550640847120374702374550168157046429195069114396955624951917025758645\",\"2138257000762370929064790975534175045272371272070060531456140618410381332421\",\"4945994601148327415455128642267815998520623992480949635353159059148907853418\",\"16428517999667489983611520193016781685725414047192322965459896427565310807264\",\"13654497052966997694758580586581508780535203761146826305707598166826180940794\",\"13533025879774451301253553039888304524688279468012122267486830504092045430678\",\"21040735279203066127897630886074677342772123340442095615692393855033500617406\",\"12092147293762065820579029795788031319172286687315454649285919779695977457364\"],[\"8885444297369362721995803295825138705608330472847809240591065703232838875131\",\"1114596689022843006058853097945563990492937916984965325636006326164435990694\",\"3927373386493397600401153870139016917858937545969577729740319034067504063143\",\"4036472471144107413699653767003415601373169815727878928944571798329218793322\",\"18139139595744724349676402983578598622961978585584260795273224258453732388189\",\"5962041306122101907215306073726745985270433905361661132040560377503449255408\",\"7869975836591791670620186090587048724656477110602188542314514782589023435214\",\"5890150841015056740659976318406730019054016976681995442155500714974109194192\",\"15873008205141556677001826490191344189400260525687344971838741404243855556416\",\"13058457161141915041355610091977094278395547071737092069731536259837347897186\",\"9580383264443461888074321689970116969694689074034568911512638324986425354851\",\"10921996821007828639312795652981745297173345139297105695216610091348546431371\",\"19742750658138091135101695444421026672911809255072802698242038220581003131723\",\"3754219902676112743079498823058686200409303128101224568325817342237400022724\",\"9922539112213111922811394119082777065741686368824763666982751302209067316187\",\"17099680161823724471992529142188580492276615919312373372318586644590891267587\",\"18510366206289462453597534254076860661735589655779424200422255149175605557550\",\"10355138666525182446012093052066282083805961917026173671744993124707058150592\",\"2086113866008016255543023595726946141876701259261762758748277375934576164254\",\"7442984619132576967939767842763211475949009616223138347475967826289015328001\",\"18732459744171717742188178382449773448851842040554271830432115472680851890025\",\"19985707816462435286294563608657536450661670968164639029770772734078655512425\",\"4935084112041068699807872792216264915441187200124217753499446124352190265290\",\"2645681317036862651434155130160083005355638384913608102358662998323355202739\",\"21531036787387396587777592298904111137371112016406300792429602422049421400070\",\"13624425796152935525798529684899421294216274045000516399769041786080589293468\",\"21680946665439832155212103582454844327628230015133086441208771328613585862378\",\"6717747192426456923942875362620334767275895536058889301078403294609624597315\",\"6267224778132639362693840286161954582697208557918079380114596360036522275969\",\"8111751569950374352657629699877738610501126083211528840015580191486368106301\",\"1383867948764897601973772895721675972978861716537312312467220946575980233554\",\"19567675521502614729845015323179085823387366419806476442758283078100517750290\",\"15884163627620002313899645563651145679663276407976867283215704926924513346496\",\"20276496030790998550938524558410071163543682195514290741616281271283733975010\",\"13766832615828446179937629942192503310571061637379824184187441673574454725924\",\"18261084342019788918786397055994983746749443833118316860001386089630105924711\",\"20351369421324672559937924035133246360548419798436390185354081680907401636174\",\"2344423613005736453110503713616075724493070066379537033980408495199455795869\",\"5923000983134774384091296462173032471286797403647256085150504419750363498490\",\"15347677229560242001006988137383858364576121215777200529730095669188241460184\",\"160847585687373892644566681016443288496871836672069095422441180414234942291\",\"15150786401656872368933655649696354646189160739430879141489317110223716146827\",\"11607628193220702109564345193977935964407604591252641371887781160190435970956\",\"17192420153934933558261217653003405706094478921586345584347370368325522052488\",\"9413297377158490557010185914225432055031113937580141538345280387202927494831\",\"9558275902498557697142992993972397925278089730987412893914646117480506292124\",\"7916601760098564937896088964297827651058064936813698667278526248466020111004\",\"14331910909909115483689281094990517666166051213940633966612085676357309923502\",\"10845496039863229514218162980242045291711238940890295201374955362805012878826\",\"3383870067305759750954863737709989778978491600805968457957319739319562786019\",\"10163356238784127550921105799846243361196871898879294050143427795421591248535\",\"21218483048975536698604634496832827204104839388368444641821776885137660440274\",\"1435759996030076648664993685007964966967555828128112744194950251559137900921\",\"19409517701152410033824124641106817672418481529128424316068980567718150753348\",\"11353096974258396256038926728059659121386076747613751320673926391949727061881\",\"1197205953692796884698571882382232538569140605603581766330612844836573650598\",\"16031774839608100836687907030964922930420858429833531090200374611188594053092\",\"16523637318189996206268592056842768691272308255520874932052231599702802700393\",\"11380751436707534820913020549277251362628438125949606884344300798172352665010\",\"15488088292640862797339275527070047809521000673407730425874617949890268100473\",\"11708175429876155443846516957743309747381155833619442157284903115674314359374\",\"2321984106667435945204346526998888297212530861728278270009538628981793220745\",\"12582271929025098802474299548796876139473328430276655111769960406023003924511\",\"16609834306501490823282163693876739544922478614682220043389326775703652369041\",\"5464119799506500045737186151826869344281583552789819025973232517811272147052\",\"10795793410225000334146799489303908537083904257808065866902345217405972621596\",\"7416885623505576458963016717717620928457332611703905458499005550100416846783\",\"11325133917325265811946689865211726897838524249172982553693828956069578901347\",\"15219491505798388709055557033465592857641120935927298284124677984130155190172\",\"1765890012618802043597216040568941301197098812268762903436225390139498673848\",\"19152679828651379341975566149231112576046375266566101759148532721948786289164\",\"10147344459851374705425958218947161514972684810515859630177939444877544360747\",\"8454517424685154821985371013753248987666617395956838995099373304391871986138\",\"17377891710538944759963596447398952478769730312173697563476023543155669896653\",\"15966767347813135568066315879917784287735846967371621084939274172003462227001\",\"5232800893866740247940753851124919090831387669968853582279388348180306325921\",\"1216726555211252719628943910299656351390395336586156625446677400283719916623\",\"3758431616383294302254529089431130432835184975633382717296259427687859482149\",\"14809233871066709358614178409909932371482142442391434133038043567020575786093\",\"4890366165784287701718002557356523259744923662146653981630329260630995270722\",\"1667689309720215639645884508721984412016528274420512046162260431227950287396\",\"6362775335883322191371763119055361695872092295138121728674437159297109338694\",\"7127230301126985451291378765901495359638836603933864560298431774721001230176\",\"14037733922745102186616103878605731739279826470464520785488054482053919249957\",\"21155012307924687097259765640785662802421052829544864471111811942954747438185\",\"19557917220875471420117792251474241013041180435640070408798206746514289974594\",\"12920532214149022091576146070433758804308013597340240728841573820412513834238\",\"16482445172695317066656070999458135026367299452654934800951529610712494827718\",\"12836536619967889702593858968136304613632853601734823178361995213447345848270\"],[\"11847627705310759181119480865940761178428382207185069289604514292755523113593\",\"16059903673127365314761505407427352236838318963701941536305604479431043418676\",\"9666980017199605224267509079678957704418642579728856219118475675345597710791\",\"9602518815804593477284133816755299411740462664555235495604776960159833134660\",\"15867224682885082025636591388728156550768878635911071336716915973621111672041\",\"11005963460478403312219301648064341260316168593110953789124977379485197614145\",\"9367619910384768631189341590966195870565679534264161657371925862162783161517\",\"4475189840237039924577862033691575380919967444053826292955950498343149666776\",\"3234289870616442099585200472105935948568330457173440707995488298924834700725\",\"6891684001638647302546888105917522803539114007058291624852467193302458263788\",\"9176627185298892191293567571725686730666168545135479620401315690546275833226\",\"14594622951652095659832280243152526413766251353815710179505486674597069943274\",\"12229099374586005634176205834970971554429288579599423707350741618397190325526\",\"1564249351996152529862401959246687625351180589737593024440437477182588240180\",\"11727218191685540658642586718998309819033601502383887097154788615185358801040\",\"5688948664886046851682224741657319758553375339669861736137201549305851728629\",\"10597358401011786580529111206172411303737300711075255006206850692304963246590\",\"21595531627073896244628013544551730134097582481869220835956309959889115230816\",\"6315655021609058591596935705699482061244997364437623698817888212050900038936\",\"10685367147376880939815398453813616268515514575760234509568560761845458117498\",\"11284158452455590295979261459134713986855163126524695472020475823061256852116\",\"3123061942509678842663851900223618239322259074387037691554804797174113713651\",\"16893071459352633125713926365593602717086267339439219238357187231360112187627\",\"16836019415968292469704601000326887923747825633421309329151959128129425247446\",\"11355029575259745930871268936201558647097971389037195617083175458329550980420\",\"1018276676858124689740042981549154208565556221509808789674524078761316307875\",\"3266255968970401261477758434506777000556251043033062576731417675658766787358\",\"19851024069599694248445865276256305551935565003270757155732668071412737680743\",\"830530245165334819449911931229706531732968434231657264170792629831555654202\",\"19400465370926099443489626295730571144274766050485084370993808179006133665582\",\"15543322402819835865350201750650765027064540096428380647790884548389815948463\",\"16456156746313218704669043406670876687229152017867184147616873983296014697670\",\"5105139623781441269261160066766133130230878899344829848965550993667926918403\",\"3770959707530757388797002522780454289334441639164869502842853846889593436125\",\"6648729853430130838311240094453084870777689184557651646347396553464247636097\",\"17037535488101404304939231021753720240140436094984958140793713133439118463129\",\"6096587368227578632067924829658269892620703365353043812451205752824023895026\",\"12813179740528711011405006069526973367510287128024159324024866831206964919352\",\"20684943549166584833593783232850575576669431104771179852041253271706735855521\",\"17598144170605633863366259083692173098076585511696843148394507127867102487060\",\"17913529086663464298237756764227881612427903535125472769157058509363989200962\",\"2047700759794463242308077397585376352538427640187316592211309334360847548228\",\"12090261258281562461702200649546185046620707852785859816289191552196936747936\",\"5433015588402736415861631743971221585651234151580627302112639178976069952565\",\"12836536619967889702593858968136304613632853601734823178361995213447345848270\"],[\"11177089193453106774959886438351400321793180177945031283694256491858251911692\",\"10939521245486580378087605950340381305726149731134113612915686941673241525005\",\"13008519544421866855731370879114865509346133033128704286915501357218927400090\",\"20343974113876545041079696042097585837972954234743284055452858123649872030466\",\"5323483915194767413425058745271357425052397859704267304068614821645329315268\",\"2964100662617546406804976946784823036652452104142270232783326734529855062706\",\"20894614693320941143272902888732770137092133974354374320559190558855674720686\",\"18359428849814943670773499245895089882938970284354380108388969688149584588404\",\"16613494969758168314495526361186099898204604066884374872297765558528977882285\",\"6253018917465932102240784577272471644951643329662651039915700613764548137914\",\"3204774307568515256877764876518563039122437946980327128984113345336974274840\",\"13937798162641489817010386262821301880009322562329821219265267513294795476914\",\"597469866977702855389729206684555243389718291863326898002192395181283017161\",\"17113130380896436205911418271284243648407507676387310022179059106063476244301\",\"6123956337577336534654014270132951108097464257054838650260487110527250656758\",\"5421777564963428845413685739524032749497392493994844430470862703288586489373\",\"9371162387405705895329020490851985695780046183752927770406416164888235285974\",\"8442515145555694335479317951544216952239169598743629144575458085807919467387\",\"13114400119072454035794781940119720514068417741986493168821663757296967950088\",\"3234976460241366687510207941652207758532920802996116670285718577859493994627\",\"16203893163271064591818687218426259713682783982153852243094439383621189644995\",\"15843393901807009897448690092269551551510863617261370617026734558435319638980\",\"12836536619967889702593858968136304613632853601734823178361995213447345848270\"],[\"253122934748216045283413269629622664030592509744977903155134684155882510617\",\"3014301626769747424396812778237219995231751654717870387049554095535050196908\",\"17088511536623330939666931372848914490336425739834383409370942947920660613725\",\"5040904770525443567651650729785807600906105939086562069608354357947347095037\",\"17891362538147819626943010636997287593313314422875531320060901804565411044357\",\"12886203345869494007132475858040950106178922864809124047915433327797580519493\",\"165786675789481848290038987522097133621501139711675129390521275172056971839\",\"4055427310463778747776719888435513088419797505159923582953124465765501985048\",\"9149210167130486776783108967218262484615653914304598031063292067860529728870\",\"7600136813435613318274328243968341248088401985049587401770277245536620324192\",\"21331416713566373912856275827958304066080197717169910280390412075184098214023\",\"12836536619967889702593858968136304613632853601734823178361995213447345848270\"],[\"3825681636865419211260597288518596658107930636680243409569768267524843069194\",\"17448443383813219102600330929537216102556400358492551091610769043907129648688\",\"11448274005038874935837337954306526260791376626328224296080809267787251550840\",\"10848075837904271145784542075799001978227174305025361926202687245421860736634\",\"6992134665125480047275962638733062761045009434937967126016760524793947251546\",\"16492413540126666609636299594354281757715544665540828739294757560435776554733\"],[\"13574381848622880303039324694781105485804907872147917415745354558362195252255\",\"5492045819945492960664630994757263520745595064722075731270733321558166334509\",\"7589999968915196107276296076795375940559088527931448689491660270060060460979\"],[\"3832966166519584578199822777213271658224350093821264082308942121601524277250\",\"7589999968915196107276296076795375940559088527931448689491660270060060460979\"],[\"21293822378830948622770400625187038045072993602141167677808958375574540382310\"]]" \ No newline at end of file