20220802-强网杯-CryptoSecWriteUp

 

crypto-crys(not solve)

  • 提示:The Affine Hidden Subset Sum Problem[1]

  • 中间有降低过难度

  • 题目描述

    代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    import hashlib

    flag = open("flag.txt","rb").read()
    assert len(flag) == 32

    def gpp(eta,etamin=256):
    if eta<=(2*etamin):
    return random_prime(2^eta,False,2^(eta-1))
    else:
    return random_prime(2^etamin,False,2^(etamin-1))*gpp(eta-etamin)

    p = 2*gpp(3217)+1
    while p not in Primes():
    p = 2*gpp(3217)+1
    g=Zmod(p)(4)
    padding=randint(0,2^3217)
    x=Zmod((p-1)//2)(int.from_bytes(flag,'big')^^padding)
    y=g^x
    # Fast RNG Init
    a, b = [], []
    for i in range(168):
    a.append(randint(1,(p-1)//2))
    b.append(g^a[i])

    output = open("output.txt","w")
    for i in range(14500):
    r = 1
    k = 0
    for j in range(168):
    if randint(0,1):
    r*=b[j]
    k+=a[j]
    e = int(hashlib.sha256(f"c{r}ys".encode()).hexdigest(), 16)
    s = k - x*e
    assert e == int(hashlib.sha256(f"c{g^s*y^e}ys".encode()).hexdigest(), 16)
    print(s, e, file=output)

    print(p, y, padding, file=output)

    代码(ez)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    import hashlib

    # /$$$$$$$$ /$$$$$$ /$$$$$$ /$$ /$$ /$$ /$$ /$$$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$ /$$
    #| $$_____/ /$$__ $$ /$$__ $$| $$ /$$/ | $$ | $$| $$_____/| $$__ $$ /$$__ $$|_ $$_/ /$$__ $$| $$$ | $$
    #| $$ | $$ \ $$| $$ \__/ \ $$ /$$/ | $$ | $$| $$ | $$ \ $$| $$ \__/ | $$ | $$ \ $$| $$$$| $$
    #| $$$$$ | $$$$$$$$| $$$$$$ \ $$$$/ | $$ / $$/| $$$$$ | $$$$$$$/| $$$$$$ | $$ | $$ | $$| $$ $$ $$
    #| $$__/ | $$__ $$ \____ $$ \ $$/ \ $$ $$/ | $$__/ | $$__ $$ \____ $$ | $$ | $$ | $$| $$ $$$$
    #| $$ | $$ | $$ /$$ \ $$ | $$ \ $$$/ | $$ | $$ \ $$ /$$ \ $$ | $$ | $$ | $$| $$\ $$$
    #| $$$$$$$$| $$ | $$| $$$$$$/ | $$ \ $/ | $$$$$$$$| $$ | $$| $$$$$$/ /$$$$$$| $$$$$$/| $$ \ $$
    #|________/|__/ |__/ \______/ |__/ \_/ |________/|__/ |__/ \______/ |______/ \______/ |__/ \__/

    flag = open("flag.txt","rb").read()
    assert len(flag) == 32

    def gpp(eta,etamin=256):
    if eta<=(2*etamin):
    return random_prime(2^eta,False,2^(eta-1))
    else:
    return random_prime(2^etamin,False,2^(etamin-1))*gpp(eta-etamin)

    p = 2*gpp(1600)+1
    while p not in Primes():
    p = 2*gpp(1600)+1
    g=Zmod(p)(4)
    padding=randint(0,2^1600)
    x=Zmod((p-1)//2)(int.from_bytes(flag,'big')^^padding)
    y=g^x
    # Fast RNG Init
    a, b = [], []
    for i in range(110):
    a.append(randint(1,(p-1)//2))
    b.append(g^a[i])

    output = open("output.txt","w")
    for i in range(6600):
    r = 1
    k = 0
    for j in range(110):
    if randint(0,1):
    r*=b[j]
    k+=a[j]
    e = int(hashlib.sha256(f"c{r}ys".encode()).hexdigest(), 16)
    s = k - x*e
    assert e == int(hashlib.sha256(f"c{g^s*y^e}ys".encode()).hexdigest(), 16)
    print(s, e, file=output)

    print(p, y, padding, file=output)

crypto-Lattice

  • 题目描述

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    from sage.modules.free_module_integer import IntegerLattice
    from Crypto.Cipher import AES
    from base64 import b64encode
    from hashlib import *
    from secret import flag
    import signal

    n = 75
    m = 150
    r = 10
    N = 126633165554229521438977290762059361297987250739820462036000284719563379254544315991201997343356439034674007770120263341747898897565056619503383631412169301973302667340133958109

    def gen(n, m, r, N):
    t1 = [ZZ.random_element(-2^15, 2^15) for _ in range(n*m)]
    t2 = [ZZ.random_element(N) for _ in range(r*n)]
    B = matrix(ZZ, n, m, t1)
    L = IntegerLattice(B)
    A = matrix(ZZ, r, n, t2)
    C = (A * B) % N
    return L, C

    def pad(s):
    return s + (16 - len(s) % 16) * b"\x00"

    signal.alarm(60)
    token = input("team token:").strip().encode()
    L, C = gen(n, m, r, N)
    print(C)
    key = sha256(str(L.reduced_basis[0]).encode()).digest()
    aes = AES.new(key, AES.MODE_ECB)
    ct = b64encode(aes.encrypt(pad(flag))).decode()
    print(ct)
  • 保留下一组数据

    1
    2
    c = b"V\xb1V\x99\xb5\x8a4?\xaeV\xa8\x16\xff>'\xc1\x9d\x86\x83\xef\xbbJX\n\xd3;\x9d-I\xc9Wqk\xce\x9f \x86I\x19\xe2\xc8\x9c\xec/V\xac\x96\xf0"
    C = [[77737701681477051545616832107925762010764626018687280451308273641068188893362647220148133540815251902262274024738124210440085304158355965150563521926001810292539416577480912418, 120627963711907281666518548658791708187022026805608562825174102048425510982452095018702526365316982206593986680961202485214737007553420655828369663878703097852551419127185690916, 119777985965489404042705152721239814545374570467863555398147881296308902852313741702166883481240081867889202250587950739855079245246803013107720265775916681198561349556372883733, 118389952811093873504400278385322077258340194606611034061560704327444788763784793135590259042715551830530307681296505121439871483552036657368854716961333565238030261544209000054, 103301698655814207400258881385578167431222908873081487762856154256949520392959684168308880121863149122660771473229950017215293490777155933474787321296307318866017482141196432667, 22869400128283146022064352032581067593665227297723410745659325013713932970024301182271670909728326842180824741151128081404824516158506237361560678213782845264787551864914112022, 82490757066880752388528123227438220077295493262205524868559888468635034287483894240711916382882733734812257869844270277581695374069371060486345207492750743371876306255337056200, 103730022728951427857864978017358701737952802393690212774783260872998734086474929009779782785862556832766128715830090507767445571572404731466117550991480358059588243722883075581, 17478008697990993208289544052332054756786502251187087869114509003519946324308123490037367215568896274731996420512399998408278697478711019915843191229061738629385537831443644391, 42793451195336971508347851993727233840963826386377032016902848146969349802927041179577473934764344891502614082403211129075263449409041495468316805472803432734761555752672319437, 39367677781498517498488905237801007018002098593422687732012083361521638731715694715256052305910620503469664206815146426624062205641455171664569321215436378232213098908083290715, 110341053619466904072084233060088237799296657499514361775325634090174669206061843793669833276316084736228285230457489964675050532959705344770190547427547266499038559551267928569, 30114523688648563096994936511143036498078208011804263621856299143360486135103773157367012532876149188950150235918137385168683421002106441693703793642323777084999341452607139340, 12222286087622395933699546610759588991237761461334204658700498007991673867116830233556371925187388357001289720873958138388373503519195040971450255009411346129230442140306723102, 103259844233132882071179062840426851509164805228826490943159945349311216507283322734293449734822905465614270830966103124746139373008944565733992675067819330093350266894971082352, 124756715187650690480546398568840710292826448534290348755851304816901155290308658759493329578602550730847715265086407135568718261925915613910518184716958922520626675685536615713, 30971193439972862918239013583389996792486991982638959050251711199896787369278765824168505056874109753762250365443971806199633904102894946777602914040317476695580974713759108579, 102948614676603843384092773601720396192522866934866051813595343892210410678164563850207614737851286456914360608869526478271700051522141755949221579451859619038388585412540553315, 46563881181138921085465828243947438689455386618668570898608670720889267680164163836289472190159411367985151572441133343193704372247500175632795958541702065641725082816596135422, 22032101812047393233402260033753174022724488008180273483166610831381984618878379317836018540535014557522867469424001553726013417274752167957441827956456809982434457750829334275, 95864291514962120201430609348195290687203816285104883871540595174827922824596497143713891211518496026573778290606865069586549944653790288827438204573218843878666833861494812819, 60889794709883258592453174583860877811111872106198627061794347726602907891136075638829353803864415691216069717640596020985851121101437136952939042479671655400704076827782907227, 42250547301181518319620871658475946998410111768236633058573401104128946273732053537564482230402214004263542000151368336248858154493407441951135614480906150898706123065749652512, 71946874565371787674544611520175010700941999476518390752099881714622356664766227260171375825377597533776013987962532573133466532440451017074539300668960913391390696803349729668, 57303695105906712894846730983578395030527856887260192843654062735136020619859998787093966295818075297695165667712901981325500975731549931489379157381036463573714574040897888695, 114600910147844157057572759402890280131373053440916389161667131321132582360756133689304757166098543153626266382763581591561735498233587881342201341859902776453506378569774391938, 111339402739018980594272405078600612356965009046102406987009293146304692638205859523655969144344392190667608682624575982157949210267949069308439207116752564660228174914074874852, 36707353535703125304071713083895579863909926831808387266165991524984372514198215493493481903213366252510594964759917968295648776338931212352416494063771177574747688925709117949, 119720283838950521490850305460258259833367900252343806536122530816904945678496006149190073384583958675980161575305176474766131443527773588794095724989554313967827242336359795147, 26413972252074570199458513411339909372112751814311958425076659874863783241466500321240956911364808521609474745630283143876955857755776705957611981087631390273560704420326461611, 42355607354564756686995873632757153434848535466899537004973287189515193428524720889885263115963246709054136321217877786127240089502321058673487300062715232971749832677481250111, 66619225074441409601377177213239781673915787270329536586662158268274268932118615338082634760422846567036166465510620619696052612462176145733135562551792890436239210867323415875, 84573529507512513453728611425547660880804843070300674459499981947267454788273679862396469432605021288177466741408255331382492688418580651211394744339172925241092872372594823937, 10537807277910126602076185519980917153562470381031805805041726498435054370164508136417688185935798366482351877905430243329391044193035383322701097098068268712378577308453925465, 50209966450064627409781908632017903668991631976338589919514804564853088423723971400987615845532246864899813139909770391460905117260589383189225926707359647894060777480692972829, 77840625844466930153234859255515936639359751490860806964844423459474135221615102490856523986294334632777111942383464411061265825752114564421399679492952881624543868915314828511, 89650206223598967146253560019866304924277711893842374604977956373704066482023962279673167831739446771053759691523664604440704543528458019128629787752843628986528856590934745952, 110499002124714339785917980006642972392332646046221833563939643294944567910547378744502874796081032320304655279844446074346212703603478195436271119774348926268833009564549105663, 14401968128772407696714924522467458884128122395567697809702241801294632495814811667801264390860637515678529963712150048757245888008123048271165624067540162758521909961292544277, 18201039623954766323300799518733545518833110948328709522148350134510943016850765308327628385585298591036502247288444025805556472766411363359088949373520753339252693269992225198, 21839643381553158251391039954531166565773469590626473763787068612083474888583840986725329992235580580575344199745744487214216193122484277020378661800923805541064872478730839885, 116624701121909440536975805257414190112507743059305766879777690657847162921860852850892968774407842214796750205022533111964840782902315924498840000571288231356953097871653757754, 24357626747855426438095491239379883278076592759443375644349931285958380205204065922545234105629677036469578167242338079107268729072502029563896923052621194299538452888056602379, 106658792806486779326999101600243353392744794889048040574580887302492097803150446925710237464247600231490967523225852575825916302608021169760808253022661975525048494709189216476, 84841673739188117043439033960480787365442392625395715389330202156382564560093793987735884223871990958111084455934905695976258462085005512607097605708053338979708039730032986374, 14615849766141431078497952843888084422083359382430256653964202279011666129944807751310893330037426176820480791143908771268060565493219110368675709620283101267788509247071857024, 97314099717684248735234282965807197712226769692314284839208984583299322219247718451974326690531997602730108668773426825601367516818944127918246775744335516190998011945760239413, 34629509029597142176075792540125377180135613521053506364816404309841443367953133333840450948087935694844785521756490424798032275570126814905249895411649968132150156559456667446, 24793945059289032449242668579993196051815643934222904019005577905084259229252345092181402268767816882883280056736479529210897722491080887860694525561636820135649051803405399373, 23009550515032953046209502499689885972568552606838022242214505446937631033421006450030426439395764432034010059615310194757013525267162893818572335561553392803786710743773254633, 70370133781109208534526405661058591936520057173366672339728530160036711349971277927230652378239964412277650742746550051544595610740180011137267316600656441312767317213307327914, 16131128903672076115479570717715482583643686856801861668432992721478686601591380520145974954402174326207300171180805515110061821154558176380043291035905995208421922883154147093, 70702490086631299325245244714249631071713373011598298441277597756369420908990922947995827339115375356360483832944219276347436472612294731716053161850283293936659820648090480370, 28910813085211313083784565447507841762477232539006720039992586085646929775924759613253465392902088127196135194926802150435044511760815784090497839887776747500988482956553746531, 80516803258161211079490879030221612571143853070757242381162563110739776026619720673366903228574829134960785229974958953632351057923711216653496025227142964034164706920576688059, 30451954770234664562342650592443976046109959268134833600641516441510009135859536924949300587849855905256660122426851074352444498676787082976251639843009024144249732379580911365, 64736009592814933150318296234317145879304248704121488984332144383897961130941178445228993455710639406502104662417881488191596545377567815387263708954284018065036968562663677422, 79048962165719784560812833025391576056453536905131130014882255183513850657714847109423192297200459007602074747135031376018524275918494223510531102727186246236090467905280002815, 1413630359369428392866818064160722604248932333793797618056773565973602102616012993276242775266570164228926056451787505280630671361416498524562376080793137456177710301361419175, 90622002412339687709936646133343425423884791387969707521868878183265512263154279713979594262318672144941810988716832711495011818223120702980449012289655009279989990574330307672, 37709101870103719901530548056245127631407711564882621624270214312540920228024924226624004090510832911936255668311252601879788489718164752149747028647660522077862524063931523596, 89716035120538112720389655409043269420283819319793269744314034635001379514234123971460546164869019590666386749138224172014655950042348893601889154268985403211266833531046166913, 92751361405619742104673005765727130972816708963244258495102513627146518489211862491307979539531933009650630572068146219128384771865871611811650508795565590839270446767162554050, 107972561274091130388986329533725912866118391857728759930916778845806706877865148668777631584626929167450764662334542006050556179017595241929099251931700258779537037321839328944, 52176232658104645124225218790763611220935577421507861856291366253653471353890184633214747241992417248777930164170280539702097217712461031478173195907608509641071401863361923862, 43179808517806141201479830431257402565811675397250996026026339523125875765702138016734943335179708358976196618490493131127460548673261444444980579546468099544540445299254024654, 19532799568692970921236458101514549672284585033257756622367501016361178059317993269758137265327312162380664915366621875282740888855435429362978545398145450916905130310494437568, 107231244941490309241473774239682252695062376745180364500956541696484176488531201815282589369863955302903126097858842887876878851847381372577773975682107433161505021194773816128, 87409458948889291154674919980593408231681528701915714171616350033450572231960692541053262166418592592257337938099885367196338919889492134125602551803928818809924532218486144214, 40318826416190006330993532371646225842089598735026905722467232064079695122492993872851648569687224099174863600025345506718535834085670104522911812028548986293921825504034116, 27323443006959195306297680538764108952714793671385181704637401048279366226515716897512848792261309898239908649952027713491520703373240871057314475623480242300818867328270472696, 77552712450677092299592344165551171309391481256222159628777079470983520416461578608604775015333314239004975061174651189229725967220871404349686482352989145387782301781345271061, 49614186108946635606969870865524248402380447303534353395253257455724235756081076603461193064533539156660258760961065596255985921861318501336572982819794064305015732808548373928, 17197538088714435641720192880364720625582962863365591914831802927008177859385940123003937175229142578769613383387201295761688588374844451724666317680082611194787976950498889807, 15825048605315672561002084641576690707548280116137005329040256287691850689217215011362223849683387094715167761103476672962375089275263392727101253372462400753186177243371864753, 4645252562124918827193744303179661884358741719837518037902526046704795622613522312492828452460115497908550249065468003976574248101983632065210449278410528717636199216715990598, 83765818798810765829520163976747176957894188149742110607832385961840120320215924674090747765819532750760750190509517657348502335389413826768686712722772454208849240307601898904, 61626566820398079215156713364252750743471893684078882119578964462710343208606559285605669089968187655108780613252198899000106927875865835536087278862630195772116718692970592948, 55703173342988386301299398033514283300654915559536625485566519347132625558891067151632243661739964524618303676696805133452981618693141347684116265554165205132361615047487171934, 115127101780885789662141936810994213817505499699435963339348590781565917440258566060801903152892963140191176022094654069114371613983384672518897099691030400300175132013330544494, 78189725765165841119876385365119859542308011491240733299909622870407368879600949529593567417972551799873790880797252340106477388024549463527311349652832468494598913885714777898, 4032596727397273514774099486097658564190939547261193429864561884217941233965608829503656684378784324035042693527207834156200485707678125225582573103718742887189489968466875974, 24042723110623047822837900945529093077672398306589416461466331170136345556007111837118826543103415798515757099083481988619326023222442072959828234008032158236763128214892772431, 112064550000757607618095289371528761247946051046369586003369305466905515538496094446321036862203707894503637655153585727246664703389138629167059732876899561552728615449640263138, 24165887673511752576939902351474388950411609450347825083395679623171391700646171060519461508818067370763401369889801307944214714046520942990498947633005453292289951666192388183, 64293885474696288729950864657128346169514010371385405421554735926289462710512628924991787628190911481487836329380486754596515703772016786169101529313588563154968573544460384237, 87925894811492780190278700310319939659736797741068972331967200331153613494901891025841648173243460870932615411921013270725425095447786649990466554092551458833221640777094168423, 23356805962556564818101322694942474734237751529257313298033075519482412991327344933777712629401453408749760262107990403496575348655715215061305201904499551510879693434315228587, 69769908243448449698748662613453426966245935467478790561176712681021157587346314788295154336261284239728898131808037465340224525177127604743980790395087809876779154819485250424, 90276331315586041285958897465653415645191228240581782534732086699530661154097269773725867529834884743811861917822494634082016111717582478298443799404060753204870194022933311905, 4154972917768020874074332139189920148228807921944598132810314792507426806421283786958414330417337314789275027890650424508235764591462723662182548241941423261545177703825104913, 13214427116330424124708133293085963015208273772003819425906128525039024222956120811392909886152562053073849325461431625064999952500550735957265250675571160284083825576935755442, 22717012002928631368174399384338727725315336235148460065723935497810796867644216469939097461379853201500206252945479661823205123878996162020267004200973650637411609043256313615, 61944025309058681266394671043016998015231385127884551519625022970683173483614653731047250912163019775933635248094858850865174959180387607525371592823119345515568587806363895638, 48165227297566661369707338882960299001909841882826815968956436128518690543504261684193820343638192345759263671747185621134168334410093124031101336311348292204141006523909499085, 35744933741811165424270508446159999125632484523549121206385328018184444522108838878673318129900838645199237356300383330747574224645718785403682985122237571943848103669973086628, 50175766360576626651169220761167604763939092580699966630497548092760189622410494373766016123159232512009487151120427085426829090358252560970124506257966085417968971127974091000, 22996590634306750725773526826661820215910370638889361367279473667396240385595801525819173130623343221585440262132894767231877956380809718542133201629152673816234362864503883589, 37738334822138387747422118248066650018844029125623366220162962498495023255901889554014888679147969671932140198129749816342694081210734476234593723077463814842874816695223636130, 25278096567197171602216701106627321261532857107469260657289358551940224455197989102762080981088208887456867863844683588270138659566282717881958501625994355208266692159370670314, 10408888256651441875431687234675134783116993151604019994119882460842256323447051680600395347799065073776149835681266078226228268717110854959120423371718545702865032074856502099, 84993874515374542953530158026399977197537527775750538114139128133071593469949868085131399163134860664964723099400491446881617386957752196968201931537897263664719863489997218421, 39122212252244103452311116260866583729239179009834137909756220159589979495942753232172460573466701862710916728852894239645837967599977831300661363495063254380894811306688262005, 6630476648470420775038887471454244077518648076155275105710704648895162713146561770496730657120714855093375590835086804194089577067669001526231998125673164194140133572215880308, 20545452369476494685350527612046874675046150993702402410197965036626123655122834814939439464574205223155972342058068749174725324191671854378874831978457604835682201577372296394, 10074288035742807628029544903285139192387102776897738917848531586649148970074797523816625580006299516901987188749901825227803033285149984049072338839270336170741137808278549534, 35943021430694940110511658370935710391053646862269839445605586312888860058889001185700357513890216700543007708040224774225473469469412652438576666497987362556621568823057128151, 2959816562559553758095402820929644226126753219382715183087734669009932975062266588129027836551492991246636221096466954868374056181332184460835952055736122261116931301116577039, 114876491353346911765779587112642714470467739079244743194335790281339047264256497469894612883328798067959814596340980508629263077535185389819076354663323755995524619789274187580, 44900358448818161956395160567429649462570384984521288183958337770972735217907443641486229643802546496866140673820199244196795518903547947188487335751147971261005189396291654578, 104379941987112718515794526433452037482151616952887161173017481713978394490369438604971108127244263987545220356102644770071331150788818221967501855504315383783006511092807562170, 71121460663002941787774366290092576189757292163478009940979943202231389219954054213346864008113169672827659067666794328032475901586005503230865608366694363491854284632571976604, 42594813660005143894356733292718710857915988865352042714757432046876630813188418251144259757377314587744939405966421361275746885091995401826821799582080599792878017316234695457, 7648402845186961787191936857716990937855982754785038448198456148673771082193491558775305500428556025799014082270130977878187887879629459793949985045600876893924012168096201362, 28807783007181206432284914731403827781492573482646727821812350011294317859754252525675242113890500885223560007366930756163095977110441280878967690535698184361388141993405985222, 17718573950795642690511894054941703471529270540886751501380811760301273109562710006428546576770708835105048770506388131032589865254590801305278527496546614494333261522632817160, 65588319231827413180458801124627274090090923540497692184244161667203767927984761908164532457572422234025788829444469411525890776189551019744873735107248232672484604616556980236, 97063059677157467771466841269639963767239913217098128081016220791496978739671918227157091685240460815368071942015132166251931526556147768363875447754060479072054966216555713607, 98118192869282878060556431292059104855839846228353741279158747253642784930715624310930447279543322594707657776457533144662264283316106397526020344481102366023405610109345639392, 31884281706228037230435863415692248573397674708181586521648728453674864626523064815758751904382682319569778935919214512187522926059038692496274592672731923712339155702325260056, 10087274942933786480991703420962678458908748351664757899542090903839644362495966556888800192651073921108479626120530628571296593604245737526268181808544119657584668500724783339, 46096726009116732797245323010841220830004323311982023617164732797668015361996057634840190212628035392134852528157324844190777322650744851662786542235254650540704023645600312045, 20791615009997670648184674584734438027005595516518235077550711476545130566322620296228243888970484839358717426426339830788412491058470897057058061304726907762774146786264364758, 65362794432823749690268762322889863676276182690228449506624677881533438225217076337120108108045848583940898009326215295986079814229363211919142465887174782180129484600796907228, 68034831738880082822507522309395931884433585191493144196227250323092321684352478660727208375968013921313654854781934360617566573384231990718595521453065164306997905672230428973, 119956173844292541158156188322784371099616065162675560105901831952765471096671090386456068285249350278817783528541609611367765022245627378348930489921551720027808019992196134563, 72803192418658970494318020524611949772214556305978331069294472309760150608263346648547103604351450118230129485103813419620166269206875228320450137064837918108486181285430659054, 3801336771696148778039249256797130579373531574063319245908927312358014785557209118266380107655273900638832185050899456740707367727448498883243334226799170479272361650730527533, 90318626042758199795371664173763506305015249628567530396970990686552504606759502166529554839850415971592466293913353354075198109828935786257328472300222621502910622648014440077, 54564365427437115488146681887243911919953549615015795830744498573718342019786597001654960013283688254629811260820921658058675795024497951971734768707461931088097825221248030161, 59890361637973362005878252605043336818061994892561147622861510394438546117037777025616607030188240109925010400822298160210907849848129530203321178952068915471970926103947371970, 15707660407524651314224339319127887439780633415019110745277696646327141895186998403067615179180784733683326989194865683383693164416068418474212991020383609372949575896583935618, 114313136958244422350517482485073939868477840866176654319670872259287418645774339634653744267138412998200599107409464118638471355398989008580837880998465380201742937805356879634, 25047014646278754145188380011623334306880916605155125236115605250928418584482158488762028447070131227014304983899076907350459578873519637270436208761611737106592125705743143632, 111263106779982877509447172122051719764385818990120054447007958792054542853505255996935722526407311670159261170432048438804848626795293820564485827649199139216684574755955154643, 102599105722559244194200990333920032930171386999330410260908776626639295319843415966493934708416593247206758790282653822503008508133475593122311343260279357990906614469918539229, 71090810927406281354098429563926762644385757038816871184924809217728918282208856921635355527344964720429638995328968545742734080594922537260841481970631350199944436590355421920, 40089740253950065500034486573849288224543335040115587462183673983662760013434701958658339555759191663512282339438014727617345574023322980266128619445145879897619946781392659045, 10688685684649579104407208606603677796331060716882350260878467327050870308251170119034849461512552375924920574910970225809789203531960187294640773945218069416779094441127109284, 13279694985835162609343523554988089490044449626441078921749601358216487215582646761042989582889976820829177539082496537839789207034084857545184905478582615125495139321724525424, 105889130990437555741641357529853494074822856046786905896284455100045549781696420949999764323450470991502901757896120238435202949090343915194581208375880754012569593269215577, 18516394703638540534013045840412220158173033702333085198647303670028010409323920769740086222378515134521359848690858401112987672333293486962107707321823705881284557083083065358, 20705915707216330528107306397293625625065073442132055390023518309975442330508385231568027017011211764476082756636959197895276986217263894714970044052293447038103585018067018564, 100223142710734859172644752274344136073846178435932946666918827585374028387827267417547793217890846293904915391951669829843429455025707055602749543036486463866052345414081865951, 116415554106202603279218015140523894115297898759819607328385277039626791617794182806323873132951150514225094530229112126803738844111193641426204072055221888401749712486042566604, 29687473580220713519072553673955863044011344987645824552561543999079213183980823464523394713121424780270372693991420277215668270157012810947857503421132144641272720011844427259, 106407636491007287065651945565660460650136911488691757357755419417693966325507038227419243702932485911620271606552265266905712108349883038279109974514357201487463773353877403650, 106244031647982662141460692372595181313554780716594711051416983250983977550067959367451898160829187854561022945630658065876717900336081482027187428499072624586055365416087762859, 45491777750503257405487099163608755008702079504133273451637659725827321070855882156543649494447741393071509023159593330086368886760890712113970049670532436773025855796670867714, 9942158888103467164747851522901079196274656354692555718876855855371724264748288431450457918939192664927439658161824800713547726156809043316500797050371404280380796312279576170], [17463781373244548389432172287531292897142421798874936573465238419059971128503945201881563034314594715756726583528273140601825229016444811346841741151117254125421916249039456835, 85528800662522363913185196994792113428119337720031193518668997316047158557452397315409703533003682882951054066702680952114959825786277185211420871104954443666355701887430472298, 27773053577505933386813995685249730213724354720261130440207906201382803649167146935959648569339204976623801894868779619130373658962838730938578339411389663771501385840312723177, 68411968803766361894457463004396739902000558144369713688107524397505161659396677237880138791479694596587149227496373471508136257034110999378738047934344136596190350193379279770, 121784205146444491941851215434792956500625171870823148258121642691566258812835678897877903022406899079615055269274594306523406310409329821502803541465900671670529523369670281857, 32837237657183843499483293565870622798331117307764180616130086713320766849298315209386815289276151569597497774052442262371812117692979508193385678571122160767847159998653239804, 110956165573579738358652420557546771917595812608393785925290111317661880479333447254376646205110035992737973901285862652815414448561873819568006859684146365984014138403363050711, 116894577533987295691047593291112539798199845162925400446579841072066609554849993363430645916282187142987960280252470647333462997891134447324540094557650568467179649232278087583, 22335874271026088586863724648460472647780360118514331657177024562011250381448038695132726086228687326238793679947208759540047657510669764746141304337216136237485102114464695447, 109857800545358984310164937237120773946630222707906941077505813294987461097015200975822839015626901839197701291637949136215648560369880749039226604476021881880261567541619948619, 557894619061029085654173857256060413605156707228583173665194013733550678996253990601887283822381626178369828358773613780937729867246156259594832889027391545358680931325420829, 121136596327029729128590889932727782787278306035421660617190247389210045442512361327440750731150066484740149986881068011049561530433929518446917274398953758612758455371414226246, 65133883446582867729264490361931314649939305214651529360501713768178384861813544499635706018256080536772202700177753729818804589983756580059016665937945128112186080258505918866, 121893626265918448233123530634049990215031215156644485326025940947218305702368173991207824860630844059597625032613973478161791031957769946392801642678780683301580341082382198959, 81246451910577946472422417868127369540593752432687936978561515598851185638102810841138181581836657635208547494066092234680744798532754001046543465618233187888643388943912726052, 9226069585193878502485075875633595188669269852786230543380714294194022955378406963999809313438892161855525757791973667016309701570133866893401315477584757608296745426330083076, 7982767662472467574214612935008096742143598528017448003499437733634579550672925907033992032160530985428591158482453916372600131978344051502561832234194578065643850613394933809, 51439579564415766745011777243561284351931550493631813518786887002579266792085801388755015359569476522451915238160135853506649750103106806293872517460737058687705635987842847631, 43191271518321577790492868453585194816903333924619031565898682245480522333550845084383781298744775900012924105616412319352253713722358830053562195870587526824099117743149744769, 93497242875124211367554105070125353001702308947005110832516207539599408619037729925979223967353225692298153536456491027513030388614252818316516801140181494540415460473506873822, 27256918052807466380869050078898184166310673516711417335382181976899642121110159491472349785852328468245562827153512579048338899875029066188898235845891545223039952186507349700, 80094870599289466026497593593101010148239411563707214699476871274380370500966539540068824097467557735540981756974694810500955063096918692567851482939971736362603533817426310187, 46479952700583968226140235461462423902852755988273391410901172979100334071643963905973884095016322269073116958179125463420942660019931120618101007108212563286925830054844447504, 17938064160303951165087252332463230098147344888564619744124288624123616734882020741667282762244701438457194537979571555901771047075308106407838717303326727095678001619002178552, 124319420352776974174308849937633831417592928233814038909466235304932735245229426641094029094270306761956732217471797561934235581617140033718925198977277193628000113283587435465, 54652372113604845885543002789988388314664595861374125203677346002655565011136553061369559859704240911441249392569594333977940156760154824777105111590763499353490602481533556477, 107962875589956741390951944133058392899764913557032332484928924555190883952685290711118388806855712779870863779629650890854058667050456890032032248797827463005503205302510607607, 28356315463167862634061472028972501858437707765906873014879507432926721011346999622523116106231689761733978028058350282319910978829998242632689693275358719436544613154909675830, 78962101102009845576237875696294910702441945779668522602248006186865616469381644430741558228276253467360827938081438057896155690567525952671876913134419934209185122412843051787, 123862403490029849479632697245345868584743959836435580788380841359908656944680330888876156333457788110547721892288818184018983902195049405875559982871373593577648073959831235379, 73199182350910933966336722209575244411242361911101418408551612655180850963653613269305413946437501048374717699528490044214281100109026076217829031944523781926889420831635953918, 65835478129732315830960401877583772540821586613717401832770629761888415744686271027591993539131219321355270776472833357638488446748171785801590182281245980020387286892972847222, 54207419174585872790236843073124487023563347201640628487845148545359831413089347767629031675031549214233116180367455951431467015477605393136693018614879916719397051764485573901, 55382747717318907985047806190389280412103922361729029094447734878091344412296995674740310671822317592042587729444633128642933039667890048320411115977065018855408652106013755891, 109724481267953522032777498424685945571850818082405357165841218622912983663780525090560530363758760933253857052401070892674003770561422689651311883707617476499483029323141565964, 89773133560782855427864616920044836998486050370439289880637302628000270570814543441345220209894557767319791861360569516548548812326513978808233691136247547805315413478195137224, 27184737776855702144806891832027117214975100568178512983143617995393851288224652331476062395933834579810529502567992571484275060785859402492166393966364293863387813954747543486, 51413452007263003605175725843439664301587119472639161767964849484975932555332874523315635193732318884264115385137656058599303149868281050669463308656133803949182064750769931016, 36663968940684540232540973544266806403416028816710555966733670628670752458996849602895268601516565499346578683218540970433401164083231138546263481491418846012501582876851569115, 36456703298087879963558149363722457273462663718476939235283812306901872425545022546282311492254693849290339600539295823722186483633144991391452902529376161611997106050380140859, 124760544920634974473859903302462440126680479461489817949060041293216118711825331723355059430808045621132224770943113491891735096999482015959696845449531372028771875360849193729, 96380756511404058817796004095200902878424009207124067878033148444087860947529720234320119365522791391182987449812330093352629019303333784075170260013275925252454640784042057333, 51575456696708936080215650424903288099529350893150277946017633514308927800020626369382478028995796425172968093012352880368640244584458014972743828454027249029719715473505174694, 81218534395181874552674754495703968141664359736620727543057128045506545743060223809521667641912621097010914292965325708132222677169839087604354888092705836364471404509039340126, 13539544607275160793453783551740967615140259239687938847288897596033449962878941364759264086129689092815443217701845601463658044244972150128309300243094255451768223152837298950, 119186456214464354393916604002831555717243410083009538785754674374546275407289417874276398187930247081618894487325717109622742568316883785139592887033752502711321833402285399979, 99672322527427645454573171880043371638685333247352767651250413675784251673037324539576536774165727820567458304186753439464626499645890117044454809679627827937486812860435897878, 116575184727335028159422121505224342371492720282261885630479395455974489180994360969079306066557640602952170172351204317764983959044606763194636997931761001281691043478813450688, 43260538195222876260731366750610725391153898656454710422160684494100403645305816709362079721128231323564112710286326372807478159291635150094181691600448990646269238804967297728, 10497251481466133469516754803764521579669635361771112591866230833959529777482257761498144234172962632231758415580187027202716070180307194804881140652561447244549191856027580574, 74471002148881099658903859015092430798819241431308024319568339677278510620316842108244584881255930380441985772591769911932400364332252004971043100530211604552991882529417554909, 101331739140707409751343689237198186659419454222257236326413386521460293182969886052512208329779027149004526254131593685148805826628868054195452366475727898454932687394444359264, 119355801922163848930424593638861676962235401762219289307807595655206829018687472933337162230905709516531054272089767626953724256994656257235363495118213466422463245987925845505, 111049346743730596895115284701443918490102618913993995316128145593408704633614960743249190771573317111562915413242719613502252243524544683199280611921245424470663370641048073918, 30819287483506913251398092518048582249121030763706031146267820411699653601875385519720366900776163170172123738858148653302429068022571361032090591970089626782458376056488663880, 66041800715078347603795749321171106446021633572129052299297186710022729723238606718964079128766163405359709485018775152466653342010100536460431084553121827127326437270246322296, 84575754761025810031971154614274933647526472756049600848008637725342416232431923037602106187729365070177308352160604259810700926218575763725554138548262848256159534359681848959, 1598659805469937345361827373075953319711305081797058755335900148216869858476157523929433989720719586421460173999280959842924715075017944981778362263131617328079435392751175727, 44879098938352686452645925843914066129552188703850055679379987682516813361208089331310694921264134277687471546143849060549741066068673558815971343311116766221822479588713995879, 73957800287279033699258733444357688700921524442370893075685746657671195944604877036832640820177240697401695159373930111239289447108803670049333297230735339827453243427908337154, 91998793638868150613704986252177881722976605960244785793806378999499593340345951620370663642690379754086949426066923736222637251437358566233669052547138484845850220615184320297, 123153522555126744878550904394459206321371152999143847990852895992884176930256323009180838846683600575756481229698081954181997091048981391290684179956110727933405405780051372690, 71570839508807548056860117634139089615563451998661511345406419853577562880901069186164542491293195737311536803612172279552126405956491100863511513947334233882861932799963075046, 15795622704806209120907363219830796260028427718599232794846585754705988932487282424167053265507380741535599425539042657090729427065590779069815643080657432497412829171218294774, 52205584669015221777035123254352885048827672748227843430351981946232088946605909442304582468748166687229535913560702038618891234040729002601477798425392648618798712547386112855, 43513944119438033999472996788537213783561524118101387366967126617115550319467389537075664574131020143994608900262559795668722789186622831264185739801873609888615149720514175424, 100363425055861849190641651964102927313895753395092074896011643081454008846361052192802236440292440815762519877903970834286140413826016938002776432846570235952041110070288238916, 57275825633124770787467655516957994829619288233786833466559929345433062162602445105262641946501959173699426135832366642640124915958774739771225516605374532178211363255932352165, 8431816471714021532533278309082474301367376098844385659371165313368693338671464561787461257660695838840769376141818213265281914710558141308647865518385829840086465761177372418, 7836775381476986723929395227715047810265407882891929798978839728382839347464695978312517437765874643280062375100114066215600821243821781032610674805986478300679101428700448047, 99224202317164730910042135275919620125615105684392255026813585264559144398526514210207579434286527531197412927927201062541007602009876260632824531734413167912024606528480035010, 19136061432402886340648775678475405647423390926709085394519173995701798932217060762394201439251071469738262681279060230424042480100736526392805797941046687370160476343458369867, 14189319566181219826628885499288254456348726913368149223934358761181006302616552958444683572173176268114582770462094171070421931701131350396187010515816560876415070910490443553, 116224432533397969268661215429344174067179658963176790049109046073357425560010292539188709889988496908240409771081339982253977585642519556892057163750174223515006901147347424420, 125881572396590150288493795557689126232474938661120968181158110573960605377169670979391035924409517125546133132602366440615700925271513768629374009678208322432528853213107845932, 76202199689149073232307860909237795774296306361045573961774055785011839542473327334256112157141174065598831644299055927315583499675466615536286506128669177687619019891306059762, 102170568861646212140477405952614980026889769034555084100244090898915723829857475940785127356611472846657467568130064535086847717005177321528622682843188648562133019172933573019, 20451095135368350528200300433914185120579445545952656902816623596206501616121331737531710507632666330914101235044520448351299646190249044163078780640889567289286022883846722334, 76855887099700680594838703181150075646739791841579086973989345209520365903530852792931115242915655891707909605006924326862478500772093544571371749433525990407513498751254844563, 21336015944880875181803716554621771834541467830217485563751151973300474970108856493847768014952399154035600033993786805964176957575697184949798939073300079393407810579961093792, 21984276528988655852213837982316455267507229553633960109863802026303789452744425777543052341993105789769376033561454100809706132305608286336016551391340529339334145645493309733, 16580729296177624990665157198229722405004260584072334733567760401996876109247205198081385321287859216596702754032887641803239866057840683890134178014529249207350834860972920294, 78686721819179074179239220648864843708950444375790737650723235212028471548092514690501318296941037736895692651032168306773073024143447204438107926734520166820997878250065966669, 71013493982987755061482706348586601760427615441793228605702705073766465595377945643200698082049582197367208574720834501966815498591475470855322237926410311683379655128031018159, 92539756469030347598679907133900848533717782490606673647928608485466025164049877898770637624737160042701606156819022322739383988290990867764633400474680550397678369222730417072, 92737586613436259901047205482993695698513944553067759105728548658918567088185134658559776997183776685560271492119410950448804248151154016647299223875163267317001162002755263477, 72742451707597492008547569155714044111897775321701694281956512912530278008110509645070757039831140180980163339311228448699113251476535801158570096577628902490460932090696451183, 93680890340410028649936477870820693951637831373017514627487821031748771564496528591631486276126314570077792150703552701736957570647216660066270665195503577600009946725695418297, 25048767087305498455441482949242378462830268874453743211983775036026480451773631035620002650197358048556968655559500340490801870140533063441867826065780641715215419849283164175, 115834011862355201353640859548885604510182264586167858084527531342734243808923478185585200802190760321263762969857756539484717222365053730628851896311957463669917768578223529233, 20699031224347699821790919200511861948570993477114137973379425813593572025864997298247797606159947183125499309851615338042785933885875663514175600540442508769926702443522560284, 53338492910740123677516003318995608561473130041782096424949276049955298676535426778646855103341352731842902149476997738846835707676940714247870939983297966413509197408415917484, 121725292622984250665176510607683018178608433703033636915032046958294029771492028998220380034486070355458490502964518978818965265119470851343154310478073493160469148143529670840, 67509484999953529554696990020411163908470554788598881896269248612629810453734467845908890140061098773070787044717898192116423529782312046253031376996350271946567353428532237583, 74232941042796488339626370203018319061136807955697047656833879113610521530792955905534973419627215261336125903258539515656929357499308851793740005898844349996987184704875280425, 20993015282214834138603949039172263700012675391612185376595096611121331374334038688819559533596758702006733914714090497017027279312011652510322895498388612230967593514093140086, 36726750680484720452736094135871622586698936355740079549656882877639857929822442553768453311386710342844205016293653769811419854691552499533539986354420555168107819309663067095, 110886679428259262102233517698573889924731755332078608885457036386012376780550307568379660142900971451999311221299083838381597762103213867049314970507457290900018189028179885278, 23842575489015956866073905838070706624904947221342032177664426763657634625099456072528279696794080853193552260666489749622162628282480467836146901070951915130591350401934976555, 320898666213287842068179341046019305153739505619531451956849643492573130981729424680000462593179463493510142841883953392220465579516472348479630880263162683970335641505999381, 99937264654927018615134404115042426404063796867074535338812586611240209724933254756278171782588397099744362965383083300999079601146581871556513328412735917079070758123940398880, 102702073876301330672688931157459308892963545911442350863288005339453682346515838295306291661846933596044083682635677163064314569477022533947454135201837246131582035092137815748, 72853402031613167248103639478464603933881173089782918576508299077064767983908213446659951541088114902524159919558800878365279343335045981874746641676523608664476463431406047320, 64978416019204966435365763060246197697412592784616539728341604135644067155642476979992966743900911071941948769333663009682545032426842393847960897212726368469319902616750710537, 98128056804982562139624896719984445206231663701464886699681140101640735140166637962004864364212856028120489767891456908035848410799571034133074580905636110548041506424887454273, 89228508507889222830995215317493762650249768597121713944269943752875731670970041169916774268683003064688839843746099685823521814048834670341397409716587481000317962388038121612, 121246889144016055856159924715947851328231159221906724837523111110760759283524322820627573214465156587454728463773894592181415043844696933121679988554739625592472621814149716122, 4209520349936889639376484273210874814009973841628651519739219939329053244920680491779114421299293769528262783030836843826565418226201855970279847661822437488038877787063850929, 52976273562607611650526514061589227752013422114942674730344991570562823199996509056197357731672865931124494179044629468202869999156409165812326788908909985978048846106385532650, 103267623391196008582656585381982534079835952791090633926441849517588835996836522309521381620028603054668952502083707544409075432968987544196339868254459909507375367246017178513, 49430693506957577630262639966498473492226468838937614396088592494869711087263147477950746864481600068176000975264456646988637923280417891970007197423325797552456213697243909461, 45758751975614146815503757266760941922648797132445138565262662619604119998725722207642348368456026495715997176267967777835668582354237893184819276962372157663592116875374818366, 6472422828461038504868757409795255917169029528024754280252054445295197643368397292526954301407686863546491862683359151849689665960887800269166561609553364390461238315421607256, 109209350535789415382617572574799858067726582693984840327218542991939780013034688454091676984560950936389083920134044063803057155214803976048276104918298474214192777401402643999, 89160504002278906181589065471601800250122384200273222753807965667558503828335982713344685156788549584620181303989262066485352263776381515889736414310306348653911613405209719100, 119424350467904522382874737643527555962009169119737571095447880590412570289432829806220943147528284016811453828161741707051066546241503318124243853413642877064864051210224082548, 67291005517835896026496196877828196459006564314359363136857661453802894161640591432357342059312618045369043131917933305072179704492484880490005263374510750924563638088689885316, 67994110124726199704396831496328979459841510036662953466184836239925256487691308814724248038324377072979206068923557649995125682881078305282971043798201272545619207553614654205, 62899183704347428205185060957974269735959681616272324687549794323430316548525617878392692219091978009171440661843208399994902203131979779800170264221495933929030715146800696375, 11780216114729467794284611401226709730393648946032360599499134294535943756513061642955818755508019377403062579356677792181128924541700303357730806479287600999587400498475418441, 24214754605752763821903986048898289007856859578105959133958600203371259928542274258257377640321378190110840554616464164962198393206519670466620439838966213676571338613743311524, 110113269631990433659380839477770485449966173697583250678431019473330737921283108563246705021879300480865744177102198980234324156561951964891989007889901321932880382425029026670, 99760419188101778615961877288522611698328576710402094808722894022245039352174623854839152874100176971398288414870831848247529353352528868338743061625323766496279404654097717027, 117845108461892073091165699175849197023039754493173907388736239694249051990335142197377654657177981237073342995631376650528801906850023489836429737639927607769129845499128205876, 115931549458735270040991051216730549440047100692839338713901416362534639851718538588997139806008355140922947303304069516239163392788596010360321989116758424058489528104132942798, 110165112560584219099163686769582618314373251856779444722866832245552263158783895342962034548000110071664773678484969529966569824602771903400965553218302338162132732160653425757, 34268484744929158918389672267389358992318554028192747382345463498698266052795449136079201678900860714930931536160051016495613590326944419371820705632132436223383464037732250540, 56257525327796949475484047240368702680380913660078779449253627780609367689191262492896811980994206802003741016406071038768835629173749035375767070304019612796202259531356479149, 24796080733404626165537859484130301132316424775285199071853276320940869506898220835479795256432582200258504690299995371781503194392367799762982132677080254962479240287897422673, 7993552030419609140188324981115674426861517666118096617389475095641376170035796896976695287722739079876571540295486172038386964342263982358000677712745830390902605682690342133, 99187061952333766423812488109610768192767025835656566518337799245248329908995411149906380291576756941608937142294707838421278792339154432213805662357132109898263456388966509714, 16732176551149831086590671384414318864603563880570488336051296190012699004315669165539212780617861340474653631617493184412854044345363247272349058206209304731892483854861694463, 109598683051756887797585390911481093217879761324024811150260586326406827813216200669593173248989411630694856793184336484091844910606791162389626459965842164612639942425637519824, 66840077290320212279177391348925560362736848746398615399941656588523275557755285682658748820019201281681173877135712166400348791434245802895893776450583814503099655878653421620, 106950403171290482848062210904041400956725042850771654191013400680456229135448709895846436354874922818411083788379063430457513679844192927809870819687934334160809721113175029021, 30430642612461842084995100646303614086297297925253970513737611578637354816942920271724816067779315899290652921653602087964422647113588076532807438324085469250417853312993051804, 16985824833179419361172359629720780963756488706660271551992987101364622470224225384627623470512202241727843305303399850172318034414904179183929837933144051997433241746067881643, 16098809840386226547795871299135777497175535660590499831895179648338376021376303710955164195622540491805887220523953711390925637561661800555886001987567680221154151503024895759, 39302678432699907793038839688687730256274630869775417269395758052742506269955128368682645135548518792090272868249066160093694377951897782735519780918113708359755629226597996353, 86887842245751956810144858014582400778565796579801960491554891520557322128790360330065023805528547564461740763577839217095431243601187468192553731636404020171083882083200075435, 37591924311408374616557060274888498483682238330585164139351958574154399393092386598021945973117781099999104910538816010213173794597261728219423315232771264995524841438291833902, 125183292405890778313088664228869329224584914205917277526526346835507270939589150267689166436124295260741043663956044153344901333813274530021240645113761434185024553271706745700, 4227014893766860153277022702392322380741306854112778919440033432255169641561648404495887069631729489456618348775628880690349247314221576307523317893386473612802451862359979414, 11346774790363295708201772919384690349352395669306786735337317180330637861814864714671177102120851185125888417523760742375741157714889407340107495141445295679181087120178436580, 32622569552440928139353363106116646512531999903001792370579161527293863955173345202706206810925477461376564972695747019971686373356578656519634667276091984254085035047933378216, 23284441591105600426194560127789614733107502749009040977493140342993788335427353977257242770602010117475952950874677213056671570966791588163460962611670500945857673804635635452, 17178821250623471363324778673126386319422218849982228008523476388601275451073649549762105682563141462944065109947239167400889592231673479308850719394535980344060030248176657907, 45397243715676334660606466546869813364333658092742128578937046924420699257494675597207365533077631012009927863357528756681105852819810947114234506785637217722283738795723932051, 38106329031233991136213798744244091465355193137327755690916797224205283858989334763839525055644266984141219196334985055563345845191693263622996513178101021458862928473140651234, 119922026036701930191603660266985932450763299050045161209516473591767263152784166752426996157488347873211132317698422051901661372885790061234687663130557149294540598654260839305], [98443399822861478061092902703361205356873701131133174456175121760245701304085322182517255970829822677151717061562445690719123111245252059124669525129013430719456722247897213352, 84000656184066001077679796125184982374197801820929817620373340813778234518790073802076889070023620510193094519862423591327172380180723840898406142563415707468171223506935806514, 100530114211013431217738569056605649408906692439713022174168873787733425537134175355770338627571441522567523843461418325853678811403896320329401169338695725186171412831951170511, 78920985500355522020727167389519934040198457634668388900184403412924036735329351741993734817572835517934491537660975662666288932173103753273837201360655832431476654424604209336, 91339993020498057567927064972886212637140255075375064349113774054280470413507103657582464695099488800633760505815248812907340157332969019876424845279310912668831189667391091858, 90448447210416934849305962291422223737790291741575397970935497294526464330095466557388789014075342330012959330303956573886428103603996883702932042015701749767964723654411050408, 39701817620870718372504673998468223170865517033685724947488511920344336903194008189302231767627112171124067146056784487166783901147368114785120757234062549995069482139482993102, 105157387376151352446355980357951727018926728295263674287403971735885582211537436177733804387640229400194089767480743576901905309043948253700107662384782798474431218403882067834, 89296223364733061107753457387023524028185614507441866752678485540007823403719002264294559622467966688918162693978844320560271619720420324730991088301415653987505739700878550749, 84605033687981723165344949157318646099726060895032035269478017200391770148299794004465281345413491192572086861692321452058838165793813657778414735013900931231701803883130454668, 70891956859567459154937190168071680232757213869078677468631592224229639785317194414038154550878077038474677935323747581587028982598579133980163808110668866443310895847694235702, 33347947569110225893368385792262883854534643578222450671257000264991728058851172944089859746991964664684953102942633311617242368694716074733757249129543800616837295974257927505, 22637666613959607315211880479331270696709522632580521264482813766034656557315427927282932119490950202430758492753012891424709642428240055742884129785099206329578413576205490451, 4911892169763013440851726402995592179616356615519753966656071814898444424107329472886731302428053704392866714987769292755250691356962722167798384875700597747611910107118750452, 10727795302954326497980301326575506606630059272417006147859446850495781505486152671689197255415307020005353625518992351904570291244800011627806441680440431583390656385843875926, 33517870837936379681400065471320846849904600354478054949091766211999452233345016105467387820529129549795622834194233360730268569084389971106341005920053627595515449788118937503, 84393786303965404653127162869114643551508224871032621159741785576746359933647314634748205551382191260905484884910530915604526785252350051205812486777378254568381845341192179284, 111047778877406904616649780263220116619804057950130945701399195892685056535856679490273658671052740239154159889799796815619334946268173802959223662051958142956881726446099371861, 52968590613091363065090677693443939752555719511932031670574305722711401948449493894720162354439831375610377819254849205843542224260863196087669153812409381698669972234110281963, 59147425391957233592698475070470388100992930448614089257848354513615505778406416106255603077688914910218582310398823832031866304832801772612049065284594941464821875144612899872, 65854428016598979255708298459054139199912752626663281371279597211336397255319145739892008485073661877245244851726515772607408969211729450911542618547396766100242305994019534466, 48169602414689522875543924693233987357056807932146185204810364543868308567625549140634712009888620749946475497767505075480236514664431200577490998185757589616359968640332527000, 105124724593319224207781209625176828810062435729867157462123401921571437011263184037889399590475550794057457116257736339244732778426493022187911814157118557822002782853377410413, 69185085928729859950182293149622795273607754373849408155405345171852195426127769258542472555641878609216914479270333663327356731076644291053053707928578758588339193621339783167, 90047211396418395287433843478836295959472722439471446992811520212524325361294998210560922538769988147902815647955968127336541964786814916685890074836011868879885287252029922760, 54498092778504093271180980106637599131558414449410273188942055506946549183049987468364936848556932769220229722706881371323250883566935453887150107326067487864267954718313138946, 36944986185347643499952022880100456008225536616639584169572373173343687171514405387648588279825035383793513632380930645621592943071470266632720004571982923050109882636045277145, 115994854159448888422952382072629985747314235845014241133870072803740263800947775901551261152472348043919087498821073044955027265529839255943897753096858497576162395716103286678, 19281941190772180956765655444293649003965471949776971965221419671854888157283648907496862490052597641209677018770025222311782634961493313389796705158640092224418972536893730086, 51367244928056914857650977859851725798455010408998965284414736632561869230829390474373443025207957451120638252550391973886365238717054746188650719190252947962382263370248492436, 61853686718497261058680850659616011446957204618654118406278830942180512736941359344543283289492613393116390098506080898404296710852832191678286359278246274535535579398674349405, 75649280752288654468471057981803555467496869533748859173578652955515245725010876970306350101981139989733177129742475233975102296453431564382161147303380835850182046130354814969, 81202728053528056446308400184078888581046250924834466034677607573213489075252616262383234209280421269377156300656573018119874827331325834244385007975801688762484748323167628645, 44005879687766456748099624953441994364257220284817414512557624670401059348829923006707660791112138653100135378320422689436018119912308312851951109314680559275709951000971476164, 102925414113730367870783997672594295950753958588940133394795058013558607403211587610191976879181537177711164616708394818854264875256639963958610630917692376353257621613700463715, 12315073526209194284224514834468270412063125894271096148875571783129048543956175994909299156100936190873479506385300817137508910053861858917175573042441318754141334693867256509, 47464625384741415659932421064968542431913323000912351677419001250051907035024499441485519947677845774612863301352366514733847372915724907829268390470237308534051974111822972781, 103004967124614972589230888089564441365400286908430501850126271942770138147028425342144935140472241460267487010538600368123046406763608277426664124610500245428583682176603117666, 109266263517817209064495223565570613438030066083724749794535103492900048869285417399499128078341890452994634213638443199667526867645850765396216987341221456588280961919988711656, 83131979901282992703232577253456882349288846201368793791242542614929215665256110119114883523294453060724596471940533872142176461137127179178543043517827036201199950215744876740, 23243272098429627330720215949907378118796437444783491284524113747820199954900959916786739987650794803868001287613003003590927183064524735396931405739050391610819710237665856752, 108483507939199331077040666327552138044879665595760381414283015901103917011544613342580264682767609867723429842092476433247494862393460881811597140268365409968020478887362447270, 18663530179704561991239408881482369956449930295027192637205767231627385336755398444231660096090153378343695765777278161236251762183625594304346430446828241811236153775036608963, 60504552174105465144157294667504118112880176992339979578404134254153546424357648531341163708667597199533416202923542935648814814763488910626740302773172162892202858083379801845, 105015522787014007746085686607912060832359813306577047877702282794711842507713562619379859553843039185066448331402718719240732920585496365553101497973506068340248742030592689748, 109085524587598779814943040178544457410989831798851314650197334742114496081029912322740292160484286289575801516514183785202123731618009444925867242261039381330242665752567031395, 59045641307203369897701598516952150265587900629208654091397256198683232200337551853099496630973953842405422544165264582962957227768448560130697336351937689495276461846031971882, 50896215335089051542486857776242020308004854526657014945653390391442222436877290159730204571970596967056166428135292753079625947102535556203328859432662453456850531659846033422, 109948246256350165148712294113989938295442470365427101318325768879166171480703505177937021133770864201261337698070290981154823077460924202343863538322176312966099381957061736923, 52180733792728711664630235176183543420905536745588842564191249562684487137616657931249214953773475383051242595166879685649859890076305682005952426502017087948832085865960825357, 1381522428658534772588434808081024296525779907851154030911900389853748076999989843324590528100095212914562624851002851074925403168841441681101935290736013861540994268359051271, 27618203436581912165441868784233297202577555326163056244273565542987744230643024750989805644967712225297571280934193339267491622799512895955879186474686921305974226170700233551, 28582694243864485668028162747109967089518545412142676724795505162103192650609517198084902457363928203555094485846496891456990940042816603529363659537547127242957354735986828177, 5616568218770431756771695119215862320155206209154252026179938562185946294074302124102110626942638915389517065692014345654712874607363183901148442664712422923167993700687105721, 113897016728619982108746999204194047995976285356699655532530115484901804310456816200515036850086336564936584495066078723594039569139240613498567446157057612292609644934950551545, 5893850071295152516015557589108312478192634607779802078145172221186080242925491371397461901007535170366466100148989518907977419837652268002046732420821753550519493407466331071, 18629967065692817440007858735121603840130501765922079037874129791345862568724103083090166052606454062679798093658362926742236266195696969954237899436136385792594836848456839491, 42779538542971728796873567328132723743104953113753565503543808294018946828350429126398307719316923208018980397260139191834790764122690078321289419574993768918034123053352156305, 33548358334677454549617722824764416876126783312736428062322028775660634830651747843626193723217058108884790894894057095888147887768712236630706451014635063775079352581873219846, 46261388718608766210300100531855295277734865838540029413687722587837873122130536368518810031410556888760700831311308852189595914969997456423412516593851596780435044583437209264, 9419728058690036827614313038275246697870609647841580478951086850988195354486986834810805670467754862193662013600835357865667115064595264956801156622882573075325706146726939449, 30731741447263523563524943096085275164767913494528055735315512848276872776586971300162555513407916572775224673880216861907699647004277567797378789213610913082535677725924648633, 15668272940367101310678501061884651979268389149626538873136844312715710879599273671396966921624718313500477960772783567657965335926077192581885757343839333935029285307263033876, 68141697494026225249019140449903170309299401064854083308995634553624994098837883414104902327014854873614715663310468035983608540604331575407286976123825856370508821062821193130, 33810010395628384725411577179609757940767036684618007624151174374296576910537072085484012354247413140633867025876945722875327439977923680651671481874803076883493302616289621806, 91333393837717904311263483739292950228160371804140459352505753791086117223046681371251456006468093052105828883568335645183594141630614988575283757998929183794723057133105341455, 82093441372613555316755635548838349944728759499974064850343459886366285173945465475900181805537988859307070549908292979055538469603694169209075155747913534142383469752840181679, 83414412514408227625049369547541134891163068944964581961071409767605707591547208165044983082986807765088052010657970901543158434534264513483007381638168422956059907504610751108, 118778147053201823936479526532230670895310271963133636113813235426406267517494334043167865119415708327859811133993477336687640337963994163605741620323382064971717650672455486343, 57592584183268260347208748263268539351933803238701014232495360264240642723530314948735526240287045033448475081724157456484733143724034514137897615674828861805230157173425976111, 9693376148934271235819042377904134554444329972008197497917529010176747069072761230694838856906358575380089020520496062433704437375446929461626692201901844779550974026433666389, 13897990525650063054151240243172434945699196535804854228107486141127128785763593102312880431923317880662779640183545739984967972594663829320102200154019417705626407551387452270, 35074022756445854480147459177611560273479941179207434678281810975260254677353287864230486193064260945737593694295119596351114146287175657277142796882963702031248698250940505209, 88199077920833151952906815139639597648780923786952384203380493848569433193992833972696226877835197968268543335803090857677930337336263323590235028963187206638236395080543459044, 29868537652474524430182429014511334436456283778878167075576377522288108403061203283703323425980285433587165765434330425506045670573324754874090562412121733239099721050271570597, 10709617795491624106578306335002593758384481314533928762402377579419083699413503804347105610403935256372387181950954108597906512535001006793860284675183713931375455917261962168, 117212437795947327622897276177906831396362450281519371533529291475292840129325686176931334099966616106390040796281441637656129684694760685374170474401120505795823436612311854899, 66340058238049555693155735474482579710225050607606556750100848048934585084647930537207593958357661024234936183387826287526712409484159773450219370215159478524530743922472749652, 116449492427837416100437140469791088082446170297935135211420537230594513793861545077796872958549112610978434079512374256962684660157429103528902610507421958063966785388280076716, 37753203335928249792561703055630894935720952624252399632256059654844143082886758492704165669848488983071649958290139132193656211198127498344061238283321593345451966192796451195, 47214392132120657754829667203147065955222671937799210483694273974856965566027205773824036779533868998303721344656074770335880664073045820723145936750540687534106207053457324039, 110122330554348344861983774438343191136453359139526454193473759691662367311527265555377893158011412437488341514897615060744996023771357273496376799676622010709131888542673281634, 35292027454118379675646997854043940756576448186370716680512503125053674669382537258790923404856378227098365678811249604184546526205846255363071045530198685509923283501494863062, 114307660857073638615581496615968281939289987904830515617268530958481645551737633453468602058627954812737357174885124901950758122817024930926396709586904250430939092371293144738, 69201048831034080300972962986470088432635326540986197849729326979665126134317455941667033444620123736106731048048504156937836006216403373356886355248090895555137423320770608431, 50695259243871343162044105415242237345971380931583935984981820267536258186029125262948898677853618539911152545273427854203035037925613532103724366451676586608793846260951093901, 122293589461403292802027630517796615027867487756377855802137555841817056903997258811831480398260920954438514454182280777537388454260183778174225460180535869478629708026562791120, 115467863137686537718708383307492610074105823480538226573139941294800087340552319835394819935357924682669559743109890811549325281375018901500696235038285468692969919075861087841, 49747042832073181796131173464925293486315973194324689987712376010385782581718669864668200223320746129222261287695541345941063675349305776102714222788551800536543620971445121877, 119222302945959048498114259700288955350744255735038835717579488210610124610816138433536699433710293594597108961438908513773869827937045559715888565735022104314536135052922761547, 45245886174850058525667438944850532715486089343547982018639341615162588750551256175827225303876329139650588065666708184261393788834757648605824691285089644330925728193988468476, 98094308009633399305330160873268988130572410515565374270905203232830365943634228929879410212772466392366028769464244852502906466536005346344641320639812103628734103778791102804, 113488010137593681319240896524579903913421827799146742742979677483805473931197217154315914785216928698344183686217673035388946158587020549483767340714331035366662336012243721274, 65551997521746176314940849046427632306602237383554905146914529350590757699640726150910247065226087811614817130377314040647843013587634219359170343583528078067822434665412062024, 110887869938319824470142658950097610337135543534766468356849399553666123249067922068260729210308539182899153542722067994397559635447390206096623177952864421095406868285876764393, 105377925958700958008623291052069727387124944507701811478265528221365366222936618538356743198625394659364573603751623762118578093394951260790225251986233140202513403079759205540, 122260594754375658109667789683540132667341462580223270299439844188431390902421928022311853243491922752557175427903123235535361250838489072325579749553055471248733442937025167637, 39972634670792764559383498574810749475524554135894419895675070925553082375083772593570072836114049468789637793229896562377118377731481353618068839227017135078017210553373518826, 50586557638241656907548440787976455707316946308742191079618080546453650203374672009214892378040249515265243454872701292097349027790827126942993902411398375435833940557857836080, 113948599746379990686188540848420424087994802754021416045773137146583955291895131988302750248423670082786309209109984527016056089482658934759309733788934459042677514233289108032, 8119027650318631365421216647007176608093517614563364482231300275769212150347802430616031496257480110919668397382802417606348247435265137089267944436494399538564629289966140030, 72708497292267557870516766936146315648825184078134514070038149914768741837907893711627575937726322843495732597984274999304557339166922664169056378941618274078640861606556040594, 44934880002759609566392002946887272506949084660230479563497417168379858287676212783635675879326823642221009624976749128947903721792461506876813364436180966087353947830635021663, 12176090242424470150923451515502012849254753734023430570062048073745416625227004742365345109593242849462160076863815833319008888452707645745820462832805381902763712811417231430, 46994964176793571165957787437978719540258078159691212723641772354600178602271818801782451077409367486869732489257813391757399433703813894161339478968885633329564988738457874893, 90249663787138178562665964051935879822958345875426518964700524984483237850163810993683224634271073734568672105737183543455898905376805640729443993404924057564013717836237262650, 59357595794352176884412170947577939197135732387249198359125531205008191055204574682125492515528391601488843748912112155204794507446741386692342527734631939410758000922843477918, 105322624292171914266606738225105860827551249598977255234720928410898747240193757514591230635798201773235001143207227753140855400382779660644084923460943859248595667573947024497, 67997007214637989104119745471787960672160875735629661348635011748821915339716239207210751255540717216961608005691483454178683786104647115424612514112589877926947383161712092693, 7943828261077192972388910138908693618575148059681835957262041506500892084638370291606549598110243659557454031013409948295371892433332986523006853936535011096286587417016404562, 872689491123598067047862287522089646756954388412482190413860980168082429498309349634722364427773724858730927904261624525842836265928817086225444936162949043334740098715167347, 18528093342345799163203567635108543907927800093503265682997343785797996383208503808669434631954770594551079242604764776474819602003268461317099614245538593495654160114792151597, 95648468849075018682857561742558912123340019646128592294061148842252538247498393939808017151731708197902769842495027839293712677431104081320377443366585035474769889006917024127, 79077470878136374483176859322429390392609063387864449462647675458684113657120741160622878065585774874308299486443144527261742655605831013684330509052291242885020957753954940113, 21562651976990895898660480865268299943050539212144840802195238276090236896813444046492649687583545025611464672912231778979762649763533486144840532876046949713810914193628115965, 28507256278267660784968791396715258043359301381195432253751294783558192411197678814753593736953159446942218048878260471370409178549230826252440884551772275799987708738433668573, 75572046725183508185658692321152808340733951306496837546621776151358597236758972393045372424513610243661966853474175614629934444579187363680596080896717357971387753814255537384, 122177603484065923526153013812365439969583539160520111265475056903462292195643901195307983014300088179030779967413280892667374095811558026596084080949141365717630458400242238331, 5863209273537278676445533446334217743722349761079279228400617225456075569999100586333596940273035211743693542970687191288335862799137561869117034933633358871862269724582916580, 89462055817452460674121005780566920816112326137668152790805394756837612513658044752671626199679411608359270438260368440305475610294954797387177040121821808267987537676641430196, 36746063222510639276831565543661727167436218087590058511979763701516290815600409814927818070654010090591138500796807308442942876621227793102568309126727984041737559236442284104, 47362697942349260903322353854795951482057090938158416291043194763633644693201873652600206267925052651268131350841792279508849521039576993522893894628833487186186949808495040698, 3002535209703386209828737989014157969784945983164148484261335272754364242239909112962951710090643495413738742709726151679044567453047959146297969669423535177827471703183012139, 68509152145759056033383679150527621997226503366700956263631381115211234991378189661745194656096046319588475352164465611593089294218024646984142986899916563422657601783774314796, 99793959435453348731107169523140753354889067572098399005157587298814608527117961988070965522708895925300674752453659843988396101950294330513275173515502623231497562148537954407, 33873729401975703983889151037013080154792226223113251628085700891454740920423406449693454374428031347021257264097182763286318158740467641777243669608771426006036191061984433587, 69478872669193306696375756496899752386701016282560364043506905498511148379862667497876882318644467921826954166197326681921571552393368261217773624513727611112536926846352109959, 35621882905241619226935157119256883767297430008633648666687408881779100884745948943409649842207027008546617732853094198740770532887881211992427692479920525964846929131181986353, 71138433204298496803240058153208590730759613974909191303244921798176173584934499839939403525140894718172757405450856957564655858221202148251350459461726368590607024001465621596, 119143804356371339965575342465111801667744606337401838748062424891924975337683244624288425408290099602179041602230104292993221132525866639429746402431218968163475330069685400129, 34019329566932758434320007990552186300236049006845035833667841834225947617672434402925675042331981538084755202358621211909679166672351261385771105607647082086379419165112314253, 87676211608883413742632554760979090527480170424423307169738440252482037873687618698142677266015097704002878437355826112518715874074428667271067415766893050614256752676733717411, 104772855676121897052506110182037434025468116364914243371803079212280803819523682901124626795244342744209852801544109105568615908362914965238067780733431956484977957631741262776, 78296831356643833458457891397988510008604479601345153751696527515578846200255247104772048245191078453874607904715211224127653045436184257078802663926817050758781602300770928568, 17054270264334485625489792801160696701790798555020213494362217671491610019016676112713521011100833736991316679297226066926224664023251851732842895536588643174514581681521743686, 120372193501037803119988633063771020347699762995487573734116565761334835394335667772893382471448692220651118881247102206913929256436692573223658415520091775683370695371797015386, 83293029843491587423728604067605479450897812219931487166918795251746964137240565851818125331668100468873014825336581885103119171094726214372700754462657589985750568758174697616, 42301772066942033733569927973345502715916717262122618952978842618928667225198775367471113602723113808048588663818720793209088904370457095206480004322131866227225836685413058772, 112526041423434067937165601098506210350296011753951159664169091852733724359089567154236441326139939508628179797699420942653142408417854571741323338565235074718152181934177700047, 16727810655793844600432455171905711310774035911611381360469222720459942597205181784203208011543736036480171554541806620295359336500627594184013320019145282204979234213047040641, 18331039802628912829671106679551413253611093384201736202188415261678277477986467933601730351036261238165568388697987874389776840911521926348909384361274742956480490251353942541, 23940294491896382978723076922836027171383959409703198370740497533301696410455987296976759018131753831875063899377939487685268612565199618461859573207894742420715973780019787881, 71968301472926282644079971700629999509709952383231219598957087877757431996253293731408313954473203221305491287066454413112898711110057098387617627593842153224493357952794335201, 9879969964377229303464318746838764166146402009196611093183211431037708321625858200988430746309641113696431912378099610059706410974598624930560549639133809767894498810228814799, 73592694677605058273762162760885157175938689976735041696082741645481320472262747358725224597197558332220868289959011326011263883066205147690069615000437549436565416893099272737, 185287979886035012489594557073920361412449191023637249831765820298642812652448630433349160621977091998574760669912490202379472194179845513389030941399966977182030962010473339, 99599269003834895544099106700293021876709990885724941333873138965375282514976187812288733465253302323390234916986607931775867981204261725213234195330949484974706121728200066166, 32224505049280846377163272692319536178272705620082438590849475461591936723403983373309041996854147813550751963070019516008064418113945081673120095383609786013904582113210056288, 89707543368862696167704038208833254639344575113263781734315156522361049222600002352175964247597543834896352011310478578936280428407106073107676839055903814971836679758821689388, 102916823632456483520400318322636863342553098033513929179944307158859756098929653551534421891411821548486525387980077030020876685484429665550507600703308451150782843341295853625], [6747987503895120938086078525906759234199079120702480133955773554217843148898047196821577311727329457893713489323325689387274211406488729018339433610424134699355945609032159631, 36854626005475210918241921378617284594287405240065778831848952503443065208356122028272140644971924589211213115460117884566121070625878204677495022159276896801433434365653799639, 116705679166348801531519084163374363900107194501732724779193835494794661772004190963913808270443877641873672517023570209029887225464902629812685856723124940003119765932005409554, 82791873291030124832792215921553117176206701854636370798685916817191426052455730879984526908256078034144436282784047260555786112175933136790088594959080754083689255147921068284, 15241220807196726263774683485808702557697816179364379615052381552042946124479272299432952937055495083636538170147290944470086562586055138263491192109031329865018142176845499802, 83933047413267417371543932524335397153376255482082614955827378830373175005963943142121968412826631351370898770680209912840743228343904042698424734544700311273350110514329374474, 103369187253635056576550870204491599712905928345800905093537905421121796291574574804215001963559613637424004089395131089211702700239203937383769131468149751646527720837468162903, 118653668679239062107172166127517342473738815091045462778538419417229114430964688437661058601099835468317837754037163587265588803860691918068227377644597095911110419518103099721, 71773105461000013001923846582824122575164474706716363321896724467458120925235379997785596784742065416017641789343169927584817817618274099323076948088940799072843213075193772616, 21638935811770478757576713132484758320405842283360010727852790452852623286676609695094363147961331184440035358279975281444477055597724564597247352638066261822189893116601782337, 3444718654430062947272794229672964103635616056401508429785483548918130993509731874781581890008433065145494141141946525479226459594350799103210351587022990884532683698645244821, 75831285843353529825517677667803134921031452711839894366150452561924629630295098620804084799975955121080050586971307731645929346209456555483464449223156870510345164545245479140, 101326172467417275254533017098633948861840020939550645913786522828433923861863294567970658519462117478994997549959100840196273285887079761525419483313743078584086228185734046162, 114303167833613014837354847350195360795118203259008284380939683104441527490204593499342604015697010746188919508984481081067837470304488882700610899949452477311176965696359320755, 38024361392008898552857463743735951380645069284314454741657495313096434992648351548309684753343965984434898877367585271961896034184742290970693560260658092246863110008833855539, 102712749094357580260038043249975831245474439694569099290746632514341700347158334072551748528832101465197446066261192754632676308814149891757192873777180522471413406132842815351, 77324555988172093391368169953311083011422401021153629996101047625805287062730916824229707135979034808727192695837795273780842837268012861854030480739876243663865613053689707822, 107052458432963403980383717704499644076891424173042616201358299414131269859322102382596284990213696867080023886470543757068625581223004268939789120778759378902173447919493162814, 52314580434809703450545427205892414662460375160091140619813217074223451978194346946135103334283813379884007549380755725753479193567334661837104014908608884480830089524975488571, 27205846480152917740225220089284254571017790613480912981615896980004732985182490266524787423570898006597317865353275003909938575845098595672785247763490310665347125771163920042, 107578679392588198224064132638040736992988436548937472643390476148297756562614248568463791388767722242853370066590255679887540764068434236294286888978997908413061885528468885088, 78295474170215180536827406840079155599421883228324360193131422886479661224474290401431489609321583523985673439417828151276381080092831266162661646895042719089354677777518001540, 86278384011861386183260097752685273422489677247821441442507022305515484412275146091793073709276576426097781374893917932701976590715988792172982671741466536897200900003521011931, 21732741924441884347698219358086574778797107244697906491019571770597739171692824932208393928699652315025626315507744474841553108907900358097982438926934099014742574153827398950, 89435257340692184113688847758804998389713257291789448281734889095446194750694036112432352589841913452060609424092710707684270734081675000450973702305609373747111570540877031511, 47058194935560450006507407696989620279335562256385852400526192436164385616667426601150074169216170959596900421572587046004829591073908229788274691389223180989226729610657104102, 123955351637673039453657089670902579049593093247942443788237755970786876804368649551445985057562831008236171224644090118162763746264492008266917375968528764967880128548379299375, 3487993072492827389669235045784290665586885811858048623255338171527611280456082421686534627897748905898783456401354093300091503725502078854394350378086851971338041244252283762, 35396239573872858192529392313150269825844269583375200049495934718440147511383408347195607608198176769824272744977550085977567503185723195265523702156389296402616206588926137421, 122385169008591993350625499286555639960795198409168729904699789549075222571120992526767253092887019648981377646447616072238983030020838016108051562147083489536262038528184137233, 121313633999380884324976109547460249376841032671388443828203980585201135004254262420541316978013071607467902140830897393629468212553567766773074533217790033022380732690152051720, 65817163732587574579960742400274850870182077868284226976430600744921145195217228809366474204412539731758749801126838805037040229986457059799026330306385294028677993422304825549, 27879774828875529573354790364436542235845282165556745021984561886548509366365199532371914878513970154790745477934320604300298983131606430382881867485548321175187762922890415273, 59594683467922104617931062814141013203424318996453196363385349559271193280151054537887522362153700319999574851578031840433792762780346859270804237796364757251618434702359830866, 79471134664421318619110750178106508160855909227329938974673910152068993027458704526607007977219689856538562481496893385165810165941284278216239949368645328548243676913894546978, 121462759204954369184611771319504793595169375230352793780131045603950136477277384945135364874347842239290209199363989592880957627955549196072136900078300555923228128543201188991, 91324731248344634632578732998801058863044257352193420750666111200810586092917334927239696094977314586650639778175888104237041743984244297610165831320800766646268725191717506090, 23226785863733423582651437260199595549355980951695031890712572877096286482559797674626901060133617978527652598266188234074499946440441865355361249726467877102550515066386436214, 97437249478834203903897469511450699799179811332474339211520254809742858303888794938808265474762438999907070954625873654662405052279683877084690466571196646524135872833758501642, 27851167858878446935295598550784116569738390162514421396681121362221355308037846483639269441930269512490408982793674458031598982730826223199305264793392964487556292916503126388, 110052719501783105781386382202510367417357662362726291807400471511943826379883463738988589828312436865861365856756682088657066153875664060471970633192010274820761098216297293521, 90403126823906253539343169319342403753967763956605431123617183628540436521324034157769113969742081207016323957176639784601820501289581961042386001421528036694550014365800618261, 55897313068961114580635552669538956417650447808965184915402019875328044191890633418650989336987562665329381292590747231021342189792807748717249913516226698486669181072300746768, 60117230528315486768724733852690457223434781144243446382996912394794842425304894199790673842420650866148683691781980030238152012135061682192439837602024889664854624944566649144, 67434111193584531135758750929745302983551032643412394572249820570720821872060886268574512489001049470900290282188562658837754162967101018550949427003715026154587880801394725922, 125067006074935778354335176375685425257307607068066316734481376653443126707783627353447051389003029688620507088544081909072444133852689307640251413761191755818730667559320927570, 70098539360265863026193906353626360122672862238680518750913052777181134504666991381198615659965195058030195748566773248787302444960492559332574866216628439341996258243146253557, 89922219021642889721723603150259909508426957962968944490933073374787146887547109199999339036881538478132605309769617466306936763767569943265730772870661004082641689848196467240, 55041115222025193855440792958217127660127348762799784220220369275740722237851368025148573469187188341392548166369192701606566777852928172101321842308535353222415216261193913200, 112400226831552184652109739957020179322197463991413666728663200055230498536825388844664195324680204455966211051944744001775462662126579304892823517715954446609363595692564385587, 86023707048375917960053520688633427479557583545545196647436122689629915330983827748764105287696358691794862926930785094244046755034953923139271675285912698529806564435545871657, 67989596125662536441957602585357370885812056183266507348910421971837195439429578748863616786880163600123274003806662918854441768123266883999091769241816682137331046860729372895, 8350434672175130718386923588915327196737826491590523611501603853674165236267359355341420916300813350491937850190753742502825547910776535389990421799130366408267800020269934301, 112116881962143576877927060742470615455559864163430522833281294542024739219786669605453718582932135960688663003524433406006582379290079454570743656935917683200253137611703413559, 20860872127024179712574680590592065882697348190969762628091895667117413872776438822785063128725462615019784833308213114818370742446851731957492123666961945996353461547339598091, 108794964546343236506489898748987395901350671287237886456472012230427605177003784305925025688450776807102119485622652464499664284915783750370699724904213047234089738260568832477, 101733149501313533780505012401046020002780450814312304040576238487616979002946903543805577681258628859347416467732596244410930273114520915689802524728714136033372104429681021420, 5016958476268836110305827630276593226412867247374096944938696271784874057485076739367437672679372617595650522216962571011285076507024385922081989883757425777566966829452354610, 92972382601118612006706027920754887455604637339352902450039830349794590782298513991889166202979795625618429020629200102935299952396602773669214760126479491995910741295298635921, 40980922872527525546180675088408660914006467656499948482072177589072461792601396100954146347517981456205643151712986741169346092768826510794540975434823666457569938180635782414, 115892272174687850426306865017845561440899402216310976447414044665519704951683204216762991159142779936142709828477868449459433351005483224001431431138380637835953102208086277391, 22510899908733036013527931521687465878646710760590053168007362138453805163244253289094256928686427310332137317307331678693071652957107283090630967684603334688589513773441362199, 14788260214875003000532141517824389275201331915142888847124114534253951098034339646322167559340399877427732630278483728155665144677231978873251332736040539215507147740721972111, 52787104478176053692177388146040865814206009037490207740512299195086204075431007226036632639931732792686980268116961821756869435026554912094432358759457146910149989888913416751, 115183399113378282780739476201075914687748636599813568337279729565827491846069246199386461647106890335904782763815449696898695184468483031198982519396242215769962477040216985626, 118856575009323209070384097146614666410272306156197871342857312577747880707736597558772620642600020376804421689018947593066550247443845891000751557922686969055056811694735577464, 85188833256282763484820776779845035208098427451437016604514172944119779967963575004317435549911644892816359035042232255058257818689897625526803378578952547610991389310836123448, 36486099622489044201119867860858743531390538091438591272151541550491656601744463336805928523620648152728002634766550763275698825435473392400174273650524807500683506339052462616, 27243747035895913221959508681836431476395113825424623825525673869602953416479293314802751440813412287784451619952539647811452549854739060263586963477570126730988329352178121222, 63006048761148985200878380322986415924816157333490619116398668241191965931572689310098741737539266011345936858871040777119551121939694010366621708440112527011160601775631237352, 50946839023378389233034476042097408841031206665526592405830117007032915203255746135842845440172889265098138148178343876903306727861344967196640328285796786660780963898131994877, 86554590602071932653715033985177454822829323652869201263772457844135653298157245566311452091924492797366984004672390121189963952527239677156436414420983322938150829294889608108, 1106260838845156332046082356418963055682144119359255146923443615229878410353741053285752715666230691322867502240255983198753753262089228445855089022661495340296340540207329362, 28703200290013801315215178026054730686963520065716962075673300609738851207259925788905947576443676198641194616867425363636325680906282182724337482039801732435938272319377462350, 43699336652728913747992986803496227407616979542649570905450720304559602299689035112068128541542662179387155761549299533054330736913876432314654321901799297533457211416348226698, 15712142027525483282917775906734019604485648957657995796582390641778475695666945053238491617434638837480376229517049973798995805802043014974757070788250181089890714572836202642, 53989541683634538452293467744181209218367892362972055846827092627735768605034780163669641612214692956335552578581391812374984117013501602413708948667324890033149983269715386828, 40508257398472393033530817845780045882127850236672608224413235749328361904061120119706407166871693056393376155640231197709156542532880513603353619493974258890942165163109301568, 13761101831480906121646922603247139272219795777424686452334415256360160156210315249658061383012880987116631453307242147197709616887992036609070378043485252394263812417714919155, 54131031292871349410962526908536416261299330593305002834447202844353574164170557076886959771090802360816374895711216150324257186465845304114917454636281975396441257200934163909, 82220884332247638602771036642975558703255973793954669251521382755102023054938702889038964527703144346180400823154745510057772946291056095700628541498238188380166679533058274039, 51380613173580547716147745291730294687741415157760894950321436637156903208750752350381555094124315669148119171309368027614178996639471266057954048185055837012630757034611236926, 103526802100173372726340604670953106269805023611829982660543018536868231806655484428003107638596410878326751844091994262909222994113035986228903609758418083553616404065400894162, 69576929087172436957072466854385010009442166214098665085313240232169949660252972745175271648994107758590869318292528554329373255780170437289463997739266123036067044377285076895, 94545277599917011565727041458241207705009350313120521237145600486184733671070583145298054070216958533964939848741257575355707559007520458441417467324594346323675183055200276867, 30038359807521714590864408434535287839267966068042427499108564998795579540828454111578819450612921802270221114576493097440988241799969627277303299880286287302782252121767241773, 71752852599938468922018404615229055874081113023435660363397023004673760401532686748690845620525055442520239444496530726014807970388580132720991491457110384540935810619733533555, 60610420096524564872418338462034579556727117158336024738472052171069160280125604106504587562823547057099458377353107533854174373481742040893824749366482685302270321197974070424, 38776950665117375067387441713770304320178013028688054416072371560639641975531854379995769850559994547568072914234548531765195329110828814247193167055865243423043585227103011513, 53040446941491916959516968126096071655944888330503348856206758077907542794024747552296974259616539566007009533437507676296546350617192178635275406984495148627933649707462229348, 27889456009423202266806613591017530252494266952989190893769208614483459610714035652456622183044511909578957621065116599408572883865493149676049172958111094000731870422097008974, 9876649021341881172735749591100428805702947725791621929740713064149076580385304641933808530417573246063146584773397222532095340366173556093706168316347522452313520493771340657, 26706484781146683828746802686553061899934962867987295401942925034164636714793852021612483025187833655059267883442167419584609809397539713735424892945462160803217899901677824440, 90224577188967116813186078836681601322647360716285895959210006885287056129148719372245861769929592167464706411681319534720884051844063832101123248429315172600599792778314300608, 13214248893108008031883409206776366222365674737902607864569691430364063629527532663672517592805181534258283066603510795092792310859185700700190401828403572540977032021687095881, 3922755721648293294902416799466318910628353537462220290792388218236846512719206376230862171884029856711782441339986178210107632914119377765782424701508204001015763414144757665, 120060270332196538807613215454748688585617525224640503661529075040855755949062603443048473623870959154967289719462674126014950451045668111352345868344890883696295583086001039340, 13150286878897791908897431217996930786934627149328238310146398998076905933211354249611975096910087868337150540402205034810540024801573548408111545157367017014160575481029834415, 85369557439273691391727299032058995950419637436542501244446688958666946242064019949472720984969894168646906714103720660891171193716322803717589375269242780541752410601783133156, 67838160567243795396135033485796847792754868675610847607419788619486810516856557116128746958071652855471616696058865586499518427241662254856845976932431289286821954736434278501, 30557620574553760024806835255310819141984803243344120032548757822157547147649065242092775408420496700985665163744798935429725404308912702491736062060434059176440611630201427295, 108929663042208595116149900706311314777452722589877633350898239184346212929420462647960945327158053806300107814903291294064478029051831900148725411959964434909017908292677190611, 42091900514465504641600333621137573435582773277853448222299895231053881337541817309777859897523340538227486546952112067757880857069134385562976440359342290150457369586608373932, 111514743069860852042248869562869041233935598505086953929958474389313472959097752891061734012702128662826484765983900708125186585570024748355960825135060182735940382202706007465, 57460511325794434123760770487101501558034587406634161082512351706475922454302490528458926066154991011413899233722481659394579103531513005637615757400938620561611612745520792487, 17226226319455026802475114398324259155672526545854299514904603096009726036598513480753009199547821280129647850432991823307227636016800174874978349917233600078448599899138090501, 40698250007346261668998639886898658031152689172183957028426173792668595065182135406354863967476362757635104968136597015071538031910119000652693610551211369982115575256868563965, 60378044757691366378392605783029914146167816357196991552165469494859444802796218090507792091105903836164504096724638043771521017805189109733319005227036749309717546218522900332, 56184969022008907032821373953501767423808762243374640593465307970744175073726603880641494503431182558068408351718961354453679562165210876394392501525936144342623273088540776021, 92994075871437462958607870416653227326932430857764694346000352569330608252118483557400100463988393510948898525405719023258469307734557835013306402060467457544608428364905832795, 45296738335800686411564272504408535452780561307789998114412259060155915218523110111651866968826581718393162872510194121217810813064621983153415213517928139946663616370621721542, 64372470446759436939738806817524120433723124594978340169418022865375561059500187603638828649184406014754057180498127523211815642772299701705993013094806078343374728676083779597, 76872116464954455575259025868041350570187207371710043299328406245848084013480899576317481367997185701241157089892264115064188328801953780940949905845846579678531426666575356294, 69619979833055470418040359141332880239512489872266030307639309002349458466969054390758275513540530621840381871586626828442001460651545107558369169781170425643504136617522562371, 68747450397177078687720247106678219814074109753403309154102776465805963391202339209296421805791307658076394440843848875056701688475517956327931915189158760122759415355019702928, 28713241302876009432500712502675822709483742023056232483042394273609017545549851602656360033541134901239279461791537954460122250535749198715067051800245281496690381051683665448, 98464399708029815589798054998461890810443774152557877617876034457354947116639320661409505360475168023687818073893480121706474836886256709086170641880504063474409706034523441998, 6489458462331106800591746270722299960808338889185545933689931956984168852785131711405808136876493741955655881751166504740928755211041337430907810656413113122233309814110212965, 112780896433207414652885546578980340439010058123068300584867506871910953085614310772559339133781520975359659142724138607233997509505594287935609089421908100864710449464147834501, 120089618711017158824991160887154237524384560463703576572775658247351286175422106380926467464676083894225641746683515990366399921847562444249887749866603195341045473969743128326, 120874038917223113997353238995361931377840426123229153411258262472793435126041668110497394119184099411542033377390585971464005850128051408018378193616157513804240832394137366147, 72870639408138014842564296753194789220918836382193313625689831847404560658356358115700676172602617582337756116823297122207009109979893370665651567251768740916646029083652777606, 69420954116943862350277549278080643637809249627339742847177753261201135729161519698298279008756965894618542458876702159782070843927205747776648919847071424690666652206334460333, 119523538249969950352780076152531780823788034482867855571127262074596861617149299039291792485912215275455574492524321832128572485018399721316101567161923859612382275441907925904, 2904755292357122081119994880058323685576410483475564463044482489947703702790915117221416325217138369667853366773117405345052396593160985297000665155553791523751447570459613123, 51182234357422355550515710159595558464815752906604491198383221130628974292489511282401625826180425840491065553260223575478745641682923295157763893596645407169100648353983835974, 15545101722021271371417680897960938176441234640606572300994133770022083468728628067046324623172716753307039910703927108658236804484999135066894432167819413392223836132093100924, 98345495299855996822142249347442172717375458791987142916116108631227641669155525827974174371076749136178051127734459755652696755509785828288422205799545187578100079891178280719, 11012706712491419949221872915787396885523802112507295559370874572058395362800470257508249886475259220300978809032970906742282399490936780195920233670766795745900810157244896551, 26890375988442818489809509625694572083115390708590186327065406200936578350426007501258964769277612868956007588526779563550496614886067499783040067029177236687096486347371302371, 8965135837919189366567113970417747765913633236675815329838186900831752115125281085319619455368296723540787433295798019035569836724403172826101956856355598803459785878918020335, 118554678630568357032114175484651374939723973422747386122116021177984501669422176197021766540975542194308549574462620325299406016559916794425249233586821348261679093280518185912, 123556921182734736954408988045371346561892820928932509398465156183779619901750628088213148509957609707657971069863160872643485155291750986679053157527190263923355013703406668039, 123785294393536409185149510671163187531790969990615648985356652257889960766135247929964637997071831801089462879980099693153077095434447219136733277626258873286157113621849218985, 17965474680205673707321141884667344773251262804785084689248970627854685908393013863280161956929116215565489012741670640943203602369681047216979520670895471069278543462747329977, 80240529334375721386561061323202213355999261298079018995113002674990883727669269654343370145188123683613091407022025288829401904065720573469456787687888743937551832117322156007, 41081105085423555160187551992046151959810551073645332181995977287845377228075503008238176798303702317108592715413123105394203297695537057133587614509120705267418158513960475584, 83930971350631247884214641012974970123715750790693179892048378580553867287149296878414078129336305886527059686672300055708213838998439533534185318451024428229413567398076015991, 103800510882664775702758941537400952739473501319766748761023285168386523800477499284285019785382653115846110274512199503533150318169366587545601576064153810414998087146797213034, 99410536535146988307885644330114601154613635184840788098424206908407200190976859331634904609316432514164083910660518678108099913617887718513659257980286856414977781242841791307, 90168765566471089512372742979711166154497052361076075806548478028103549429319155879099051672689475121250479102180407681809194231468814769008825296904572304164459479908995602594, 54895399780192468623389378133806062839829947033900462597683222301610877429924356021022255815545344710462741509301606840957604349659660354632631991569031715993607230091260480505, 53167444910069628663972843541216890367334771538375210204075016032266538409539596195866373303550429133812964181504909521452599481421426636682578215584304627356734102622531556579, 29395019873681816813851219572822303015376697018977528894206742852326595196686810945546203725934082918294243592369394481286015994702032830152886892060424240448691290154585447717, 37546394674536294976437316538082822005027780119116487715011313886772986594989623154656881873637011264361389563344224310868624842276797437031466807793358621228121142071569312893, 77333318647861615866819646214078865817084609483769140020921614723795511776194357701439312102176416494162552216388479776506240080215849610853631704906328873397627083173697062230, 28852931356901389102140213649143795115448470157260715530813594479244610502837064749719751000691183110963342268007175901757952933059332266578131357381282686729114179948532211260, 52941353066468878337713436189967388029690155288322101389289475982514464018042597500167126466305465445776007465982371930434687017340958008685056176319969224935072421374179367207, 23158681381553910771669059199355981957430219731625028357991492131276565756304012958558271631366506978369478357000220057508807295510344068235478697614338940765116577634909787740, 29212064240003300567892481875674384946634051480160218340204468776734127609958712121024586897862865891177045538156424121221414365128496120265915569415611084654428858868003918124], [89032952769860807772092225086299011011000769638214136062712125773944717038629554075600664930364186230799056538258650577643310065641497695070057251241546223097361697894061054824, 61958878705473072307597365991107420970027499872899135473027640329537707407319696246403234005424965879338309549143309372907713994505294448811547893511402931542505686653652893157, 9561955204515276793877560554560104068307607668496044968622940951828792557459274791104004962067943700349650380368588796527279612253224202418211081214292708644410665418610571845, 96646719870876437289261103329843370653183499889202546269957309746639587524342245601074620629862350213637528564223616965483035611967690758630453871113614149188266632885083401202, 91955867118367389318506351590739301482940309221985970900686627486295644111380086728388823822393287056527521089616417533457869438790789188084322895603852522633664974552309726888, 94591738798856392224524948701165723476637113189904384621848843616578047979544427512521672711082815297921132350467512751583904339511494024375676471404364424946841513599396415297, 43646941956587904008150701880121307090242589577143403790479730554368121598894552376900751073348315117674068639305122113007922789314758383302235856138003418336810704796124501098, 88661594639124214988410736609120519870315915315131716124485977647811821253646190058554659323837730871067175227609091614654800613831955423016249889731661016821908386939553188965, 37072452318379358396736694326256884590149308016418340775984833926176478010778931790482359802675913212715081866292328592968514570271867179930633071186872224002581093941706821456, 57335864833871826019665478717640196312678978171560081972995529197952208792633081977684534586403547245197499263561382106833556906526992107443666040001194454156438441117450710429, 58229816614293525300061651784722470193174881201005601158803980280968955761311760451163074885658230158195541463577519641907646917270131392832388844875064260399273128479539366248, 48990876836584287285677034622921470618694660424480706463684357176822504396771779463499298175986234101104269157568579437475238926672533622167019199814497482936186316585508028559, 86428634204831956716750147688562305979402406095955835115588098861455315973320375504370003419167133972269250839907599015724946981123666884789437750303708180105134240971719596090, 72529413830281346930147704554959551943568951898759592660377236141350821359566356129809941214899829244234393297557194729734022723201188839844123491394717474302243906934123706990, 34214306782630189102457026814454516604302741487726737364061368498379590044088224579060393762936387467583071346425090524108260814095689533414046028239632106880582637899219349433, 99543313426127955005241122781350101869152436764464996991615715666247853578425716234147215537767305325549089122658804235630078378701820342797644636635667016892573324721865178080, 126094087617546716109406450530525410040443060403221631788334988663530299928606437000664004355358816145854641160763019535856934309066679982487210351522989708511914278074617533867, 60938969815084896131611171413960407158276247882964366955992137145286549764786395525307298357103328981379658180050895137704935409334601198453317807879071534426496352297791594625, 47378931395063414974826878586860196418905489582048824930305910908265199894474225472528915174299055917104511377117344430853917105574733222121993642690902282311952769157725108252, 60747876366761799370496076150662081830716109685542054994301258243382173918348836971307156043976469753456817375971490715856643309821694899673971001662968707930283252212452908147, 99807437574885725705424134132844435031201439776656076442577048536797285155650844479966566987246951257971715982219791290622986164719479375188949526263564746670496880882213316504, 59370876423025216832666511611692779757714160065674492267915935733707615916418745220879745771822044942521449215382649021858881910956155944955940252735894352493925864462785505191, 74334890928673206598248732213123814035828996860918024963246706759079250891327143334421257500888388308927221445204084834892686237994322721742282869380157382093722209580393598955, 65315831266770634765679391814633219253437215802628826157650728470501826839779053432626418758796183650381755050924447111190832291741299547263000636776135544500633111177920592907, 27331457121574972665607365961078381608492499522570460280277904146908784095909111557715725761397543187664317112767398373428744901642370816851743395674536847816969750740411882818, 35205749797110216539950793180821350829871519474683872346333098096037101277308576261107180595875486563656191128145948774334926550285658565235161027371298711571141722528170968448, 107947494438451371597814026033297078724846188275478476220374458303206829024985311237136182698779556753632685816426713782965853842397482897727337285646614121825985804251536313643, 78093359470774945029587022049536697959170435960148011844802262570751769492584263352848044022611714739042343793381518575805674715015753404544032303499141132885441441507148706813, 93476772952557654355210453957793132470584272037176477634383957382268623986070223737076953031436059204224232738720725719349514527753137110176027794703649559220489001790500621261, 84648205338502361794653537983805033684679424973184066165467176586623648647427440087720382571966623261010140638420290259547781546555475398457727531663780290226848618637324199153, 84456485029899613723099846266879685068832545611379695083212603640027667112031739238135763519167094976473054070093074509178271385671653031088933307597768600523362131821025888727, 58502550827156201959551437593181251428351753209642192479404256135665576214790203306128536559796740509242599244957000394176318848304717743080699755698962107030626756199202377907, 1405040424206440414395374859149143884801677495990001723606350027442616735788856158920061376636721227590472997111425149714394445013094684997228032523233772118099331908213039683, 124367066045094453225095885159864806808627349830284810295138153833899206912710688888010069326618658015964396932464429843873080072503825665472015884497269437021211345666059061048, 785249218190406497366358564700962722532781725521946725865090324176176541295782479157617897908351730985645141384763610157454295801529343608066149740833393229015366121098225380, 64642397290150972580610133209723948039282287229042476042474945132076311712664590996755874980719779795377281745227682923673087463250633141788228784997137061163963864961595169649, 103689644352807699808370584325755102674899304407621509501373048999478324844133386588361320295733238839711513156174231638534437762762794890414118223586308409512147126672694477683, 70299049384689736854307771053452319385699898481923402271904754925841759957159122245258263761119255491741652029937931604481387873590366788489776169488048493859605577342017935849, 54596160901975083545279975733262159137812698391156825637952782090406628536602672754689412887772045416131971597612364252376139696214191372402842819363473330030901831699296546802, 117488619724475563174961889464680311420852135056097860127011758123738960414527093473144460269095562201373239266063873470701093560535278084471232333683882411448977515559297418261, 21265715250233571963695692309571321804479557644514043078473138991250655255507307348898797489976118149107224762088206082375949742466348199048595430763379433361795524756103508997, 33324974201299352012826661010715490832442327862001998069608526143974914985718886373746523464203191703095816457779394840303495165378947302021523950426406416684113196567300845983, 56061057278881709324458013151473634018523628242103388869317311915086663178899932358079510715206068082678979637739533708623983160592589230595362295084195392986387249010052433477, 80080509126060916133123813921226541778839936348380682033957017730634954034673726919500966399251233097353910013412751504747306886407155562990584905364117633222829492332243926491, 91997990133510162885525338890706259354442081454148905282474556882791730050311364701221167636710209373193126999479549140223521052643368707498956015388642638979587854284205433350, 62636380987971089879173071939723534458661036725705702461631468748728975311833220463570648363417716125280615697085342946211605397590871848851448204682281361959993186740352067387, 110883996539326050633312930006524622925486649199382912635197076062010909374757346439191412405629931050353010416070831506141477047946179482214860522255921731748839775274983379744, 107355451064275086355387381198754035468130395623892740795141427084578459247295625342426070979624946487197355301208660148884218782933504694107513766982432836874519525519980920670, 71191109321958499734441728043999848021863475978350006472421605431446198398780751988817852726676217161467915902414336756123344164034499807068313189391753914306606436155742429006, 102276335856926166811892569147980243996673803126182845671899229154213543487792315799112011441700330728185296388526896738622463675417638504111448149795893253685993402106729898415, 115171933930585788053675148938249931187726214103332231899120460123824772682515039954261322882766867381405005895579216103395703038838303002036517833716815994640034807404312088501, 35792238983956707301371338523063356128724576163636182501593170796126607955840569404916785558055955855257424417465296790397745144577448638327999391974394560489998769280600185265, 40507015013444142937974059270252184132141820846986006907447304675867398452444831686228070656859191099448133906138092922623283459879978765073427229498029520329987430785342028066, 60868685655362196335568393529905175174921664474800969995638661247368852570251081406332104806779920750355009256793277566993370256860694904571200159953514716245984027449919767599, 123539802786817976378911741830324462770878189448568103426178389024855589775871311687748236892605849554373388947750007746963191124801765516364819987332138139245363480467899630604, 94828482801100473828135282808266346909795134646748968288208205517730506389634552944243852957329519322174133891045781418487886677994233964356447051256736895295158852389844823531, 102113953435309914430744941822631303731461733269798663233011066174705296559682121631794287398924197251908484125531946890278669396557225610089207688138512855273349903380841604283, 118897287741669597417293331989449847042435533986777989365508514395802031621198555846700212342481166644916198919795598271170530249108330523191490962802116656380824584216013596071, 25838779140545462732241283263105234243792169778332938048460178757421285508403459834771590318404423767389162138062282075546328461678667751586575039806889915634164095241254957118, 90638855210624200546876156713137553776456375632300487149485911398175372779840463231500110257974981271205529435026625872362784742233281375459169164720122854372162654269503802521, 35667493629929900694641597182568927721404325070512634461561487405515090781263108541474652469251886984575558564434250241519761715654498785777134913494321314332497421409616369456, 85290270139935682886583600304188782514845342012504386114067108264029546333475770781473581428809803090793179630574372637010172301843485386579196508148090050566931614934519092612, 124711394406147966432198251894443788902056353680820708866649454170068439492900568366163277293673479651673252269736185786968640792715698222482263863782224099376375670245048178119, 62452100674151425878006362447358992895970584015215926625374200689952320946670683635173034879678662190522808040516053279663343993683302275612129329623843165017563264169356618803, 121442998574314342434636818302367027444714242107777160349663065363204629153523739109979607633980734577364870369737619881827984400425068094016692325565386634964042523544989206005, 112245912171541085088938406391947767667011747429601293705803992179581839211683578626376558744741449818609188353051949509652704370044801941122511791234879690844264072710694913852, 52277641535332995457808380479632264827969022030379657304129338678029983912323616820269534794306280384054512836884877540306252202733664302317065733159172884446520496122608949058, 80300326896679575800874789007821473369686043155182339147236048806855919381663124381487413371157023218974448018213158212394200276794503890211058002581025833406707255178671194195, 81307693736838975341676197653876296716860309320805819135854451690406297585539994764518169601656773863754346256410401035684023877262188967688168612249542626834026253273238205216, 71095131147123622249176205112074365528474022940392855379968087481475952135506830749415799670552511969001831852092849902458910827336460254300051628908041735918344131898594570759, 43305294979011341311990673683829914598460507292082783500928598343657809965523071421273974020951412847411210821488121223233633149070078927776402341863633287601587062200312403033, 6710161644584490530219672789576264929860576628149656853217965138040749158266467684873443210191295648127845912314482532896563785428056287959788999023758814170237770584251687714, 81660979159994508060918449101191221358420605257569438787078942314792115305454833076655302771758336091828221990795145417969231239763791625400137863323887071350625715121652785359, 68424326858983948961876001674584014028248520464904315230074585132090455897644141426137290444014496479328420040572992128835828663105854080407575902419867266341107051828070696825, 107419932173715991567844433929351418069538538031318151388541408455901879619645528390983152059183669004066222851168524465369165288963105500564493049432444138832321286921235861162, 57592174574554028459173785535422735059955927070393529655184349717727064224833971370400082605169616004266452791713947278451814798885584073099485160831305745499263957350326792914, 92413168674150819000024459246574969454173552525130877837831278996212216788594667070473263967492922151030841627163516077018803223244456347448759254591781308405269577120258248000, 47850262278723497579803320725917820949570290673712876520072803279954476523992135033708339721596410394864827020966514090621715914807871185448880314210086593148351038108160810535, 42492627683460588504318296751260078509042725694454917875530814352570440309049873843069439783345822013411844531780901201863599430548933122625074515910482781185161779161124434388, 81744675733114921346130362715602999082832439236367398626220438103048270327842415223622115723175487091126755967984578682471753206548093676878298703316424705133357171775748893716, 108350258139214527988687695444031956408394192093966854421563795681201867675895066224729331473917178969386465399058964659572998784346643754057571812909944688967366727804221442119, 36064066438082680854697240390944429847518118758589558683261518809710724178979116654682708870661303492211744186738711596092608302905405981015392132306808851789253009834297459587, 118878052747084887255646195394599613758848243023030461502195298618400091792310730753044221612412242742684477327105783123558793378963875505493501033918235179610283265263654416299, 10878182535246810848500259685901332303649402052647488103240766485468330428727590883773258366968755038438345838847721346238355468420125939743977731593147530802868349135846030012, 124302798162493151193285326428881389955173563236346365934098920354876470426835875750968072629564970774911086882328754964311303440640232948116285125358475791925722010808396392255, 82040697285078823859194215767851923024021369362165560983456577592972822564709256517337136908928010074520391077153270599837784318069359596511366769837403328298548592671550076847, 31395593211391673362614418187198202371598840357296865811765448474207793308302339561011199314780957839145962950564353009510933758090433820003403369175382686704923940013938282217, 10481668325138317824090007361194984366186402143405567180026031589804407593136687011200473392892739769224520018246583097797125475739197567327580747671424457720805445935097349196, 92868064070074896247445168182572798309956760324119180078968412394297405828446764175712270984411964439732279555775467943063875939987157259973812418836000949395228234621399140447, 27076429057750521369089416302172615894306610698510085622865310032320698420293605284379302649950288875726153524002496716942889145732584218811004489095159185876396198990096533923, 110962811677039569549356668779842784478413964880022922040061161322020143632173501734285747333677984554980719104516385046688770991328036498628954279940653840584299113890208215304, 114422428915907673037103956208641975501236803512552960747194136552080179375614092210974263373033326961115189245569825069394507968161497912679331291397675090947616877620356791510, 123237725229831040678602104668049395541489181765226681803579456869740337371135794129333595527077591423274463860664652640327702143419778533201421216917602617039169396894129227136, 12314066680580972355893817610336275405282075261292034667531155433205975041588911859580533501010330915419752277204599710831345143168394293965085074256125738709746109669656140312, 40766544152057036776405266587517151797949249377950791434383752962249569954948835447729711315219828566605261529203803899083465724703832628293119725054086286790479977724682792577, 106715932150811831020784154372539777586561884012842972901995425991829645508434028933505621017235631516122958352147594219189348056314420464150396001978061724494697660372863621224, 91629846288805746618517723901477506087245042700005931235806846126298853263291916080048161419609361199266130702750316264779922706979473462524650692192471479469182841016885977259, 13144573995960142026874832523467024348033917725376406976979217231293867412346745606698036021948390489014744882994091063777471417405751925055528769782187985719196631387261929674, 108466758662616618618112412027634283544153593630401637663021793236859196337614563281473602996953100054613813621410597134829470481055586347706663097149965712881628576815775573019, 121661877172758093832653554302800482430943663606776686987650769242703311443828243625572030864312812845085963654987043497140175842227631509363548932584574179037196014014755093547, 105871657539164197962304884026447312287656869799348284745218904824171559247594257292162007280718420830626121427305947836244695920123411622491802860876074700979562481801647018512, 79661353882478308337091583093710391029035916956892480170597801861255268536984631879860760671668822229160485318722818374937084103713721394879557032396575674204411850248613792358, 64046305353601649276985729245129690888648434796338566334710714232190735029400627606437153595093755596994433261254116141902720934182491924391557965063177340093141049847802245391, 68042316062069727115856458801082753110455440266007279217149203218811396103639940099098972748000737892323256075244571894195983506093127936439516762516172338723624044849589318864, 111214355668269000600154929393138847962015634218736122039796847405070585768898936597312075513773745785432006263969131069225818436045785471249478401636480685544087062825014225558, 121076522996970434212507457557803675981277283187481090293708450079068628840468998279725799614191383126280668531164752736181385391939316799413472924443196414155444119794045273364, 42525475176388477096344654850427888509390322314763202915613965529465160449135566741898309597508144511701533942856420716270785270811998379884631423851933733282970259649286274154, 41799159109039763174198708489862251884876880837089522348600441650155478751816766883895368415877386021471371009724777736139227377148253733497862022658616864385572785697164653551, 107197588074939796974188147149722152994519057073198246853841388963873724240531032906205489377861547382954430861690489267411750525937791253733893960145443457435296078421104352469, 51903092034100456067845954819342479903593093415981313005041639545836393729829996558864725205334406802637627295022887987184978962850859221982585887748343434505570760354207632331, 9300965214318618795065750501703365636230434187640461299735147480165182503814583538787057101439121984017349923672552939162956093197483962480039870112705754446918675556223516545, 27428688882501229261224790665035869186043853204634030066844057871953769188122202738949323262930866680650729661439570107764921210792246373091830588680292099917136369408976558443, 94642363463774781280613819650338954653028216751561806498623223638912984780031824175125521655357859041143507307040402257579318409977416746665460629075288851212503415451659814964, 52075501610471262448677192399470838168186310068655312957136791792131896224969332287846566514715968551150170404211677490403387695864408127910673686522246012531382504216846172066, 70693268125405083628763564477784544252864215469101886463729781466338122295334091060317371269338210866045750315365012242437551115416107754459034386411582230861929025882006559909, 103530722737863867541935681824415997232163103809843989606580316213025446607034696487002179393830781333733607203860678631215722831291488832123507821908759141389273302306426102039, 113952730584508034624471654658770488143220561178926652111415860802389917516148134578236717065226225041344904973616882319564605162233275934049139847613985538733884518737734119347, 25046938389116222193258284924638945385325792323860638132357472217554005820672134578896073820225182972083910448145695219885251483422003007857977969918625704859518825339142332034, 108754413440663270200439838466498611692717053431265411831282182514990349889779187236903696834331918420497187155992437871385959990348573941676575260254063586780233650458030269982, 41275316734959789034480771241395648278573264760694227846176948434468309431236861171008726673307848291198858741046799174303788366431250088725439999346933504679407223102949388408, 112593700826506624292931492912257236293552920780151736376586417031425122096883691831460549381333866543010463266860678778610519017104680417415694417476870035420489874653482688466, 89413936619886192239460546458889686460912284286131394585516841113113181559282135236000599738495441440292508317574890857118750125673526864461031750865780328414147900247454742643, 2745858729973983803885469784456701667471508650602905274120329649372888719259836367154183287071581391544590110763967436221506518305069588874249859286893854593244649748274942621, 60225691894141803512397421976700836785440818756363342112554034666109776801741360451870614527783613999165916729856864258441808876276081816269344455519192655723276863217874332340, 71642325733118151924393601177405563825453040815864440343459130873054093448686416814913091621822166356035522802108096758607166847807935361860889946876664518750268970214751192077, 55480440205449907375906186391529095559131027139227024983031921642676626606364205302588581773845415478302732267908406628348817374439070520166648638200070791579870896968018635837, 66404274470411893295647462072621152016533228898328564183791629839142643965776691606592844236217707759364611556965425900108281266485295380294964633717791280185238838119475552287, 44369859430060844461419114516232235373831912840005609624768995215075285592481096667604596454122398784358257974222231063639589091692819953923524047070072663247500725384221548810, 106509528797252158000719655971030359697214693100459264336503153450324111659657289224876293305684235562647187524285091926436004097564225944832059424430327751941542707355004261808, 110231899101817524947878195757366605096677694115985554470197652363297466291416204096703245491250833991242580803084921102640145853485460453176484142082967368823223620559170657291, 9893891973024902893302464639671495653124384738021170746212515909708130491927336009386593063245874104205605406103542355800841246014042294842032353456436527306799402382924377109, 85964676206531047824366159866262521186838198809426372575559744773598553655880557440364430059502386668117029273428080235929012447965768955314331017332687065057820580254741731054, 1904640060165564006703550640720698680728104375093319885330186895722671105192963809224869328601450517301350567663300527742223433745440766162048487873394129097387854662572425186, 96238884563480382007586732069161624458563184640842108355426080573046116172844703681357647527492838420855159872683599944473268916257740770925288436499371555149415610920155076557, 5002785966081644188022290015566624326010699340181786356451671447107814374934200817011882337148036479168894090565904916854195203503111399212639355254637516070397610309871741586, 113660160831594462518667240207867531521527834897986109311256184250479947533759160982520100204075750912486521492595272110104566002331703050651276284808862708453011859418822009333, 96069452965721875195184293940668885537517990856988626268249295712958025091301788597405947149904230281213345150133773897816411841508119449439754499604756586728408290256384689685, 93808486974790334900019480825477557654166779635627692888836914794002084280484292146914726213778652175842395443760555047609850097559236699114835727798822552526879533049544869716, 117847910131408807883211039882642591701696402418621839469220195190910462867500782329441012881391243278387175812888051402636594625003763092995584760011655379581654116333903930275, 100372552697944234101874327226490176484778210664971180882129691405565788019681846074556662928298339258816680962497579263149331474816374482478166381960485253821989412137976834493, 75668581377942259866926460123878059059596146355056005082261021310805685451844386491375028225581352650300737203103995885273241816211402245063734663247373023637261926899588250019, 96116806704835599370385082000686851969634077163053326904027778252739162336473021976041292160875380929624059894275744260492651413874489648272279476856439275894214046712898203839, 87158598576735044332760123766439830144238192639388268126128331537371521821440341839471291126838980213963678170992624919698160457198380091501879874969162967076627802086124565521, 27327257004007004436269644950064079658937631800928269696530644744746146274870208563069298539594798204477995550106753403692525009236461147219892423734995104475196938084693160965, 52042110606569567649393712966650440671191940878727259245390934901835349827087118357038166632358851411641809125537934849068927987996629849633707195336400202739078748494092473794, 10342999505904827985672780884528170419352756730194531094955717580703860241663842256831460852826460984161016366327946863554481270763113454943056992315182902622030986799674760274, 108407070528086377548080656037387536638828402241066508629874613220437823992295637240721020586712602902626033890104203913260286019047817395454043934351294503103241052313929372674, 86387255894036454827769995764334964215737515263084874910235689645684244154133522443322902151965522465081334503132419636149791021916315425065083014517943023185184920026351683294, 78526176067411227112544400344834006460348971252819720494083351539087769178747977785078518865963404367411291191755026372278039584016459986194176000634494997645305749633376983960, 43726034031026227554999607878320342840684622296113255478218678852131680522051995400009614578814051281174428332650236570651913290702991386396762878340260652338803084922754100275], [50142926133077463901143409922102971251639496977987847780565933007692809376971976447009429283276438124448383862885292894899653742585260199262500773013816164847738825882247100665, 36012067166894517420028642094863526263938065739615997318642290760336792064282757720578364835575555959536962809882769045373221877316326573247987097992794800402635382067154954868, 45469909959398823761204626942786873628859429094667660055599850265416853083371708300605522743778887373569617335496939925289808447943562819088534648501376593654553789288191057565, 7710702528169406494379345068300045804244660891882184369436576844214278758452390933189155715602348640911602757193457559205128493205732979354226666817252891712496206089638409453, 121939346134621419714607550018088250931821638072658640446539367341944703843268752039210369150086604098268337695410269781536003049909764302450766956338852467943132567243139175146, 47240423870571833553500175361802173610289993664784915785581367690441499025771068041052032487006844345025726096515609657172066680040466808328363176856313532472090767695184790937, 15632432779689557349175300490448320982600491107191376822599028181369996070890052321457914182574634147081747300658785249255651176081889080227783934114553898557906410869824151115, 56443516726006114265421688363165360101644826484389993220348445084909929839775009631699651981889341721113235071694223678719984533639112055169604809198797977378665095121824989772, 7210310487529359845320528058662750804092288600939460499880445402709873943120978020778267814494949903735397201209581130835487672290616345124659753985490115523786268674560134169, 32681856770245800473267833732884048959057159701535513863616857181738333446892476466516788470644104035626668198914982853290966290334483747425298582949941608739613617823790842867, 121265504863048553350725756774352408023312544719762221154966337686109216670684042107718059791684993544480531171524480187402779477906456704853042977196640859994784650435064790599, 16905395514431021147296098858602386903055216338460404719295695515359440401971795294983939929496957352500053129212502831755886998703947036341965093085437264537983389568498862066, 112591495115688904342831246187020208815837803458346156461048664527504788205596792450778330384330619866021600551412796649184196548297158416465379633171363211917184461300891771448, 119311622820884672123079874639541002721372659505200954649240256743133708762921023548708127178823937651135555113811983127756447354824894250507840897109971385273145489464421909811, 78396316057249881742063682138504988150378657201388596913447789484588601807112946285852026668428686043107623868340497823766465142803814923438872830307201915801880514952989241245, 36505201917640464433724641253933943595291585848637487258966616873187124090316944508877375450378808218813665103841404636463718314843141869560339638671238542913329489221823758093, 37476497760379975681761123933857475018313201711991417674757873282514022012226281082069233699112479097774668693275502093757085284138946898661828706493135106534047962813976581419, 120530066650255879641627862086060666480897661425924522434343900692660606053711657760141780612712427055606074636688525785715402024389435712089028164452525875290819097104421230444, 52977531948058778408179077893731574986039993300896200169928440844414297816220761849266560913006957758324075812304236269613433520404658839873993641269926434261708890477138443383, 52450156806562942339871354464181062073617379327708865833424874025489459178319287149549572963213294311895339531531915210814634871143958682341615124166879158151058760200619193776, 76258785326231765371468022483162315696708696705992258777535961896565260988925415306414428857041508362642682187702488083128472350619416693388086187779078801115919192007562957942, 46985232445116495941627585402639918719235758864598224004506890319189972089885213384497297650859525603587993127736584012934036206942582866380096028122305500999589872054801936033, 31999213422889487354995979847260163375532542235698438429076148971009755523811980863474433398507043653985206245276008646719148994328539651122740586456199028824272240645778215110, 54192543910683044334002934949133252206390961189222852123091819161729856244721678816066174587270236138280421113363807917565816202719591698929938144856749017854290004794016593779, 86258092425049979053580104828979234690672172212111887776083225758289752373627381733724511495402602886917526346540238564526395298120363070796153546087362549625391910179427871742, 32839162671462267138784221189179453164205069989638836662062647152961915898801054478547666225995639148393348064242318786367144616770321817290847152760886438492795225186881980199, 68967130024854451667016741134967105930597183324308220525759813960325213839659213562806558776187885768629353793361777908366194600274541591376156376946673619108168873295668072470, 118414082201872183021522372587814160149017697686111829939275095602999381812038678857829995811540611212249273734899602719563212628075892726978987911369192408762742228599822281563, 102934177691893147875384267881430395834988832015349473520915369191058987392888508697880124453201442268759514085526335765243187019708871307387026585317200920915107589543516377644, 95554955318358075579156327522629772850324910622093380092187116054529516110814116601974583022096386289815175924394378928326335984265191875797533021987291918012440349724956487675, 81837851283440673027208837354905057339905298864748602610799495072170069180379036907656843555954427751077360757954620622667036590563482000226863698334874599608223355184358409783, 4260259470422195144613036596709161409751191877610853095801372122278742171846110837474552073692432934266276323418579266802673311142700283542194869088265570155614767355156617797, 7752380151206224583229019184764061426252218342729958553576024625755600113264814830613666724319549889990105808893541419006171627845684643546975415713603741459696055888376539384, 71845435792747742007966381980256974832536816540237410455192934861360906853608500148612069811555452623194388433595830613484027129867678539340216151737437061627253527096251456557, 76220978306813527830269091484232452630590915159131652877343260085592788807039621809907846888791215628322189370884306271053068058730664418619362377218643498438005602601279941881, 21242298160216029643634497552284397735936921916014816141019800627596477180094605840198220721612856803992411038748786361061441970367630513361147096920654230795974732580867241680, 38919535586728665037704535738444357418525015580507483688496512290290546067894929859953995175509278865583230628831835950106387226548314107768458653420198659899886153308776754449, 19905794557278176076439521863634477858456919494134853085007439095495590887432085212136151187822892656335515529242551646101195664158325086118516918322233056799080478919097319581, 36342043002420497115438929810191743736090371322398108571908048016980877490253285593778069447111641348141776479134202296370361119564023741000088060219988513216025702654010012742, 101571709601854483049763130970303971201986597617968575307155194103043053507147631227422414800866144467283814608732357328716953682477425841789322896529751656281128320853766789758, 29672616216651401994358000214148263828726509376837401156018321077247677229974761525472574459069461811265611975604397224415487640265198278426075533916309563789272110622110691469, 101751943305440918725252288615847535581140265423238624310156442235137401704346507279906911159976832255576652537095717730860991650079133333472470062576105461913355031325795680278, 80722823826754937815540213742862845055004695710886739419703648420850907711164490944414444265035329633689928301355251635815519800291744950287281952490701975031195147849492553558, 58392178039868464929867798020772212987369199248833250647136987714341687789898757642454930118171825697749197778720205523604024400718136856926332114600893136975046609341939223456, 5111423114823799938196242485137466155581572421581617158291923971485540073826736266958419291683992095360261988929700278607868505723618825393723784559690503466522441090903513023, 120548910128145338567985181461500653462766596358048878504166668823453952325035570400937212125068606297158648673509719721653269901363520909618959810108752325895426870845151357351, 7218627883250599170828899503110312617427844523148219735785393966759153873360093664375952678194855722635526264503029691315659675034308037340421770598851569902460022859146360754, 89291500518340629787946080182361263985027950888537239750800605148573078627231100770308384473952383858488160196378157756064458640093226745936697548451093767936851868416665928459, 101174950406870972978513923485530242525317871828247289286041729037949534516736095666063116194801577153103437926800059959910567510035901270538199835532591766014245272590935095067, 88413513322098291576008019903794377610602958069126633741437528906762919712626545741207349504700569565735843430248934792629055008961247968141386726058515915824270613582504098751, 67029111206641101611051331933799255102655870190320103941063222653302277042877441058980647084737216914462500443059127842849710163675003220612065992582407278851990125451618634603, 68580891012106258257900788977809711483524668990635058652168062791255333266453369493890660600427343200985421686993017425013345758567273140467777980419944866195451445447730798092, 125039094041137866359558342740318808891346390925331679603203303423181924895389486443015999704171540967654731793897285083195454751235070093568035543956773728113440655769754350068, 6035622213031393581574588054897595559366844512879334140581333026835453197565124973764317518173284915219115998361343087343210449157995028743613096126133256054484220763756644886, 67625328009395780958214268464102201583180774022034388614619987439961561618760468693125392428262627617887589602282152831294398960889459743047271928606860617033677845792218365118, 47028407607274223852273732997362625238084703080064998637422794765148270197198506953687336395840218653495257031724842739939013784409037194465582441732375005099394171913695673862, 32229357414937697160192759688744220514309084299703379749135881863371385670540355173609402506209510488046966412366545246280672589473534364534102381743176563968218600688721220433, 2246183625330499940298673737557364733620566948026598105382374850541890686928484020850504580704308571357327554319379906937077383486283899475290238659590280577431660706909910490, 55109346906775345075133588172590911520537096206174346247696318222033814134101061359978835391769578112614531176603883411382593089519171197093144018138233241683579687570605514366, 86165053805995025038401841459466463884885003805948080935785879499594368260301221976441632920973811683217981237570079011312277125140717262563317146089601264301477397545729220372, 117965976968502271107289542188997058329401928714029655005372092106728894798061007147295987012571450512324767227448786631167928016697863657174489008784624460077476863178640950168, 67541312796010245131969684390414270384688488478043209928418837923675285323548269642309386068753847567793908632719764923942860773826870192021682272094778292878401155669358578338, 78852731759917226406598110504373825641302919802604990190625017374795482958595838281506969698943513557936744793751284258310382503751192005532512262901596196380352176668964004554, 52069349549154229429147101023898772840935241584640002428025093985710121827709356328401656482450672152606069861339509430807640584962442971846917599673107629172781921627539077417, 59590244015909129273077381256270353439290163724267187774222403414532647740049757469452869230965922279198493345047104829412944398768524347466625895715852461283674716300221059599, 85592649347900208081931840822191994619313540270030766709890187184474178807842441819098523301165045266149685007234356181115867739675561343389469905307625353817620872259613907177, 120443000370121878405389091946830863258728302389612002369697962700336751962964946217200254501088588273344379193837085768544666445982827265870859155514209497136974071656613307224, 68776073415407785936466384063141408510852212386663087198741658527652729075969173638432481250725903444534586905941169762949078287388194295505162710391217686361537902024499016804, 55280487156170374320738574834342422274346479395096309635282719522360726305159371736199863823794247924639723936033919794746080540774897851085840317050478247973221868068708868672, 104646101830640282767748221489354148563900185663358087456099633456262558589606055815163732340940885607296030474523969114319913595759692503237397261728788188547428798081030395627, 70691723112866198663769168342202032337828604570236546527564248295747933519339714229172489783963789721245666240720636793393017972502994455246620658629767907565214574319548647392, 105707952750364096450499536960836394713297165670077763993907562440590570950546679958466259044525293417024774129818429215231016129708084842064678799210913949789431509518736769788, 55975232903585078889173313071795572504987432811753989932397837339521341095518924493948175168865256734891049157937365075534576068131462815060952802715097618693386331882790091771, 100594699521844832911127366016238932845012363523040803727308925967257570120113930789666057591101374258440377367551725127284672172392405499076833549740388877150257916898152812027, 24053450888823145022934219732810734311872826026747475050094635554410992244741121336104572652861590834392225596016412058246879826419917875481212429093276568394410370488540472307, 62901398372649551443923035840795117022422864717051890642537253381114975273090875897310361087374099065648080463927252407211379000266356473617621646355804984878253598351580533356, 56940442081587600510674991434729731501892259507657923306658805807134468294409883909625748627710303556844784775379001701295935392871366543299202557115965300365316733038231273291, 119559322581604997809048695314513316437542126542812344718899611513246739555544463354119378735572478379316772526243854387619114808428013166348631787664470249896775590641716391095, 87556010835433088577280334930439764183914326297042045358510558098271690134936405338675201942136949396504519418405029562824310970655067308372780527657962979494969590108839158432, 47966954822848541120758808595154190893959778347824007628708938118201402666376739463002496194002902921380530045710066151236598857341567148201926993759885698961898365978413546390, 52057489316075720481089707082914458781294923137968169935103002471177704506562288206459001362334763681385507932497395445597996729025434281238182585151403209128027344203438195088, 33584223441157880987499584103610934005885227837033094546457414585166527104195683229185772414758060951019005826037398044103753715095758741316790409884401880934036284573312192576, 87887710969889472721570911241407796056663284058195871085613288578595823487169022973060936696041777311727427117518024007377003456116498209296376235848003980202749646812557953664, 15709134522087844131510421341943777637559386201341733149582644149784481843565640497213435327407438778489284904007611027250077930219781305433217037370588647912156801086989772487, 42548290933959560713133236418585620884803254966645653987622286816219625721661608315648268743068469633967976064056763861340995351974211056417409790473152615265488292845559417889, 97273284720279902893357656534442492522840386405592907579072646199546170765095397241343359600244982196782634553429414327331499512680791770666747744941246970031753832156294035809, 42926499779985512406617924066018344782208498635230597264797173532615758956772156667424546168833304666067656966483897160234069069842124425459655414984330612102765206577732507127, 111533388990132712961484358947449496821821113292078576011676011220627681155099911156538988433801660842736514542232388030753022860981131768591551983943534778772049089877887735422, 55306799986169553774659191455975891644787572699203269229881409349461740540048491549976560185634093799519910447268102026557889792062303807642203325244548889535545091556872267675, 74308889510454917240281998162771070976580675624934028767546441678988968525224003076644632829046840525295892473275586581634145944013179675691306925786794700270711964852602213683, 17380740926416089746807350924064689722297996825277526665501490218462932205462829028295572653595021883107527235594277730635386357269555433178037519997120570066732648761216770913, 101635502738590187255658816272534277804682707754026161053852342254255911240899093802474684639879407585572203616410176653375237164986287120608273624380925032872076533247233630919, 13864052665764859798747266991830190573677626756642148078188775718435044167310802331183364680249541830587947567299101748470923911538027422162705260048461151507065063460363596180, 32414474033141060813646866843044383776962354387123982478588232035051978609851899998982056953411134262277596754795517148225168317857298327846272522620555275711302670219451337990, 56193440089377023322881594405954145669598539191816501942899732406929841288039964793554629336263724380844850366736408896260359188266526449100914658131479668257254352111686809899, 98736342962153889951053218407593010279453047353139211227241210729884113044604040163010119972572091653250947230756417060493954418396034385554669499788451555096071871912595793221, 28479620839163482774334869583086105267664069568247036956883801557143438438912940081144265627547801692146815627378179236235476479378593483112374040269377016153640427423860525814, 22148943905691183703638449843536970520830482883506784744000910270519009734947930561947612134806935608388646215621096849793953207791671175324009855930323713170293768620796108577, 116288385337941848863319137070925666911371785810237799189135376504861095881942069949378186090156627117829099752730512929608979799330047966394659378363684406655600434372495118746, 24186614825726200674320453401989747169823383877706998321388705110643830989978153594937173770505972572911191785160565550965269610765711408391647675524625191048374156634974959409, 44539709800965673620655065538680610774544701952180338267157674554356126231091712389483428498711627834873307066918751188028888916930493464172069781370904901599046256730580732141, 52364588746213263074045086282853335566312003784260023764074987308606027433895673171656398524689951713449120846697257791333892326184305830895788100748064483373583752128876574855, 48783449666510894968755091350316232746020458474062151736262777038407187701904652883496618014386761025349683175975579698001050662286919302778554727238167578323064049007431820814, 93802615804718194260106983295825542846125162985103092885476082192356091340078971356005131856637407982591348213676356876588212077975940038028005014921631483183171219051509885200, 11037843557619826402973325795157933569041163334712048252190724362857013373475640076987151313388447531958838655725415760068512511375519275509045112736331526694007343684353849728, 49480736757012214377313650550163202501993169922114623879436128224077676381109879583078430837735697903226007772706847001085269210209140257406989734228955231540660260684457274703, 87445773755721019210300813144316900362188958439262332786238158615659030150196970537695409469878904463366432162141382969295115051844911472897082429005693016602900522040497912604, 114608003608679713353903947456221575351356781239736480542791339633482006987712516291664661642555990205230058834507202125510344394338102282788281050439298487292439268957260015470, 76650932063448121622870979735271790005126627702929830354559738532505679422113862296434909599735528590034296872909637551819680943652954220718224766933226179325141195473828844974, 111241608252589363768405825751740194320286413125535986301557220793968929014104369756825829221791586034858988644730946563840059897269418852522267174115019958852523938396766322015, 39594714634671806231859055181127879736484466701733950641781693487513284530931397722798994154913957401388568731844839573766615117435603104038054206385848924965035445231285128638, 81042456644380107887363776951378417622798646558291953055244185422640031355206002823494715658331538445571615982458867252134070807787672712720250892333909991810963778342404160500, 88563779323666974020715930401874808302712281405963240787762952039325581906380456575395583922271437178872827869263827196919077712892399426784894806697781231659303031423321548160, 49124756741224839629771342005961709836492491828836451948808845463975970428486243728587616860323006706667239927289819750228696169703035464460906107387707422868151153009211173849, 58430613265804091382757486211853043974332885690143693476874870968393323867655387974809222238768494743847505798174924534239682721369395442513507307255472721819501887923899892030, 41671630367133936354741020081679177419125313206425026673356163702915932873248084130422771158862938676697472622142675769349322137839345132128950098284580280688233578720360871806, 36786603600503747042856720616635669169204939333728942390655392236046480002788854870805602645798526491328370146982862969447910265754350682570465227429334117897084661119057015698, 59849405768656692771601547016786654280561943116992182031774232518238223559789781849496283462977610505669094713637776871750604681980696844139597301612023745056606763300861562121, 66537692783540471423820272927198518401672578919027299015090895387589915978152447213280228187256107243048767574502452541016102931533053288112103568489744727460276376969812855741, 82591022868854763331846166328459737864476403317112714247689781113380141298036423195056835263583954464043717070459756225698581156808223273756100219505745107457637793908730267108, 79435898736620323777801313863539258225194326581784901364638169174912732377329118618275441154494235553250423287792826637824251802740305696732457639591488674008866987533993425823, 4360111325875050811454601667096657991428163690253528755651641620696512563096101849776712648142147994489160257289401485652708516737180860914401140837627876990964624069079665619, 16879886530112019200368128921569808826799290699841013052214019032959950081407349201985326044975930974746752766096797689886369732226765569685268553961244208964102638497822283826, 72429329655158383702562204898284457898428520446576656104683208396812978566855664794865154434911491289328833246659312053796488760131538460946197877721866370464567084900640561967, 110302040987690341315100151158611352079142432476891803278581388504414949237875341532240253913172012444902728295284769885508532008023830267525586325014074106498254284582606607253, 35660289096367071849859211445546781430139979475046298677999402154231861356812038707203513394527206264815710392127016113665403876125377231585908341546955696399550463102977171354, 102052888697425791767161449227269564235289503623538118728082656884376053603552416986837706523186171451271956079707665225950982877039156598432040598666922273283770792898532182728, 101957455631947072345598312460352273422972215487928106584202480479107093833094273152854638011180315524586524115127509707371755799471106824828448159521415007686488619922651930139, 112290811877233328469991104399694309598995574790137470933838866291555932733018023607944097426996764559950532956355541939851651999976844624441450371156797891207632931431431345033, 3289632723085193961155373137235662192038810579798653186134462657479523629217429601040696521946839939611780211725493087617804831290710944978698367327615142628565296670822290728, 87327798169144294858590735759910935969763846830645843611738370457824381638159415676261358094545182656506882980648532695452787896319606900563661404441297275023829181123410593057, 37153235951618887753933981112330713127458692188285658762207719614647727083659300120736065644489116203193845924156988644647406212337746012859573572099333020181989960693147929358, 7522994503693220472563678207107793974189283443466454877102364001301037881235047936744218921039854710354097724237640705167238754074776572500568338586740724288479922760920405833, 5191865981953413037901987403144813262814760160690397590253413431952987308795639546809076640085517163829784852851484740069596475261299837995950575908218497231860230105496322352, 121486619215465097962488649556225619163971330020498434850631058402787131507914317196402980874134473062985964160599883568599785142227096961164231359794993180738447674522786582915, 116734001067236850600887650728884402526894759252330666228034662749202794719972554538831574011407464410335542188849176471676886792703703346102183698553936507088126718587146536416, 100399010893566572979919476417064149728976357161276818672113024029979348913194902848192960179043886122436451410976399909049762271477302052170231705059204699337739231560356040688, 83568566281809369395616909278990919169897481143552442404525996365235857751458834378035005853191613363952225557284874460430001003158132729822063592328516964670455285976507563543, 35302340842945101041273204747147747768117434337126708952074744763696107779898778631613066804534749061447894153249969072341708408993569673656206405732288617546958628343627302064, 70750165977234230190936843146973477801768198335054640332904988247813181791968674967302808562743528504556566422240397597909134800075956171074975631150610663910926215723144761940, 92642217662381621077631023677550772428730934954086903461097029207961299685249575305838364951533735905933021284117358710295197360341130256225241894476776378341276540766616521842, 84676790892682762294962441110488475940145728595256457814839631556999678445846696357543387882679202230454555685738916338751244705357873911331362729590958060100009711643802957467, 103223818373251514184296706614349065604200918013747914869594496470793235236349963674979446856273882191674743051453422538623112090015631196032323470762797555274153908869387026455, 9988649581817511258977006609895871326594064233620601786519059745161392126240621922770272779145248239555210689624267008884197733665580172239566826656938494151762228770702402174, 96207654061504304980393350260084860910377380416253762542239408992458725204322981403754487192431900733218082845024414702112660283111296262191481381623577765221750222437573563821, 54803027389385675018774975155922910693952520421772312319277109926290435397666832047071654035419874188770325206139408579523256534550246609755637048267861326759544921807129742927, 67158031867635045238227981071080289562509001206692723780600406753791074010855392414531162268904919221593593913915537502422121757146249586013644589291429236560546766420613810270, 20677543374352571094699862779049140324980072674482817494028567984572361719423981606340170805205614148242057582222318228305304490447420019959757542541372289209901659964022454130, 11634886401469233733288568010294282643362367865306899850265905681311503694434265728468305024285284337479310163201629640392360462309746933832078576071839245803992445704631388504, 113164656241090990063527504173491530008095322114344533374871404513769907178006040509274831830597978118971369583140610100110669258949273066344916748844746532855691756212109003577], [99772221024212215056512156364470340333108479256998400850927195327820383726540982206177541628894264532053869173369152938772410303073422008080519918914052054755307254407278854185, 42089701611505117702087124792817717112026709692308585861947754143200297391486504479810259071020931955622117643695945822779287891773685374706712005000056250162207822522179152411, 74147703421161743110849825235664531557885657390932203056336209864358900379230216210260367658796465951551121532618744826190062281707422482360892039101831343390410631619979594863, 34317170550968265450915452258622766452563641083800259263973259467989848710246195225036288829491030252941265868365527901469379972565798664894564188773048722994606668267644314752, 102876454490481458140827254097600865746323318786783843377298383411321573141688557694163924849467051976827559048593940290268434474102088639494138284328503170734501146280467400411, 89099242881547963284856544046307380063568150406426349746339864689275652370991181292543070970919785839566142663998758123268155060589374076213086623262861302694730793985501275768, 76053087078452397627727762564822823759034838450596765510841606051448068637075268811465330368553272252982909250837944911714217442042282136972667186637538904763455996828804952837, 79465691279722262616215166647590735181700944444032992897993962280901275488627274865750081501843871538809534800144250828008550813113885325715999048351437392672023943409878801801, 108971037077232434637717139221005793527827120301714745377214694412955248967447598705659893658008373221584809507256034366066586993798137690246096783416338403884554363656147398726, 50633023343126103028690232137330704778824649842670735210913802541552365617045627387005738937113621033795634240072170985130063235699463795474406748288804026762780512065424768995, 112138443128608726882792479400116790002839343332679433700945678797643951339891277653846580839217611059687077534002812946477700230088524054943243201937212055733508536561252327516, 101964106002640227608200646440392372939451862627833306415751425707388790608546606780520414397707222551277070390369972887768909449202183006660103048828811517411158778292632934150, 34572072420601501344490063682715554244516584172268094057088885137294395755851035982475209720668970934055171065673103025139039187681315053737345056053318877495555517405928025743, 105501598470254078765708430582531813530646193589260098130356556423430696292420568506234448806281291226381229962900167140568205644157121685909785040554744704774846976232755641770, 112342211082911804405055548392936665037027898470899809475436927881779524009053006545392237144139257044828268178943553362598765367320784686074213504589299502206520993675642892492, 18232751474775782422254722299472362653680301783167410166619462103883487785434406067799973900785748010080487896823285342890877858424201215928233364595841135929394159659400418992, 70629270141094148165718018784443462684217306604082343015731224584811824583992485568446271499382107912636307352601436612671693169635903119205582128881047108235922096328688064154, 52403540551389510472883180555165186836516933951254388635534434026866838757378353632287986918477052918344456292894020662997477670432279780631378317295174511858258255525279409301, 109460971200202026800029254212380119731880737277328232836848699525792152953734488351475066785953774484439496652563819759271740643403825841500841621705935457631454453050154471870, 99016097105397978428152022136325265488236822525958680837852405187772931793212803201572491661344529504149669531063840464173756215846775754371370051642236579040371374070954134549, 60780256363974795088071899514267076045308788586543379781483674942916442916364355303415391819396417909105302054162702070529683841714619979008966808900360788513770145402832006994, 83377203645283518782850884723512769390271648267496227300873547855999879201254776989870477835557234384355198187295507730772313568527138692915136203237909752730739667417377384780, 91906493576550004637234973351018182673441624267005969310010766908337096511192798696286948891054919029782670398645104365630437315589510629201283341569344142320681364370380162438, 74351893665862309925532764729943788743617228958351798061216269144215839178860779942898038615875424012577227818377121729811474997724047448609861032718598903649887179376469747332, 25598244879640109334383416305089696169980982334486212949538240098044836200164017729580216032172549236584226795376891781018366136029637365858317773039054042767506941968655746131, 87332788411073664856489848066288290267038717462156821723303457179509036973604090092137636682692584175052995310083379271467818908024126309744568285638248923032581778898055298588, 52939901466931655430292422384321094968318767179951851395178112936419166074524080747233250718540180383220422272915197080546254381580342954989268068140449419983454846395780322162, 14493739563415556240253452913504343984982140257203049385666155777943620594771080872493643232005537013256191206605009818498679747587878094998810603103862129624854138611756850292, 59878758677781849907953883936837929978459203425900173100536188983039761051095963901319818772703404361333570463688917442033436441895842957317421942563708120798515499421638725400, 119960625280840162597636776645574919077571515391256599117363050685467362712113079579631279821786176355982308560894632502678289301161626740099241475677264725618788311025071419216, 107682691300526246544538672195816831468790771662361732921757257937512747160351289774106458603053967912676864699417358614353960401203745734215739021936633101815789250421599765728, 23597765478122136758560549826711769772234418259207694571897433590062503702605686266200985890150572605374891516872679868735260602362737893426244188512419210258820166810322877225, 8455393056864722438661222046011349391009681646889236312621226362805057977146380572572436524824850398780643371415079027663721244531765128077852357971362655933088876208566533582, 63045266295778660443135365162166443997472114401206003480697854345567396202505287739998576311236558937794496513556560193617394387366824548280893682551344308771198949283975672052, 50431203184564627632334823362541021588205509584182705018563949548847343214732132575880174277673672560904961848281302944720925312427764306768864311376032353848907955260954709572, 126014112918503385695696548311334309387204480143822365415928802700316072482916078830081758181737382298604836763117184830355180570336034533478111660398295588856813281388630309734, 2758826895979790281304192139700531668214452934355887886054535933898671106704474688302355089425662922787723914707161772449299494182777779607954115986890242906737257448317724633, 91751165039995943464888902723596686725431736201771770410677699679014023445198021770909728143111583325713899267739770760378433326076234599807517402081212186786787960932506380765, 38641868321238516217163135499415668183295759668713896403298533468545785842918619116621764092219707514526997238200098692065937583756232449033618333549257832148117798893063986968, 100413206132812224472529677791686698942048147643691953352380788319509593462474828553476936752631800460493240420341948557871666449109502655414191035144358127698788987861781250461, 68216521400087382965957702712677813731309197427010199785289982152774454818192342666839269549719888085283662621702077397202067456366591292718774606973813413441598708024709426606, 307426670649377417623484155901036139521266096740620581887911323415913694389793174808502250113696546270911740865160189573018898800916204712741191074620736972074950136651222179, 66142984282285401882912679753041691545850458990299900135545536530615118322944287877197644832508894044115082970131704692041203590683659716718779176187656136799585973835074122561, 75865761713759926759563671479405078259316324787930627477806663526866204578106838319461955822878043471471827986430623601274487110041919854755727882881923690329253724809913005717, 108066955624556369914220887823401554229426631424416955680441793612173985590927404254837428637685338043631227892767468945951896631140368221655789742388283128057129134930400580685, 102331494761126487693892208872055325734786434115716142750651134607733769791355516266082410502590317057926026064517901829818546078461861769748604774313072313455052002212806915286, 105423210714058929181621718867058861968002614592673222457266048350518942169251072380974039807687394808451308096132323078775395924390406104158013871807479061504691485455469977303, 34904205870413595845040084062353782435071159018834435334131209045802303278027985458649764758934574881069705155305529389741550274990588853155842710107295747149986989828560769121, 124689946616401880848276258418039816936809826994352533837148789704435997092469221529230939043379868064963503256450533996300053131414761610081182204351170446237058115344630795466, 43258116451558757942206022865201451487966456060768879573479012341234319081852387126728999032757712988185608842907473622825159153056406699021685928655820299577466963982963302134, 19240091088454628128397155575580804686478847232664410429945887599991159477800409792991314147471411898508347268971453861889332354224576638745581320915328633095867934105166554971, 91930371312386582522440467218045918589120899221036826460322092238299609808798946252241529682947347821115548084164492197296353642331595358489326725123502807856242790329848489289, 57664198511810965534409312320431488394551008122946491935965023492888686089713004797389399524001059002844205126314085561458398622877117923047993753524206043698459713242368405200, 74231285639043335260233224036605725656038473519265489548575254097059192318645107148300756853208704141120387622016092358108153400047855449169699428011133723249392645399233844664, 64670098790563761061572917061205713301703094064587509914490340557795442939388240803297664301222453439670956980513814367574268571256798631652441343406844470115308883074150983333, 30523551807427008450529331711614063458220736531792715573596700930975340974601162439312649447863914723469265830982646659839631731019145019119437528378993280011014136253877807959, 108825942705736509145018513886547562079180509826459402071280196269219072901123647549425607758185747272107729298552404269105606437765503934811327696013119936342948194994380127671, 52844914094773958457424214742816673793211641694383673018987869821029161585833552380372394398016228625010220753056858006589184688128402627658541727881065604294239717445391366189, 39888101040544297567492065733340599177514630589815998958964025985446067666444129393037296532135713969588052366834003944069130552338754731066344733087023722313460119322565668671, 54476014692615800952731863878110654000149199121937632299211615550890448199943777908812844737871767147987904049987226636088440049402951736578189988958053289546558293688894027128, 76639991261385284741273627503464500335005245515131436881957314422603245053974380232756475008471214126765339989267497884479854819988306516007696862837007618172743858575055101022, 112161256569686155734090596632875512000643842893090641662262556367324608379702229691025681643176263801667474707145845378422513568247795622462542366055836680504696553786714197377, 120162998384017237304512244680052302293292877100777502202942860758232868181480954610694757533864423435745959319503175180512692757154863682840483601335637138503034369909634476721, 46831489834331415660570433211179407937626042820307884139500396197198701874245131278213589102255133055632861089299416639475316149417908289082627356243823926648864702615725618390, 89694259040558949768793823947339678648568082378433995547391345623962420010597233824586353861740608329202694911536610023127921076295421417883036151126072730609803996183588323294, 42679676777109314621354405379230583938265706571509775607128355641707694108268420038708795276806672361577238115082794364095734702493434445955449176750771544153383528121737712224, 17012361157951154158365859136688581979464679301555139646973249912897813681474802103831856211265894191991838778735160746306243304146616214929322627916551761636139809320016020926, 23775873235241512750137626145832338184472725733032578912210014789873157452466432278376493899675531406440976007363406535050445729559949626447773712896339479458953996379859557251, 77663394072605421791511009940343278683539813311601373849233126195525713642726585385818791271293847744411625632064105744670783348587557708416419942279515448105347461824318731862, 30514839899572378438654589081429960285290004033879993155901160823715584720364507936448547500436275217321982237250750669822889003944920339451583371413252288813529592667477896197, 26920556028555520482577975483280553874400987622328455700876719800056030663434846761957450104996119770338534858232094877330125419296415839277638414676056475104814018488734095934, 103844150182776488473765254511820712549850063503843318078002035979944951642984716307015075989605917100834979669868463150979977358560406919916871055604627712064217761090785948919, 61532000129142646863103123310255334289698061843038214316505659790218526173664455659802182898674866037312391780857719377455026253505921149509098490864240023672226225843064158768, 35456803702822142235259278707104547284735042950274397610715373027480151133786797198950655857204013254595652335834657338298062242096615285381798418615603243061305903139793844077, 85670114739494054550143890942882266173733949446977522363790046299336461280252541499938539722416673506857334906319196886839589505652830693271558503604015882726798507602246676842, 99088038031243331188543085934749755039151200100315893136394258474981581719665576669648089599519215194356273860683402918438713450617578959765875858617952274932180344747760681384, 56704409618168684805766312520650625524213118417292609328202379268934127347742838820251864224586262275067814698342669173292475305982491055680159539636818401990531187559285059926, 126033197329044572168147801751382254802595482624697029151425388896542228983609843669547786578951098435128893700623492724558770072567992857599693685183621280569357546375837690957, 45184405999651108636519710057492864066888985499754028208246402878635043258223050571838272105940264709669714296071789678551042934107002431133774828575339717165445710559503228875, 3279490060212130056998452995140396975888813261676210441090765018371219592708150349194837748173580941284013618825107455614263924181961045697775658385292880043960952578224674360, 26306520457203671215702318358749774966138597864487067782550187434517416699978922335909254780578965576987477479654968478183615902010270480296340733126120612084834465126547560453, 6391709741191561849332249522585778100491496965041503778931702918664764073000770184970520170859446434010795038536792108932592338798809287946008901833225465587898370900707648005, 123312594978756191493290019839754769588032827017202548156146506896327826904198921658592450491390808277217995861300157803666117533296052326368502443408854257231699070536768418616, 38966493324626198109993370806842393139675886978519007923777347077614474274168642943855935786439555731994171904374922222242308203569725610941888175140456453224084364233177459793, 42647157438712851149838927535181412977907621100020980582874204070597284468505467032422611399853631939047004507384047747492922203786001084182344250265751077430166924878604764638, 63755583184888383089071697502797936618794360433674027066534940329138701953803138885852048836750579061893997021538703647871734231609454309926171675949496081828443992439360538044, 31917402889749107237153399365433263217468727115900640074787123460650056792035314743833257566129541603869460556495392774477632229436237442290967582224496720887133062444651620483, 80726033768664573046752899909132434078756060948104544298092040179499549466212271413575885309767310074094065615476169615770394385805147019458828829449302745804898849085226381615, 117356586478730511238926115396360756464011267555515726787833099768163701311389652429729813827526401970780503602122095336949215475659570384633722671977344042965146453452817048294, 74444265922390146579551740588960354912092823270269355674293191888212338853641435257405878695890724021111312351668647240191379737186351254630096264366075905706727412598200188373, 68003456466361319732244181786712019709099147255553293024360934793398653713918751587826831254758119674533419620797380572204203076406163301079139671915783075036442103630401841904, 8714481035059410919690601356000539361655396051801110756688356072943032138507026144502773380543059647966534819690820976545490820384983471057430099732622772548561892065391498308, 12938798616998890523446921807694266978672459857192500410928574491106746663557672355450224632264381184536590228110732301734161410746745925029247967089816460306441775407528198853, 3004868792287148762024941554521993239654052808059000273283982033827971416653067009934999313291432168236052717054942357617282521371608413819077892680401057179314769056842661032, 89109125826114372532983953065167937862207722067271753874432642919451171219640559545697923038566959258623888333012175642382537904899286764425159653144791776766207427623404162498, 26267781302646891000054847506155637603635406698152677760161852103336808793377473275152801977779904032596260521418003137392845843815938691755928565342830164501207970712725477114, 60583481664294436941213966566411723836310958344037383450837641045906196829418808875944289558394107881038096110895637258227965453346486696685106399335799835696854161649515214080, 107946330131282288251558866828907236866766818880466357526001944664095523749809760585214930976544039929057602966563719179113843640040024832572755044391287611297610877753471787819, 6539405091141258899260012699571584167081687362317033195500592013334506008294280014106219695592369525837584510571990496355886701469739985241299942933705466776071465522616477401, 95529202705073342724268471173189525937707926660728552498181803674825031810864175314543081797363860981772392372960551958174566184772006024985072739220317800298984537846533605146, 32837623415487163521613949174669914968046944774012750339127322306636261669263861971402608223400466645511589321313886982437077197251919231659145465513305805878462796989627522873, 90547866715844314024159127443452852714788843166069400395245190690702692967671473726037229363579391589622409061610666015108159169860446985514070092940994164829518495520056838559, 64677497902354524004731278650332663587025743795401716074621690952013988710642799458392041778023573306633227983796691854840970488566017120116252563108236745270096213843673806138, 34402127627601540134639754395865345967722920231728989448877362891780736323571706016875629188460358664629383961899497038521495778582135087528964826820483903556723944018124275972, 13896472377482020986544457446643425561559432321396862349221444859098935756481037187619152342872610742325182174776567060377693517857247031651743961775375808405743412387173528833, 115602347461341756677819305248391290229255661193626123864835520719995413157498470952780225099182883439236491009605958038773642843431418767742831804523417397223778920976510868625, 8591107987881208497851800278816339856302287561198250944175699988131117125389764310180001652847155862871419844606740649329795918375536486926278812299616751843926479935069231298, 96880412752205280886759917161058236187554532203736504293150274992516295867324768609781646675015948593612736743853019310388641696096345194195837321653836947135180292557704386288, 71836500218775778033677612505549158496243162993479712846595341764733474700218771015071501260606249087253089395758871662591404403712900970639395416295467032695897600069047352317, 99976692353834315821245069145601501041105413949055321590732857653695835122857939524328738366986585766082299094295989570595710271349767722148898947104533505235086819254151005041, 42161549238475568789888856863693484014823001602081951750020129355036680223384609849842882552615219921071786077718970769553511132395820667067476576212130623828430181448507876493, 85334425350567699059144128405786811379640414333998873376496309643053581649205043990013138461379774489463665184103633879677124846942123128301342337032615323889497567759028476805, 114238029326787667586342621495329515641218589309430226957239192313417947929778437630096920795197366874426005329925688836192610073352845737261052349955065140058941620619248139491, 48773090015294727653319261134405399840095616895162210573424309004828709491175429622572088651958176891141583656062192085342142609914071951613889018973376478449874567507656828087, 50361688825760251348147836872243374086457789139611945430583482774831476612623588971321099959710673686666591777900750750795893987103824215587710457979351860398459062568441201218, 83446377702441489392288245342179604420298607117472287229445984500530327751882779932057026772687217733019946146943755830893378890152217542979217061506465052007298319199505553899, 99777390030392263248505306042170448877719073330057532167415785784326150465714930996429286436964952244357928343969319486787722813342942000824807185098629421474933680473313285205, 69097606090995445741538862247850030766326952357360758152332291635832632117581136926004034333586992033512793086852245448623401737477223517772682406581991889133141547116210143820, 21502162026483749282710279661371819018359563722587563183233960050511028073262623753972988383767979117733053719978475399794826060591700755761071253071030224008503717432786359295, 18861151892307643327434498938340879775005852268446068539278627118721528746147471937994655661409469759353291739902317761257827486796325321972362906736913214976448606188534955060, 55754716426908819829130130408914693386996454610412635484360219095982593447624129597718581689996706365170267968898512819670180319834152755148399981414451628265349625242695925056, 30124492203033219405498169449804551289846862516176146509642614148701889114321093402122054008468615604242736866221378149691278692086630480742486239764282631190571586213508106993, 73440290114641001320778116534298649468581284646751132989577798083706314329999286160203871662372023362506623479180059724064177824156943905661917568603923738256251835115156311684, 79450412496799013730770670424610556257093927139853511343384480644558944363955401325165040217613965263051866442135416164778117087867711169595331894188465328029508765194494618599, 92337001429874571320707640587853574061433021190348313056266204981215182820749313934729296860212357210914574238649061448982176268561168589562503393799865706425472256266651873746, 100484547167979710454388216104527751547660962642267649076584339223832892951562069084953534940354399676805682512033934507989992798790494759222049801639102585578961249807956152397, 90922127643963919642362967404421673897437719830581252284239661970216610411759637711488669654161120938603292444140664661429513354186957538008978219101835356858184194567153124303, 124139192165343034913888221515671819610261118188241098914254144792552776158046766176590148362175319490358178070191489933714410686196222271891213546433381283863945962297378240836, 100991748965792757041355668805061145061310512308433952338287996483133060096806004896953812598214028497318705691608726201043723574990440843676615328413009979197521545609034169535, 64529561463143148720645703450938729373201181275288292192383653886494680704942819614322234810917157599328898509997226096630083340533998442295399771544362020461347717272457339726, 70510454858502697654455140834212711508728448901322496418959366892621818035183410363781595365205455772617316359003645128989134827029055598700267997838046270155669338088726293967, 68897631042629170319411141470667729522397271773506504153376371160889320038943769765680126547545751686396407964359697209833052651161773306520379081604622306253416675525062989389, 40728386339562386205218229678521444182279670847499001452146073671365956942289588279121360634972461682435413760791710138862251578883386129775464640671997050371693567689425471268, 28798451703496339966679012553482936376168170667640785089527410020227599040684622389142020968425399690221426432645772828196299580967242530869965701271462125105626635370043979487, 44626805873389096385537572489731826428746695662825513659209658274995822334044397839374124047762872345955874754424163050716279157963324377872371151975188284277862982533256003084, 73267474675170488059480647036836567264653098997204063887840113611905090031066354760598910652525234814031248602260798781493801123241440644548154388250148757565047670165424341377, 90377303444315138403193731861515692951574279435129668683966213356199371745434249791211800070306671410637174341122321864693060605768472139671000860362840471950007628213425857445, 122396371449757330499693826538082576269018921425159502219549857153509627971027134024132804974049447480898880020478285789059178848205692574412394155625009960787133604702233840831, 97683521256201292535176120267104111214920204033502329342112437933098219973186150904739423910372972610374269434189460963618647573293347560868106523674613269362800983783482907462, 80450325323347266361576995306043264760224190705125267475627865806501951000767002218209320082494947767871937966963970548691243647942081512874627578309027904051578834363108452980, 124187673420635754087214123851886762494223621300948612162773394174300735634311400106947026351644255139620366086349738696462780007451155731724424477425292132992324784370443181265, 31221748077625583060683906207170245487805735729537958849795031851810648319252017201388301564433389006272546841523457635239574751262128806832329114938218388567283369688178617738, 13305495803095929061655304355913130270354647256562492766355277257906770229841889387568679747349718272037909417726978841890135767687311848018825067012632707443153870611027698137, 105406540950121012433804010288032973494318398059413257518187813379262534442563602257308702975400664086828328009259580542029153801804567110706725529228753231755239711571662883780, 112164701783651848439010315490536320481431649543973126192296688081059889959337999732198379111166229701635335040116820775601980621290368712237009144958254496617916447858309236791, 56733243856350995805107182802638291442505028739692608023883625877254328396105262557112512072467879396278382616629039236606230031704410900098012189868564304252505407739216182014, 29910717184174020269459419804603853222263931210836770049965243149091804650675339455963065646464358312364118926102054075139969557205050194747236826350693342180213666978283616966, 476022931201277230478350782280013487715929505935674514861100779051575720180760739343081148252458971955743651355619303633359974831441100661088361234452616155957247793443299250, 15519178841777614215608256408612790906611022051059022661117905397624663069524996273210052711734458910386843992361518269003544906771718843456326748230380826132364342548376702156, 82148893244654020197255245946766081961914826991945397665081568542862461515975849777840197059486087588160259425793210620923219876769787398522093658617810168199448539896917716090], [54823144358948672851035205699202120731453827685148485368347145526457752392451472715506340914150689849467503098122837893113127265248333811942499493807122299604363994608028555725, 39914553616580428963480093387204713055910157720241780010794049727637012502276030888753064765429307948981180930961275718088844151370749827680158720093249721134701516181465347407, 82947973751917267334352851455036146442644684794928573147739357753962840629422870230037562897595183489655746596293640681640984626346016372960440996142644276856821637895741002061, 100598225002874612957267114448964225385149980320296403486350467911202575242451324325779385868446215038098310226129582527326551816703529719351592194521255020540780333198432869385, 20652837027529749647509339958916293403720620251035584232501622680419774561685601502638018532811749505179845743571805669913587887414519492267627976619689923828153484324949336717, 44683729687375695030464335220625819133574373994498950915904264207392947058464226721237846745813488206331247160592707436668420894206403435656030059077269426277202132821263649181, 98296489038220431545638305634955479499292562059956539760080272911247583897573271262071038865570052005393160487954806877186461964542404970475085036925008834365628860560343739752, 41892109723591879712447453825285984490572391888265157567736378571612307802072155770603209601286478143154879028078428563024363701527260539332909193268704205780941592326799003958, 2879832294608610823746091438841857418357462466639769180215067500664658073993684651486394145339036293124822949184087054104182903161436921987077319148406364017983744071541912256, 45483232227705385339162420911345718277218266617707567875937882175036005947921219247141253068972915880366793401881761550832702504371005850901997840197193808437321949053377832027, 69311827892276754945477324686676848255747696990135389792500286752709478726113332459059809338707582403086822873031870450993759493566836419460763256301027179195045451211752871681, 9899981197566882116761611423220883420236446147592004536049455291418678789384557846503005430237449646141522810634554874797951292007259171507961953018659480476046434618411842151, 124121916679321656140456746159244587334674560287245190201605749496089289166364878889309321365435891634109591108927777030372103896288892304308232288408625780847021410561641206097, 82768328904739829093365279392050521765544898919368136993673593604285566051547573217613750239830835676382957624634988767135174355479112541921165659402280009711847439941421483778, 125986248146222515945874221155170108167814716311446814902837998110750832734481894787625860596156908099637413832286649554619967383451804528056364091817424054423631130286784546559, 82075231120812822614071644953029633244721052369344630596534237465476521525101303795313475874014844796010952128923331135730399444451474249503184958883097721416426602757128993373, 92660655474377109620355410017111281888466888917759239969797779711391281758171485987872462601007178590317714816293714912083971688822888154145970299629451488565042944005425790111, 70663906488235417178570525943204382005137767230592123528903584783416235825537944983782569397403490517658078752130471334496274801087262544637510024758087517405210884975107384693, 19247126614045609445062365600860139225852907699319755635172535268569023475663257338937837828230320258660367191298450080773455121834985184647511002112335985909135464191006711913, 112047567670552038439297966705473764236552592663226438479973703398618536745952251741473122034881850808410554145975138724279121181813540879947739643487477743291652736142304831151, 8191654384719948863947442267356905285985903791646632870867268256243992813164715570474342210902482058863719961951933533749956408505588692199038719802006622991531644926481685594, 98607107950936018099599068229894110078064439880961269123324769342901618801414739228118177807722591215850454973021270461617913552670257834889043542464747441426725191155694911450, 55049307222228238558265671897209126829162838112150311535477691744885058598935289084501541910906108311464864622365588764333541609546202255711861964350252408671929221594349853427, 66326175903614746196557699032475524497219794919438615564108012810482163639556566906661067881465889148203669401659943870538631396322459315882653005929856463294175169133886092692, 27235734261422085170911218968865988085413284465832804777569343862757953413745817909834804799389394013980232579201111539122932538937035537187507485493861449007568285648032753222, 33048908380844644355512814075137839869820320512799351283226642947566039916818384600996241721772870578459805696391310077663177302680525876615329163667551663280522675270442619528, 104655657794813906128019569547875868101098823525107537301997306615365729336161580813563571855199725007956563119072242852866463275190021517350798598498875546581763360037157771965, 75672090363931674159151385375874857222031495450933255853408123799157439825663993593226516178735110522604383201203811450204708333361692931603925103686271470188725335221258058524, 20530578625193001595436021324951730480580710257187198837535388308068613150388972224190752193836807487212550962563023762242583864795879434419440441093814961144050191527076522795, 38356052388968631129816105798354729566675082507450398468246069963944183005861472643504147220916644698147855383463321953302888489260609387025950182928736627479496903454398690473, 36443092791088879626426146465329037909632657556399690819357351585043612634726900407786067783628963178685079347901473480050143172780933112198938167566279551528950416370602541127, 53036294411580510166467695309517448374886986961375731200745234283533489399174447220444661473119184300877686235896338298342254499363497913661952873311900926920800045804874787695, 74511330924409642887710183575446134016554639304011683743985428514991265217925203260038064112949997759919312871595842244002204235967383712020944706312684874655117016156164871674, 116377655802376266887144221323785010905584439968829760992865696762263618268851584283786340532780795441073224789489327595773454390182437205501517032049937180243705937218074382882, 46506843749544935570770131241173718490976723425838761586940313389469186552701916410372256273846547924032566910572825363251496563685908652403358579748474503776563079930877230383, 18101241290429201965685867407658726064127946557269279748768305214245728497390830322834404233762523073909896765150546286985495713156127604800808498919855704354961457856398959363, 96728904231745660923154712276636424015844622305237378228245539873186690212138577888024303815708399246443439806031951285086571318582758434318571385621893143801366807972387528686, 88417174508037666061658003844858173221292643664236073923290179917392182818281784954728919124729375693293788955662706945112713455765910857014974476700883854262724145659400169771, 107582498047932242224700009667593795264453276236005104156112464713601425750483178811310485322520114060985990972005671198264128591410751129779408796762804597048041354532520952306, 36941846614761572613449422429996774493882206920592064990459457323226172094983122915178946210723230902630830473916948663368474127930257737236152353628142664928657320647800776782, 29656785856653605437287072429051816624937787114026426669727900225456556725178290605899101715036347315397355076349569639250011346874950159056578488898766473423080755067849955108, 40346820708318330005029559332481039759318045425803926172486088980215488526987358930930280775260814923369758277567735337539112793343653802503580678914865401894753286717156638855, 35887588000760727597586968013755189378019859503748147225887551205669867067976391408937079199447133460232592330165054715808690381134599259743744489082504046675240076720929570481, 58333786956178740546540939956934607212740515510829565415124429533632655630874652504162431637076929846153749253435511815018748466192640562984415728791778472767850531106599702599, 38612399856394029810551619255741322643019438417498949522859370274975884378977185843583278101701507757801711573290462443906036319325129372251523022792190355828114754805201339900, 121691335792269582400122991297201820168859052490311289809639590807775851011859957564375838074704564056299597843162100631371600531305681317020950325437360644081373494215683278508, 110918796691101264848547199112437037787831766611052414522844687278786857567536808596818215261271306231460770859617883503865825957468378441882754324139865964461858979992019284142, 109648207987559079341118746507977289452195987671193290518785500170928759941258839423334779287876028867457804455965199469826042158356015422631034013727830599941903726291533678883, 65930769174398452783065694054008552175683371727877017279163070061076507482090099643090517738626070556276363713514948764075303432112512175835422732046431457156288945653067007141, 55038356381669945000849743247648002651130013507171641521266741637138941105501579480673331699225637788980854934809946746087669727536400245797689980044931455975947805980475266294, 77736987504091304165204506941212463966891521459012665458543491669709292838862252470518377525254818513540194717305961291884933002006554735546870895658974356189127682617440024251, 27149764950481482550395803248276604665733288468772531336391584118008189266331068122565297896539109005846406040976797719735386474682113158716956238895392276488115975722106848087, 87916753060206985924063822037934546017972702738369006593151715583001288109120273648208523504910038913990570877259315784506621871349360211430340034970152026431068727203982004904, 39065526170588726103481610370355883360251640661290403538854909552399119455114948221585819754270785807841268930174329781879897969442801817387423199778757104925266040016846410486, 125823394610321857483090366445522854080711598789760262555336026783872361790164493873852842961754893261390520996173683291853038070566584507239570978144692090515105957234891585958, 10298957678923604288382670965446672380586608656530287087309363905682803271594441174958560116989179592281790760909532314060367500509108439812204894748654308643901696042646382352, 29433878380046830215988070100503337462417485636669535016145955916667882129825090682494003922146776965884553168592657517077363781946419464078274883153039393625114759072282164348, 117424261043478629118714629246522128956440934371511311676739365678171884209668694146693069184573271479535133353548956441469033162852990512540843363673277956738998797901305382360, 40486409299382092126082862239313372198551200428953318574478593399995574938886708515800950299124336714536370698657290969485291579239915320253577527915955299853099162689381425916, 80960385699565383235066394044000903854543857842354144603505584521277169255500811710726288099461075757508314093089168798942409086884619365491120147545529940566611973304386421789, 44977023217918544345368278899256173748690331958919655359553380550643781808388920713776507633580096556910885675267396529391249209451872928853251177392678014697506468027164626578, 95351377208839718589601021551121754134741901428447610051677013856371788577340697473966434134773511777680177056903996793064279756035661638974961042943481570397019848168692136474, 105199347902169952961695113816668586057121936279727491879398885569309404236909056847125742040277653897738272539560094251430551339231660213734185161588561497584257449355553249499, 122592367090997409352040577646563680104797839495246803201550585882099525065110322862476890901212408334342787324285177088823976402026488553642920793138277684523185680242102751609, 72879851214741732946515632226505926149738085716980650422662570923346975722859422187291583633176184103212146002703088048647660646075598283676592735155475761043034849679159218007, 54522170724797180138320485847077170026583809475837757759871547704984487421822508511242699463369968538040756524600292726760560558015104691289609496963457666733018695082632110320, 103799084044182312421256411649389383144663811097902328362707967173375058711195515941617519679396223049644475671496878329593114162706082289547779351386656772958661091733214630480, 78323979259865859909103376554252046767681264792743314912259697182589664022777813037438506469538339362228388314840195908687575187567799348109381889760603157514365528331044389042, 106570461716944468083585252318131309379802095897171493979146587517828454976509816808943749517132468788625209001013842411791558767903055803675928497893720327589046449980667349182, 55508461296500898258159865995356400530492760246510176206107975914154513505727373005674434177011064914585756207262671530290371034773876437601917300095340663350137928616113116288, 64322108050214376112069078599849346418632131707105577393518872093572351642819967555209030296409864675399974022830537207344690644612565311667056385951267274763121014274746034443, 104317900158377676815535877932454519209413398078843755400184263757193802019432273539010133955892762379928676276851495992666115480709591607049516726046922256275485764195532554734, 31814322516327343260829143744489752976987935348231807594718765363152845681608549840916706146154339630940253345524904567383925584599817166048845092689579008817458508572346784879, 80072681072521280423617036599534857045045012533740142984422735564026341871786487366319832741041429520325977505025074695417819648407771561993795682946035732554244060639240655667, 1044847222548976553999765330048861760288801454954189673325307124891562131173855792392060824866032812898495888294377972329644661586579829047199426626462963702344314348501872461, 12642249518119928418905879873991809442432051518373932717903433095686095214400266500143207478501648903447800057032639063873790790205001253038873817598687252202300426960294083347, 18148613286575086003889545849494232067260155459504681959252569974030583234025061758352692886189354072314281762821721897860731711031827110437096537386957010512826708808504184620, 88812086042124639639083695692716757535693700874540410537497129639140280787388496131539501679888326834126343131140223689014100581903895738479352626338041868263808511122642589853, 21696786353688593961242017984919492291728334668914459665987667872188910133717178570583063442652054962042789351752666989061409839128388871125551977209411826401337528220918324896, 115920075125422984003790165298150411698615103609332485769281319005211904034433725613997010457693558182977815970740386960695664612280535628482241923793479068464600726570988036521, 91039103289078569854806253849857717431988514179791112005337343951243305418660022230887592662627033540114601007560101071496292543235002163192213039078964219330697081118749902127, 125205444298411515771400053012778216608408507956624044187792540834738859810518173095635604740455669516033914493063874171534695312791923777444629492662017594934515342527810819192, 50868751949004586487383130360061662507169708942481972667878863239687740096701346697844652744877868131827693760987223384420842798286775835943006920334254806690313725786435757645, 46221169162602538119210147842149452416101341773343196030296438778935896064818189260366329836117279828091775779446762082651374195027138943797438598535887563438068582370448784381, 13090954968534268807724204477555862993269090898604453605020930504076224553367849616349288548466040073683418483008311499279441515753806963494253371602313090175659706214268918947, 53600764609316975762093353138682806851166053167802471648214346277883445517133211569330877112345698802373446838267936443331909388702023373122200428417371038377486128796215805480, 8771793957048354684701152893506356438900044809632123366665561712340511732994939990899187493884831063102351569312437450568094232307371260900453426966119118479930121293807682110, 52842788541066655646585035275568245067310748992163795337721082660222954619301376939015446465495397213209396706062517089672337332825413464147093698594589910373886299135669442079, 41018872001627420686822655571084198661022793799421129661726361085114492391987757422499049522843209804065693997726673973562826774297113951791770896727921872941487241004621087711, 80772346689935170808227669865877777525078993455534392460417075465637635656893374101494841538363496892053569579704580038232738243910589357459185168440170970292453665867549905341, 49129308046678698504616910853661478452078875419228598058670986694398881115461315099808924561151408867262402226608173269271285011532193492402741719336925582287231151604662342359, 107429137111531559704580741748267527337716862329141426020304558127353210979424630135728211648111800823268757598290188921875096568125965884916829791304769758843277408549633832391, 22484130889419996696068273935064663724063237573245799667747752438442978690944204424842209098363382623821164489263074862813853803596397366257277715358748801110514880492484722030, 1648486741308521831734372842368538135383629786507415451294934415001936030675856880278043115830108715853695724597434971255060606118238808727342966581330491158251549841977457385, 113235194660027969284458910356333427976057936069780125394801872933265725009417016243904632769844229178049821688467903508301250193832560811669645371198877973587561250308991820184, 89618572662680520348913819955209941730029226683819833591028519875142782852629793226099629481679583230169882734108036567948686285111853227932268839417343703088471831441250317983, 18014330477439189719215469670336628501343294298413794653115233217192961987526007886291696423202237342997996218755650797512903500781882130489772516948993684048167466785683689387, 13522640254727292251371843660497494751693994731383586757946058270885831805577798884503422907893560966670662857710276427733099579435940174285175737742549067086603038149557086741, 111337025777919243320665628165957482955677761901284162412530197962033241131993865909137178421001923339770727932385767290223407698446833747403130891954120789613653361774216524807, 24177434821577709083876508525236534475122205608625314160564572732075535781072146147029117764075775310769281765635275111703166620194924352064435946859553771130485383564589444996, 98059449754368707741997649478722893490962858752631918344993285315977202179838829477847344912821573583780912954094401233385711524647391306666770736354417676233042449822999111366, 105620511422068053984469337764314657380981081713363193832644608239800662249454061367187983030990894084071651606150955737364572478434461885140630139953702187977479932945427060847, 122869876721029564920489980349806899375424032472459617995035474138764730530405612031991688434622282796010891638052978332699596921067889781262202613988690377975731853491147883784, 13469239190359826366621274838562530928541757154751762853165324423042962828998378924739508372196250786462248731430673951329698963659799278788326364671832459359156620125907024389, 688101420700005389842567709459011984181158700803324163516380291394193435915738605992392628296609297896235485748127721952252213830208304355697687124306704846959497585318847082, 86818165525716539327295625793911399769561713410368516189179746174656740674617835779005641826750261316953248721794605043447048919733192528084353288063609032018506420111113295169, 125042225006000141381562390721307755202569162671475192606364159865167987501836528111804291618759108197918613969386807129608846112242929219127730570645329814819600158803496989759, 96418126598626283586021643460516210516940748309759125881991048071237218445327029415348630153305305729634261538167629677722299435679405485105319633856431512474487008330922634578, 64301423399582356935224032025700834736311420778782017247611788463561897527646984702773346218506312104568908793457946599329548235411421377765714265774499724431391117784557418342, 63072563988534217568910785022704101569423186408588743563289969128850915395474776469864595492607042734417149647240381250999448743634340368536079555667268757099969131637755671046, 124601966388748437392941425075303346503957315721948098539944847633970022268766814831531140051738579555433462124266489798567860221251365037543379986400856735499873465882655117125, 87406668459282730320632142032528290437598158996553409265506191567264405265008626428352961304371851882007692433610075993925981919124451091511027858772466827999688419659118464878, 56126683721532498753149885694064529414568820337790855462910468047137345305919200770440228268656340575438869628310463636540892079085623616015426720696924331158464734514593097082, 35698562650397618156479518155012892096625052408149848097499594686707954097935790503994365397164867245154067132216915653560208291518128637726670403842185198270307088957807134265, 88812069590794114977546849931181816651590999845239618417541918393564983319141251646508108123268578921706109660274551929600209796320621652802327844472790954276380466248154580679, 7916188026665423375641103404483199344324895216654847750940030660962147512937153971657536284607783974959370668382848054535528226388113744800350653535941800760168384776629835896, 25222981826527232035433128960580707607205300075393276695830622885508221197284123914949544695740637154821478932572830276771312597371192941095531331335750896445241707078313678862, 59129694686820282465916731958097748025731413642644869763044018550960303606997040623821657889036292871509649224134528481000482914462971591740922142796150557584088741335961292275, 58856098762040241502157036006434149829273387507503308504904000961709427593434621700483216411450134963086405516833600317654435050086366870760573547735222186510649843528143780999, 40025059809197553130078779480914876056053558735109897535311654577705608400728257772327154574132307019143585878225894906617644461039124633740985002822080366168732155335737424770, 86867222938012340887144553047761871179636199373671207720812187572828588703800010323321218190269522602173748829341553521626646846748768362142722812526166058097258085113779875799, 53109825786917843782450117305908768171688222648906970068291658898369147979660264243499534193904964448204809458404016777217912533181657975126528106270970236040548654351650427753, 100814470945369600336022815645037014965848069947272891142491493188072307398967352683905681241107539084125044808266805853682850153882198296194878752940582712301696034948904937716, 85135744818647646328334585267132945100861677168336303688570608392915262516750308439731724817019372556778084071962606085930047013150869246338256548232964448554679238349746670931, 69299600992281443994943104602499956910018612781924290826626930826474459397473924878701775876683818335622751872414142259466265736172044729943030279730978547104678748781813743864, 8413355360661865566931868344014093006052985461460555780888525954174208109672543731209778953602685138853563049786580238396351538119694588694199464434276876379611400309977971776, 12334816833977851502056158597503722774108013098764337207291246667695194631881565731592376491689233375937336166153509511359700998614983052676760040540914493832381288004170425690, 99474498343636792552768980553975416352619726095468878262835616397050252172670084279832327724864458167085288065612302619459218672724926301907696715011344221101270242000306767182, 73708170476506233085585375748177528109615226397665874061653166732452137716716380844583028803188766673525042375302225318541179579636969486450384304017576433499143262319071968455, 15782691621485890758156860671952265395444015925013090328932744441245801444462197321691818930241388989577424336606339596581919878108051748081060472518284386064987085208528068127, 77160845428075041886983968696035367122050003301227302251912338443214454833443968239881478381116429611734643459389245245710483842901071312106361426618401389660356295708170975932, 6093025042937922286141505662084542994838842145808134884861988490080556305723352736542112535700238653219592216878995148531462896540274216326225685514937992296731718540477460378, 63731816718243062939310303381750822421073837542852623701732279371732457128251456603526179431088205491007431870952775138397377745436592005717177304613825705130156221971505705552, 28771435705120484540391650119088067511812077303381727927591716130383773831573768211177862449384412609763650954798804407025799672428239574539099524396822501794441343205473085335, 113666176019207277182611873753368062362260095728576811081780715681138056350014838140684802170651092894652267959521271912830322496560726834718904010356754333681629381908700213574, 2164943000627225218691419496924445248126100564051157197229166218371106223475149053579129283802961494617627561729637461952886143691627580115056336931540901122488474963081024375, 121865864064131020368244463940366592640685132723182049690378691328696510101616600330701358485652247679856278920552962884341872833398103951050044348360940691503734619739645141655, 113902901446161297622141310467689348920217115095071760482142880714636319790770298645991152690262977873894115303938927363741736213839986460629356088650940514176019996067005957164, 58613796267975193215372541067094853945830989266471515647394260715457617981763191650298106998140063328369499457913801316823424771960438757262783180533105543522507086321980278231, 74914299708421482353786250378037986408922774400051988368890366171350500277981103045575883668422802088498987374498708281582117675847823667910276878289209443672311671769867940375, 14638402784691157328371137671085534960264170591306032288426549411041165621234697915312952381171380542681703850797605710142864776743772628384750351836982493021979851779599155817, 83325395385976679153772338356147763788778897263783577571812701388103356480299824152222726195208833141880639282344482377360720965321118053272162594964672903755579760196308786594, 61098829097762929246160066201353356552987743633638500047175121289546925300269788703008390345432885317766909912849557126576934176623092956685758514863046791698535611818337033301, 63707550018574117296850749255965682560987337192363293481092714356901478410167291536921768301762755291691943569395176142110784585372875672807985836483602174107825218287728289419, 89635197741866940539907734848727804017757094093329501610709448963701939146140240783820393280146726156189217761712818188744301804801622460655879568290726898703209334392994909386, 89951926259736466935063237065485147049713578127857722767680925715718190199555381233120325112224210780544167610152983206220033011663497529648020773052714297109137271702126061037, 21027762167125151308553078677401489142140384342222382994937464678338007168214830843572967330366784512821563675674064701902183315392323969729477507866712424881619374963155608478, 105218477405883333093237372935127575152005793475703662860889098670484835314810910029137330708120210160007333838185114810056871065460338258977465015782730288851323762815523067275, 46567383832839955214755128594667135956844924778870530017882202230741585938320355107840117087262124776097252840274555891781469986845308523730950605763261377616170795842960404410, 94163300438416162660676670127941293230594297883843605305440419360718968073455007879673402960239418987218492349667843796477705684889814955459699304541588460220307785730888472455], [5019674643939717124803509659374215082224398136620535542852558325724141922275822657807282784934937223819497463556376993050186936758037611845794608725912007630296883959181532661, 105419166555849853263228955260093645304596182847061133945201996361500957800986951446204496007553168392390922924315771783985522287887253013545065974925256805996412060240895933345, 42659024742402356352379401276887104503704264172571604647389909388614998283249100849434471857233315791557463835853049395185400343165620889947589149115227565745783271259654792209, 118721012467288364948868682699231476540338030675286162414895413180831023122583473170971325959433440122014670520476591080030353594167122626597830497419138914512823996096514345965, 54643876278479369964660809278106942232768410407096593434229436488925923690195324529791496503311311433796833815289034739434144253771172658929703998728246937924357130556003470708, 101309495676445528782375711038851972073461014033311994544477915839071248185933598684669504412790080858250871717880292963829441176308346227899152179902281202993236933881529798809, 39550367763010627557762809712963520309606689997806293486388122139907966716752459316333849523598804661257003305627089961232096575037606408210692198858891301992996661786956924973, 28567852163717851346355057646061904435282688243344948941203481845056597513068129582909040010010540308077877381839182129768771310350866058979542918182687656492660862934860429026, 66736321128890684874895497505396714016211093310281660913981135177588550310998558246176799555619777565669455476590427466382592723739383512548529867119445683392095356520713315095, 119175903995561842729999654566902937784592759479447737018993398521381373348620451745756356621169355962502894988765421135135867437504621333499303275101500128745195548990284364786, 85621195356385102694284887017903408544246814150379508293643438693205275551701626299402027009030600857656843566956880452295021274127835614635778167128652902225261528928125566272, 124312516859926492670570480324731339119792432252863134266598328339030908857696057680353649075648444372544117635499004663061516981410160212963524403951906664831334908467395509195, 66616734215223248099614888320538062311135355947371189217376822787008284969087300596067288917473197446337235961484108405398587916856361243140639663748475720163609250120713116920, 125724990862165759145382679731687438087287894022979454879581854651001281202615934254033389489429824194407567831493840709185297789783661948585525853206576313197262446604956069469, 108526433097003632505012300117212132349107577800378226620401734076112796247153679549489010833760622836318105550394635738433501566495323436210049384617296513637390496883046643234, 114964727270729940926632544506273777813002109093695389409366163184569043658152217750015745871814173438337905259838325895555792066611328093390178791362917647118677151022773549443, 894743843690632569695981059455765659810598213249431586385973705702992065747011254211231704686729167604908891010343005796037386128509718044344648451119511015981484267731481915, 79643271142787153792163720128214110772897837113816909056141687305108215117996198963709511249088855834237847524776625492956506065833609131377936891684848040734965052605359673538, 63495442234828414071543192761690987447915584956470807673117889954934961158115073015606085216409669727255938596603604743548398099279519343039636280127546799893567841515207836348, 1428478165836456982068262282134443885505520948998996392839541315497717855256529323006642829773848544380781772449119794568152791413952889695994322573144248173575882853776645539, 2375266530833292157868955912663280006912709575234573320400333980763575032967729554403686019118595292127975775709998553491902925549090915178936102014153648002623508463775858873, 72400548983054126479143666516278976641140600245581053778980250784103676109921277932082058739632326895015345025126327557326154244157928743295756720075666184144149812465407575057, 77238770206274488622666034688866190653345837147994738349943584611763445817841809352221442381511856301080070976077183288416705755731192736094661718216764121057443928426180843052, 66168653632026227720240056816412377067657909660284409736202391470078743063962904361630768732606695626062380714050738784802962209254611029494681548371739236942496814348715071071, 46687232279448979483169198890887613813824371587153786421577218159791825737681236186497535106822833472385551097471437928622716434602222800771726882915926394590620249150379179861, 105607081002117637832437315640389259815895212899604551578466411966560064934834947330935924818312673720939756341224755769428783389518452515669543859878962142077473030590933785670, 56044373459803237050038253496033823572367028743375531178095091151270797427483991484799701050239332909942441836095297064997663248995718393501867481319587878095557685946223942936, 16453805729985608183104279825453292248579009366457395158011740458202494345641353855445539459496311640264701041131785481309570216240562798353125085613118895146645032779194015168, 79179400751586689269540162735109702758808676211411317018347681422159982733516577322905720007654115199218989685155631596079054428370337941368943225814355821500405910723136923864, 107349065036119922990486424289828621366250723975281442063059661894644020433408152263362056945933219032335535429449513011450073748171911092805390670344074387574847469057228685204, 96676433191013864026308521934196360775642837006015747479115951301923085991335570049665261145362726911400085440696860989529601657386063522050122155180882363786767468012072884483, 68008077978362701561979940369405303817410497064892405403295008479753692205220146384163897314531245569114265847334238079795148600610768406474440684355696416802206449341272605862, 95199974568738017331636149662506359893534523898160615988365271220349232945734619369335336064663676904640877179046273296362833242061915809668316342364260804750482928938341694476, 113389772908002338872446526451566762575090847624761109288158087998529781473223655597049612930961963687885931197764201265351580208964820306848407231606929171814646419603616806831, 122030208430825782220360409041471196118890292016244912267134668369717623367801906632078434111435123994328260484916796892049315170832283819164530610477331860615836960875800127998, 37126491293705701156989909945965278581321561648360722590672936974729135245976425081769890444765539168197117167515539260259272822165779629130553815990946672551389465726863167109, 2875602186994829786556007826680389866807791090519403816151923752718746693935315171357098823535877443427546451974090201498111519823077275111056400212179501747474841871826046289, 64429700174181973261588600661482568004461514568536836032690782822764308686092817227124480322014599958568087750803749213626772190585994364110705442037120626310139367340507095791, 81523804481090306044459772506633973364622504674839461404316486973471042171019851486149172897823351305908758626211836054371381259367906998293041994434117840482126888136336079495, 29463472459262756605651574317207848889203133659189155394639809050243657181164230693236961315212214614969951274042405682237381572640127376681159276829632579447916771919611279435, 92798796925024611458523470931824913837401299453560784708537174408327704949905153902153021570006024823775293021352495455402294775869087514362512347268717984184575796141606635513, 74490642890322170315689987501048232618445322886323530035504026310674009706432119803000199061027236179436011973392672679409224378329764659787464562647245177727733304071902293557, 66885352025833747234008865778844422366258589398952425230902079641926528422325461887071392631245150880477863831292255114397026881769072247469632441487552749098550782807028392621, 39107839832290981219836207569520668957100050722828109503691761192506882948945406742403517061924006497802497843091595640736449139428921871054554597622425493121714039448353331104, 51872253198121959946390344474837144339938192534373463489627853129384022305220278554725286729986270287852346311695839457493848939014560672890102179042846833735588410875125381030, 91231695069787850392936072906733756118586637001746160599444307999028693029927015480361206444648483281924366732598184181432968610438964366066561784408269304492092333466854052037, 4519485818595035175930506702494317344715317346381147328149063827886215740529358588923570887127906103079144629537171364639156332734848714132780877718884690513407074784081942642, 25855498996411272892835453272063918582282282005703419601901087421655010873272618839987100446060867304996171899855551584036321141168940908107958168745830844675670881637730813384, 113158222497350334505840546172048742376800044745514218468775321859869847244173039274973404267331159924347367578560385786588381670075726801914135064386364992149842346097108304842, 58462579488937032321786559628909864262410305247900697804619160690765355789301975576904972536132703290209175649225169687383962048141857258107155061391195883960160368131846889229, 87022242604151039841484329469478849867801038047914216919434505795039722880263890000433450629891914644692176217155351878849439834573978782351242493441851466515039954181451154900, 76305675679524520596969524278508564002510633796421216918599153849394536640006803336014521938226901234551688083666710696125455413442136712784200599858744907676375300421352856987, 115694642263194206746104596893416153045460603420760800044590094351935715434174223590786991732210830094237626119953258081598916367636828662151300439159648093018411149456545337092, 28368931966664040422785295753412236485386494364845936782538079024656119011412695454137749126900876363485261859103531774174069945750249323985846104086980185537389633797761670645, 36124852699344942018789574382549119426563946470658148471404417909639940138965647934175288985398139298043032112686068943811371619512249159064066388722112358813207199554140221844, 38196292733726241410376567124991906978288726889815968280302949033730965635131064689485326647460073304481314113428971559106678933936067568610512751036154184910230552504399486160, 18264853054779817139814181654997368818149129092480187504182146525685731864336443814707878446419209215930213610267949829746410903508726194529197693760869759278902410635041064624, 18800543299606948770104461348668449318594152899043788394656631850689925091986711689101656898898586399996319867734446285233682212742370523531003087723884474082208511821579269328, 4992599571558882998246888846120122379944536242450086958058665205359940317408629016400672705445174780817597085468145248651195478358815491139380120587750916149318121693646446743, 7695195253727485104266368539846282363721331627757055186257118484823098868387207203526275479745846688988254005704320485225335646347781112518921593914635464234192208902702962665, 122102675834715603558703506889227091088338934084733255435289122592591417039906981761149979163542075894648432387466989691899183696245993853808224389903424401719367276155439288566, 68084497169026462391698435296155050329798528374981600465070848986645300771992213615639384340242546498336278583275951186128832217717767537314041373641894214670669469254359365882, 28110753384008890650668003534717884726152318179507461333898430408793009434677630906666559064793317984624519786147433924910495283757644140850475939690505040514451070100427100307, 100251808956617564247555243567840904784636801199993362936201687603398799555526298356950552207539857603590492790199702140906078008178469891181702607075131927117196602537937232744, 42407623562589631578258882645904963532611461730986394342563221408641524679892354946887589945997450472809601654991974917555620338109413259090739939043228041188103839357686089754, 43250517617668750872113364921661404410659192845580758450116656284038550855145368374939055839973415470436662391924922225272020705570509305224614752884148708654842527637668759232, 99065508163313021664341332166742149104024311944163624568862017751997318013551432334850530118883778755942855325317835719548956568795114479601322967262754146101902505217860151294, 67402641469361692077559174397836852811178237313456148857818145782694121610951500758755870589990046077020291024875174893116197081844470037824527390559228333374851402131425416671, 3415869926598472006658605093746216653394497534504517371029330605235251061422280145126916976120507545285905713676093293260591448722858059001807816657509726468143735505034874406, 55570340846684739144417394859581038273183152778613326609409157449944901161738617434423718211107071052890927304583488329185138722381264942173068888354295493512680717859212972370, 100392069487883283782770950916236719429924601971042807720654826144480119777380541315995895654723857020202302665729115978659977228906253509817248923563250581029545607485012775351, 60919859652790221846522164041223958127792579823258815879405621448712625806941081957700173958591247385155266568685988533325564275025017760378804202632265235942256942191899923773, 54365472767644366872472239011538723500743837093288253503303584824227930608445400709075600020960373556129894899702321140688577995717057648048605477219351936575669037669316292472, 46115080009421909830232225311317414118151549059269949446147113443820090959162460402846614823166144848353532358239435859247768510929886337564079024132280442000209104558505302356, 84834278837703530276858630973286781816058766706701928111317469633857646276636635652711528430174092330256706627808044970045635337230889014588167190443205769673118145901165378121, 9415278249997106747838615675415541865579569203176548814936829283129389888000818342824795198506552774085515783728472556567152018222062624793778067825456674780927958524361070269, 99157022189420959007902109098292229416745783397561123040728073917915913313582712582516832890227278043274627846421699916367320230482849404181926025523523699816531378641626617558, 1722756040631116766932441758320651241907447081453271722177292526393849936154213851444186071205980573500260117999997216342638325850838632960659962661706762413730479737494429778, 103161710668792816703326518239115021691913180677343165918482681312660278505388838163817533851418472971102592542640658307334891263142047763094794910392484560965408560256688363246, 85083663909455590647972692086740387209238868109295502789337088057026905259528220605705922884614843066599694007416066223863131001622228005033551176860562641560585536390510034225, 103768937737661539462507685891148735993378525661473366959624512263158423792601886109027110010077089560695360088027861753939211059682945875206255217462476969757478960077190851263, 81408765299722149192805869444694484069152127132583121624161690476568680636054210297284670287137928821928025173672660288085783690579260519986803868904533416106218516199409407022, 57325864518272968773434539827891395835051133653163290978701940506694319256878711229747210775910559600460020879157927385711695513199648487889913070040668112962662579036366021520, 103769658669266774948053180475029686764848151112179822796057300500399601228972001747926561060727909781081776246486168395968737423415164429437926211241434947387196382568533749028, 106322485123968717856020712862032004890176919491173861798795388076144235506913967900443390936695181793278879346758610357737765919057363293930904863463254828996560254211006807590, 125500009920590773960722705534802826832442940211615751854096587593203570865514771546475983896292818024037333004230221394186641113830418385531138657248263392740494379726329915726, 9335734799799883746147004878773532639960676251381176792662626685263890424616121151721873748757024417862179732054172373188651996055984504945996463048373254676840804537616569212, 49784528332734038470697288817906963688801155145130241241763740528066185068006864689302315217766416985034529070449949336944072960899469229735017809277658052617920928560278721972, 57315655284326008281667450516834020290979099374139238497398630016012234587941324473490239816924183618378418132622356509746528102224466984851883329431117413704144211487017604583, 28129926132745940914366044455776028766172713730087850913385626063604782080266784647012491451353334287511678238432579563690549645386858181065407612460244293036994169859800933708, 57078946687129845930758441183834252835954128485029026392723221571320136928942691225403927236927797183879816211559136829291763335097296239813467187044524354630927825195932679474, 55928368378870030655304292604295302950689062572084952586250229512605140973059331817587738899912052811218181945813970328493000783647310387837766045659326551457133411455434933617, 21677593829043439426252468805688519636987219304311686239640184336987486388052982916104029542288603029300376916180481477825156732616214368437567402024496708654010430743358202857, 103612459475469807296011304271128155381987405605215614901831583411216747845539094060770056478077795160510831759100797737894346521681513856254001302447143915390147543478873424198, 89036722470366161623169674288300984270948949524286254283568215867661185231681864395882449896817605585143710170975122472163454557512909957412593409973815035485140890658435430247, 15902092418751007955878592265474818578357133120757217124896593218037761075158253546595762903904457335793379978410304460340432569840786567736059182224060299037072111390308829720, 65871858456495385338061556823725996720473549471606006607997397414376538155077771087880484561599567664460132569288995119020144792549034471897552925924019213954256620860887935013, 64974457823552982545642808759063946355994793544511817581968383208025691208096736243596186941090489319416712950778585327884079438481509557472526017088266218997033620432023657621, 101769233259725610109108806404494068357664950740306057098804461028087430066740580300952141135063639622657560649057739740463133463581725573347118622532608685096193675026198002766, 62943809207773544151212820594258281135478963189151082070814218609015051524854642718947377782578071033510338173244562285846157611541713123380069080114079935759912025321357352781, 113770387485025383030974863878177878821297595756481114042918047393181130307985981841650663380502634273032724710147380337079009575468290558211382990409363338889911011334129086477, 8209511397914649524562823243714857297396191215738909137424018994218080788544731639280025660600151599601286822913345784366123397072832961491192751424753265033208932737040957098, 115051077894896103407677325890768725652950235747993983996280959664196649372421271832427244971781248336134064651563051298086311478173911095452979288281081852159737992166546194239, 29130409853143907862136599659592895282288166248054656725058415454500538049259731576078698163733795613170082237289418661871284374104919894702160251626004959414733863397179231172, 76321934052870210377366244430331426236066645744599407006405206119160632195637591089684330075210501009815690844667642681838412670814530018787556397091576714713526210486137750997, 121295628699466796106195775793549702572704128227453164741276537631043387505378869240686583353485651662044485881732476757551322164393303305220752525438700229915092974153954591019, 5435210526340909735138638286376438402789949404884401063500405164453242690282960948282068646324366694297487218798707668212584023559202638757617056799043739067397985541610111124, 124319858515691646450169334625253493952704308510203946506534521101716551179745442325827183263358345778746410653055756455940988742455133317523397440639159552366048986492277820452, 107051445290443158888197645498403749858633575519327214178549492507404667630994832617725015073105735195334192980430365195802182179401141786742461857642813387854418458300214518088, 84395684620934488561849342252459643257476078710839573911465982507225729246430268444836884630374754569781282331872863593334463785078658313594346023533835693480572809962104730616, 63421858579585864880125416757653125170037375231892534350841126613816258612318616121670009904293312136124744059678260499557129194489254020441718537616438424497532824967134501318, 119175961208726839735595582166113958010096598985743892691458307872165678141780689101169740743491047884903798460555399735764476661748931400713708065830336639328228885348591487496, 54925477611543550852408585771075712299669744358001555276386378486103079035554121782417244848336443189787343259455069205958946291483608812635617311877685832582496151255101593431, 41910628185533160204094817048234698294696467598762152516687315523374598022394699649910493710683773836799789432770986488405123216355630937770055625218528627444376827161061716732, 18859424702344548197924008462789275861417999966628435951838650416344443364668135077364953601870798091685574094836266978819291274341399749286293960789644431338335994282221529743, 24816160727083306796445998527535205132349832909580367449939499274832318905442458221207088939650354546750103916867984560614187038014419960112820973756877971881896665614214353822, 3965520674754207705453463133166613058519033802090354646745618301840855197416254702132355568272835974211064647205847096729511255055134820888420721767513183470539009876970793283, 93101557415986724382884170035057379670645206187067359720968631780900428893011651039061943293026372868818322987911200586598794105007685163843213225833611677213613607368155522488, 79467355480830984462897739008505169232228498670238766412518329711039259450300096822398307763214666639871345185055748615687996989553779096269183743089081633381754491956218743721, 109187345660697297925543756603515269513851443892539264078665570795718535812481055597022205417527475299210461868343668873801721020306073974202559768662554693024013166779782279883, 95706450327267536325889565585192285043420297658135120633441304515953594143968193891402591576718549668993337773774794336815103626126795509327199608106791504001520463244057514246, 95559379799385284908852346910839648656052927457798939806691034761237832095358742544928489577709177476712253672683297668898227200136278114259577726096541775326172113924633723111, 66126086003107293457151932452990321069933048649911912418706600108061566580893161887023146703435197652631459094362892046465860046975046627316500855780233952835449559924623755418, 16821114180147040127306432851030793768635415729039551177200468696278053226324718935708185427242563118348222287219768746100907258323222042113987684781411931872870104824932454292, 63751386831461604577527383341382531263666267805111044524486882789435579225101239170418401519037867066060109427488344738197999273400693488885640332813056926067004367305018782005, 14619042777731361151736315929382562289671927888193894292267873980590154082283441825028109912217628258391714912986756429380864350466140140902650490208670663161252513412925198572, 121786630099068878849085070433834699275448283470697638206447680967138423780343889448652084795839131863228991530547569968278617165384568817961413334819637852216564231211493407460, 88989543320640732527165785943396695305741844776736650392924717683073455519683166964335707718197244536085014671731161227849058696337312634929222561939570160927417886620612631294, 81167954833747442622779958699119133515888489479505117593171785493367030281745514333395531276590917241330739145277548186213033820682380759629336458909639826255810432216643410134, 13483061962927534945034128721076708175751365749804103728236820456632437384938172612014612506567072396113674491590426602570204634665677035726693375814808529346499379919553587046, 44756885311015826196761403331782151075030579929948675705337936503847479392669822375771321050783649639518439280462172491680777253576608157527283363563542983932045474162912025621, 24939585083529089935507467797044832859696667436608120777114649374625018248163289334313695888284660575719426747914770940528014227912332412831402789068836143842379698030394704233, 115858254756136757384184058315713519040965460670367579069704002437812662800557197296932516291465442382660301216051773916576888321461007223406663773276625051959609576662036532622, 97401919581856368636842152841253097954580574600902701660601775538195249790349228055886853450046693161640417234342900942992564227974298169083030593916768151137989227122773896489, 7782489111477326836686502089577312516764326156245412965223242518214207665912234555823418308051157150083174884149663746567516323596035842312703727607158289297368329981649819562, 49632316030098665580119133549468395467677116981863055682836309731083592990877597281067538575551285759378258413246346192705639823611011077401540278201519778395879815210243599321, 22655071062956463396331622095392490642715771051109385444679972679468589678743618998455793284763984437407233072221317488606904358476839331939237673003149584142052934587226019828, 117771572801770461113433488306169583951002472279458516399731722502455623369344434558574058466860438430491695838835409759986649279845284426436512045073635787904030517621759916428, 18853685516681599649504117234420805409012010323029635305514317048165361843363054304142333092814302541036200741600107309029679735964127156412701611669207785879158206904118606744, 58419579204028203446576165954349498696499508181209273979756161617012127503344751049052124031108472594028505274479418084874100241539023359427910690528510503585173657616104504617, 97944277892014276596600691708140445027264108679077520952016072176258586024652149264670557983120358613991715822190146744446921489740615378329856983876558129474337946620689272738, 50669919691238516014966552174524443257331046308069826826898598217343743228073740889809168716815910682134167376225053267480658488779586302013402233235590684006187840827846913049, 72928791892605399880298335307455355497658773338948895819570785022747179257458751546986829784050582579209762872258744793528349433901168211097459288995990775559769058546365867713, 48383721784295887120393323937541468199284707753928238581114756821347828730619053573807049959020252557413871002544397969394685636518831510836323599108450362587256242848625082735, 75826129528247274396798353869419169568837883801523247587119075655412795361761771448322832846735948422702330216993373353014239711142375072661510971259334189628222879199636085958, 111142064053209250798043164675556873089958628179521179319863238734888915697893953412231109019975946680562233219855727477844636780216771627245408739015759640829478741891984273487, 96074959010050692264615540370654381332916277211928072042522014266378771222807933707387601555634906531224530479607255476214736219457712988863649059325275256317504639031483311263, 9562502294628718823356740911715681687375502524007063774026569450798933605787430117455734621110684126214137560415737492195109946142433816818577149920777360407716975491111656450, 94558460147669320602324628658745783963845288557089411713190620636818290377950553832050430928935886334043141993651431800602780851529552538095585270846051344224150512740833869292, 103408568815263472522833828481171637465548462812085414755087311712671584126692889862046386463422969514181528432312361985979511806576427048374680041875220510883849530331413674721], [7479378792512282710091492872432056995795066006709516878939615370158232536533917701300078966744034122820088527222438305739462986289086791015946056065306380378499395606490644442, 38567494092256017283732527100658079473195719403127985172526347903111912706953144558838923060128998287432059606371508383337415904399753166931281713186018260286223173037153580754, 14294201230783965186840293675836154361322197027397162929939365961483547468545586087006266306884493355717775037353656200666876880611148310978276491762464974474904094808802182910, 70494054161392283915369639200074251932321057072888532929710301659865155294760596908481695467449363746304566450834393156231956962420696699422958229228802006053044494560521111163, 74404444332546202085291884663367149758155120255435841774568574670792994547840480674758775518723940656637621798970401046192850434570295355240541553786129739807347640132191768801, 29214818469915183674973570874365729397833087666461773536173967501917670749038108957110652285493938968255520655410534630068813413829910482454646368426105778289395283070744419391, 88613218413742075200203203749185387506048459348676260847367616724445009654400495088531229729998541096742972442017930587255298895245620140864193134680693054459850605267869659593, 49007468808650241064759573781214720594276725940154598035782765303334761391519952041633106594818401509204096025698831106657943470330483921839319027999280477403173920016100537073, 105937707581780517847732049990613083127479457145343168368839796309634111783179491681280406279739923742692375665351271564828156088289077158080597268891069751910967329526673355423, 96876525927411640295866366249125566840384086390585057206638431444788325958294753109084234396745743619907888067991008765506398016194514014233863164555747873037376774779606175461, 111669190799760335644772377494232990450511018441619783706714199862353350655176249480677491449659801783169435756081528485372690874835824910224178548650641333041162919250634670354, 82743839043652309183973033450397373787745595247007582366683744558099116228204660017531516056838788955619196355485171330125018785178999149181950363429338656782323367039071134840, 64764090468201081387664746694859845213470150180467844183704213236488018259557143220975204879640010779791525204652411596297254514386757048942930420684687233474548699207064445676, 114933190113524404016520098627602758138473825658774273204838717181384796221734554350530215528747023678315923498907966437008946234092715280658502582660687876669610826368225248255, 68559552017430312253749902435144309278390822615661991477547664041520461906628778662122622700701371245956488011062216684366469513229995427506067148188917903705363269300421238833, 54324250883524435787960456224811487706184773167177324928430499661185654368289872848433933056439338184769591165700421413168249554200609924794679201232400273281524798889373638759, 88472427911696835507876272069293773160208159353281202834478307272696869998234902755441967245362016562309131397760219714044929687222855609655521635900645818354253099910373893924, 14442469087623103366484880369269260411142308067628403293815774240470882645654666472809477411182910573095153263410562004710769500512568962761080841011924574217061469315819699136, 8533339793707750061082638537855926432176554634138039512375431361723041549594139107752069850326432909133309931784642357559437799267774450605830948943261215197855841498570386760, 60473567075613301910902080354685837249681215885478702555395162171803706356220510933952074998820341454869065443293832762522331967275030639821773562362949274505003064574469105340, 91899581643481661437150907103126014088487414942234704426748369634505508382675194656585458883712828341968449536015320822147807979119394501502196268543529798477509504134342933671, 92941775993256407719338815434194360917307758297875288918817940477940513040275383667177745039341521392416764447447917215691431313719952121427232675723383851225035921610466167408, 36544061442237535304926455769299974851701130981767150117404102460822037112177857412695454091875434346250247295327419370205036532721090164716836914290792945027724867286861079299, 18428804799337552836594189402880200389087220573199577874686811710692256216333904230126580798597164030422435283875780375585538275020688699366155059015291853539757914085887119669, 42060573983789946642124971197588785161998784597616704436337092897779050091927149482637403076160354609772971653276299198368599287028108131919682509823054398487623426224575316231, 94868172754484614110981759093830500828295000656854700958721617281214671949282638852713539523290997310267845829273073213338775503084452865620617948031045138104096496562345114741, 33904357755970594212668514236505335268379671599246166637391434193481131775305817025435567997581268997930877786967620946091448522752959802981029368868657022789511734005199690035, 2844465042877316403616656937581278874473116921287811236219411330529487851247851366117564679404653227310622586711750573074475203548973085864036380252650944017631888275405341348, 118447384395328727275915354007906060201459294698944537252181877087955063749179786911618833987397862833886328071889261107016536899847873416533510781191599106132038557604884241864, 91601968488645116675986945165223101967114762717059659459886448634024174292487593309244649869292754372363168714601994758722279654329287664740267058213890788957969616750916338926, 25095855948699560062562899168051000015883432804910028710624471090305796055015578127942950101651894618012594055651652772739023122117469137979022495775867309798658810526075532677, 93368318458214590834609384984578954713561277959476696572734809165033006402036459890903693360720347954022184585074667824382020854165449049466376771044321948791128843828616905459, 56506419408572501025526938323893426141345375902387123138301099132632413396420901008050817216085654364256401816955921994980475521463961380810966877498251365782603480707529248984, 44929177628210884402102606478808837725260861537241330217544642964167124201508448456048538221581853798317752132351053952569542332434927170357678064865348272026118836396876737503, 22475999632581804365825388975186223351446490729580920366267786647482976165351922745884133741979725814567845258158242211524919037196192361593509334062785320494184605962799817896, 52196009707514540043884090410947761902611827307099546315154848698086659813333492262420418887456781824464801313962802046991179181803329771162172462389085055978350553822418337311, 31403933944627698242091570869747459334336219577942877172327533699738603827027477083732591840344395954964087916124386368594857273620526453925548456549614869881358633055125691537, 51519412885015893876616273597588125469129949285043052915020123392589751850627465837369148027604209073461353896896277598523844659574016856244941732855110888590405190063981923503, 89454257975472977423961731166774589006507257806812895022276310234441209428567466438772664906430411107703323670267530073240394472250477810854980554106244609743463058202080067603, 114786611821139438399731574283241617361104879522667459224531957822139418272177459522778257215811217564451181082355515423983896621757274444913690235638170292632192948009186237022, 91792374324851358995883776807512839034314847584234780380662745204800287768072779529291035183668375038829762146769124460606333584395701755047660288078365710268326287080818724205, 119059761462057702648453143735127179405893802448222725789089101604009497061130694046311781571387046830578738452929561280574009133045562500101886248139429736229097937993608698471, 88043906616803327593883686130665089533418095601795509999729754537237727997604945939278595883082661936977697722391754949161693522085087934294902993362692337007649835106042295233, 18645652149359727946490525594122027299872206701673539770311089299809257454810823769165973729701499438891988248951814417049005821361961717344715714615085577573654045256317809166, 97913809636540574139358110229929493725728403656508221206644396649551234811617247446389725035961127058563268175274163377158052796987998301137322461377734839879891064616935250096, 87723407404120950764569674472501733818001564162037421168203400981831193537785960891083356753894063014150039986281693197504026012744532954029880930409817302397088509914283845504, 60279937566969785542737738933327345619211284922055970843485801354961623593510412700570327447532707076911646839824054536403116612007717638022993189905159108956815049458069980065, 94209679835514944780964995312624254350584589863527324363832486689090961737045013125650495406581437204662113872942736509041172219316815665094730344317202484321593117008924757915, 11680243068885209179775585224947162792852423133573635371483874582079985987929291955794621098528997797423777675139854204296511198793214093805948190396102120181687873536208849810, 118147385595526271253530746321755261572486749185955635830329808311772430388562649635046824497513559010890517914857013089017377278052732608996207868236915812224740065137538594783, 28966888056527933345576390329568272845432608221551248444477041202304602511681878045395087743220085162860214843071520550617602829302024172664736125084021649590398538176418302310, 11593726233908651316740673401706055750032104153594086405367932851509015367938022025571376109019250790282557302581046062197170397871996811967130135227945016021716332872360579593, 101646163219051250474167834658985682119485473309698563002149873425341397113649405581825849451735386614475393426547175682809376219630002791907906727217683135983945266372350370838, 16583692731283039316093394789881929371553223951815855715425552555796429961576232749202378270373674556214234198150986417038547618795925415702236594167460331749474574611231492379, 46420345061059327244300742578342750222349513001775282825085200623227594624475081777392998723520064103451873506818536719287323659681148615394986389609868154856339641719324407116, 92171029459012297125143826686982613549210256589973822500330900644837725531765587537833272959066566155387828287938939552100795737167580198017135616986074409133030862718572332862, 21402352641419444170199956822961213568951346080927190508815341278998372816016471497613230792155897797542403781197672751626478902693012403162581769216565774708023836674582763191, 88824619675861729259550776187636143727122220081338612247994816768625062899180621319130649988739130012666656410813303551397241768977460368515250183589833263508645568814247203917, 40850679013387437988305162186252420171553545339425627915627836363192960855742435534770931876304384342109736283581819617711820126852882351379006581226869860617207446891509202772, 35725001553719125015644799169671276833297372383353778772531444626792527109199130830976480707280009766229637350508582364969256240534451322274168822874038206923439433541121881368, 99459076972287432745098147374690842036837157705821997857798780826834458357542616533905399214022147395315538530863557697844843566970009051149725250914299329716068164118893541256, 39530179390470544133587777750424690954749954557363865603535686178838444070307109715650613325660629252004703390195616501183375118283183623235922022598286413053058193312160639053, 16256993799717314581753846127780973211725821175900762113998701913901216914190323628207486266304668616695555726387376608768924336888975078589307266664406015996747026248213081793, 113623237959054926172005479569799325033119039315815734225555313974025823903585624217476593774720299772702421505548662904317177894404044774917206767743930790938873162031833647668, 52257750816802796920771090001672847165379939032958938958423996235350371360225652688848743650327934399659766670979797549013376868793920654053578976919132470753368984160297116105, 78477839302891946182487814568159178172282924428813790446860492909163937171038447800990947038323086735069757200050216153855109429790037601398897576411109628969993357539699964341, 96738501219502690944263115507636297028408054458252766721136906115577271677195212211702523424476598567810783401482830409744177728814806093877153378869402998523448556075788627236, 111215979646189336727953157621871699740640366257556633334614239401245098548482674500414758558999099611384831632761408914280094646979015120303570998927133017460639018110061448755, 51615962057513032979844948016501999672808874878319833762600166847943424150949057362852355565863315031246645254920739006904630801300925121719107973593902405218130929694087272176, 94869266320899156343821512429283192080758771502285683706290816487765500301853899753114725534405532922235028587790622981091947600223939251637638560986273862402636682176126693465, 116485072747279489165177644707425566223682405879909698431104494317930074261210931466037865082665995792735100537176675870441366153955079366117719042661922036276003189277039881523, 93893237266954596341533490204717049801696106343295433589499937600059696114901764613290490088414477433846001186641900709803429917513778944066699954974759847908653333682506670452, 38370696439934072886191265767578143717816147502176585670881066263213080983904071157224013521837547251821890649068150532969334084958017233779993871681677105564714639024226997710, 95527336442384423185349378493950751894086746962573195839499741956794326674188340668812285642620826043750669260215133203561727134282802438360749919572584182903625610742483605095, 81442920711901756817879011344116288518457636477501238064453122457208657471299801671811208636917890972589946632128857960298571310168853735408504292293777465941460972793029690710, 87914489507648998147816302655673138771592783463765606575407718466028697960243798912695736116514716210257557836255521906496732465821609621997688029846389604843215305662930073821, 30045372840204955000699705178200856451849131015319628270012547544908642419739733500609151244032543964664190397320125923568452161919548162176000905583628413153642585062797952986, 49611628308190246858446279995048130297709442773106378649531596324204092260223635084135441106190958791025177509195920437936059738049997703836618021365728242321447104200964524231, 56942496522488240453415952931136488057969261891482058893782264391068003692200370653132417991245740094459810315456650525121084261782568617910333234240335847045039077551052646725, 12583005978814807076229846219918683937196299085153832034703741703003301532906708452745679796491864461724376584083123444581464462328884904871908460390821354635553448615142013996, 27347795773023530133377818199171389833722473983741389526787774005247169245888109371929174611739046568344699004621650462958539934092442645060869610128445498855833618134080098441, 51595777145960757718332512727616728822111301332170044323790437596002613432918558748673897517188264430231244345671130842107420054873419095036796306123171397827676012600381383919, 75019307108002362748571964528782520913241983018098351052179119760700052164949509847846538174625596186189012174183238532164656252813462031249591030287877921188308093430259332855, 37082163517826264653552269970866544264859769972888040647372150001574332885913371778217421639104581448554282522878965387253065016448468761435832327788790679065878655719190143923, 52372515838133245877322005188140589924823511654649782131133311722213040903990315831824993066060649717426696323718038674202683626278645496414715347755299510176139395564904070028, 85856007274176333095756199324552560510069295645365137462177828866538069732435499168635124670966264528484873447034612119976252871796694264655644016414604029461767230393021599628, 108414311621029222551902986951551655197527663256186583902830253971356706479115137659803967749807865226182325067063130520306535236666535835173617031588916299732658549885237854958, 87039190721890524470254416585355061333603710095276499451093615631918169578728913894788509978874807627096159488891740581164162105747403551532135891789654591032203823066781534667, 5578423134672757318625906120097010716292847017421271836531662425171412408093556543993596519437078923069267564837159455468179442116243846262151116031711261749135623816433558482, 58817729816092399895166502125050704862227394472024277664462076774257829572719404481904537931849498110727539894987262550148747294033994773107345374503539222209707428598105501009, 74609336762720382075976057450536212449773817174599178621802453082532147915694893506575920620366637001942843542054656542496730331157146516940875679037938705583616768495219362859, 57753253454496196316563714994369272886812043656707294876406915347977960206136951339299260597175723114745013228706511651886801082958352500663184734502882803423094585337893750928, 119042745366737251185899117683735574761055813617673026638520918186142320810487194960515420528570061995098562078638801966624395695054629399262742597573075300547014035631230645238, 107393351499918873837808697031388908692315266126966985129247304152474905400464183803415124005090478197574685089063820538354464425694226790885272915577167607881169157184934915647, 10093983078489087969239569972061370659311281552670582541717728748639893969508094196436122692504611177758366158920749546887022273412163546921296851368041587690510568016981244012, 82659110687056320985391872058181061484852852076304703316560684290708119927338339944745461017046672466105206140968018125360422938229325198520043457123909805480897508043726410670, 15736346161245047898554312945901499880625837992479472960096095251431840325667254487345034317030189377792284195231328311314649930456174350084096850229479086337720130579862188382, 9288102390062177767239414498392589788508864006757767897037210971530858291716415802022606465645453187605080964818301097794008216932720815204258529389945507783308146129135201429, 201318896705930097091553406561739106924629398697354610211225152973299445385430842080652460053093983293338106637402835788221918953540507041539367651085658933850710733766641017, 63761949067682970897871620556048813123271810359314136531408055263316423213973916735922301188771385025221781888850831581385945547321348688611464656816058494422106803253000542009, 16901152211985464819223309671738068887948052706796079583476486729884830091425009556828751702406822765677221383072357392650817296576788812420332054472081952092236359589438282170, 12879599232769936395425075875444540155461415539343923023535299917685736760919010063110168336242442306597963346213029296012165252296521550203996807791072322626096170956917007173, 17591817012658891477786301531900241362195998573149158655553426698004471613916814917485020323600793527181372970598015207783344727868268165886108591419640996219448113322742859772, 97112621054427854223091999937551271094944293649702048250792346873311564064520195652796550944213330521504224504739786223946283991834648492529683961695268766343410796382346690268, 105099250644958011599070052468361770873233178424502020823323755433762824405929031779255096533451524686147799152702974136577732139590509058225862960279423785586332442762371069234, 112351790069028544354918550740429736981481658773053210729731174555846906748308545981102552035314476867173188521336965105255506396292140240726323392634680372919391029402186869797, 114602312801023076632679756329890469542113177390920739596646439809707557583547133379781758551237309128303373800248004970653643931256651102013070109054984212327725875102048776149, 116747689272698223164333504382216869009568105812170389464163228393218252185727641853927093404772128598151885625752225502474125268601172612144399341457061189254832337006274967360, 30464172690286591685116310529040479268201468919361275546668318250004488557670657197594975005211916516183506773432241179718859689273307229763642095636722658487218573186556681208, 88957561963651246124520761837015801584030128956122110154809750360248703629958860326151103748134241108615390676847557912476084594978966433458536241913836026189705219030260123802, 4705083462704548013260482565773110510302958565938734571286236795910133471982288043260015453265100767188731294089601753687942000966624585353113962160964619997137135936817373322, 114765660924607570694406204453795051873718198084966824185942398382406106612216510781454078804210890576777416652692933463933852301694000174310536212021406588669152405783493193079, 12420275839180782862088114135898008032906576861692855881288515714060928187385810001919145324234951800555970230929304576711202754947314909850262318704728977887154737096760309550, 58228505064486914136845760412423590844458273549507401069793482024520821196956001806239656766094749154026589906238584784414394228405672974421510230021190662603477273066629068898, 32015969594861366592979292388785169853860354941275845517154016110659128840145695535931381655618935261070126387400579597281115212210388254643269566144229803889713218247667756958, 108796723625377367626070347981226121237464013378441594877289564401604594966458590396197536481239531431577786038072491685016319189006329413556234566270651980829389422342937206995, 27721407310367998703177070335200523420976440926565234936371432176973740185674047276172199616869480925971578411272167161337968785043841415074510291589069278969013544827286142116, 91068373238193139731991419718976881408976096778480591519194594531228053317479599551648000291745606014002678304015988569687135667248733099611260468372314512830791408760330116114, 114894048325916515596441108871949096026022566337781458257168014817496769523752847818980314991496353388020792062705396885845892155014244842580550680409903549083539254071125830112, 101277152753107333232220876478110392535439382450106482382734793354045381800912608119486220347415625091868278513382666273477902954473149299520466137032886526832582225659524059689, 12170860450200583242712575588091236405780959035149707986656034276744370495765266462562441665901419935130973446333917251150786280953610466927989748387737070598216523922508135994, 126006178297990122461037011220552165788232667537538617070849826410234172608361888767894691074048639596163262342993022085512238916433482147828468529772156397090369598605027618232, 93809086420970650293209867809404698463013533890143140081831560627973202401460334963914894650108444772601398097137955403250594244203824443799847773782574297321859457506243251689, 54865383083485320811062199774341624236005941206919066068589907459511353113228467028956170444553692923395586529975071852642393457073580586731886712698535785352918071270623260224, 81994754814064717093736868995402186635341135504671151677992496654541713056550451693508490256182925334147966565878633099571512694672792909255269781637110395620912804056728506558, 102499385218620055792560286259989938133525915438822742761122537552770004164812697308658858776700676098708683910470097300337227407447415992604612083712166792744423462885451720435, 97671564593691837020395009206161551203492777592519914288464696415002602994112127597651185926006019321257113698726954348865082225076775894534203163731574747966977242672257861611, 72007061689983668691539181412640521891613826796032769133231109292531551946664950180110434911627291256327342719858309916276367055025736022629613451787554021878613186017901540457, 13769604209258634281058791913639641195028944154901122020836054964795260968848625490422071645410531676510770350637391967651129291087673680969370328925452044240415519734205560585, 48925951166132736168346686842766666502491442073718780917039059752377943425573790612907754315504136382017429092814350059721410226501054128991601506647305122716943290800443438589, 118363927942317901140153721669629911239562012996337609945969946440394722246938710612547963645034534528739823753708392565730866149326183898102046666619722649047802268856523818205, 92738683701512125327454722642823292964426859960665529393832153674578162290389235071510976915597166915858132587251483012808086278295744156634355190686034667702529691147460822314, 60514750484613641092252439002855690672309843998538095217671739439002987065700700064223283609897612309243815126070275436643726222563757952813453081598737726700149480902171231583, 78464445325414679744921979347575405243300276777396889862826815803097923854980676565113526782482196208431346395228619121278765587877110613021249258801125097494679825399806623222, 79723793208018498751879344042061998867582386994283497386606337125575299226022431552451783890350089010079385763823769356526503987787942471686323246625890325097573779362980367000, 25471265377110263785903540195739213965455378840855787195651900695192545283135646991475215631227372804276822383394794087209917755934022922914945451439539704326078157330376233442, 79325913654225609472547309050159660743344961528541666033274541795354314767968083091264191554807389724587099887895485555125387424109544858456240184079129415232384237805508833682, 39920622255996399695417659256007497225680962321875012993974333496350832031769251717634054967761783364720557879480705549568678251386068630152447826302947919350544043681731162817, 12876660297153952324209893162605827114876971705648235405232196781243166925940424591703517445760749119300255746603218571711380664642658835625135274815288733350203970043367521972, 333559720710017097354361435784530615480688182972532509826463039028760093520296892787932471219430541466527094499181154379385415404218134610656876219945388320424563049929719246, 17172557916751494186245140273224061691086726467772676150409675851747391213352259819359074302516522280416349601556014774851805399860971628353871946761563934057832959116738876632, 1743374931066030372042875131954120930569021328554831654097345875708902557571118903426464451812339700473979448590925770735258930708987772192108317243544653952454567599175968639, 120850729008568888795413077006920111824730016981277596055789123028934434109369309858074561992057565195994108713322694829352953219501869367206670416696034143775593869183994104703, 93430293517518270778703725218605064442729547612629894919188941880756219898852266632120836016894886038143187178621154021683021644154583265996545983492773961711074303453789033063, 54140255389434190776459244890164807945284020288455517788787045343383861474041567231118176094694618479087927154820839216643749829857762984596980477980947956208192394297683710637, 66059373208992791451733310950495229129920009395565779399781855254961137150912036957259275139204238218390061621686398906469670831924816997253281798892174665469152185833132334898, 55327606973821782284505955770599889341226405215438158720334577490383602439701638942664609388011232775149092308739999224432959841827127186306322204406263371628512200392604111279, 97902411986516141418536595377017296605880840974822529454459606036090445437031119395786636789617724457487722597593904124833795189614151431586730198620549689494647570845950840161, 69647848976889062145335985740015771607158217503405549652440803364984716852036407268262361074340221953821918069362415274971133579162909433852493078310730525696844728396268136758, 31097163678020533008410144743140688182882289585429240136538388272888463593149359617507085152466508651664618799851144674646903092121757056704214995206113492075114268552581040998]]

题目做了这样一件事,生成两个矩阵$A,B$,计算
$$
A_{10\times 75}\times B_{75\times 150}=C_{10\times 150}\notag
$$
只输出$C$,并使用B.LLL()的第一行作为AES的key加密flag

很像Hidden Subset Sum Problem[1],但所求矩阵$B$不是01矩阵,而是元素在$[-2^{15}, 2^{15}]$之间,找到了Hidden Linear Combination Problem[2],但是是${0,\dots,B}$类型的


赛后复现[7],首先造了一个这样的格子

$$
\begin{bmatrix}
1&&&C[0,0]<<200&\cdots& C[0,139]<<200& C[0,140]<<200&\cdots&C[0,149]<<200\\
& \ddots &&\vdots&&\vdots&\vdots&&\vdots\\
&&1&C[9,0]<<200&\cdots& C[9,139]<<200&C[9,140]<<200&\cdots&C[9,149]<<200\\
&&& 1\\
&&&&\ddots\\
&&&&&1\\
&&&&&&N<<200\\
&&&&&&&\ddots\\
&&&&&&&&N<<200\\
\end{bmatrix}_{160^2}\notag
$$
然后对这个格子进行格基规约,检查规约的结果每行最后十个元素都是0,像这样

image-20220802002620515

然后选出前面不为0的元素构成矩阵,求这个矩阵,假设称之为$B$,求$Bx=0$的解,并将此解作为矩阵进行BKZ(),最终得到了的就是B.LLL(),可能还要区分正负

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from hashlib import *
from Crypto.Cipher import AES

n = 75
m = 150
r = 10
N = 126633165554229521438977290762059361297987250739820462036000284719563379254544315991201997343356439034674007770120263341747898897565056619503383631412169301973302667340133958109

c = b"V\xb1V\x99\xb5\x8a4?\xaeV\xa8\x16\xff>'\xc1\x9d\x86\x83\xef\xbbJX\n\xd3;\x9d-I\xc9Wqk\xce\x9f \x86I\x19\xe2\xc8\x9c\xec/V\xac\x96\xf0"
C = [[77737701681477051545616832107925762010764626018687280451308273641068188893362647220148133540815251902262274024738124210440085304158355965150563521926001810292539416577480912418, 120627963711907281666518548658791708187022026805608562825174102048425510982452095018702526365316982206593986680961202485214737007553420655828369663878703097852551419127185690916, 119777985965489404042705152721239814545374570467863555398147881296308902852313741702166883481240081867889202250587950739855079245246803013107720265775916681198561349556372883733, 118389952811093873504400278385322077258340194606611034061560704327444788763784793135590259042715551830530307681296505121439871483552036657368854716961333565238030261544209000054, 103301698655814207400258881385578167431222908873081487762856154256949520392959684168308880121863149122660771473229950017215293490777155933474787321296307318866017482141196432667, 22869400128283146022064352032581067593665227297723410745659325013713932970024301182271670909728326842180824741151128081404824516158506237361560678213782845264787551864914112022, 82490757066880752388528123227438220077295493262205524868559888468635034287483894240711916382882733734812257869844270277581695374069371060486345207492750743371876306255337056200, 103730022728951427857864978017358701737952802393690212774783260872998734086474929009779782785862556832766128715830090507767445571572404731466117550991480358059588243722883075581, 17478008697990993208289544052332054756786502251187087869114509003519946324308123490037367215568896274731996420512399998408278697478711019915843191229061738629385537831443644391, 42793451195336971508347851993727233840963826386377032016902848146969349802927041179577473934764344891502614082403211129075263449409041495468316805472803432734761555752672319437, 39367677781498517498488905237801007018002098593422687732012083361521638731715694715256052305910620503469664206815146426624062205641455171664569321215436378232213098908083290715, 110341053619466904072084233060088237799296657499514361775325634090174669206061843793669833276316084736228285230457489964675050532959705344770190547427547266499038559551267928569, 30114523688648563096994936511143036498078208011804263621856299143360486135103773157367012532876149188950150235918137385168683421002106441693703793642323777084999341452607139340, 12222286087622395933699546610759588991237761461334204658700498007991673867116830233556371925187388357001289720873958138388373503519195040971450255009411346129230442140306723102, 103259844233132882071179062840426851509164805228826490943159945349311216507283322734293449734822905465614270830966103124746139373008944565733992675067819330093350266894971082352, 124756715187650690480546398568840710292826448534290348755851304816901155290308658759493329578602550730847715265086407135568718261925915613910518184716958922520626675685536615713, 30971193439972862918239013583389996792486991982638959050251711199896787369278765824168505056874109753762250365443971806199633904102894946777602914040317476695580974713759108579, 102948614676603843384092773601720396192522866934866051813595343892210410678164563850207614737851286456914360608869526478271700051522141755949221579451859619038388585412540553315, 46563881181138921085465828243947438689455386618668570898608670720889267680164163836289472190159411367985151572441133343193704372247500175632795958541702065641725082816596135422, 22032101812047393233402260033753174022724488008180273483166610831381984618878379317836018540535014557522867469424001553726013417274752167957441827956456809982434457750829334275, 95864291514962120201430609348195290687203816285104883871540595174827922824596497143713891211518496026573778290606865069586549944653790288827438204573218843878666833861494812819, 60889794709883258592453174583860877811111872106198627061794347726602907891136075638829353803864415691216069717640596020985851121101437136952939042479671655400704076827782907227, 42250547301181518319620871658475946998410111768236633058573401104128946273732053537564482230402214004263542000151368336248858154493407441951135614480906150898706123065749652512, 71946874565371787674544611520175010700941999476518390752099881714622356664766227260171375825377597533776013987962532573133466532440451017074539300668960913391390696803349729668, 57303695105906712894846730983578395030527856887260192843654062735136020619859998787093966295818075297695165667712901981325500975731549931489379157381036463573714574040897888695, 114600910147844157057572759402890280131373053440916389161667131321132582360756133689304757166098543153626266382763581591561735498233587881342201341859902776453506378569774391938, 111339402739018980594272405078600612356965009046102406987009293146304692638205859523655969144344392190667608682624575982157949210267949069308439207116752564660228174914074874852, 36707353535703125304071713083895579863909926831808387266165991524984372514198215493493481903213366252510594964759917968295648776338931212352416494063771177574747688925709117949, 119720283838950521490850305460258259833367900252343806536122530816904945678496006149190073384583958675980161575305176474766131443527773588794095724989554313967827242336359795147, 26413972252074570199458513411339909372112751814311958425076659874863783241466500321240956911364808521609474745630283143876955857755776705957611981087631390273560704420326461611, 42355607354564756686995873632757153434848535466899537004973287189515193428524720889885263115963246709054136321217877786127240089502321058673487300062715232971749832677481250111, 66619225074441409601377177213239781673915787270329536586662158268274268932118615338082634760422846567036166465510620619696052612462176145733135562551792890436239210867323415875, 84573529507512513453728611425547660880804843070300674459499981947267454788273679862396469432605021288177466741408255331382492688418580651211394744339172925241092872372594823937, 10537807277910126602076185519980917153562470381031805805041726498435054370164508136417688185935798366482351877905430243329391044193035383322701097098068268712378577308453925465, 50209966450064627409781908632017903668991631976338589919514804564853088423723971400987615845532246864899813139909770391460905117260589383189225926707359647894060777480692972829, 77840625844466930153234859255515936639359751490860806964844423459474135221615102490856523986294334632777111942383464411061265825752114564421399679492952881624543868915314828511, 89650206223598967146253560019866304924277711893842374604977956373704066482023962279673167831739446771053759691523664604440704543528458019128629787752843628986528856590934745952, 110499002124714339785917980006642972392332646046221833563939643294944567910547378744502874796081032320304655279844446074346212703603478195436271119774348926268833009564549105663, 14401968128772407696714924522467458884128122395567697809702241801294632495814811667801264390860637515678529963712150048757245888008123048271165624067540162758521909961292544277, 18201039623954766323300799518733545518833110948328709522148350134510943016850765308327628385585298591036502247288444025805556472766411363359088949373520753339252693269992225198, 21839643381553158251391039954531166565773469590626473763787068612083474888583840986725329992235580580575344199745744487214216193122484277020378661800923805541064872478730839885, 116624701121909440536975805257414190112507743059305766879777690657847162921860852850892968774407842214796750205022533111964840782902315924498840000571288231356953097871653757754, 24357626747855426438095491239379883278076592759443375644349931285958380205204065922545234105629677036469578167242338079107268729072502029563896923052621194299538452888056602379, 106658792806486779326999101600243353392744794889048040574580887302492097803150446925710237464247600231490967523225852575825916302608021169760808253022661975525048494709189216476, 84841673739188117043439033960480787365442392625395715389330202156382564560093793987735884223871990958111084455934905695976258462085005512607097605708053338979708039730032986374, 14615849766141431078497952843888084422083359382430256653964202279011666129944807751310893330037426176820480791143908771268060565493219110368675709620283101267788509247071857024, 97314099717684248735234282965807197712226769692314284839208984583299322219247718451974326690531997602730108668773426825601367516818944127918246775744335516190998011945760239413, 34629509029597142176075792540125377180135613521053506364816404309841443367953133333840450948087935694844785521756490424798032275570126814905249895411649968132150156559456667446, 24793945059289032449242668579993196051815643934222904019005577905084259229252345092181402268767816882883280056736479529210897722491080887860694525561636820135649051803405399373, 23009550515032953046209502499689885972568552606838022242214505446937631033421006450030426439395764432034010059615310194757013525267162893818572335561553392803786710743773254633, 70370133781109208534526405661058591936520057173366672339728530160036711349971277927230652378239964412277650742746550051544595610740180011137267316600656441312767317213307327914, 16131128903672076115479570717715482583643686856801861668432992721478686601591380520145974954402174326207300171180805515110061821154558176380043291035905995208421922883154147093, 70702490086631299325245244714249631071713373011598298441277597756369420908990922947995827339115375356360483832944219276347436472612294731716053161850283293936659820648090480370, 28910813085211313083784565447507841762477232539006720039992586085646929775924759613253465392902088127196135194926802150435044511760815784090497839887776747500988482956553746531, 80516803258161211079490879030221612571143853070757242381162563110739776026619720673366903228574829134960785229974958953632351057923711216653496025227142964034164706920576688059, 30451954770234664562342650592443976046109959268134833600641516441510009135859536924949300587849855905256660122426851074352444498676787082976251639843009024144249732379580911365, 64736009592814933150318296234317145879304248704121488984332144383897961130941178445228993455710639406502104662417881488191596545377567815387263708954284018065036968562663677422, 79048962165719784560812833025391576056453536905131130014882255183513850657714847109423192297200459007602074747135031376018524275918494223510531102727186246236090467905280002815, 1413630359369428392866818064160722604248932333793797618056773565973602102616012993276242775266570164228926056451787505280630671361416498524562376080793137456177710301361419175, 90622002412339687709936646133343425423884791387969707521868878183265512263154279713979594262318672144941810988716832711495011818223120702980449012289655009279989990574330307672, 37709101870103719901530548056245127631407711564882621624270214312540920228024924226624004090510832911936255668311252601879788489718164752149747028647660522077862524063931523596, 89716035120538112720389655409043269420283819319793269744314034635001379514234123971460546164869019590666386749138224172014655950042348893601889154268985403211266833531046166913, 92751361405619742104673005765727130972816708963244258495102513627146518489211862491307979539531933009650630572068146219128384771865871611811650508795565590839270446767162554050, 107972561274091130388986329533725912866118391857728759930916778845806706877865148668777631584626929167450764662334542006050556179017595241929099251931700258779537037321839328944, 52176232658104645124225218790763611220935577421507861856291366253653471353890184633214747241992417248777930164170280539702097217712461031478173195907608509641071401863361923862, 43179808517806141201479830431257402565811675397250996026026339523125875765702138016734943335179708358976196618490493131127460548673261444444980579546468099544540445299254024654, 19532799568692970921236458101514549672284585033257756622367501016361178059317993269758137265327312162380664915366621875282740888855435429362978545398145450916905130310494437568, 107231244941490309241473774239682252695062376745180364500956541696484176488531201815282589369863955302903126097858842887876878851847381372577773975682107433161505021194773816128, 87409458948889291154674919980593408231681528701915714171616350033450572231960692541053262166418592592257337938099885367196338919889492134125602551803928818809924532218486144214, 40318826416190006330993532371646225842089598735026905722467232064079695122492993872851648569687224099174863600025345506718535834085670104522911812028548986293921825504034116, 27323443006959195306297680538764108952714793671385181704637401048279366226515716897512848792261309898239908649952027713491520703373240871057314475623480242300818867328270472696, 77552712450677092299592344165551171309391481256222159628777079470983520416461578608604775015333314239004975061174651189229725967220871404349686482352989145387782301781345271061, 49614186108946635606969870865524248402380447303534353395253257455724235756081076603461193064533539156660258760961065596255985921861318501336572982819794064305015732808548373928, 17197538088714435641720192880364720625582962863365591914831802927008177859385940123003937175229142578769613383387201295761688588374844451724666317680082611194787976950498889807, 15825048605315672561002084641576690707548280116137005329040256287691850689217215011362223849683387094715167761103476672962375089275263392727101253372462400753186177243371864753, 4645252562124918827193744303179661884358741719837518037902526046704795622613522312492828452460115497908550249065468003976574248101983632065210449278410528717636199216715990598, 83765818798810765829520163976747176957894188149742110607832385961840120320215924674090747765819532750760750190509517657348502335389413826768686712722772454208849240307601898904, 61626566820398079215156713364252750743471893684078882119578964462710343208606559285605669089968187655108780613252198899000106927875865835536087278862630195772116718692970592948, 55703173342988386301299398033514283300654915559536625485566519347132625558891067151632243661739964524618303676696805133452981618693141347684116265554165205132361615047487171934, 115127101780885789662141936810994213817505499699435963339348590781565917440258566060801903152892963140191176022094654069114371613983384672518897099691030400300175132013330544494, 78189725765165841119876385365119859542308011491240733299909622870407368879600949529593567417972551799873790880797252340106477388024549463527311349652832468494598913885714777898, 4032596727397273514774099486097658564190939547261193429864561884217941233965608829503656684378784324035042693527207834156200485707678125225582573103718742887189489968466875974, 24042723110623047822837900945529093077672398306589416461466331170136345556007111837118826543103415798515757099083481988619326023222442072959828234008032158236763128214892772431, 112064550000757607618095289371528761247946051046369586003369305466905515538496094446321036862203707894503637655153585727246664703389138629167059732876899561552728615449640263138, 24165887673511752576939902351474388950411609450347825083395679623171391700646171060519461508818067370763401369889801307944214714046520942990498947633005453292289951666192388183, 64293885474696288729950864657128346169514010371385405421554735926289462710512628924991787628190911481487836329380486754596515703772016786169101529313588563154968573544460384237, 87925894811492780190278700310319939659736797741068972331967200331153613494901891025841648173243460870932615411921013270725425095447786649990466554092551458833221640777094168423, 23356805962556564818101322694942474734237751529257313298033075519482412991327344933777712629401453408749760262107990403496575348655715215061305201904499551510879693434315228587, 69769908243448449698748662613453426966245935467478790561176712681021157587346314788295154336261284239728898131808037465340224525177127604743980790395087809876779154819485250424, 90276331315586041285958897465653415645191228240581782534732086699530661154097269773725867529834884743811861917822494634082016111717582478298443799404060753204870194022933311905, 4154972917768020874074332139189920148228807921944598132810314792507426806421283786958414330417337314789275027890650424508235764591462723662182548241941423261545177703825104913, 13214427116330424124708133293085963015208273772003819425906128525039024222956120811392909886152562053073849325461431625064999952500550735957265250675571160284083825576935755442, 22717012002928631368174399384338727725315336235148460065723935497810796867644216469939097461379853201500206252945479661823205123878996162020267004200973650637411609043256313615, 61944025309058681266394671043016998015231385127884551519625022970683173483614653731047250912163019775933635248094858850865174959180387607525371592823119345515568587806363895638, 48165227297566661369707338882960299001909841882826815968956436128518690543504261684193820343638192345759263671747185621134168334410093124031101336311348292204141006523909499085, 35744933741811165424270508446159999125632484523549121206385328018184444522108838878673318129900838645199237356300383330747574224645718785403682985122237571943848103669973086628, 50175766360576626651169220761167604763939092580699966630497548092760189622410494373766016123159232512009487151120427085426829090358252560970124506257966085417968971127974091000, 22996590634306750725773526826661820215910370638889361367279473667396240385595801525819173130623343221585440262132894767231877956380809718542133201629152673816234362864503883589, 37738334822138387747422118248066650018844029125623366220162962498495023255901889554014888679147969671932140198129749816342694081210734476234593723077463814842874816695223636130, 25278096567197171602216701106627321261532857107469260657289358551940224455197989102762080981088208887456867863844683588270138659566282717881958501625994355208266692159370670314, 10408888256651441875431687234675134783116993151604019994119882460842256323447051680600395347799065073776149835681266078226228268717110854959120423371718545702865032074856502099, 84993874515374542953530158026399977197537527775750538114139128133071593469949868085131399163134860664964723099400491446881617386957752196968201931537897263664719863489997218421, 39122212252244103452311116260866583729239179009834137909756220159589979495942753232172460573466701862710916728852894239645837967599977831300661363495063254380894811306688262005, 6630476648470420775038887471454244077518648076155275105710704648895162713146561770496730657120714855093375590835086804194089577067669001526231998125673164194140133572215880308, 20545452369476494685350527612046874675046150993702402410197965036626123655122834814939439464574205223155972342058068749174725324191671854378874831978457604835682201577372296394, 10074288035742807628029544903285139192387102776897738917848531586649148970074797523816625580006299516901987188749901825227803033285149984049072338839270336170741137808278549534, 35943021430694940110511658370935710391053646862269839445605586312888860058889001185700357513890216700543007708040224774225473469469412652438576666497987362556621568823057128151, 2959816562559553758095402820929644226126753219382715183087734669009932975062266588129027836551492991246636221096466954868374056181332184460835952055736122261116931301116577039, 114876491353346911765779587112642714470467739079244743194335790281339047264256497469894612883328798067959814596340980508629263077535185389819076354663323755995524619789274187580, 44900358448818161956395160567429649462570384984521288183958337770972735217907443641486229643802546496866140673820199244196795518903547947188487335751147971261005189396291654578, 104379941987112718515794526433452037482151616952887161173017481713978394490369438604971108127244263987545220356102644770071331150788818221967501855504315383783006511092807562170, 71121460663002941787774366290092576189757292163478009940979943202231389219954054213346864008113169672827659067666794328032475901586005503230865608366694363491854284632571976604, 42594813660005143894356733292718710857915988865352042714757432046876630813188418251144259757377314587744939405966421361275746885091995401826821799582080599792878017316234695457, 7648402845186961787191936857716990937855982754785038448198456148673771082193491558775305500428556025799014082270130977878187887879629459793949985045600876893924012168096201362, 28807783007181206432284914731403827781492573482646727821812350011294317859754252525675242113890500885223560007366930756163095977110441280878967690535698184361388141993405985222, 17718573950795642690511894054941703471529270540886751501380811760301273109562710006428546576770708835105048770506388131032589865254590801305278527496546614494333261522632817160, 65588319231827413180458801124627274090090923540497692184244161667203767927984761908164532457572422234025788829444469411525890776189551019744873735107248232672484604616556980236, 97063059677157467771466841269639963767239913217098128081016220791496978739671918227157091685240460815368071942015132166251931526556147768363875447754060479072054966216555713607, 98118192869282878060556431292059104855839846228353741279158747253642784930715624310930447279543322594707657776457533144662264283316106397526020344481102366023405610109345639392, 31884281706228037230435863415692248573397674708181586521648728453674864626523064815758751904382682319569778935919214512187522926059038692496274592672731923712339155702325260056, 10087274942933786480991703420962678458908748351664757899542090903839644362495966556888800192651073921108479626120530628571296593604245737526268181808544119657584668500724783339, 46096726009116732797245323010841220830004323311982023617164732797668015361996057634840190212628035392134852528157324844190777322650744851662786542235254650540704023645600312045, 20791615009997670648184674584734438027005595516518235077550711476545130566322620296228243888970484839358717426426339830788412491058470897057058061304726907762774146786264364758, 65362794432823749690268762322889863676276182690228449506624677881533438225217076337120108108045848583940898009326215295986079814229363211919142465887174782180129484600796907228, 68034831738880082822507522309395931884433585191493144196227250323092321684352478660727208375968013921313654854781934360617566573384231990718595521453065164306997905672230428973, 119956173844292541158156188322784371099616065162675560105901831952765471096671090386456068285249350278817783528541609611367765022245627378348930489921551720027808019992196134563, 72803192418658970494318020524611949772214556305978331069294472309760150608263346648547103604351450118230129485103813419620166269206875228320450137064837918108486181285430659054, 3801336771696148778039249256797130579373531574063319245908927312358014785557209118266380107655273900638832185050899456740707367727448498883243334226799170479272361650730527533, 90318626042758199795371664173763506305015249628567530396970990686552504606759502166529554839850415971592466293913353354075198109828935786257328472300222621502910622648014440077, 54564365427437115488146681887243911919953549615015795830744498573718342019786597001654960013283688254629811260820921658058675795024497951971734768707461931088097825221248030161, 59890361637973362005878252605043336818061994892561147622861510394438546117037777025616607030188240109925010400822298160210907849848129530203321178952068915471970926103947371970, 15707660407524651314224339319127887439780633415019110745277696646327141895186998403067615179180784733683326989194865683383693164416068418474212991020383609372949575896583935618, 114313136958244422350517482485073939868477840866176654319670872259287418645774339634653744267138412998200599107409464118638471355398989008580837880998465380201742937805356879634, 25047014646278754145188380011623334306880916605155125236115605250928418584482158488762028447070131227014304983899076907350459578873519637270436208761611737106592125705743143632, 111263106779982877509447172122051719764385818990120054447007958792054542853505255996935722526407311670159261170432048438804848626795293820564485827649199139216684574755955154643, 102599105722559244194200990333920032930171386999330410260908776626639295319843415966493934708416593247206758790282653822503008508133475593122311343260279357990906614469918539229, 71090810927406281354098429563926762644385757038816871184924809217728918282208856921635355527344964720429638995328968545742734080594922537260841481970631350199944436590355421920, 40089740253950065500034486573849288224543335040115587462183673983662760013434701958658339555759191663512282339438014727617345574023322980266128619445145879897619946781392659045, 10688685684649579104407208606603677796331060716882350260878467327050870308251170119034849461512552375924920574910970225809789203531960187294640773945218069416779094441127109284, 13279694985835162609343523554988089490044449626441078921749601358216487215582646761042989582889976820829177539082496537839789207034084857545184905478582615125495139321724525424, 105889130990437555741641357529853494074822856046786905896284455100045549781696420949999764323450470991502901757896120238435202949090343915194581208375880754012569593269215577, 18516394703638540534013045840412220158173033702333085198647303670028010409323920769740086222378515134521359848690858401112987672333293486962107707321823705881284557083083065358, 20705915707216330528107306397293625625065073442132055390023518309975442330508385231568027017011211764476082756636959197895276986217263894714970044052293447038103585018067018564, 100223142710734859172644752274344136073846178435932946666918827585374028387827267417547793217890846293904915391951669829843429455025707055602749543036486463866052345414081865951, 116415554106202603279218015140523894115297898759819607328385277039626791617794182806323873132951150514225094530229112126803738844111193641426204072055221888401749712486042566604, 29687473580220713519072553673955863044011344987645824552561543999079213183980823464523394713121424780270372693991420277215668270157012810947857503421132144641272720011844427259, 106407636491007287065651945565660460650136911488691757357755419417693966325507038227419243702932485911620271606552265266905712108349883038279109974514357201487463773353877403650, 106244031647982662141460692372595181313554780716594711051416983250983977550067959367451898160829187854561022945630658065876717900336081482027187428499072624586055365416087762859, 45491777750503257405487099163608755008702079504133273451637659725827321070855882156543649494447741393071509023159593330086368886760890712113970049670532436773025855796670867714, 9942158888103467164747851522901079196274656354692555718876855855371724264748288431450457918939192664927439658161824800713547726156809043316500797050371404280380796312279576170], [17463781373244548389432172287531292897142421798874936573465238419059971128503945201881563034314594715756726583528273140601825229016444811346841741151117254125421916249039456835, 85528800662522363913185196994792113428119337720031193518668997316047158557452397315409703533003682882951054066702680952114959825786277185211420871104954443666355701887430472298, 27773053577505933386813995685249730213724354720261130440207906201382803649167146935959648569339204976623801894868779619130373658962838730938578339411389663771501385840312723177, 68411968803766361894457463004396739902000558144369713688107524397505161659396677237880138791479694596587149227496373471508136257034110999378738047934344136596190350193379279770, 121784205146444491941851215434792956500625171870823148258121642691566258812835678897877903022406899079615055269274594306523406310409329821502803541465900671670529523369670281857, 32837237657183843499483293565870622798331117307764180616130086713320766849298315209386815289276151569597497774052442262371812117692979508193385678571122160767847159998653239804, 110956165573579738358652420557546771917595812608393785925290111317661880479333447254376646205110035992737973901285862652815414448561873819568006859684146365984014138403363050711, 116894577533987295691047593291112539798199845162925400446579841072066609554849993363430645916282187142987960280252470647333462997891134447324540094557650568467179649232278087583, 22335874271026088586863724648460472647780360118514331657177024562011250381448038695132726086228687326238793679947208759540047657510669764746141304337216136237485102114464695447, 109857800545358984310164937237120773946630222707906941077505813294987461097015200975822839015626901839197701291637949136215648560369880749039226604476021881880261567541619948619, 557894619061029085654173857256060413605156707228583173665194013733550678996253990601887283822381626178369828358773613780937729867246156259594832889027391545358680931325420829, 121136596327029729128590889932727782787278306035421660617190247389210045442512361327440750731150066484740149986881068011049561530433929518446917274398953758612758455371414226246, 65133883446582867729264490361931314649939305214651529360501713768178384861813544499635706018256080536772202700177753729818804589983756580059016665937945128112186080258505918866, 121893626265918448233123530634049990215031215156644485326025940947218305702368173991207824860630844059597625032613973478161791031957769946392801642678780683301580341082382198959, 81246451910577946472422417868127369540593752432687936978561515598851185638102810841138181581836657635208547494066092234680744798532754001046543465618233187888643388943912726052, 9226069585193878502485075875633595188669269852786230543380714294194022955378406963999809313438892161855525757791973667016309701570133866893401315477584757608296745426330083076, 7982767662472467574214612935008096742143598528017448003499437733634579550672925907033992032160530985428591158482453916372600131978344051502561832234194578065643850613394933809, 51439579564415766745011777243561284351931550493631813518786887002579266792085801388755015359569476522451915238160135853506649750103106806293872517460737058687705635987842847631, 43191271518321577790492868453585194816903333924619031565898682245480522333550845084383781298744775900012924105616412319352253713722358830053562195870587526824099117743149744769, 93497242875124211367554105070125353001702308947005110832516207539599408619037729925979223967353225692298153536456491027513030388614252818316516801140181494540415460473506873822, 27256918052807466380869050078898184166310673516711417335382181976899642121110159491472349785852328468245562827153512579048338899875029066188898235845891545223039952186507349700, 80094870599289466026497593593101010148239411563707214699476871274380370500966539540068824097467557735540981756974694810500955063096918692567851482939971736362603533817426310187, 46479952700583968226140235461462423902852755988273391410901172979100334071643963905973884095016322269073116958179125463420942660019931120618101007108212563286925830054844447504, 17938064160303951165087252332463230098147344888564619744124288624123616734882020741667282762244701438457194537979571555901771047075308106407838717303326727095678001619002178552, 124319420352776974174308849937633831417592928233814038909466235304932735245229426641094029094270306761956732217471797561934235581617140033718925198977277193628000113283587435465, 54652372113604845885543002789988388314664595861374125203677346002655565011136553061369559859704240911441249392569594333977940156760154824777105111590763499353490602481533556477, 107962875589956741390951944133058392899764913557032332484928924555190883952685290711118388806855712779870863779629650890854058667050456890032032248797827463005503205302510607607, 28356315463167862634061472028972501858437707765906873014879507432926721011346999622523116106231689761733978028058350282319910978829998242632689693275358719436544613154909675830, 78962101102009845576237875696294910702441945779668522602248006186865616469381644430741558228276253467360827938081438057896155690567525952671876913134419934209185122412843051787, 123862403490029849479632697245345868584743959836435580788380841359908656944680330888876156333457788110547721892288818184018983902195049405875559982871373593577648073959831235379, 73199182350910933966336722209575244411242361911101418408551612655180850963653613269305413946437501048374717699528490044214281100109026076217829031944523781926889420831635953918, 65835478129732315830960401877583772540821586613717401832770629761888415744686271027591993539131219321355270776472833357638488446748171785801590182281245980020387286892972847222, 54207419174585872790236843073124487023563347201640628487845148545359831413089347767629031675031549214233116180367455951431467015477605393136693018614879916719397051764485573901, 55382747717318907985047806190389280412103922361729029094447734878091344412296995674740310671822317592042587729444633128642933039667890048320411115977065018855408652106013755891, 109724481267953522032777498424685945571850818082405357165841218622912983663780525090560530363758760933253857052401070892674003770561422689651311883707617476499483029323141565964, 89773133560782855427864616920044836998486050370439289880637302628000270570814543441345220209894557767319791861360569516548548812326513978808233691136247547805315413478195137224, 27184737776855702144806891832027117214975100568178512983143617995393851288224652331476062395933834579810529502567992571484275060785859402492166393966364293863387813954747543486, 51413452007263003605175725843439664301587119472639161767964849484975932555332874523315635193732318884264115385137656058599303149868281050669463308656133803949182064750769931016, 36663968940684540232540973544266806403416028816710555966733670628670752458996849602895268601516565499346578683218540970433401164083231138546263481491418846012501582876851569115, 36456703298087879963558149363722457273462663718476939235283812306901872425545022546282311492254693849290339600539295823722186483633144991391452902529376161611997106050380140859, 124760544920634974473859903302462440126680479461489817949060041293216118711825331723355059430808045621132224770943113491891735096999482015959696845449531372028771875360849193729, 96380756511404058817796004095200902878424009207124067878033148444087860947529720234320119365522791391182987449812330093352629019303333784075170260013275925252454640784042057333, 51575456696708936080215650424903288099529350893150277946017633514308927800020626369382478028995796425172968093012352880368640244584458014972743828454027249029719715473505174694, 81218534395181874552674754495703968141664359736620727543057128045506545743060223809521667641912621097010914292965325708132222677169839087604354888092705836364471404509039340126, 13539544607275160793453783551740967615140259239687938847288897596033449962878941364759264086129689092815443217701845601463658044244972150128309300243094255451768223152837298950, 119186456214464354393916604002831555717243410083009538785754674374546275407289417874276398187930247081618894487325717109622742568316883785139592887033752502711321833402285399979, 99672322527427645454573171880043371638685333247352767651250413675784251673037324539576536774165727820567458304186753439464626499645890117044454809679627827937486812860435897878, 116575184727335028159422121505224342371492720282261885630479395455974489180994360969079306066557640602952170172351204317764983959044606763194636997931761001281691043478813450688, 43260538195222876260731366750610725391153898656454710422160684494100403645305816709362079721128231323564112710286326372807478159291635150094181691600448990646269238804967297728, 10497251481466133469516754803764521579669635361771112591866230833959529777482257761498144234172962632231758415580187027202716070180307194804881140652561447244549191856027580574, 74471002148881099658903859015092430798819241431308024319568339677278510620316842108244584881255930380441985772591769911932400364332252004971043100530211604552991882529417554909, 101331739140707409751343689237198186659419454222257236326413386521460293182969886052512208329779027149004526254131593685148805826628868054195452366475727898454932687394444359264, 119355801922163848930424593638861676962235401762219289307807595655206829018687472933337162230905709516531054272089767626953724256994656257235363495118213466422463245987925845505, 111049346743730596895115284701443918490102618913993995316128145593408704633614960743249190771573317111562915413242719613502252243524544683199280611921245424470663370641048073918, 30819287483506913251398092518048582249121030763706031146267820411699653601875385519720366900776163170172123738858148653302429068022571361032090591970089626782458376056488663880, 66041800715078347603795749321171106446021633572129052299297186710022729723238606718964079128766163405359709485018775152466653342010100536460431084553121827127326437270246322296, 84575754761025810031971154614274933647526472756049600848008637725342416232431923037602106187729365070177308352160604259810700926218575763725554138548262848256159534359681848959, 1598659805469937345361827373075953319711305081797058755335900148216869858476157523929433989720719586421460173999280959842924715075017944981778362263131617328079435392751175727, 44879098938352686452645925843914066129552188703850055679379987682516813361208089331310694921264134277687471546143849060549741066068673558815971343311116766221822479588713995879, 73957800287279033699258733444357688700921524442370893075685746657671195944604877036832640820177240697401695159373930111239289447108803670049333297230735339827453243427908337154, 91998793638868150613704986252177881722976605960244785793806378999499593340345951620370663642690379754086949426066923736222637251437358566233669052547138484845850220615184320297, 123153522555126744878550904394459206321371152999143847990852895992884176930256323009180838846683600575756481229698081954181997091048981391290684179956110727933405405780051372690, 71570839508807548056860117634139089615563451998661511345406419853577562880901069186164542491293195737311536803612172279552126405956491100863511513947334233882861932799963075046, 15795622704806209120907363219830796260028427718599232794846585754705988932487282424167053265507380741535599425539042657090729427065590779069815643080657432497412829171218294774, 52205584669015221777035123254352885048827672748227843430351981946232088946605909442304582468748166687229535913560702038618891234040729002601477798425392648618798712547386112855, 43513944119438033999472996788537213783561524118101387366967126617115550319467389537075664574131020143994608900262559795668722789186622831264185739801873609888615149720514175424, 100363425055861849190641651964102927313895753395092074896011643081454008846361052192802236440292440815762519877903970834286140413826016938002776432846570235952041110070288238916, 57275825633124770787467655516957994829619288233786833466559929345433062162602445105262641946501959173699426135832366642640124915958774739771225516605374532178211363255932352165, 8431816471714021532533278309082474301367376098844385659371165313368693338671464561787461257660695838840769376141818213265281914710558141308647865518385829840086465761177372418, 7836775381476986723929395227715047810265407882891929798978839728382839347464695978312517437765874643280062375100114066215600821243821781032610674805986478300679101428700448047, 99224202317164730910042135275919620125615105684392255026813585264559144398526514210207579434286527531197412927927201062541007602009876260632824531734413167912024606528480035010, 19136061432402886340648775678475405647423390926709085394519173995701798932217060762394201439251071469738262681279060230424042480100736526392805797941046687370160476343458369867, 14189319566181219826628885499288254456348726913368149223934358761181006302616552958444683572173176268114582770462094171070421931701131350396187010515816560876415070910490443553, 116224432533397969268661215429344174067179658963176790049109046073357425560010292539188709889988496908240409771081339982253977585642519556892057163750174223515006901147347424420, 125881572396590150288493795557689126232474938661120968181158110573960605377169670979391035924409517125546133132602366440615700925271513768629374009678208322432528853213107845932, 76202199689149073232307860909237795774296306361045573961774055785011839542473327334256112157141174065598831644299055927315583499675466615536286506128669177687619019891306059762, 102170568861646212140477405952614980026889769034555084100244090898915723829857475940785127356611472846657467568130064535086847717005177321528622682843188648562133019172933573019, 20451095135368350528200300433914185120579445545952656902816623596206501616121331737531710507632666330914101235044520448351299646190249044163078780640889567289286022883846722334, 76855887099700680594838703181150075646739791841579086973989345209520365903530852792931115242915655891707909605006924326862478500772093544571371749433525990407513498751254844563, 21336015944880875181803716554621771834541467830217485563751151973300474970108856493847768014952399154035600033993786805964176957575697184949798939073300079393407810579961093792, 21984276528988655852213837982316455267507229553633960109863802026303789452744425777543052341993105789769376033561454100809706132305608286336016551391340529339334145645493309733, 16580729296177624990665157198229722405004260584072334733567760401996876109247205198081385321287859216596702754032887641803239866057840683890134178014529249207350834860972920294, 78686721819179074179239220648864843708950444375790737650723235212028471548092514690501318296941037736895692651032168306773073024143447204438107926734520166820997878250065966669, 71013493982987755061482706348586601760427615441793228605702705073766465595377945643200698082049582197367208574720834501966815498591475470855322237926410311683379655128031018159, 92539756469030347598679907133900848533717782490606673647928608485466025164049877898770637624737160042701606156819022322739383988290990867764633400474680550397678369222730417072, 92737586613436259901047205482993695698513944553067759105728548658918567088185134658559776997183776685560271492119410950448804248151154016647299223875163267317001162002755263477, 72742451707597492008547569155714044111897775321701694281956512912530278008110509645070757039831140180980163339311228448699113251476535801158570096577628902490460932090696451183, 93680890340410028649936477870820693951637831373017514627487821031748771564496528591631486276126314570077792150703552701736957570647216660066270665195503577600009946725695418297, 25048767087305498455441482949242378462830268874453743211983775036026480451773631035620002650197358048556968655559500340490801870140533063441867826065780641715215419849283164175, 115834011862355201353640859548885604510182264586167858084527531342734243808923478185585200802190760321263762969857756539484717222365053730628851896311957463669917768578223529233, 20699031224347699821790919200511861948570993477114137973379425813593572025864997298247797606159947183125499309851615338042785933885875663514175600540442508769926702443522560284, 53338492910740123677516003318995608561473130041782096424949276049955298676535426778646855103341352731842902149476997738846835707676940714247870939983297966413509197408415917484, 121725292622984250665176510607683018178608433703033636915032046958294029771492028998220380034486070355458490502964518978818965265119470851343154310478073493160469148143529670840, 67509484999953529554696990020411163908470554788598881896269248612629810453734467845908890140061098773070787044717898192116423529782312046253031376996350271946567353428532237583, 74232941042796488339626370203018319061136807955697047656833879113610521530792955905534973419627215261336125903258539515656929357499308851793740005898844349996987184704875280425, 20993015282214834138603949039172263700012675391612185376595096611121331374334038688819559533596758702006733914714090497017027279312011652510322895498388612230967593514093140086, 36726750680484720452736094135871622586698936355740079549656882877639857929822442553768453311386710342844205016293653769811419854691552499533539986354420555168107819309663067095, 110886679428259262102233517698573889924731755332078608885457036386012376780550307568379660142900971451999311221299083838381597762103213867049314970507457290900018189028179885278, 23842575489015956866073905838070706624904947221342032177664426763657634625099456072528279696794080853193552260666489749622162628282480467836146901070951915130591350401934976555, 320898666213287842068179341046019305153739505619531451956849643492573130981729424680000462593179463493510142841883953392220465579516472348479630880263162683970335641505999381, 99937264654927018615134404115042426404063796867074535338812586611240209724933254756278171782588397099744362965383083300999079601146581871556513328412735917079070758123940398880, 102702073876301330672688931157459308892963545911442350863288005339453682346515838295306291661846933596044083682635677163064314569477022533947454135201837246131582035092137815748, 72853402031613167248103639478464603933881173089782918576508299077064767983908213446659951541088114902524159919558800878365279343335045981874746641676523608664476463431406047320, 64978416019204966435365763060246197697412592784616539728341604135644067155642476979992966743900911071941948769333663009682545032426842393847960897212726368469319902616750710537, 98128056804982562139624896719984445206231663701464886699681140101640735140166637962004864364212856028120489767891456908035848410799571034133074580905636110548041506424887454273, 89228508507889222830995215317493762650249768597121713944269943752875731670970041169916774268683003064688839843746099685823521814048834670341397409716587481000317962388038121612, 121246889144016055856159924715947851328231159221906724837523111110760759283524322820627573214465156587454728463773894592181415043844696933121679988554739625592472621814149716122, 4209520349936889639376484273210874814009973841628651519739219939329053244920680491779114421299293769528262783030836843826565418226201855970279847661822437488038877787063850929, 52976273562607611650526514061589227752013422114942674730344991570562823199996509056197357731672865931124494179044629468202869999156409165812326788908909985978048846106385532650, 103267623391196008582656585381982534079835952791090633926441849517588835996836522309521381620028603054668952502083707544409075432968987544196339868254459909507375367246017178513, 49430693506957577630262639966498473492226468838937614396088592494869711087263147477950746864481600068176000975264456646988637923280417891970007197423325797552456213697243909461, 45758751975614146815503757266760941922648797132445138565262662619604119998725722207642348368456026495715997176267967777835668582354237893184819276962372157663592116875374818366, 6472422828461038504868757409795255917169029528024754280252054445295197643368397292526954301407686863546491862683359151849689665960887800269166561609553364390461238315421607256, 109209350535789415382617572574799858067726582693984840327218542991939780013034688454091676984560950936389083920134044063803057155214803976048276104918298474214192777401402643999, 89160504002278906181589065471601800250122384200273222753807965667558503828335982713344685156788549584620181303989262066485352263776381515889736414310306348653911613405209719100, 119424350467904522382874737643527555962009169119737571095447880590412570289432829806220943147528284016811453828161741707051066546241503318124243853413642877064864051210224082548, 67291005517835896026496196877828196459006564314359363136857661453802894161640591432357342059312618045369043131917933305072179704492484880490005263374510750924563638088689885316, 67994110124726199704396831496328979459841510036662953466184836239925256487691308814724248038324377072979206068923557649995125682881078305282971043798201272545619207553614654205, 62899183704347428205185060957974269735959681616272324687549794323430316548525617878392692219091978009171440661843208399994902203131979779800170264221495933929030715146800696375, 11780216114729467794284611401226709730393648946032360599499134294535943756513061642955818755508019377403062579356677792181128924541700303357730806479287600999587400498475418441, 24214754605752763821903986048898289007856859578105959133958600203371259928542274258257377640321378190110840554616464164962198393206519670466620439838966213676571338613743311524, 110113269631990433659380839477770485449966173697583250678431019473330737921283108563246705021879300480865744177102198980234324156561951964891989007889901321932880382425029026670, 99760419188101778615961877288522611698328576710402094808722894022245039352174623854839152874100176971398288414870831848247529353352528868338743061625323766496279404654097717027, 117845108461892073091165699175849197023039754493173907388736239694249051990335142197377654657177981237073342995631376650528801906850023489836429737639927607769129845499128205876, 115931549458735270040991051216730549440047100692839338713901416362534639851718538588997139806008355140922947303304069516239163392788596010360321989116758424058489528104132942798, 110165112560584219099163686769582618314373251856779444722866832245552263158783895342962034548000110071664773678484969529966569824602771903400965553218302338162132732160653425757, 34268484744929158918389672267389358992318554028192747382345463498698266052795449136079201678900860714930931536160051016495613590326944419371820705632132436223383464037732250540, 56257525327796949475484047240368702680380913660078779449253627780609367689191262492896811980994206802003741016406071038768835629173749035375767070304019612796202259531356479149, 24796080733404626165537859484130301132316424775285199071853276320940869506898220835479795256432582200258504690299995371781503194392367799762982132677080254962479240287897422673, 7993552030419609140188324981115674426861517666118096617389475095641376170035796896976695287722739079876571540295486172038386964342263982358000677712745830390902605682690342133, 99187061952333766423812488109610768192767025835656566518337799245248329908995411149906380291576756941608937142294707838421278792339154432213805662357132109898263456388966509714, 16732176551149831086590671384414318864603563880570488336051296190012699004315669165539212780617861340474653631617493184412854044345363247272349058206209304731892483854861694463, 109598683051756887797585390911481093217879761324024811150260586326406827813216200669593173248989411630694856793184336484091844910606791162389626459965842164612639942425637519824, 66840077290320212279177391348925560362736848746398615399941656588523275557755285682658748820019201281681173877135712166400348791434245802895893776450583814503099655878653421620, 106950403171290482848062210904041400956725042850771654191013400680456229135448709895846436354874922818411083788379063430457513679844192927809870819687934334160809721113175029021, 30430642612461842084995100646303614086297297925253970513737611578637354816942920271724816067779315899290652921653602087964422647113588076532807438324085469250417853312993051804, 16985824833179419361172359629720780963756488706660271551992987101364622470224225384627623470512202241727843305303399850172318034414904179183929837933144051997433241746067881643, 16098809840386226547795871299135777497175535660590499831895179648338376021376303710955164195622540491805887220523953711390925637561661800555886001987567680221154151503024895759, 39302678432699907793038839688687730256274630869775417269395758052742506269955128368682645135548518792090272868249066160093694377951897782735519780918113708359755629226597996353, 86887842245751956810144858014582400778565796579801960491554891520557322128790360330065023805528547564461740763577839217095431243601187468192553731636404020171083882083200075435, 37591924311408374616557060274888498483682238330585164139351958574154399393092386598021945973117781099999104910538816010213173794597261728219423315232771264995524841438291833902, 125183292405890778313088664228869329224584914205917277526526346835507270939589150267689166436124295260741043663956044153344901333813274530021240645113761434185024553271706745700, 4227014893766860153277022702392322380741306854112778919440033432255169641561648404495887069631729489456618348775628880690349247314221576307523317893386473612802451862359979414, 11346774790363295708201772919384690349352395669306786735337317180330637861814864714671177102120851185125888417523760742375741157714889407340107495141445295679181087120178436580, 32622569552440928139353363106116646512531999903001792370579161527293863955173345202706206810925477461376564972695747019971686373356578656519634667276091984254085035047933378216, 23284441591105600426194560127789614733107502749009040977493140342993788335427353977257242770602010117475952950874677213056671570966791588163460962611670500945857673804635635452, 17178821250623471363324778673126386319422218849982228008523476388601275451073649549762105682563141462944065109947239167400889592231673479308850719394535980344060030248176657907, 45397243715676334660606466546869813364333658092742128578937046924420699257494675597207365533077631012009927863357528756681105852819810947114234506785637217722283738795723932051, 38106329031233991136213798744244091465355193137327755690916797224205283858989334763839525055644266984141219196334985055563345845191693263622996513178101021458862928473140651234, 119922026036701930191603660266985932450763299050045161209516473591767263152784166752426996157488347873211132317698422051901661372885790061234687663130557149294540598654260839305], [98443399822861478061092902703361205356873701131133174456175121760245701304085322182517255970829822677151717061562445690719123111245252059124669525129013430719456722247897213352, 84000656184066001077679796125184982374197801820929817620373340813778234518790073802076889070023620510193094519862423591327172380180723840898406142563415707468171223506935806514, 100530114211013431217738569056605649408906692439713022174168873787733425537134175355770338627571441522567523843461418325853678811403896320329401169338695725186171412831951170511, 78920985500355522020727167389519934040198457634668388900184403412924036735329351741993734817572835517934491537660975662666288932173103753273837201360655832431476654424604209336, 91339993020498057567927064972886212637140255075375064349113774054280470413507103657582464695099488800633760505815248812907340157332969019876424845279310912668831189667391091858, 90448447210416934849305962291422223737790291741575397970935497294526464330095466557388789014075342330012959330303956573886428103603996883702932042015701749767964723654411050408, 39701817620870718372504673998468223170865517033685724947488511920344336903194008189302231767627112171124067146056784487166783901147368114785120757234062549995069482139482993102, 105157387376151352446355980357951727018926728295263674287403971735885582211537436177733804387640229400194089767480743576901905309043948253700107662384782798474431218403882067834, 89296223364733061107753457387023524028185614507441866752678485540007823403719002264294559622467966688918162693978844320560271619720420324730991088301415653987505739700878550749, 84605033687981723165344949157318646099726060895032035269478017200391770148299794004465281345413491192572086861692321452058838165793813657778414735013900931231701803883130454668, 70891956859567459154937190168071680232757213869078677468631592224229639785317194414038154550878077038474677935323747581587028982598579133980163808110668866443310895847694235702, 33347947569110225893368385792262883854534643578222450671257000264991728058851172944089859746991964664684953102942633311617242368694716074733757249129543800616837295974257927505, 22637666613959607315211880479331270696709522632580521264482813766034656557315427927282932119490950202430758492753012891424709642428240055742884129785099206329578413576205490451, 4911892169763013440851726402995592179616356615519753966656071814898444424107329472886731302428053704392866714987769292755250691356962722167798384875700597747611910107118750452, 10727795302954326497980301326575506606630059272417006147859446850495781505486152671689197255415307020005353625518992351904570291244800011627806441680440431583390656385843875926, 33517870837936379681400065471320846849904600354478054949091766211999452233345016105467387820529129549795622834194233360730268569084389971106341005920053627595515449788118937503, 84393786303965404653127162869114643551508224871032621159741785576746359933647314634748205551382191260905484884910530915604526785252350051205812486777378254568381845341192179284, 111047778877406904616649780263220116619804057950130945701399195892685056535856679490273658671052740239154159889799796815619334946268173802959223662051958142956881726446099371861, 52968590613091363065090677693443939752555719511932031670574305722711401948449493894720162354439831375610377819254849205843542224260863196087669153812409381698669972234110281963, 59147425391957233592698475070470388100992930448614089257848354513615505778406416106255603077688914910218582310398823832031866304832801772612049065284594941464821875144612899872, 65854428016598979255708298459054139199912752626663281371279597211336397255319145739892008485073661877245244851726515772607408969211729450911542618547396766100242305994019534466, 48169602414689522875543924693233987357056807932146185204810364543868308567625549140634712009888620749946475497767505075480236514664431200577490998185757589616359968640332527000, 105124724593319224207781209625176828810062435729867157462123401921571437011263184037889399590475550794057457116257736339244732778426493022187911814157118557822002782853377410413, 69185085928729859950182293149622795273607754373849408155405345171852195426127769258542472555641878609216914479270333663327356731076644291053053707928578758588339193621339783167, 90047211396418395287433843478836295959472722439471446992811520212524325361294998210560922538769988147902815647955968127336541964786814916685890074836011868879885287252029922760, 54498092778504093271180980106637599131558414449410273188942055506946549183049987468364936848556932769220229722706881371323250883566935453887150107326067487864267954718313138946, 36944986185347643499952022880100456008225536616639584169572373173343687171514405387648588279825035383793513632380930645621592943071470266632720004571982923050109882636045277145, 115994854159448888422952382072629985747314235845014241133870072803740263800947775901551261152472348043919087498821073044955027265529839255943897753096858497576162395716103286678, 19281941190772180956765655444293649003965471949776971965221419671854888157283648907496862490052597641209677018770025222311782634961493313389796705158640092224418972536893730086, 51367244928056914857650977859851725798455010408998965284414736632561869230829390474373443025207957451120638252550391973886365238717054746188650719190252947962382263370248492436, 61853686718497261058680850659616011446957204618654118406278830942180512736941359344543283289492613393116390098506080898404296710852832191678286359278246274535535579398674349405, 75649280752288654468471057981803555467496869533748859173578652955515245725010876970306350101981139989733177129742475233975102296453431564382161147303380835850182046130354814969, 81202728053528056446308400184078888581046250924834466034677607573213489075252616262383234209280421269377156300656573018119874827331325834244385007975801688762484748323167628645, 44005879687766456748099624953441994364257220284817414512557624670401059348829923006707660791112138653100135378320422689436018119912308312851951109314680559275709951000971476164, 102925414113730367870783997672594295950753958588940133394795058013558607403211587610191976879181537177711164616708394818854264875256639963958610630917692376353257621613700463715, 12315073526209194284224514834468270412063125894271096148875571783129048543956175994909299156100936190873479506385300817137508910053861858917175573042441318754141334693867256509, 47464625384741415659932421064968542431913323000912351677419001250051907035024499441485519947677845774612863301352366514733847372915724907829268390470237308534051974111822972781, 103004967124614972589230888089564441365400286908430501850126271942770138147028425342144935140472241460267487010538600368123046406763608277426664124610500245428583682176603117666, 109266263517817209064495223565570613438030066083724749794535103492900048869285417399499128078341890452994634213638443199667526867645850765396216987341221456588280961919988711656, 83131979901282992703232577253456882349288846201368793791242542614929215665256110119114883523294453060724596471940533872142176461137127179178543043517827036201199950215744876740, 23243272098429627330720215949907378118796437444783491284524113747820199954900959916786739987650794803868001287613003003590927183064524735396931405739050391610819710237665856752, 108483507939199331077040666327552138044879665595760381414283015901103917011544613342580264682767609867723429842092476433247494862393460881811597140268365409968020478887362447270, 18663530179704561991239408881482369956449930295027192637205767231627385336755398444231660096090153378343695765777278161236251762183625594304346430446828241811236153775036608963, 60504552174105465144157294667504118112880176992339979578404134254153546424357648531341163708667597199533416202923542935648814814763488910626740302773172162892202858083379801845, 105015522787014007746085686607912060832359813306577047877702282794711842507713562619379859553843039185066448331402718719240732920585496365553101497973506068340248742030592689748, 109085524587598779814943040178544457410989831798851314650197334742114496081029912322740292160484286289575801516514183785202123731618009444925867242261039381330242665752567031395, 59045641307203369897701598516952150265587900629208654091397256198683232200337551853099496630973953842405422544165264582962957227768448560130697336351937689495276461846031971882, 50896215335089051542486857776242020308004854526657014945653390391442222436877290159730204571970596967056166428135292753079625947102535556203328859432662453456850531659846033422, 109948246256350165148712294113989938295442470365427101318325768879166171480703505177937021133770864201261337698070290981154823077460924202343863538322176312966099381957061736923, 52180733792728711664630235176183543420905536745588842564191249562684487137616657931249214953773475383051242595166879685649859890076305682005952426502017087948832085865960825357, 1381522428658534772588434808081024296525779907851154030911900389853748076999989843324590528100095212914562624851002851074925403168841441681101935290736013861540994268359051271, 27618203436581912165441868784233297202577555326163056244273565542987744230643024750989805644967712225297571280934193339267491622799512895955879186474686921305974226170700233551, 28582694243864485668028162747109967089518545412142676724795505162103192650609517198084902457363928203555094485846496891456990940042816603529363659537547127242957354735986828177, 5616568218770431756771695119215862320155206209154252026179938562185946294074302124102110626942638915389517065692014345654712874607363183901148442664712422923167993700687105721, 113897016728619982108746999204194047995976285356699655532530115484901804310456816200515036850086336564936584495066078723594039569139240613498567446157057612292609644934950551545, 5893850071295152516015557589108312478192634607779802078145172221186080242925491371397461901007535170366466100148989518907977419837652268002046732420821753550519493407466331071, 18629967065692817440007858735121603840130501765922079037874129791345862568724103083090166052606454062679798093658362926742236266195696969954237899436136385792594836848456839491, 42779538542971728796873567328132723743104953113753565503543808294018946828350429126398307719316923208018980397260139191834790764122690078321289419574993768918034123053352156305, 33548358334677454549617722824764416876126783312736428062322028775660634830651747843626193723217058108884790894894057095888147887768712236630706451014635063775079352581873219846, 46261388718608766210300100531855295277734865838540029413687722587837873122130536368518810031410556888760700831311308852189595914969997456423412516593851596780435044583437209264, 9419728058690036827614313038275246697870609647841580478951086850988195354486986834810805670467754862193662013600835357865667115064595264956801156622882573075325706146726939449, 30731741447263523563524943096085275164767913494528055735315512848276872776586971300162555513407916572775224673880216861907699647004277567797378789213610913082535677725924648633, 15668272940367101310678501061884651979268389149626538873136844312715710879599273671396966921624718313500477960772783567657965335926077192581885757343839333935029285307263033876, 68141697494026225249019140449903170309299401064854083308995634553624994098837883414104902327014854873614715663310468035983608540604331575407286976123825856370508821062821193130, 33810010395628384725411577179609757940767036684618007624151174374296576910537072085484012354247413140633867025876945722875327439977923680651671481874803076883493302616289621806, 91333393837717904311263483739292950228160371804140459352505753791086117223046681371251456006468093052105828883568335645183594141630614988575283757998929183794723057133105341455, 82093441372613555316755635548838349944728759499974064850343459886366285173945465475900181805537988859307070549908292979055538469603694169209075155747913534142383469752840181679, 83414412514408227625049369547541134891163068944964581961071409767605707591547208165044983082986807765088052010657970901543158434534264513483007381638168422956059907504610751108, 118778147053201823936479526532230670895310271963133636113813235426406267517494334043167865119415708327859811133993477336687640337963994163605741620323382064971717650672455486343, 57592584183268260347208748263268539351933803238701014232495360264240642723530314948735526240287045033448475081724157456484733143724034514137897615674828861805230157173425976111, 9693376148934271235819042377904134554444329972008197497917529010176747069072761230694838856906358575380089020520496062433704437375446929461626692201901844779550974026433666389, 13897990525650063054151240243172434945699196535804854228107486141127128785763593102312880431923317880662779640183545739984967972594663829320102200154019417705626407551387452270, 35074022756445854480147459177611560273479941179207434678281810975260254677353287864230486193064260945737593694295119596351114146287175657277142796882963702031248698250940505209, 88199077920833151952906815139639597648780923786952384203380493848569433193992833972696226877835197968268543335803090857677930337336263323590235028963187206638236395080543459044, 29868537652474524430182429014511334436456283778878167075576377522288108403061203283703323425980285433587165765434330425506045670573324754874090562412121733239099721050271570597, 10709617795491624106578306335002593758384481314533928762402377579419083699413503804347105610403935256372387181950954108597906512535001006793860284675183713931375455917261962168, 117212437795947327622897276177906831396362450281519371533529291475292840129325686176931334099966616106390040796281441637656129684694760685374170474401120505795823436612311854899, 66340058238049555693155735474482579710225050607606556750100848048934585084647930537207593958357661024234936183387826287526712409484159773450219370215159478524530743922472749652, 116449492427837416100437140469791088082446170297935135211420537230594513793861545077796872958549112610978434079512374256962684660157429103528902610507421958063966785388280076716, 37753203335928249792561703055630894935720952624252399632256059654844143082886758492704165669848488983071649958290139132193656211198127498344061238283321593345451966192796451195, 47214392132120657754829667203147065955222671937799210483694273974856965566027205773824036779533868998303721344656074770335880664073045820723145936750540687534106207053457324039, 110122330554348344861983774438343191136453359139526454193473759691662367311527265555377893158011412437488341514897615060744996023771357273496376799676622010709131888542673281634, 35292027454118379675646997854043940756576448186370716680512503125053674669382537258790923404856378227098365678811249604184546526205846255363071045530198685509923283501494863062, 114307660857073638615581496615968281939289987904830515617268530958481645551737633453468602058627954812737357174885124901950758122817024930926396709586904250430939092371293144738, 69201048831034080300972962986470088432635326540986197849729326979665126134317455941667033444620123736106731048048504156937836006216403373356886355248090895555137423320770608431, 50695259243871343162044105415242237345971380931583935984981820267536258186029125262948898677853618539911152545273427854203035037925613532103724366451676586608793846260951093901, 122293589461403292802027630517796615027867487756377855802137555841817056903997258811831480398260920954438514454182280777537388454260183778174225460180535869478629708026562791120, 115467863137686537718708383307492610074105823480538226573139941294800087340552319835394819935357924682669559743109890811549325281375018901500696235038285468692969919075861087841, 49747042832073181796131173464925293486315973194324689987712376010385782581718669864668200223320746129222261287695541345941063675349305776102714222788551800536543620971445121877, 119222302945959048498114259700288955350744255735038835717579488210610124610816138433536699433710293594597108961438908513773869827937045559715888565735022104314536135052922761547, 45245886174850058525667438944850532715486089343547982018639341615162588750551256175827225303876329139650588065666708184261393788834757648605824691285089644330925728193988468476, 98094308009633399305330160873268988130572410515565374270905203232830365943634228929879410212772466392366028769464244852502906466536005346344641320639812103628734103778791102804, 113488010137593681319240896524579903913421827799146742742979677483805473931197217154315914785216928698344183686217673035388946158587020549483767340714331035366662336012243721274, 65551997521746176314940849046427632306602237383554905146914529350590757699640726150910247065226087811614817130377314040647843013587634219359170343583528078067822434665412062024, 110887869938319824470142658950097610337135543534766468356849399553666123249067922068260729210308539182899153542722067994397559635447390206096623177952864421095406868285876764393, 105377925958700958008623291052069727387124944507701811478265528221365366222936618538356743198625394659364573603751623762118578093394951260790225251986233140202513403079759205540, 122260594754375658109667789683540132667341462580223270299439844188431390902421928022311853243491922752557175427903123235535361250838489072325579749553055471248733442937025167637, 39972634670792764559383498574810749475524554135894419895675070925553082375083772593570072836114049468789637793229896562377118377731481353618068839227017135078017210553373518826, 50586557638241656907548440787976455707316946308742191079618080546453650203374672009214892378040249515265243454872701292097349027790827126942993902411398375435833940557857836080, 113948599746379990686188540848420424087994802754021416045773137146583955291895131988302750248423670082786309209109984527016056089482658934759309733788934459042677514233289108032, 8119027650318631365421216647007176608093517614563364482231300275769212150347802430616031496257480110919668397382802417606348247435265137089267944436494399538564629289966140030, 72708497292267557870516766936146315648825184078134514070038149914768741837907893711627575937726322843495732597984274999304557339166922664169056378941618274078640861606556040594, 44934880002759609566392002946887272506949084660230479563497417168379858287676212783635675879326823642221009624976749128947903721792461506876813364436180966087353947830635021663, 12176090242424470150923451515502012849254753734023430570062048073745416625227004742365345109593242849462160076863815833319008888452707645745820462832805381902763712811417231430, 46994964176793571165957787437978719540258078159691212723641772354600178602271818801782451077409367486869732489257813391757399433703813894161339478968885633329564988738457874893, 90249663787138178562665964051935879822958345875426518964700524984483237850163810993683224634271073734568672105737183543455898905376805640729443993404924057564013717836237262650, 59357595794352176884412170947577939197135732387249198359125531205008191055204574682125492515528391601488843748912112155204794507446741386692342527734631939410758000922843477918, 105322624292171914266606738225105860827551249598977255234720928410898747240193757514591230635798201773235001143207227753140855400382779660644084923460943859248595667573947024497, 67997007214637989104119745471787960672160875735629661348635011748821915339716239207210751255540717216961608005691483454178683786104647115424612514112589877926947383161712092693, 7943828261077192972388910138908693618575148059681835957262041506500892084638370291606549598110243659557454031013409948295371892433332986523006853936535011096286587417016404562, 872689491123598067047862287522089646756954388412482190413860980168082429498309349634722364427773724858730927904261624525842836265928817086225444936162949043334740098715167347, 18528093342345799163203567635108543907927800093503265682997343785797996383208503808669434631954770594551079242604764776474819602003268461317099614245538593495654160114792151597, 95648468849075018682857561742558912123340019646128592294061148842252538247498393939808017151731708197902769842495027839293712677431104081320377443366585035474769889006917024127, 79077470878136374483176859322429390392609063387864449462647675458684113657120741160622878065585774874308299486443144527261742655605831013684330509052291242885020957753954940113, 21562651976990895898660480865268299943050539212144840802195238276090236896813444046492649687583545025611464672912231778979762649763533486144840532876046949713810914193628115965, 28507256278267660784968791396715258043359301381195432253751294783558192411197678814753593736953159446942218048878260471370409178549230826252440884551772275799987708738433668573, 75572046725183508185658692321152808340733951306496837546621776151358597236758972393045372424513610243661966853474175614629934444579187363680596080896717357971387753814255537384, 122177603484065923526153013812365439969583539160520111265475056903462292195643901195307983014300088179030779967413280892667374095811558026596084080949141365717630458400242238331, 5863209273537278676445533446334217743722349761079279228400617225456075569999100586333596940273035211743693542970687191288335862799137561869117034933633358871862269724582916580, 89462055817452460674121005780566920816112326137668152790805394756837612513658044752671626199679411608359270438260368440305475610294954797387177040121821808267987537676641430196, 36746063222510639276831565543661727167436218087590058511979763701516290815600409814927818070654010090591138500796807308442942876621227793102568309126727984041737559236442284104, 47362697942349260903322353854795951482057090938158416291043194763633644693201873652600206267925052651268131350841792279508849521039576993522893894628833487186186949808495040698, 3002535209703386209828737989014157969784945983164148484261335272754364242239909112962951710090643495413738742709726151679044567453047959146297969669423535177827471703183012139, 68509152145759056033383679150527621997226503366700956263631381115211234991378189661745194656096046319588475352164465611593089294218024646984142986899916563422657601783774314796, 99793959435453348731107169523140753354889067572098399005157587298814608527117961988070965522708895925300674752453659843988396101950294330513275173515502623231497562148537954407, 33873729401975703983889151037013080154792226223113251628085700891454740920423406449693454374428031347021257264097182763286318158740467641777243669608771426006036191061984433587, 69478872669193306696375756496899752386701016282560364043506905498511148379862667497876882318644467921826954166197326681921571552393368261217773624513727611112536926846352109959, 35621882905241619226935157119256883767297430008633648666687408881779100884745948943409649842207027008546617732853094198740770532887881211992427692479920525964846929131181986353, 71138433204298496803240058153208590730759613974909191303244921798176173584934499839939403525140894718172757405450856957564655858221202148251350459461726368590607024001465621596, 119143804356371339965575342465111801667744606337401838748062424891924975337683244624288425408290099602179041602230104292993221132525866639429746402431218968163475330069685400129, 34019329566932758434320007990552186300236049006845035833667841834225947617672434402925675042331981538084755202358621211909679166672351261385771105607647082086379419165112314253, 87676211608883413742632554760979090527480170424423307169738440252482037873687618698142677266015097704002878437355826112518715874074428667271067415766893050614256752676733717411, 104772855676121897052506110182037434025468116364914243371803079212280803819523682901124626795244342744209852801544109105568615908362914965238067780733431956484977957631741262776, 78296831356643833458457891397988510008604479601345153751696527515578846200255247104772048245191078453874607904715211224127653045436184257078802663926817050758781602300770928568, 17054270264334485625489792801160696701790798555020213494362217671491610019016676112713521011100833736991316679297226066926224664023251851732842895536588643174514581681521743686, 120372193501037803119988633063771020347699762995487573734116565761334835394335667772893382471448692220651118881247102206913929256436692573223658415520091775683370695371797015386, 83293029843491587423728604067605479450897812219931487166918795251746964137240565851818125331668100468873014825336581885103119171094726214372700754462657589985750568758174697616, 42301772066942033733569927973345502715916717262122618952978842618928667225198775367471113602723113808048588663818720793209088904370457095206480004322131866227225836685413058772, 112526041423434067937165601098506210350296011753951159664169091852733724359089567154236441326139939508628179797699420942653142408417854571741323338565235074718152181934177700047, 16727810655793844600432455171905711310774035911611381360469222720459942597205181784203208011543736036480171554541806620295359336500627594184013320019145282204979234213047040641, 18331039802628912829671106679551413253611093384201736202188415261678277477986467933601730351036261238165568388697987874389776840911521926348909384361274742956480490251353942541, 23940294491896382978723076922836027171383959409703198370740497533301696410455987296976759018131753831875063899377939487685268612565199618461859573207894742420715973780019787881, 71968301472926282644079971700629999509709952383231219598957087877757431996253293731408313954473203221305491287066454413112898711110057098387617627593842153224493357952794335201, 9879969964377229303464318746838764166146402009196611093183211431037708321625858200988430746309641113696431912378099610059706410974598624930560549639133809767894498810228814799, 73592694677605058273762162760885157175938689976735041696082741645481320472262747358725224597197558332220868289959011326011263883066205147690069615000437549436565416893099272737, 185287979886035012489594557073920361412449191023637249831765820298642812652448630433349160621977091998574760669912490202379472194179845513389030941399966977182030962010473339, 99599269003834895544099106700293021876709990885724941333873138965375282514976187812288733465253302323390234916986607931775867981204261725213234195330949484974706121728200066166, 32224505049280846377163272692319536178272705620082438590849475461591936723403983373309041996854147813550751963070019516008064418113945081673120095383609786013904582113210056288, 89707543368862696167704038208833254639344575113263781734315156522361049222600002352175964247597543834896352011310478578936280428407106073107676839055903814971836679758821689388, 102916823632456483520400318322636863342553098033513929179944307158859756098929653551534421891411821548486525387980077030020876685484429665550507600703308451150782843341295853625], [6747987503895120938086078525906759234199079120702480133955773554217843148898047196821577311727329457893713489323325689387274211406488729018339433610424134699355945609032159631, 36854626005475210918241921378617284594287405240065778831848952503443065208356122028272140644971924589211213115460117884566121070625878204677495022159276896801433434365653799639, 116705679166348801531519084163374363900107194501732724779193835494794661772004190963913808270443877641873672517023570209029887225464902629812685856723124940003119765932005409554, 82791873291030124832792215921553117176206701854636370798685916817191426052455730879984526908256078034144436282784047260555786112175933136790088594959080754083689255147921068284, 15241220807196726263774683485808702557697816179364379615052381552042946124479272299432952937055495083636538170147290944470086562586055138263491192109031329865018142176845499802, 83933047413267417371543932524335397153376255482082614955827378830373175005963943142121968412826631351370898770680209912840743228343904042698424734544700311273350110514329374474, 103369187253635056576550870204491599712905928345800905093537905421121796291574574804215001963559613637424004089395131089211702700239203937383769131468149751646527720837468162903, 118653668679239062107172166127517342473738815091045462778538419417229114430964688437661058601099835468317837754037163587265588803860691918068227377644597095911110419518103099721, 71773105461000013001923846582824122575164474706716363321896724467458120925235379997785596784742065416017641789343169927584817817618274099323076948088940799072843213075193772616, 21638935811770478757576713132484758320405842283360010727852790452852623286676609695094363147961331184440035358279975281444477055597724564597247352638066261822189893116601782337, 3444718654430062947272794229672964103635616056401508429785483548918130993509731874781581890008433065145494141141946525479226459594350799103210351587022990884532683698645244821, 75831285843353529825517677667803134921031452711839894366150452561924629630295098620804084799975955121080050586971307731645929346209456555483464449223156870510345164545245479140, 101326172467417275254533017098633948861840020939550645913786522828433923861863294567970658519462117478994997549959100840196273285887079761525419483313743078584086228185734046162, 114303167833613014837354847350195360795118203259008284380939683104441527490204593499342604015697010746188919508984481081067837470304488882700610899949452477311176965696359320755, 38024361392008898552857463743735951380645069284314454741657495313096434992648351548309684753343965984434898877367585271961896034184742290970693560260658092246863110008833855539, 102712749094357580260038043249975831245474439694569099290746632514341700347158334072551748528832101465197446066261192754632676308814149891757192873777180522471413406132842815351, 77324555988172093391368169953311083011422401021153629996101047625805287062730916824229707135979034808727192695837795273780842837268012861854030480739876243663865613053689707822, 107052458432963403980383717704499644076891424173042616201358299414131269859322102382596284990213696867080023886470543757068625581223004268939789120778759378902173447919493162814, 52314580434809703450545427205892414662460375160091140619813217074223451978194346946135103334283813379884007549380755725753479193567334661837104014908608884480830089524975488571, 27205846480152917740225220089284254571017790613480912981615896980004732985182490266524787423570898006597317865353275003909938575845098595672785247763490310665347125771163920042, 107578679392588198224064132638040736992988436548937472643390476148297756562614248568463791388767722242853370066590255679887540764068434236294286888978997908413061885528468885088, 78295474170215180536827406840079155599421883228324360193131422886479661224474290401431489609321583523985673439417828151276381080092831266162661646895042719089354677777518001540, 86278384011861386183260097752685273422489677247821441442507022305515484412275146091793073709276576426097781374893917932701976590715988792172982671741466536897200900003521011931, 21732741924441884347698219358086574778797107244697906491019571770597739171692824932208393928699652315025626315507744474841553108907900358097982438926934099014742574153827398950, 89435257340692184113688847758804998389713257291789448281734889095446194750694036112432352589841913452060609424092710707684270734081675000450973702305609373747111570540877031511, 47058194935560450006507407696989620279335562256385852400526192436164385616667426601150074169216170959596900421572587046004829591073908229788274691389223180989226729610657104102, 123955351637673039453657089670902579049593093247942443788237755970786876804368649551445985057562831008236171224644090118162763746264492008266917375968528764967880128548379299375, 3487993072492827389669235045784290665586885811858048623255338171527611280456082421686534627897748905898783456401354093300091503725502078854394350378086851971338041244252283762, 35396239573872858192529392313150269825844269583375200049495934718440147511383408347195607608198176769824272744977550085977567503185723195265523702156389296402616206588926137421, 122385169008591993350625499286555639960795198409168729904699789549075222571120992526767253092887019648981377646447616072238983030020838016108051562147083489536262038528184137233, 121313633999380884324976109547460249376841032671388443828203980585201135004254262420541316978013071607467902140830897393629468212553567766773074533217790033022380732690152051720, 65817163732587574579960742400274850870182077868284226976430600744921145195217228809366474204412539731758749801126838805037040229986457059799026330306385294028677993422304825549, 27879774828875529573354790364436542235845282165556745021984561886548509366365199532371914878513970154790745477934320604300298983131606430382881867485548321175187762922890415273, 59594683467922104617931062814141013203424318996453196363385349559271193280151054537887522362153700319999574851578031840433792762780346859270804237796364757251618434702359830866, 79471134664421318619110750178106508160855909227329938974673910152068993027458704526607007977219689856538562481496893385165810165941284278216239949368645328548243676913894546978, 121462759204954369184611771319504793595169375230352793780131045603950136477277384945135364874347842239290209199363989592880957627955549196072136900078300555923228128543201188991, 91324731248344634632578732998801058863044257352193420750666111200810586092917334927239696094977314586650639778175888104237041743984244297610165831320800766646268725191717506090, 23226785863733423582651437260199595549355980951695031890712572877096286482559797674626901060133617978527652598266188234074499946440441865355361249726467877102550515066386436214, 97437249478834203903897469511450699799179811332474339211520254809742858303888794938808265474762438999907070954625873654662405052279683877084690466571196646524135872833758501642, 27851167858878446935295598550784116569738390162514421396681121362221355308037846483639269441930269512490408982793674458031598982730826223199305264793392964487556292916503126388, 110052719501783105781386382202510367417357662362726291807400471511943826379883463738988589828312436865861365856756682088657066153875664060471970633192010274820761098216297293521, 90403126823906253539343169319342403753967763956605431123617183628540436521324034157769113969742081207016323957176639784601820501289581961042386001421528036694550014365800618261, 55897313068961114580635552669538956417650447808965184915402019875328044191890633418650989336987562665329381292590747231021342189792807748717249913516226698486669181072300746768, 60117230528315486768724733852690457223434781144243446382996912394794842425304894199790673842420650866148683691781980030238152012135061682192439837602024889664854624944566649144, 67434111193584531135758750929745302983551032643412394572249820570720821872060886268574512489001049470900290282188562658837754162967101018550949427003715026154587880801394725922, 125067006074935778354335176375685425257307607068066316734481376653443126707783627353447051389003029688620507088544081909072444133852689307640251413761191755818730667559320927570, 70098539360265863026193906353626360122672862238680518750913052777181134504666991381198615659965195058030195748566773248787302444960492559332574866216628439341996258243146253557, 89922219021642889721723603150259909508426957962968944490933073374787146887547109199999339036881538478132605309769617466306936763767569943265730772870661004082641689848196467240, 55041115222025193855440792958217127660127348762799784220220369275740722237851368025148573469187188341392548166369192701606566777852928172101321842308535353222415216261193913200, 112400226831552184652109739957020179322197463991413666728663200055230498536825388844664195324680204455966211051944744001775462662126579304892823517715954446609363595692564385587, 86023707048375917960053520688633427479557583545545196647436122689629915330983827748764105287696358691794862926930785094244046755034953923139271675285912698529806564435545871657, 67989596125662536441957602585357370885812056183266507348910421971837195439429578748863616786880163600123274003806662918854441768123266883999091769241816682137331046860729372895, 8350434672175130718386923588915327196737826491590523611501603853674165236267359355341420916300813350491937850190753742502825547910776535389990421799130366408267800020269934301, 112116881962143576877927060742470615455559864163430522833281294542024739219786669605453718582932135960688663003524433406006582379290079454570743656935917683200253137611703413559, 20860872127024179712574680590592065882697348190969762628091895667117413872776438822785063128725462615019784833308213114818370742446851731957492123666961945996353461547339598091, 108794964546343236506489898748987395901350671287237886456472012230427605177003784305925025688450776807102119485622652464499664284915783750370699724904213047234089738260568832477, 101733149501313533780505012401046020002780450814312304040576238487616979002946903543805577681258628859347416467732596244410930273114520915689802524728714136033372104429681021420, 5016958476268836110305827630276593226412867247374096944938696271784874057485076739367437672679372617595650522216962571011285076507024385922081989883757425777566966829452354610, 92972382601118612006706027920754887455604637339352902450039830349794590782298513991889166202979795625618429020629200102935299952396602773669214760126479491995910741295298635921, 40980922872527525546180675088408660914006467656499948482072177589072461792601396100954146347517981456205643151712986741169346092768826510794540975434823666457569938180635782414, 115892272174687850426306865017845561440899402216310976447414044665519704951683204216762991159142779936142709828477868449459433351005483224001431431138380637835953102208086277391, 22510899908733036013527931521687465878646710760590053168007362138453805163244253289094256928686427310332137317307331678693071652957107283090630967684603334688589513773441362199, 14788260214875003000532141517824389275201331915142888847124114534253951098034339646322167559340399877427732630278483728155665144677231978873251332736040539215507147740721972111, 52787104478176053692177388146040865814206009037490207740512299195086204075431007226036632639931732792686980268116961821756869435026554912094432358759457146910149989888913416751, 115183399113378282780739476201075914687748636599813568337279729565827491846069246199386461647106890335904782763815449696898695184468483031198982519396242215769962477040216985626, 118856575009323209070384097146614666410272306156197871342857312577747880707736597558772620642600020376804421689018947593066550247443845891000751557922686969055056811694735577464, 85188833256282763484820776779845035208098427451437016604514172944119779967963575004317435549911644892816359035042232255058257818689897625526803378578952547610991389310836123448, 36486099622489044201119867860858743531390538091438591272151541550491656601744463336805928523620648152728002634766550763275698825435473392400174273650524807500683506339052462616, 27243747035895913221959508681836431476395113825424623825525673869602953416479293314802751440813412287784451619952539647811452549854739060263586963477570126730988329352178121222, 63006048761148985200878380322986415924816157333490619116398668241191965931572689310098741737539266011345936858871040777119551121939694010366621708440112527011160601775631237352, 50946839023378389233034476042097408841031206665526592405830117007032915203255746135842845440172889265098138148178343876903306727861344967196640328285796786660780963898131994877, 86554590602071932653715033985177454822829323652869201263772457844135653298157245566311452091924492797366984004672390121189963952527239677156436414420983322938150829294889608108, 1106260838845156332046082356418963055682144119359255146923443615229878410353741053285752715666230691322867502240255983198753753262089228445855089022661495340296340540207329362, 28703200290013801315215178026054730686963520065716962075673300609738851207259925788905947576443676198641194616867425363636325680906282182724337482039801732435938272319377462350, 43699336652728913747992986803496227407616979542649570905450720304559602299689035112068128541542662179387155761549299533054330736913876432314654321901799297533457211416348226698, 15712142027525483282917775906734019604485648957657995796582390641778475695666945053238491617434638837480376229517049973798995805802043014974757070788250181089890714572836202642, 53989541683634538452293467744181209218367892362972055846827092627735768605034780163669641612214692956335552578581391812374984117013501602413708948667324890033149983269715386828, 40508257398472393033530817845780045882127850236672608224413235749328361904061120119706407166871693056393376155640231197709156542532880513603353619493974258890942165163109301568, 13761101831480906121646922603247139272219795777424686452334415256360160156210315249658061383012880987116631453307242147197709616887992036609070378043485252394263812417714919155, 54131031292871349410962526908536416261299330593305002834447202844353574164170557076886959771090802360816374895711216150324257186465845304114917454636281975396441257200934163909, 82220884332247638602771036642975558703255973793954669251521382755102023054938702889038964527703144346180400823154745510057772946291056095700628541498238188380166679533058274039, 51380613173580547716147745291730294687741415157760894950321436637156903208750752350381555094124315669148119171309368027614178996639471266057954048185055837012630757034611236926, 103526802100173372726340604670953106269805023611829982660543018536868231806655484428003107638596410878326751844091994262909222994113035986228903609758418083553616404065400894162, 69576929087172436957072466854385010009442166214098665085313240232169949660252972745175271648994107758590869318292528554329373255780170437289463997739266123036067044377285076895, 94545277599917011565727041458241207705009350313120521237145600486184733671070583145298054070216958533964939848741257575355707559007520458441417467324594346323675183055200276867, 30038359807521714590864408434535287839267966068042427499108564998795579540828454111578819450612921802270221114576493097440988241799969627277303299880286287302782252121767241773, 71752852599938468922018404615229055874081113023435660363397023004673760401532686748690845620525055442520239444496530726014807970388580132720991491457110384540935810619733533555, 60610420096524564872418338462034579556727117158336024738472052171069160280125604106504587562823547057099458377353107533854174373481742040893824749366482685302270321197974070424, 38776950665117375067387441713770304320178013028688054416072371560639641975531854379995769850559994547568072914234548531765195329110828814247193167055865243423043585227103011513, 53040446941491916959516968126096071655944888330503348856206758077907542794024747552296974259616539566007009533437507676296546350617192178635275406984495148627933649707462229348, 27889456009423202266806613591017530252494266952989190893769208614483459610714035652456622183044511909578957621065116599408572883865493149676049172958111094000731870422097008974, 9876649021341881172735749591100428805702947725791621929740713064149076580385304641933808530417573246063146584773397222532095340366173556093706168316347522452313520493771340657, 26706484781146683828746802686553061899934962867987295401942925034164636714793852021612483025187833655059267883442167419584609809397539713735424892945462160803217899901677824440, 90224577188967116813186078836681601322647360716285895959210006885287056129148719372245861769929592167464706411681319534720884051844063832101123248429315172600599792778314300608, 13214248893108008031883409206776366222365674737902607864569691430364063629527532663672517592805181534258283066603510795092792310859185700700190401828403572540977032021687095881, 3922755721648293294902416799466318910628353537462220290792388218236846512719206376230862171884029856711782441339986178210107632914119377765782424701508204001015763414144757665, 120060270332196538807613215454748688585617525224640503661529075040855755949062603443048473623870959154967289719462674126014950451045668111352345868344890883696295583086001039340, 13150286878897791908897431217996930786934627149328238310146398998076905933211354249611975096910087868337150540402205034810540024801573548408111545157367017014160575481029834415, 85369557439273691391727299032058995950419637436542501244446688958666946242064019949472720984969894168646906714103720660891171193716322803717589375269242780541752410601783133156, 67838160567243795396135033485796847792754868675610847607419788619486810516856557116128746958071652855471616696058865586499518427241662254856845976932431289286821954736434278501, 30557620574553760024806835255310819141984803243344120032548757822157547147649065242092775408420496700985665163744798935429725404308912702491736062060434059176440611630201427295, 108929663042208595116149900706311314777452722589877633350898239184346212929420462647960945327158053806300107814903291294064478029051831900148725411959964434909017908292677190611, 42091900514465504641600333621137573435582773277853448222299895231053881337541817309777859897523340538227486546952112067757880857069134385562976440359342290150457369586608373932, 111514743069860852042248869562869041233935598505086953929958474389313472959097752891061734012702128662826484765983900708125186585570024748355960825135060182735940382202706007465, 57460511325794434123760770487101501558034587406634161082512351706475922454302490528458926066154991011413899233722481659394579103531513005637615757400938620561611612745520792487, 17226226319455026802475114398324259155672526545854299514904603096009726036598513480753009199547821280129647850432991823307227636016800174874978349917233600078448599899138090501, 40698250007346261668998639886898658031152689172183957028426173792668595065182135406354863967476362757635104968136597015071538031910119000652693610551211369982115575256868563965, 60378044757691366378392605783029914146167816357196991552165469494859444802796218090507792091105903836164504096724638043771521017805189109733319005227036749309717546218522900332, 56184969022008907032821373953501767423808762243374640593465307970744175073726603880641494503431182558068408351718961354453679562165210876394392501525936144342623273088540776021, 92994075871437462958607870416653227326932430857764694346000352569330608252118483557400100463988393510948898525405719023258469307734557835013306402060467457544608428364905832795, 45296738335800686411564272504408535452780561307789998114412259060155915218523110111651866968826581718393162872510194121217810813064621983153415213517928139946663616370621721542, 64372470446759436939738806817524120433723124594978340169418022865375561059500187603638828649184406014754057180498127523211815642772299701705993013094806078343374728676083779597, 76872116464954455575259025868041350570187207371710043299328406245848084013480899576317481367997185701241157089892264115064188328801953780940949905845846579678531426666575356294, 69619979833055470418040359141332880239512489872266030307639309002349458466969054390758275513540530621840381871586626828442001460651545107558369169781170425643504136617522562371, 68747450397177078687720247106678219814074109753403309154102776465805963391202339209296421805791307658076394440843848875056701688475517956327931915189158760122759415355019702928, 28713241302876009432500712502675822709483742023056232483042394273609017545549851602656360033541134901239279461791537954460122250535749198715067051800245281496690381051683665448, 98464399708029815589798054998461890810443774152557877617876034457354947116639320661409505360475168023687818073893480121706474836886256709086170641880504063474409706034523441998, 6489458462331106800591746270722299960808338889185545933689931956984168852785131711405808136876493741955655881751166504740928755211041337430907810656413113122233309814110212965, 112780896433207414652885546578980340439010058123068300584867506871910953085614310772559339133781520975359659142724138607233997509505594287935609089421908100864710449464147834501, 120089618711017158824991160887154237524384560463703576572775658247351286175422106380926467464676083894225641746683515990366399921847562444249887749866603195341045473969743128326, 120874038917223113997353238995361931377840426123229153411258262472793435126041668110497394119184099411542033377390585971464005850128051408018378193616157513804240832394137366147, 72870639408138014842564296753194789220918836382193313625689831847404560658356358115700676172602617582337756116823297122207009109979893370665651567251768740916646029083652777606, 69420954116943862350277549278080643637809249627339742847177753261201135729161519698298279008756965894618542458876702159782070843927205747776648919847071424690666652206334460333, 119523538249969950352780076152531780823788034482867855571127262074596861617149299039291792485912215275455574492524321832128572485018399721316101567161923859612382275441907925904, 2904755292357122081119994880058323685576410483475564463044482489947703702790915117221416325217138369667853366773117405345052396593160985297000665155553791523751447570459613123, 51182234357422355550515710159595558464815752906604491198383221130628974292489511282401625826180425840491065553260223575478745641682923295157763893596645407169100648353983835974, 15545101722021271371417680897960938176441234640606572300994133770022083468728628067046324623172716753307039910703927108658236804484999135066894432167819413392223836132093100924, 98345495299855996822142249347442172717375458791987142916116108631227641669155525827974174371076749136178051127734459755652696755509785828288422205799545187578100079891178280719, 11012706712491419949221872915787396885523802112507295559370874572058395362800470257508249886475259220300978809032970906742282399490936780195920233670766795745900810157244896551, 26890375988442818489809509625694572083115390708590186327065406200936578350426007501258964769277612868956007588526779563550496614886067499783040067029177236687096486347371302371, 8965135837919189366567113970417747765913633236675815329838186900831752115125281085319619455368296723540787433295798019035569836724403172826101956856355598803459785878918020335, 118554678630568357032114175484651374939723973422747386122116021177984501669422176197021766540975542194308549574462620325299406016559916794425249233586821348261679093280518185912, 123556921182734736954408988045371346561892820928932509398465156183779619901750628088213148509957609707657971069863160872643485155291750986679053157527190263923355013703406668039, 123785294393536409185149510671163187531790969990615648985356652257889960766135247929964637997071831801089462879980099693153077095434447219136733277626258873286157113621849218985, 17965474680205673707321141884667344773251262804785084689248970627854685908393013863280161956929116215565489012741670640943203602369681047216979520670895471069278543462747329977, 80240529334375721386561061323202213355999261298079018995113002674990883727669269654343370145188123683613091407022025288829401904065720573469456787687888743937551832117322156007, 41081105085423555160187551992046151959810551073645332181995977287845377228075503008238176798303702317108592715413123105394203297695537057133587614509120705267418158513960475584, 83930971350631247884214641012974970123715750790693179892048378580553867287149296878414078129336305886527059686672300055708213838998439533534185318451024428229413567398076015991, 103800510882664775702758941537400952739473501319766748761023285168386523800477499284285019785382653115846110274512199503533150318169366587545601576064153810414998087146797213034, 99410536535146988307885644330114601154613635184840788098424206908407200190976859331634904609316432514164083910660518678108099913617887718513659257980286856414977781242841791307, 90168765566471089512372742979711166154497052361076075806548478028103549429319155879099051672689475121250479102180407681809194231468814769008825296904572304164459479908995602594, 54895399780192468623389378133806062839829947033900462597683222301610877429924356021022255815545344710462741509301606840957604349659660354632631991569031715993607230091260480505, 53167444910069628663972843541216890367334771538375210204075016032266538409539596195866373303550429133812964181504909521452599481421426636682578215584304627356734102622531556579, 29395019873681816813851219572822303015376697018977528894206742852326595196686810945546203725934082918294243592369394481286015994702032830152886892060424240448691290154585447717, 37546394674536294976437316538082822005027780119116487715011313886772986594989623154656881873637011264361389563344224310868624842276797437031466807793358621228121142071569312893, 77333318647861615866819646214078865817084609483769140020921614723795511776194357701439312102176416494162552216388479776506240080215849610853631704906328873397627083173697062230, 28852931356901389102140213649143795115448470157260715530813594479244610502837064749719751000691183110963342268007175901757952933059332266578131357381282686729114179948532211260, 52941353066468878337713436189967388029690155288322101389289475982514464018042597500167126466305465445776007465982371930434687017340958008685056176319969224935072421374179367207, 23158681381553910771669059199355981957430219731625028357991492131276565756304012958558271631366506978369478357000220057508807295510344068235478697614338940765116577634909787740, 29212064240003300567892481875674384946634051480160218340204468776734127609958712121024586897862865891177045538156424121221414365128496120265915569415611084654428858868003918124], [89032952769860807772092225086299011011000769638214136062712125773944717038629554075600664930364186230799056538258650577643310065641497695070057251241546223097361697894061054824, 61958878705473072307597365991107420970027499872899135473027640329537707407319696246403234005424965879338309549143309372907713994505294448811547893511402931542505686653652893157, 9561955204515276793877560554560104068307607668496044968622940951828792557459274791104004962067943700349650380368588796527279612253224202418211081214292708644410665418610571845, 96646719870876437289261103329843370653183499889202546269957309746639587524342245601074620629862350213637528564223616965483035611967690758630453871113614149188266632885083401202, 91955867118367389318506351590739301482940309221985970900686627486295644111380086728388823822393287056527521089616417533457869438790789188084322895603852522633664974552309726888, 94591738798856392224524948701165723476637113189904384621848843616578047979544427512521672711082815297921132350467512751583904339511494024375676471404364424946841513599396415297, 43646941956587904008150701880121307090242589577143403790479730554368121598894552376900751073348315117674068639305122113007922789314758383302235856138003418336810704796124501098, 88661594639124214988410736609120519870315915315131716124485977647811821253646190058554659323837730871067175227609091614654800613831955423016249889731661016821908386939553188965, 37072452318379358396736694326256884590149308016418340775984833926176478010778931790482359802675913212715081866292328592968514570271867179930633071186872224002581093941706821456, 57335864833871826019665478717640196312678978171560081972995529197952208792633081977684534586403547245197499263561382106833556906526992107443666040001194454156438441117450710429, 58229816614293525300061651784722470193174881201005601158803980280968955761311760451163074885658230158195541463577519641907646917270131392832388844875064260399273128479539366248, 48990876836584287285677034622921470618694660424480706463684357176822504396771779463499298175986234101104269157568579437475238926672533622167019199814497482936186316585508028559, 86428634204831956716750147688562305979402406095955835115588098861455315973320375504370003419167133972269250839907599015724946981123666884789437750303708180105134240971719596090, 72529413830281346930147704554959551943568951898759592660377236141350821359566356129809941214899829244234393297557194729734022723201188839844123491394717474302243906934123706990, 34214306782630189102457026814454516604302741487726737364061368498379590044088224579060393762936387467583071346425090524108260814095689533414046028239632106880582637899219349433, 99543313426127955005241122781350101869152436764464996991615715666247853578425716234147215537767305325549089122658804235630078378701820342797644636635667016892573324721865178080, 126094087617546716109406450530525410040443060403221631788334988663530299928606437000664004355358816145854641160763019535856934309066679982487210351522989708511914278074617533867, 60938969815084896131611171413960407158276247882964366955992137145286549764786395525307298357103328981379658180050895137704935409334601198453317807879071534426496352297791594625, 47378931395063414974826878586860196418905489582048824930305910908265199894474225472528915174299055917104511377117344430853917105574733222121993642690902282311952769157725108252, 60747876366761799370496076150662081830716109685542054994301258243382173918348836971307156043976469753456817375971490715856643309821694899673971001662968707930283252212452908147, 99807437574885725705424134132844435031201439776656076442577048536797285155650844479966566987246951257971715982219791290622986164719479375188949526263564746670496880882213316504, 59370876423025216832666511611692779757714160065674492267915935733707615916418745220879745771822044942521449215382649021858881910956155944955940252735894352493925864462785505191, 74334890928673206598248732213123814035828996860918024963246706759079250891327143334421257500888388308927221445204084834892686237994322721742282869380157382093722209580393598955, 65315831266770634765679391814633219253437215802628826157650728470501826839779053432626418758796183650381755050924447111190832291741299547263000636776135544500633111177920592907, 27331457121574972665607365961078381608492499522570460280277904146908784095909111557715725761397543187664317112767398373428744901642370816851743395674536847816969750740411882818, 35205749797110216539950793180821350829871519474683872346333098096037101277308576261107180595875486563656191128145948774334926550285658565235161027371298711571141722528170968448, 107947494438451371597814026033297078724846188275478476220374458303206829024985311237136182698779556753632685816426713782965853842397482897727337285646614121825985804251536313643, 78093359470774945029587022049536697959170435960148011844802262570751769492584263352848044022611714739042343793381518575805674715015753404544032303499141132885441441507148706813, 93476772952557654355210453957793132470584272037176477634383957382268623986070223737076953031436059204224232738720725719349514527753137110176027794703649559220489001790500621261, 84648205338502361794653537983805033684679424973184066165467176586623648647427440087720382571966623261010140638420290259547781546555475398457727531663780290226848618637324199153, 84456485029899613723099846266879685068832545611379695083212603640027667112031739238135763519167094976473054070093074509178271385671653031088933307597768600523362131821025888727, 58502550827156201959551437593181251428351753209642192479404256135665576214790203306128536559796740509242599244957000394176318848304717743080699755698962107030626756199202377907, 1405040424206440414395374859149143884801677495990001723606350027442616735788856158920061376636721227590472997111425149714394445013094684997228032523233772118099331908213039683, 124367066045094453225095885159864806808627349830284810295138153833899206912710688888010069326618658015964396932464429843873080072503825665472015884497269437021211345666059061048, 785249218190406497366358564700962722532781725521946725865090324176176541295782479157617897908351730985645141384763610157454295801529343608066149740833393229015366121098225380, 64642397290150972580610133209723948039282287229042476042474945132076311712664590996755874980719779795377281745227682923673087463250633141788228784997137061163963864961595169649, 103689644352807699808370584325755102674899304407621509501373048999478324844133386588361320295733238839711513156174231638534437762762794890414118223586308409512147126672694477683, 70299049384689736854307771053452319385699898481923402271904754925841759957159122245258263761119255491741652029937931604481387873590366788489776169488048493859605577342017935849, 54596160901975083545279975733262159137812698391156825637952782090406628536602672754689412887772045416131971597612364252376139696214191372402842819363473330030901831699296546802, 117488619724475563174961889464680311420852135056097860127011758123738960414527093473144460269095562201373239266063873470701093560535278084471232333683882411448977515559297418261, 21265715250233571963695692309571321804479557644514043078473138991250655255507307348898797489976118149107224762088206082375949742466348199048595430763379433361795524756103508997, 33324974201299352012826661010715490832442327862001998069608526143974914985718886373746523464203191703095816457779394840303495165378947302021523950426406416684113196567300845983, 56061057278881709324458013151473634018523628242103388869317311915086663178899932358079510715206068082678979637739533708623983160592589230595362295084195392986387249010052433477, 80080509126060916133123813921226541778839936348380682033957017730634954034673726919500966399251233097353910013412751504747306886407155562990584905364117633222829492332243926491, 91997990133510162885525338890706259354442081454148905282474556882791730050311364701221167636710209373193126999479549140223521052643368707498956015388642638979587854284205433350, 62636380987971089879173071939723534458661036725705702461631468748728975311833220463570648363417716125280615697085342946211605397590871848851448204682281361959993186740352067387, 110883996539326050633312930006524622925486649199382912635197076062010909374757346439191412405629931050353010416070831506141477047946179482214860522255921731748839775274983379744, 107355451064275086355387381198754035468130395623892740795141427084578459247295625342426070979624946487197355301208660148884218782933504694107513766982432836874519525519980920670, 71191109321958499734441728043999848021863475978350006472421605431446198398780751988817852726676217161467915902414336756123344164034499807068313189391753914306606436155742429006, 102276335856926166811892569147980243996673803126182845671899229154213543487792315799112011441700330728185296388526896738622463675417638504111448149795893253685993402106729898415, 115171933930585788053675148938249931187726214103332231899120460123824772682515039954261322882766867381405005895579216103395703038838303002036517833716815994640034807404312088501, 35792238983956707301371338523063356128724576163636182501593170796126607955840569404916785558055955855257424417465296790397745144577448638327999391974394560489998769280600185265, 40507015013444142937974059270252184132141820846986006907447304675867398452444831686228070656859191099448133906138092922623283459879978765073427229498029520329987430785342028066, 60868685655362196335568393529905175174921664474800969995638661247368852570251081406332104806779920750355009256793277566993370256860694904571200159953514716245984027449919767599, 123539802786817976378911741830324462770878189448568103426178389024855589775871311687748236892605849554373388947750007746963191124801765516364819987332138139245363480467899630604, 94828482801100473828135282808266346909795134646748968288208205517730506389634552944243852957329519322174133891045781418487886677994233964356447051256736895295158852389844823531, 102113953435309914430744941822631303731461733269798663233011066174705296559682121631794287398924197251908484125531946890278669396557225610089207688138512855273349903380841604283, 118897287741669597417293331989449847042435533986777989365508514395802031621198555846700212342481166644916198919795598271170530249108330523191490962802116656380824584216013596071, 25838779140545462732241283263105234243792169778332938048460178757421285508403459834771590318404423767389162138062282075546328461678667751586575039806889915634164095241254957118, 90638855210624200546876156713137553776456375632300487149485911398175372779840463231500110257974981271205529435026625872362784742233281375459169164720122854372162654269503802521, 35667493629929900694641597182568927721404325070512634461561487405515090781263108541474652469251886984575558564434250241519761715654498785777134913494321314332497421409616369456, 85290270139935682886583600304188782514845342012504386114067108264029546333475770781473581428809803090793179630574372637010172301843485386579196508148090050566931614934519092612, 124711394406147966432198251894443788902056353680820708866649454170068439492900568366163277293673479651673252269736185786968640792715698222482263863782224099376375670245048178119, 62452100674151425878006362447358992895970584015215926625374200689952320946670683635173034879678662190522808040516053279663343993683302275612129329623843165017563264169356618803, 121442998574314342434636818302367027444714242107777160349663065363204629153523739109979607633980734577364870369737619881827984400425068094016692325565386634964042523544989206005, 112245912171541085088938406391947767667011747429601293705803992179581839211683578626376558744741449818609188353051949509652704370044801941122511791234879690844264072710694913852, 52277641535332995457808380479632264827969022030379657304129338678029983912323616820269534794306280384054512836884877540306252202733664302317065733159172884446520496122608949058, 80300326896679575800874789007821473369686043155182339147236048806855919381663124381487413371157023218974448018213158212394200276794503890211058002581025833406707255178671194195, 81307693736838975341676197653876296716860309320805819135854451690406297585539994764518169601656773863754346256410401035684023877262188967688168612249542626834026253273238205216, 71095131147123622249176205112074365528474022940392855379968087481475952135506830749415799670552511969001831852092849902458910827336460254300051628908041735918344131898594570759, 43305294979011341311990673683829914598460507292082783500928598343657809965523071421273974020951412847411210821488121223233633149070078927776402341863633287601587062200312403033, 6710161644584490530219672789576264929860576628149656853217965138040749158266467684873443210191295648127845912314482532896563785428056287959788999023758814170237770584251687714, 81660979159994508060918449101191221358420605257569438787078942314792115305454833076655302771758336091828221990795145417969231239763791625400137863323887071350625715121652785359, 68424326858983948961876001674584014028248520464904315230074585132090455897644141426137290444014496479328420040572992128835828663105854080407575902419867266341107051828070696825, 107419932173715991567844433929351418069538538031318151388541408455901879619645528390983152059183669004066222851168524465369165288963105500564493049432444138832321286921235861162, 57592174574554028459173785535422735059955927070393529655184349717727064224833971370400082605169616004266452791713947278451814798885584073099485160831305745499263957350326792914, 92413168674150819000024459246574969454173552525130877837831278996212216788594667070473263967492922151030841627163516077018803223244456347448759254591781308405269577120258248000, 47850262278723497579803320725917820949570290673712876520072803279954476523992135033708339721596410394864827020966514090621715914807871185448880314210086593148351038108160810535, 42492627683460588504318296751260078509042725694454917875530814352570440309049873843069439783345822013411844531780901201863599430548933122625074515910482781185161779161124434388, 81744675733114921346130362715602999082832439236367398626220438103048270327842415223622115723175487091126755967984578682471753206548093676878298703316424705133357171775748893716, 108350258139214527988687695444031956408394192093966854421563795681201867675895066224729331473917178969386465399058964659572998784346643754057571812909944688967366727804221442119, 36064066438082680854697240390944429847518118758589558683261518809710724178979116654682708870661303492211744186738711596092608302905405981015392132306808851789253009834297459587, 118878052747084887255646195394599613758848243023030461502195298618400091792310730753044221612412242742684477327105783123558793378963875505493501033918235179610283265263654416299, 10878182535246810848500259685901332303649402052647488103240766485468330428727590883773258366968755038438345838847721346238355468420125939743977731593147530802868349135846030012, 124302798162493151193285326428881389955173563236346365934098920354876470426835875750968072629564970774911086882328754964311303440640232948116285125358475791925722010808396392255, 82040697285078823859194215767851923024021369362165560983456577592972822564709256517337136908928010074520391077153270599837784318069359596511366769837403328298548592671550076847, 31395593211391673362614418187198202371598840357296865811765448474207793308302339561011199314780957839145962950564353009510933758090433820003403369175382686704923940013938282217, 10481668325138317824090007361194984366186402143405567180026031589804407593136687011200473392892739769224520018246583097797125475739197567327580747671424457720805445935097349196, 92868064070074896247445168182572798309956760324119180078968412394297405828446764175712270984411964439732279555775467943063875939987157259973812418836000949395228234621399140447, 27076429057750521369089416302172615894306610698510085622865310032320698420293605284379302649950288875726153524002496716942889145732584218811004489095159185876396198990096533923, 110962811677039569549356668779842784478413964880022922040061161322020143632173501734285747333677984554980719104516385046688770991328036498628954279940653840584299113890208215304, 114422428915907673037103956208641975501236803512552960747194136552080179375614092210974263373033326961115189245569825069394507968161497912679331291397675090947616877620356791510, 123237725229831040678602104668049395541489181765226681803579456869740337371135794129333595527077591423274463860664652640327702143419778533201421216917602617039169396894129227136, 12314066680580972355893817610336275405282075261292034667531155433205975041588911859580533501010330915419752277204599710831345143168394293965085074256125738709746109669656140312, 40766544152057036776405266587517151797949249377950791434383752962249569954948835447729711315219828566605261529203803899083465724703832628293119725054086286790479977724682792577, 106715932150811831020784154372539777586561884012842972901995425991829645508434028933505621017235631516122958352147594219189348056314420464150396001978061724494697660372863621224, 91629846288805746618517723901477506087245042700005931235806846126298853263291916080048161419609361199266130702750316264779922706979473462524650692192471479469182841016885977259, 13144573995960142026874832523467024348033917725376406976979217231293867412346745606698036021948390489014744882994091063777471417405751925055528769782187985719196631387261929674, 108466758662616618618112412027634283544153593630401637663021793236859196337614563281473602996953100054613813621410597134829470481055586347706663097149965712881628576815775573019, 121661877172758093832653554302800482430943663606776686987650769242703311443828243625572030864312812845085963654987043497140175842227631509363548932584574179037196014014755093547, 105871657539164197962304884026447312287656869799348284745218904824171559247594257292162007280718420830626121427305947836244695920123411622491802860876074700979562481801647018512, 79661353882478308337091583093710391029035916956892480170597801861255268536984631879860760671668822229160485318722818374937084103713721394879557032396575674204411850248613792358, 64046305353601649276985729245129690888648434796338566334710714232190735029400627606437153595093755596994433261254116141902720934182491924391557965063177340093141049847802245391, 68042316062069727115856458801082753110455440266007279217149203218811396103639940099098972748000737892323256075244571894195983506093127936439516762516172338723624044849589318864, 111214355668269000600154929393138847962015634218736122039796847405070585768898936597312075513773745785432006263969131069225818436045785471249478401636480685544087062825014225558, 121076522996970434212507457557803675981277283187481090293708450079068628840468998279725799614191383126280668531164752736181385391939316799413472924443196414155444119794045273364, 42525475176388477096344654850427888509390322314763202915613965529465160449135566741898309597508144511701533942856420716270785270811998379884631423851933733282970259649286274154, 41799159109039763174198708489862251884876880837089522348600441650155478751816766883895368415877386021471371009724777736139227377148253733497862022658616864385572785697164653551, 107197588074939796974188147149722152994519057073198246853841388963873724240531032906205489377861547382954430861690489267411750525937791253733893960145443457435296078421104352469, 51903092034100456067845954819342479903593093415981313005041639545836393729829996558864725205334406802637627295022887987184978962850859221982585887748343434505570760354207632331, 9300965214318618795065750501703365636230434187640461299735147480165182503814583538787057101439121984017349923672552939162956093197483962480039870112705754446918675556223516545, 27428688882501229261224790665035869186043853204634030066844057871953769188122202738949323262930866680650729661439570107764921210792246373091830588680292099917136369408976558443, 94642363463774781280613819650338954653028216751561806498623223638912984780031824175125521655357859041143507307040402257579318409977416746665460629075288851212503415451659814964, 52075501610471262448677192399470838168186310068655312957136791792131896224969332287846566514715968551150170404211677490403387695864408127910673686522246012531382504216846172066, 70693268125405083628763564477784544252864215469101886463729781466338122295334091060317371269338210866045750315365012242437551115416107754459034386411582230861929025882006559909, 103530722737863867541935681824415997232163103809843989606580316213025446607034696487002179393830781333733607203860678631215722831291488832123507821908759141389273302306426102039, 113952730584508034624471654658770488143220561178926652111415860802389917516148134578236717065226225041344904973616882319564605162233275934049139847613985538733884518737734119347, 25046938389116222193258284924638945385325792323860638132357472217554005820672134578896073820225182972083910448145695219885251483422003007857977969918625704859518825339142332034, 108754413440663270200439838466498611692717053431265411831282182514990349889779187236903696834331918420497187155992437871385959990348573941676575260254063586780233650458030269982, 41275316734959789034480771241395648278573264760694227846176948434468309431236861171008726673307848291198858741046799174303788366431250088725439999346933504679407223102949388408, 112593700826506624292931492912257236293552920780151736376586417031425122096883691831460549381333866543010463266860678778610519017104680417415694417476870035420489874653482688466, 89413936619886192239460546458889686460912284286131394585516841113113181559282135236000599738495441440292508317574890857118750125673526864461031750865780328414147900247454742643, 2745858729973983803885469784456701667471508650602905274120329649372888719259836367154183287071581391544590110763967436221506518305069588874249859286893854593244649748274942621, 60225691894141803512397421976700836785440818756363342112554034666109776801741360451870614527783613999165916729856864258441808876276081816269344455519192655723276863217874332340, 71642325733118151924393601177405563825453040815864440343459130873054093448686416814913091621822166356035522802108096758607166847807935361860889946876664518750268970214751192077, 55480440205449907375906186391529095559131027139227024983031921642676626606364205302588581773845415478302732267908406628348817374439070520166648638200070791579870896968018635837, 66404274470411893295647462072621152016533228898328564183791629839142643965776691606592844236217707759364611556965425900108281266485295380294964633717791280185238838119475552287, 44369859430060844461419114516232235373831912840005609624768995215075285592481096667604596454122398784358257974222231063639589091692819953923524047070072663247500725384221548810, 106509528797252158000719655971030359697214693100459264336503153450324111659657289224876293305684235562647187524285091926436004097564225944832059424430327751941542707355004261808, 110231899101817524947878195757366605096677694115985554470197652363297466291416204096703245491250833991242580803084921102640145853485460453176484142082967368823223620559170657291, 9893891973024902893302464639671495653124384738021170746212515909708130491927336009386593063245874104205605406103542355800841246014042294842032353456436527306799402382924377109, 85964676206531047824366159866262521186838198809426372575559744773598553655880557440364430059502386668117029273428080235929012447965768955314331017332687065057820580254741731054, 1904640060165564006703550640720698680728104375093319885330186895722671105192963809224869328601450517301350567663300527742223433745440766162048487873394129097387854662572425186, 96238884563480382007586732069161624458563184640842108355426080573046116172844703681357647527492838420855159872683599944473268916257740770925288436499371555149415610920155076557, 5002785966081644188022290015566624326010699340181786356451671447107814374934200817011882337148036479168894090565904916854195203503111399212639355254637516070397610309871741586, 113660160831594462518667240207867531521527834897986109311256184250479947533759160982520100204075750912486521492595272110104566002331703050651276284808862708453011859418822009333, 96069452965721875195184293940668885537517990856988626268249295712958025091301788597405947149904230281213345150133773897816411841508119449439754499604756586728408290256384689685, 93808486974790334900019480825477557654166779635627692888836914794002084280484292146914726213778652175842395443760555047609850097559236699114835727798822552526879533049544869716, 117847910131408807883211039882642591701696402418621839469220195190910462867500782329441012881391243278387175812888051402636594625003763092995584760011655379581654116333903930275, 100372552697944234101874327226490176484778210664971180882129691405565788019681846074556662928298339258816680962497579263149331474816374482478166381960485253821989412137976834493, 75668581377942259866926460123878059059596146355056005082261021310805685451844386491375028225581352650300737203103995885273241816211402245063734663247373023637261926899588250019, 96116806704835599370385082000686851969634077163053326904027778252739162336473021976041292160875380929624059894275744260492651413874489648272279476856439275894214046712898203839, 87158598576735044332760123766439830144238192639388268126128331537371521821440341839471291126838980213963678170992624919698160457198380091501879874969162967076627802086124565521, 27327257004007004436269644950064079658937631800928269696530644744746146274870208563069298539594798204477995550106753403692525009236461147219892423734995104475196938084693160965, 52042110606569567649393712966650440671191940878727259245390934901835349827087118357038166632358851411641809125537934849068927987996629849633707195336400202739078748494092473794, 10342999505904827985672780884528170419352756730194531094955717580703860241663842256831460852826460984161016366327946863554481270763113454943056992315182902622030986799674760274, 108407070528086377548080656037387536638828402241066508629874613220437823992295637240721020586712602902626033890104203913260286019047817395454043934351294503103241052313929372674, 86387255894036454827769995764334964215737515263084874910235689645684244154133522443322902151965522465081334503132419636149791021916315425065083014517943023185184920026351683294, 78526176067411227112544400344834006460348971252819720494083351539087769178747977785078518865963404367411291191755026372278039584016459986194176000634494997645305749633376983960, 43726034031026227554999607878320342840684622296113255478218678852131680522051995400009614578814051281174428332650236570651913290702991386396762878340260652338803084922754100275], [50142926133077463901143409922102971251639496977987847780565933007692809376971976447009429283276438124448383862885292894899653742585260199262500773013816164847738825882247100665, 36012067166894517420028642094863526263938065739615997318642290760336792064282757720578364835575555959536962809882769045373221877316326573247987097992794800402635382067154954868, 45469909959398823761204626942786873628859429094667660055599850265416853083371708300605522743778887373569617335496939925289808447943562819088534648501376593654553789288191057565, 7710702528169406494379345068300045804244660891882184369436576844214278758452390933189155715602348640911602757193457559205128493205732979354226666817252891712496206089638409453, 121939346134621419714607550018088250931821638072658640446539367341944703843268752039210369150086604098268337695410269781536003049909764302450766956338852467943132567243139175146, 47240423870571833553500175361802173610289993664784915785581367690441499025771068041052032487006844345025726096515609657172066680040466808328363176856313532472090767695184790937, 15632432779689557349175300490448320982600491107191376822599028181369996070890052321457914182574634147081747300658785249255651176081889080227783934114553898557906410869824151115, 56443516726006114265421688363165360101644826484389993220348445084909929839775009631699651981889341721113235071694223678719984533639112055169604809198797977378665095121824989772, 7210310487529359845320528058662750804092288600939460499880445402709873943120978020778267814494949903735397201209581130835487672290616345124659753985490115523786268674560134169, 32681856770245800473267833732884048959057159701535513863616857181738333446892476466516788470644104035626668198914982853290966290334483747425298582949941608739613617823790842867, 121265504863048553350725756774352408023312544719762221154966337686109216670684042107718059791684993544480531171524480187402779477906456704853042977196640859994784650435064790599, 16905395514431021147296098858602386903055216338460404719295695515359440401971795294983939929496957352500053129212502831755886998703947036341965093085437264537983389568498862066, 112591495115688904342831246187020208815837803458346156461048664527504788205596792450778330384330619866021600551412796649184196548297158416465379633171363211917184461300891771448, 119311622820884672123079874639541002721372659505200954649240256743133708762921023548708127178823937651135555113811983127756447354824894250507840897109971385273145489464421909811, 78396316057249881742063682138504988150378657201388596913447789484588601807112946285852026668428686043107623868340497823766465142803814923438872830307201915801880514952989241245, 36505201917640464433724641253933943595291585848637487258966616873187124090316944508877375450378808218813665103841404636463718314843141869560339638671238542913329489221823758093, 37476497760379975681761123933857475018313201711991417674757873282514022012226281082069233699112479097774668693275502093757085284138946898661828706493135106534047962813976581419, 120530066650255879641627862086060666480897661425924522434343900692660606053711657760141780612712427055606074636688525785715402024389435712089028164452525875290819097104421230444, 52977531948058778408179077893731574986039993300896200169928440844414297816220761849266560913006957758324075812304236269613433520404658839873993641269926434261708890477138443383, 52450156806562942339871354464181062073617379327708865833424874025489459178319287149549572963213294311895339531531915210814634871143958682341615124166879158151058760200619193776, 76258785326231765371468022483162315696708696705992258777535961896565260988925415306414428857041508362642682187702488083128472350619416693388086187779078801115919192007562957942, 46985232445116495941627585402639918719235758864598224004506890319189972089885213384497297650859525603587993127736584012934036206942582866380096028122305500999589872054801936033, 31999213422889487354995979847260163375532542235698438429076148971009755523811980863474433398507043653985206245276008646719148994328539651122740586456199028824272240645778215110, 54192543910683044334002934949133252206390961189222852123091819161729856244721678816066174587270236138280421113363807917565816202719591698929938144856749017854290004794016593779, 86258092425049979053580104828979234690672172212111887776083225758289752373627381733724511495402602886917526346540238564526395298120363070796153546087362549625391910179427871742, 32839162671462267138784221189179453164205069989638836662062647152961915898801054478547666225995639148393348064242318786367144616770321817290847152760886438492795225186881980199, 68967130024854451667016741134967105930597183324308220525759813960325213839659213562806558776187885768629353793361777908366194600274541591376156376946673619108168873295668072470, 118414082201872183021522372587814160149017697686111829939275095602999381812038678857829995811540611212249273734899602719563212628075892726978987911369192408762742228599822281563, 102934177691893147875384267881430395834988832015349473520915369191058987392888508697880124453201442268759514085526335765243187019708871307387026585317200920915107589543516377644, 95554955318358075579156327522629772850324910622093380092187116054529516110814116601974583022096386289815175924394378928326335984265191875797533021987291918012440349724956487675, 81837851283440673027208837354905057339905298864748602610799495072170069180379036907656843555954427751077360757954620622667036590563482000226863698334874599608223355184358409783, 4260259470422195144613036596709161409751191877610853095801372122278742171846110837474552073692432934266276323418579266802673311142700283542194869088265570155614767355156617797, 7752380151206224583229019184764061426252218342729958553576024625755600113264814830613666724319549889990105808893541419006171627845684643546975415713603741459696055888376539384, 71845435792747742007966381980256974832536816540237410455192934861360906853608500148612069811555452623194388433595830613484027129867678539340216151737437061627253527096251456557, 76220978306813527830269091484232452630590915159131652877343260085592788807039621809907846888791215628322189370884306271053068058730664418619362377218643498438005602601279941881, 21242298160216029643634497552284397735936921916014816141019800627596477180094605840198220721612856803992411038748786361061441970367630513361147096920654230795974732580867241680, 38919535586728665037704535738444357418525015580507483688496512290290546067894929859953995175509278865583230628831835950106387226548314107768458653420198659899886153308776754449, 19905794557278176076439521863634477858456919494134853085007439095495590887432085212136151187822892656335515529242551646101195664158325086118516918322233056799080478919097319581, 36342043002420497115438929810191743736090371322398108571908048016980877490253285593778069447111641348141776479134202296370361119564023741000088060219988513216025702654010012742, 101571709601854483049763130970303971201986597617968575307155194103043053507147631227422414800866144467283814608732357328716953682477425841789322896529751656281128320853766789758, 29672616216651401994358000214148263828726509376837401156018321077247677229974761525472574459069461811265611975604397224415487640265198278426075533916309563789272110622110691469, 101751943305440918725252288615847535581140265423238624310156442235137401704346507279906911159976832255576652537095717730860991650079133333472470062576105461913355031325795680278, 80722823826754937815540213742862845055004695710886739419703648420850907711164490944414444265035329633689928301355251635815519800291744950287281952490701975031195147849492553558, 58392178039868464929867798020772212987369199248833250647136987714341687789898757642454930118171825697749197778720205523604024400718136856926332114600893136975046609341939223456, 5111423114823799938196242485137466155581572421581617158291923971485540073826736266958419291683992095360261988929700278607868505723618825393723784559690503466522441090903513023, 120548910128145338567985181461500653462766596358048878504166668823453952325035570400937212125068606297158648673509719721653269901363520909618959810108752325895426870845151357351, 7218627883250599170828899503110312617427844523148219735785393966759153873360093664375952678194855722635526264503029691315659675034308037340421770598851569902460022859146360754, 89291500518340629787946080182361263985027950888537239750800605148573078627231100770308384473952383858488160196378157756064458640093226745936697548451093767936851868416665928459, 101174950406870972978513923485530242525317871828247289286041729037949534516736095666063116194801577153103437926800059959910567510035901270538199835532591766014245272590935095067, 88413513322098291576008019903794377610602958069126633741437528906762919712626545741207349504700569565735843430248934792629055008961247968141386726058515915824270613582504098751, 67029111206641101611051331933799255102655870190320103941063222653302277042877441058980647084737216914462500443059127842849710163675003220612065992582407278851990125451618634603, 68580891012106258257900788977809711483524668990635058652168062791255333266453369493890660600427343200985421686993017425013345758567273140467777980419944866195451445447730798092, 125039094041137866359558342740318808891346390925331679603203303423181924895389486443015999704171540967654731793897285083195454751235070093568035543956773728113440655769754350068, 6035622213031393581574588054897595559366844512879334140581333026835453197565124973764317518173284915219115998361343087343210449157995028743613096126133256054484220763756644886, 67625328009395780958214268464102201583180774022034388614619987439961561618760468693125392428262627617887589602282152831294398960889459743047271928606860617033677845792218365118, 47028407607274223852273732997362625238084703080064998637422794765148270197198506953687336395840218653495257031724842739939013784409037194465582441732375005099394171913695673862, 32229357414937697160192759688744220514309084299703379749135881863371385670540355173609402506209510488046966412366545246280672589473534364534102381743176563968218600688721220433, 2246183625330499940298673737557364733620566948026598105382374850541890686928484020850504580704308571357327554319379906937077383486283899475290238659590280577431660706909910490, 55109346906775345075133588172590911520537096206174346247696318222033814134101061359978835391769578112614531176603883411382593089519171197093144018138233241683579687570605514366, 86165053805995025038401841459466463884885003805948080935785879499594368260301221976441632920973811683217981237570079011312277125140717262563317146089601264301477397545729220372, 117965976968502271107289542188997058329401928714029655005372092106728894798061007147295987012571450512324767227448786631167928016697863657174489008784624460077476863178640950168, 67541312796010245131969684390414270384688488478043209928418837923675285323548269642309386068753847567793908632719764923942860773826870192021682272094778292878401155669358578338, 78852731759917226406598110504373825641302919802604990190625017374795482958595838281506969698943513557936744793751284258310382503751192005532512262901596196380352176668964004554, 52069349549154229429147101023898772840935241584640002428025093985710121827709356328401656482450672152606069861339509430807640584962442971846917599673107629172781921627539077417, 59590244015909129273077381256270353439290163724267187774222403414532647740049757469452869230965922279198493345047104829412944398768524347466625895715852461283674716300221059599, 85592649347900208081931840822191994619313540270030766709890187184474178807842441819098523301165045266149685007234356181115867739675561343389469905307625353817620872259613907177, 120443000370121878405389091946830863258728302389612002369697962700336751962964946217200254501088588273344379193837085768544666445982827265870859155514209497136974071656613307224, 68776073415407785936466384063141408510852212386663087198741658527652729075969173638432481250725903444534586905941169762949078287388194295505162710391217686361537902024499016804, 55280487156170374320738574834342422274346479395096309635282719522360726305159371736199863823794247924639723936033919794746080540774897851085840317050478247973221868068708868672, 104646101830640282767748221489354148563900185663358087456099633456262558589606055815163732340940885607296030474523969114319913595759692503237397261728788188547428798081030395627, 70691723112866198663769168342202032337828604570236546527564248295747933519339714229172489783963789721245666240720636793393017972502994455246620658629767907565214574319548647392, 105707952750364096450499536960836394713297165670077763993907562440590570950546679958466259044525293417024774129818429215231016129708084842064678799210913949789431509518736769788, 55975232903585078889173313071795572504987432811753989932397837339521341095518924493948175168865256734891049157937365075534576068131462815060952802715097618693386331882790091771, 100594699521844832911127366016238932845012363523040803727308925967257570120113930789666057591101374258440377367551725127284672172392405499076833549740388877150257916898152812027, 24053450888823145022934219732810734311872826026747475050094635554410992244741121336104572652861590834392225596016412058246879826419917875481212429093276568394410370488540472307, 62901398372649551443923035840795117022422864717051890642537253381114975273090875897310361087374099065648080463927252407211379000266356473617621646355804984878253598351580533356, 56940442081587600510674991434729731501892259507657923306658805807134468294409883909625748627710303556844784775379001701295935392871366543299202557115965300365316733038231273291, 119559322581604997809048695314513316437542126542812344718899611513246739555544463354119378735572478379316772526243854387619114808428013166348631787664470249896775590641716391095, 87556010835433088577280334930439764183914326297042045358510558098271690134936405338675201942136949396504519418405029562824310970655067308372780527657962979494969590108839158432, 47966954822848541120758808595154190893959778347824007628708938118201402666376739463002496194002902921380530045710066151236598857341567148201926993759885698961898365978413546390, 52057489316075720481089707082914458781294923137968169935103002471177704506562288206459001362334763681385507932497395445597996729025434281238182585151403209128027344203438195088, 33584223441157880987499584103610934005885227837033094546457414585166527104195683229185772414758060951019005826037398044103753715095758741316790409884401880934036284573312192576, 87887710969889472721570911241407796056663284058195871085613288578595823487169022973060936696041777311727427117518024007377003456116498209296376235848003980202749646812557953664, 15709134522087844131510421341943777637559386201341733149582644149784481843565640497213435327407438778489284904007611027250077930219781305433217037370588647912156801086989772487, 42548290933959560713133236418585620884803254966645653987622286816219625721661608315648268743068469633967976064056763861340995351974211056417409790473152615265488292845559417889, 97273284720279902893357656534442492522840386405592907579072646199546170765095397241343359600244982196782634553429414327331499512680791770666747744941246970031753832156294035809, 42926499779985512406617924066018344782208498635230597264797173532615758956772156667424546168833304666067656966483897160234069069842124425459655414984330612102765206577732507127, 111533388990132712961484358947449496821821113292078576011676011220627681155099911156538988433801660842736514542232388030753022860981131768591551983943534778772049089877887735422, 55306799986169553774659191455975891644787572699203269229881409349461740540048491549976560185634093799519910447268102026557889792062303807642203325244548889535545091556872267675, 74308889510454917240281998162771070976580675624934028767546441678988968525224003076644632829046840525295892473275586581634145944013179675691306925786794700270711964852602213683, 17380740926416089746807350924064689722297996825277526665501490218462932205462829028295572653595021883107527235594277730635386357269555433178037519997120570066732648761216770913, 101635502738590187255658816272534277804682707754026161053852342254255911240899093802474684639879407585572203616410176653375237164986287120608273624380925032872076533247233630919, 13864052665764859798747266991830190573677626756642148078188775718435044167310802331183364680249541830587947567299101748470923911538027422162705260048461151507065063460363596180, 32414474033141060813646866843044383776962354387123982478588232035051978609851899998982056953411134262277596754795517148225168317857298327846272522620555275711302670219451337990, 56193440089377023322881594405954145669598539191816501942899732406929841288039964793554629336263724380844850366736408896260359188266526449100914658131479668257254352111686809899, 98736342962153889951053218407593010279453047353139211227241210729884113044604040163010119972572091653250947230756417060493954418396034385554669499788451555096071871912595793221, 28479620839163482774334869583086105267664069568247036956883801557143438438912940081144265627547801692146815627378179236235476479378593483112374040269377016153640427423860525814, 22148943905691183703638449843536970520830482883506784744000910270519009734947930561947612134806935608388646215621096849793953207791671175324009855930323713170293768620796108577, 116288385337941848863319137070925666911371785810237799189135376504861095881942069949378186090156627117829099752730512929608979799330047966394659378363684406655600434372495118746, 24186614825726200674320453401989747169823383877706998321388705110643830989978153594937173770505972572911191785160565550965269610765711408391647675524625191048374156634974959409, 44539709800965673620655065538680610774544701952180338267157674554356126231091712389483428498711627834873307066918751188028888916930493464172069781370904901599046256730580732141, 52364588746213263074045086282853335566312003784260023764074987308606027433895673171656398524689951713449120846697257791333892326184305830895788100748064483373583752128876574855, 48783449666510894968755091350316232746020458474062151736262777038407187701904652883496618014386761025349683175975579698001050662286919302778554727238167578323064049007431820814, 93802615804718194260106983295825542846125162985103092885476082192356091340078971356005131856637407982591348213676356876588212077975940038028005014921631483183171219051509885200, 11037843557619826402973325795157933569041163334712048252190724362857013373475640076987151313388447531958838655725415760068512511375519275509045112736331526694007343684353849728, 49480736757012214377313650550163202501993169922114623879436128224077676381109879583078430837735697903226007772706847001085269210209140257406989734228955231540660260684457274703, 87445773755721019210300813144316900362188958439262332786238158615659030150196970537695409469878904463366432162141382969295115051844911472897082429005693016602900522040497912604, 114608003608679713353903947456221575351356781239736480542791339633482006987712516291664661642555990205230058834507202125510344394338102282788281050439298487292439268957260015470, 76650932063448121622870979735271790005126627702929830354559738532505679422113862296434909599735528590034296872909637551819680943652954220718224766933226179325141195473828844974, 111241608252589363768405825751740194320286413125535986301557220793968929014104369756825829221791586034858988644730946563840059897269418852522267174115019958852523938396766322015, 39594714634671806231859055181127879736484466701733950641781693487513284530931397722798994154913957401388568731844839573766615117435603104038054206385848924965035445231285128638, 81042456644380107887363776951378417622798646558291953055244185422640031355206002823494715658331538445571615982458867252134070807787672712720250892333909991810963778342404160500, 88563779323666974020715930401874808302712281405963240787762952039325581906380456575395583922271437178872827869263827196919077712892399426784894806697781231659303031423321548160, 49124756741224839629771342005961709836492491828836451948808845463975970428486243728587616860323006706667239927289819750228696169703035464460906107387707422868151153009211173849, 58430613265804091382757486211853043974332885690143693476874870968393323867655387974809222238768494743847505798174924534239682721369395442513507307255472721819501887923899892030, 41671630367133936354741020081679177419125313206425026673356163702915932873248084130422771158862938676697472622142675769349322137839345132128950098284580280688233578720360871806, 36786603600503747042856720616635669169204939333728942390655392236046480002788854870805602645798526491328370146982862969447910265754350682570465227429334117897084661119057015698, 59849405768656692771601547016786654280561943116992182031774232518238223559789781849496283462977610505669094713637776871750604681980696844139597301612023745056606763300861562121, 66537692783540471423820272927198518401672578919027299015090895387589915978152447213280228187256107243048767574502452541016102931533053288112103568489744727460276376969812855741, 82591022868854763331846166328459737864476403317112714247689781113380141298036423195056835263583954464043717070459756225698581156808223273756100219505745107457637793908730267108, 79435898736620323777801313863539258225194326581784901364638169174912732377329118618275441154494235553250423287792826637824251802740305696732457639591488674008866987533993425823, 4360111325875050811454601667096657991428163690253528755651641620696512563096101849776712648142147994489160257289401485652708516737180860914401140837627876990964624069079665619, 16879886530112019200368128921569808826799290699841013052214019032959950081407349201985326044975930974746752766096797689886369732226765569685268553961244208964102638497822283826, 72429329655158383702562204898284457898428520446576656104683208396812978566855664794865154434911491289328833246659312053796488760131538460946197877721866370464567084900640561967, 110302040987690341315100151158611352079142432476891803278581388504414949237875341532240253913172012444902728295284769885508532008023830267525586325014074106498254284582606607253, 35660289096367071849859211445546781430139979475046298677999402154231861356812038707203513394527206264815710392127016113665403876125377231585908341546955696399550463102977171354, 102052888697425791767161449227269564235289503623538118728082656884376053603552416986837706523186171451271956079707665225950982877039156598432040598666922273283770792898532182728, 101957455631947072345598312460352273422972215487928106584202480479107093833094273152854638011180315524586524115127509707371755799471106824828448159521415007686488619922651930139, 112290811877233328469991104399694309598995574790137470933838866291555932733018023607944097426996764559950532956355541939851651999976844624441450371156797891207632931431431345033, 3289632723085193961155373137235662192038810579798653186134462657479523629217429601040696521946839939611780211725493087617804831290710944978698367327615142628565296670822290728, 87327798169144294858590735759910935969763846830645843611738370457824381638159415676261358094545182656506882980648532695452787896319606900563661404441297275023829181123410593057, 37153235951618887753933981112330713127458692188285658762207719614647727083659300120736065644489116203193845924156988644647406212337746012859573572099333020181989960693147929358, 7522994503693220472563678207107793974189283443466454877102364001301037881235047936744218921039854710354097724237640705167238754074776572500568338586740724288479922760920405833, 5191865981953413037901987403144813262814760160690397590253413431952987308795639546809076640085517163829784852851484740069596475261299837995950575908218497231860230105496322352, 121486619215465097962488649556225619163971330020498434850631058402787131507914317196402980874134473062985964160599883568599785142227096961164231359794993180738447674522786582915, 116734001067236850600887650728884402526894759252330666228034662749202794719972554538831574011407464410335542188849176471676886792703703346102183698553936507088126718587146536416, 100399010893566572979919476417064149728976357161276818672113024029979348913194902848192960179043886122436451410976399909049762271477302052170231705059204699337739231560356040688, 83568566281809369395616909278990919169897481143552442404525996365235857751458834378035005853191613363952225557284874460430001003158132729822063592328516964670455285976507563543, 35302340842945101041273204747147747768117434337126708952074744763696107779898778631613066804534749061447894153249969072341708408993569673656206405732288617546958628343627302064, 70750165977234230190936843146973477801768198335054640332904988247813181791968674967302808562743528504556566422240397597909134800075956171074975631150610663910926215723144761940, 92642217662381621077631023677550772428730934954086903461097029207961299685249575305838364951533735905933021284117358710295197360341130256225241894476776378341276540766616521842, 84676790892682762294962441110488475940145728595256457814839631556999678445846696357543387882679202230454555685738916338751244705357873911331362729590958060100009711643802957467, 103223818373251514184296706614349065604200918013747914869594496470793235236349963674979446856273882191674743051453422538623112090015631196032323470762797555274153908869387026455, 9988649581817511258977006609895871326594064233620601786519059745161392126240621922770272779145248239555210689624267008884197733665580172239566826656938494151762228770702402174, 96207654061504304980393350260084860910377380416253762542239408992458725204322981403754487192431900733218082845024414702112660283111296262191481381623577765221750222437573563821, 54803027389385675018774975155922910693952520421772312319277109926290435397666832047071654035419874188770325206139408579523256534550246609755637048267861326759544921807129742927, 67158031867635045238227981071080289562509001206692723780600406753791074010855392414531162268904919221593593913915537502422121757146249586013644589291429236560546766420613810270, 20677543374352571094699862779049140324980072674482817494028567984572361719423981606340170805205614148242057582222318228305304490447420019959757542541372289209901659964022454130, 11634886401469233733288568010294282643362367865306899850265905681311503694434265728468305024285284337479310163201629640392360462309746933832078576071839245803992445704631388504, 113164656241090990063527504173491530008095322114344533374871404513769907178006040509274831830597978118971369583140610100110669258949273066344916748844746532855691756212109003577], [99772221024212215056512156364470340333108479256998400850927195327820383726540982206177541628894264532053869173369152938772410303073422008080519918914052054755307254407278854185, 42089701611505117702087124792817717112026709692308585861947754143200297391486504479810259071020931955622117643695945822779287891773685374706712005000056250162207822522179152411, 74147703421161743110849825235664531557885657390932203056336209864358900379230216210260367658796465951551121532618744826190062281707422482360892039101831343390410631619979594863, 34317170550968265450915452258622766452563641083800259263973259467989848710246195225036288829491030252941265868365527901469379972565798664894564188773048722994606668267644314752, 102876454490481458140827254097600865746323318786783843377298383411321573141688557694163924849467051976827559048593940290268434474102088639494138284328503170734501146280467400411, 89099242881547963284856544046307380063568150406426349746339864689275652370991181292543070970919785839566142663998758123268155060589374076213086623262861302694730793985501275768, 76053087078452397627727762564822823759034838450596765510841606051448068637075268811465330368553272252982909250837944911714217442042282136972667186637538904763455996828804952837, 79465691279722262616215166647590735181700944444032992897993962280901275488627274865750081501843871538809534800144250828008550813113885325715999048351437392672023943409878801801, 108971037077232434637717139221005793527827120301714745377214694412955248967447598705659893658008373221584809507256034366066586993798137690246096783416338403884554363656147398726, 50633023343126103028690232137330704778824649842670735210913802541552365617045627387005738937113621033795634240072170985130063235699463795474406748288804026762780512065424768995, 112138443128608726882792479400116790002839343332679433700945678797643951339891277653846580839217611059687077534002812946477700230088524054943243201937212055733508536561252327516, 101964106002640227608200646440392372939451862627833306415751425707388790608546606780520414397707222551277070390369972887768909449202183006660103048828811517411158778292632934150, 34572072420601501344490063682715554244516584172268094057088885137294395755851035982475209720668970934055171065673103025139039187681315053737345056053318877495555517405928025743, 105501598470254078765708430582531813530646193589260098130356556423430696292420568506234448806281291226381229962900167140568205644157121685909785040554744704774846976232755641770, 112342211082911804405055548392936665037027898470899809475436927881779524009053006545392237144139257044828268178943553362598765367320784686074213504589299502206520993675642892492, 18232751474775782422254722299472362653680301783167410166619462103883487785434406067799973900785748010080487896823285342890877858424201215928233364595841135929394159659400418992, 70629270141094148165718018784443462684217306604082343015731224584811824583992485568446271499382107912636307352601436612671693169635903119205582128881047108235922096328688064154, 52403540551389510472883180555165186836516933951254388635534434026866838757378353632287986918477052918344456292894020662997477670432279780631378317295174511858258255525279409301, 109460971200202026800029254212380119731880737277328232836848699525792152953734488351475066785953774484439496652563819759271740643403825841500841621705935457631454453050154471870, 99016097105397978428152022136325265488236822525958680837852405187772931793212803201572491661344529504149669531063840464173756215846775754371370051642236579040371374070954134549, 60780256363974795088071899514267076045308788586543379781483674942916442916364355303415391819396417909105302054162702070529683841714619979008966808900360788513770145402832006994, 83377203645283518782850884723512769390271648267496227300873547855999879201254776989870477835557234384355198187295507730772313568527138692915136203237909752730739667417377384780, 91906493576550004637234973351018182673441624267005969310010766908337096511192798696286948891054919029782670398645104365630437315589510629201283341569344142320681364370380162438, 74351893665862309925532764729943788743617228958351798061216269144215839178860779942898038615875424012577227818377121729811474997724047448609861032718598903649887179376469747332, 25598244879640109334383416305089696169980982334486212949538240098044836200164017729580216032172549236584226795376891781018366136029637365858317773039054042767506941968655746131, 87332788411073664856489848066288290267038717462156821723303457179509036973604090092137636682692584175052995310083379271467818908024126309744568285638248923032581778898055298588, 52939901466931655430292422384321094968318767179951851395178112936419166074524080747233250718540180383220422272915197080546254381580342954989268068140449419983454846395780322162, 14493739563415556240253452913504343984982140257203049385666155777943620594771080872493643232005537013256191206605009818498679747587878094998810603103862129624854138611756850292, 59878758677781849907953883936837929978459203425900173100536188983039761051095963901319818772703404361333570463688917442033436441895842957317421942563708120798515499421638725400, 119960625280840162597636776645574919077571515391256599117363050685467362712113079579631279821786176355982308560894632502678289301161626740099241475677264725618788311025071419216, 107682691300526246544538672195816831468790771662361732921757257937512747160351289774106458603053967912676864699417358614353960401203745734215739021936633101815789250421599765728, 23597765478122136758560549826711769772234418259207694571897433590062503702605686266200985890150572605374891516872679868735260602362737893426244188512419210258820166810322877225, 8455393056864722438661222046011349391009681646889236312621226362805057977146380572572436524824850398780643371415079027663721244531765128077852357971362655933088876208566533582, 63045266295778660443135365162166443997472114401206003480697854345567396202505287739998576311236558937794496513556560193617394387366824548280893682551344308771198949283975672052, 50431203184564627632334823362541021588205509584182705018563949548847343214732132575880174277673672560904961848281302944720925312427764306768864311376032353848907955260954709572, 126014112918503385695696548311334309387204480143822365415928802700316072482916078830081758181737382298604836763117184830355180570336034533478111660398295588856813281388630309734, 2758826895979790281304192139700531668214452934355887886054535933898671106704474688302355089425662922787723914707161772449299494182777779607954115986890242906737257448317724633, 91751165039995943464888902723596686725431736201771770410677699679014023445198021770909728143111583325713899267739770760378433326076234599807517402081212186786787960932506380765, 38641868321238516217163135499415668183295759668713896403298533468545785842918619116621764092219707514526997238200098692065937583756232449033618333549257832148117798893063986968, 100413206132812224472529677791686698942048147643691953352380788319509593462474828553476936752631800460493240420341948557871666449109502655414191035144358127698788987861781250461, 68216521400087382965957702712677813731309197427010199785289982152774454818192342666839269549719888085283662621702077397202067456366591292718774606973813413441598708024709426606, 307426670649377417623484155901036139521266096740620581887911323415913694389793174808502250113696546270911740865160189573018898800916204712741191074620736972074950136651222179, 66142984282285401882912679753041691545850458990299900135545536530615118322944287877197644832508894044115082970131704692041203590683659716718779176187656136799585973835074122561, 75865761713759926759563671479405078259316324787930627477806663526866204578106838319461955822878043471471827986430623601274487110041919854755727882881923690329253724809913005717, 108066955624556369914220887823401554229426631424416955680441793612173985590927404254837428637685338043631227892767468945951896631140368221655789742388283128057129134930400580685, 102331494761126487693892208872055325734786434115716142750651134607733769791355516266082410502590317057926026064517901829818546078461861769748604774313072313455052002212806915286, 105423210714058929181621718867058861968002614592673222457266048350518942169251072380974039807687394808451308096132323078775395924390406104158013871807479061504691485455469977303, 34904205870413595845040084062353782435071159018834435334131209045802303278027985458649764758934574881069705155305529389741550274990588853155842710107295747149986989828560769121, 124689946616401880848276258418039816936809826994352533837148789704435997092469221529230939043379868064963503256450533996300053131414761610081182204351170446237058115344630795466, 43258116451558757942206022865201451487966456060768879573479012341234319081852387126728999032757712988185608842907473622825159153056406699021685928655820299577466963982963302134, 19240091088454628128397155575580804686478847232664410429945887599991159477800409792991314147471411898508347268971453861889332354224576638745581320915328633095867934105166554971, 91930371312386582522440467218045918589120899221036826460322092238299609808798946252241529682947347821115548084164492197296353642331595358489326725123502807856242790329848489289, 57664198511810965534409312320431488394551008122946491935965023492888686089713004797389399524001059002844205126314085561458398622877117923047993753524206043698459713242368405200, 74231285639043335260233224036605725656038473519265489548575254097059192318645107148300756853208704141120387622016092358108153400047855449169699428011133723249392645399233844664, 64670098790563761061572917061205713301703094064587509914490340557795442939388240803297664301222453439670956980513814367574268571256798631652441343406844470115308883074150983333, 30523551807427008450529331711614063458220736531792715573596700930975340974601162439312649447863914723469265830982646659839631731019145019119437528378993280011014136253877807959, 108825942705736509145018513886547562079180509826459402071280196269219072901123647549425607758185747272107729298552404269105606437765503934811327696013119936342948194994380127671, 52844914094773958457424214742816673793211641694383673018987869821029161585833552380372394398016228625010220753056858006589184688128402627658541727881065604294239717445391366189, 39888101040544297567492065733340599177514630589815998958964025985446067666444129393037296532135713969588052366834003944069130552338754731066344733087023722313460119322565668671, 54476014692615800952731863878110654000149199121937632299211615550890448199943777908812844737871767147987904049987226636088440049402951736578189988958053289546558293688894027128, 76639991261385284741273627503464500335005245515131436881957314422603245053974380232756475008471214126765339989267497884479854819988306516007696862837007618172743858575055101022, 112161256569686155734090596632875512000643842893090641662262556367324608379702229691025681643176263801667474707145845378422513568247795622462542366055836680504696553786714197377, 120162998384017237304512244680052302293292877100777502202942860758232868181480954610694757533864423435745959319503175180512692757154863682840483601335637138503034369909634476721, 46831489834331415660570433211179407937626042820307884139500396197198701874245131278213589102255133055632861089299416639475316149417908289082627356243823926648864702615725618390, 89694259040558949768793823947339678648568082378433995547391345623962420010597233824586353861740608329202694911536610023127921076295421417883036151126072730609803996183588323294, 42679676777109314621354405379230583938265706571509775607128355641707694108268420038708795276806672361577238115082794364095734702493434445955449176750771544153383528121737712224, 17012361157951154158365859136688581979464679301555139646973249912897813681474802103831856211265894191991838778735160746306243304146616214929322627916551761636139809320016020926, 23775873235241512750137626145832338184472725733032578912210014789873157452466432278376493899675531406440976007363406535050445729559949626447773712896339479458953996379859557251, 77663394072605421791511009940343278683539813311601373849233126195525713642726585385818791271293847744411625632064105744670783348587557708416419942279515448105347461824318731862, 30514839899572378438654589081429960285290004033879993155901160823715584720364507936448547500436275217321982237250750669822889003944920339451583371413252288813529592667477896197, 26920556028555520482577975483280553874400987622328455700876719800056030663434846761957450104996119770338534858232094877330125419296415839277638414676056475104814018488734095934, 103844150182776488473765254511820712549850063503843318078002035979944951642984716307015075989605917100834979669868463150979977358560406919916871055604627712064217761090785948919, 61532000129142646863103123310255334289698061843038214316505659790218526173664455659802182898674866037312391780857719377455026253505921149509098490864240023672226225843064158768, 35456803702822142235259278707104547284735042950274397610715373027480151133786797198950655857204013254595652335834657338298062242096615285381798418615603243061305903139793844077, 85670114739494054550143890942882266173733949446977522363790046299336461280252541499938539722416673506857334906319196886839589505652830693271558503604015882726798507602246676842, 99088038031243331188543085934749755039151200100315893136394258474981581719665576669648089599519215194356273860683402918438713450617578959765875858617952274932180344747760681384, 56704409618168684805766312520650625524213118417292609328202379268934127347742838820251864224586262275067814698342669173292475305982491055680159539636818401990531187559285059926, 126033197329044572168147801751382254802595482624697029151425388896542228983609843669547786578951098435128893700623492724558770072567992857599693685183621280569357546375837690957, 45184405999651108636519710057492864066888985499754028208246402878635043258223050571838272105940264709669714296071789678551042934107002431133774828575339717165445710559503228875, 3279490060212130056998452995140396975888813261676210441090765018371219592708150349194837748173580941284013618825107455614263924181961045697775658385292880043960952578224674360, 26306520457203671215702318358749774966138597864487067782550187434517416699978922335909254780578965576987477479654968478183615902010270480296340733126120612084834465126547560453, 6391709741191561849332249522585778100491496965041503778931702918664764073000770184970520170859446434010795038536792108932592338798809287946008901833225465587898370900707648005, 123312594978756191493290019839754769588032827017202548156146506896327826904198921658592450491390808277217995861300157803666117533296052326368502443408854257231699070536768418616, 38966493324626198109993370806842393139675886978519007923777347077614474274168642943855935786439555731994171904374922222242308203569725610941888175140456453224084364233177459793, 42647157438712851149838927535181412977907621100020980582874204070597284468505467032422611399853631939047004507384047747492922203786001084182344250265751077430166924878604764638, 63755583184888383089071697502797936618794360433674027066534940329138701953803138885852048836750579061893997021538703647871734231609454309926171675949496081828443992439360538044, 31917402889749107237153399365433263217468727115900640074787123460650056792035314743833257566129541603869460556495392774477632229436237442290967582224496720887133062444651620483, 80726033768664573046752899909132434078756060948104544298092040179499549466212271413575885309767310074094065615476169615770394385805147019458828829449302745804898849085226381615, 117356586478730511238926115396360756464011267555515726787833099768163701311389652429729813827526401970780503602122095336949215475659570384633722671977344042965146453452817048294, 74444265922390146579551740588960354912092823270269355674293191888212338853641435257405878695890724021111312351668647240191379737186351254630096264366075905706727412598200188373, 68003456466361319732244181786712019709099147255553293024360934793398653713918751587826831254758119674533419620797380572204203076406163301079139671915783075036442103630401841904, 8714481035059410919690601356000539361655396051801110756688356072943032138507026144502773380543059647966534819690820976545490820384983471057430099732622772548561892065391498308, 12938798616998890523446921807694266978672459857192500410928574491106746663557672355450224632264381184536590228110732301734161410746745925029247967089816460306441775407528198853, 3004868792287148762024941554521993239654052808059000273283982033827971416653067009934999313291432168236052717054942357617282521371608413819077892680401057179314769056842661032, 89109125826114372532983953065167937862207722067271753874432642919451171219640559545697923038566959258623888333012175642382537904899286764425159653144791776766207427623404162498, 26267781302646891000054847506155637603635406698152677760161852103336808793377473275152801977779904032596260521418003137392845843815938691755928565342830164501207970712725477114, 60583481664294436941213966566411723836310958344037383450837641045906196829418808875944289558394107881038096110895637258227965453346486696685106399335799835696854161649515214080, 107946330131282288251558866828907236866766818880466357526001944664095523749809760585214930976544039929057602966563719179113843640040024832572755044391287611297610877753471787819, 6539405091141258899260012699571584167081687362317033195500592013334506008294280014106219695592369525837584510571990496355886701469739985241299942933705466776071465522616477401, 95529202705073342724268471173189525937707926660728552498181803674825031810864175314543081797363860981772392372960551958174566184772006024985072739220317800298984537846533605146, 32837623415487163521613949174669914968046944774012750339127322306636261669263861971402608223400466645511589321313886982437077197251919231659145465513305805878462796989627522873, 90547866715844314024159127443452852714788843166069400395245190690702692967671473726037229363579391589622409061610666015108159169860446985514070092940994164829518495520056838559, 64677497902354524004731278650332663587025743795401716074621690952013988710642799458392041778023573306633227983796691854840970488566017120116252563108236745270096213843673806138, 34402127627601540134639754395865345967722920231728989448877362891780736323571706016875629188460358664629383961899497038521495778582135087528964826820483903556723944018124275972, 13896472377482020986544457446643425561559432321396862349221444859098935756481037187619152342872610742325182174776567060377693517857247031651743961775375808405743412387173528833, 115602347461341756677819305248391290229255661193626123864835520719995413157498470952780225099182883439236491009605958038773642843431418767742831804523417397223778920976510868625, 8591107987881208497851800278816339856302287561198250944175699988131117125389764310180001652847155862871419844606740649329795918375536486926278812299616751843926479935069231298, 96880412752205280886759917161058236187554532203736504293150274992516295867324768609781646675015948593612736743853019310388641696096345194195837321653836947135180292557704386288, 71836500218775778033677612505549158496243162993479712846595341764733474700218771015071501260606249087253089395758871662591404403712900970639395416295467032695897600069047352317, 99976692353834315821245069145601501041105413949055321590732857653695835122857939524328738366986585766082299094295989570595710271349767722148898947104533505235086819254151005041, 42161549238475568789888856863693484014823001602081951750020129355036680223384609849842882552615219921071786077718970769553511132395820667067476576212130623828430181448507876493, 85334425350567699059144128405786811379640414333998873376496309643053581649205043990013138461379774489463665184103633879677124846942123128301342337032615323889497567759028476805, 114238029326787667586342621495329515641218589309430226957239192313417947929778437630096920795197366874426005329925688836192610073352845737261052349955065140058941620619248139491, 48773090015294727653319261134405399840095616895162210573424309004828709491175429622572088651958176891141583656062192085342142609914071951613889018973376478449874567507656828087, 50361688825760251348147836872243374086457789139611945430583482774831476612623588971321099959710673686666591777900750750795893987103824215587710457979351860398459062568441201218, 83446377702441489392288245342179604420298607117472287229445984500530327751882779932057026772687217733019946146943755830893378890152217542979217061506465052007298319199505553899, 99777390030392263248505306042170448877719073330057532167415785784326150465714930996429286436964952244357928343969319486787722813342942000824807185098629421474933680473313285205, 69097606090995445741538862247850030766326952357360758152332291635832632117581136926004034333586992033512793086852245448623401737477223517772682406581991889133141547116210143820, 21502162026483749282710279661371819018359563722587563183233960050511028073262623753972988383767979117733053719978475399794826060591700755761071253071030224008503717432786359295, 18861151892307643327434498938340879775005852268446068539278627118721528746147471937994655661409469759353291739902317761257827486796325321972362906736913214976448606188534955060, 55754716426908819829130130408914693386996454610412635484360219095982593447624129597718581689996706365170267968898512819670180319834152755148399981414451628265349625242695925056, 30124492203033219405498169449804551289846862516176146509642614148701889114321093402122054008468615604242736866221378149691278692086630480742486239764282631190571586213508106993, 73440290114641001320778116534298649468581284646751132989577798083706314329999286160203871662372023362506623479180059724064177824156943905661917568603923738256251835115156311684, 79450412496799013730770670424610556257093927139853511343384480644558944363955401325165040217613965263051866442135416164778117087867711169595331894188465328029508765194494618599, 92337001429874571320707640587853574061433021190348313056266204981215182820749313934729296860212357210914574238649061448982176268561168589562503393799865706425472256266651873746, 100484547167979710454388216104527751547660962642267649076584339223832892951562069084953534940354399676805682512033934507989992798790494759222049801639102585578961249807956152397, 90922127643963919642362967404421673897437719830581252284239661970216610411759637711488669654161120938603292444140664661429513354186957538008978219101835356858184194567153124303, 124139192165343034913888221515671819610261118188241098914254144792552776158046766176590148362175319490358178070191489933714410686196222271891213546433381283863945962297378240836, 100991748965792757041355668805061145061310512308433952338287996483133060096806004896953812598214028497318705691608726201043723574990440843676615328413009979197521545609034169535, 64529561463143148720645703450938729373201181275288292192383653886494680704942819614322234810917157599328898509997226096630083340533998442295399771544362020461347717272457339726, 70510454858502697654455140834212711508728448901322496418959366892621818035183410363781595365205455772617316359003645128989134827029055598700267997838046270155669338088726293967, 68897631042629170319411141470667729522397271773506504153376371160889320038943769765680126547545751686396407964359697209833052651161773306520379081604622306253416675525062989389, 40728386339562386205218229678521444182279670847499001452146073671365956942289588279121360634972461682435413760791710138862251578883386129775464640671997050371693567689425471268, 28798451703496339966679012553482936376168170667640785089527410020227599040684622389142020968425399690221426432645772828196299580967242530869965701271462125105626635370043979487, 44626805873389096385537572489731826428746695662825513659209658274995822334044397839374124047762872345955874754424163050716279157963324377872371151975188284277862982533256003084, 73267474675170488059480647036836567264653098997204063887840113611905090031066354760598910652525234814031248602260798781493801123241440644548154388250148757565047670165424341377, 90377303444315138403193731861515692951574279435129668683966213356199371745434249791211800070306671410637174341122321864693060605768472139671000860362840471950007628213425857445, 122396371449757330499693826538082576269018921425159502219549857153509627971027134024132804974049447480898880020478285789059178848205692574412394155625009960787133604702233840831, 97683521256201292535176120267104111214920204033502329342112437933098219973186150904739423910372972610374269434189460963618647573293347560868106523674613269362800983783482907462, 80450325323347266361576995306043264760224190705125267475627865806501951000767002218209320082494947767871937966963970548691243647942081512874627578309027904051578834363108452980, 124187673420635754087214123851886762494223621300948612162773394174300735634311400106947026351644255139620366086349738696462780007451155731724424477425292132992324784370443181265, 31221748077625583060683906207170245487805735729537958849795031851810648319252017201388301564433389006272546841523457635239574751262128806832329114938218388567283369688178617738, 13305495803095929061655304355913130270354647256562492766355277257906770229841889387568679747349718272037909417726978841890135767687311848018825067012632707443153870611027698137, 105406540950121012433804010288032973494318398059413257518187813379262534442563602257308702975400664086828328009259580542029153801804567110706725529228753231755239711571662883780, 112164701783651848439010315490536320481431649543973126192296688081059889959337999732198379111166229701635335040116820775601980621290368712237009144958254496617916447858309236791, 56733243856350995805107182802638291442505028739692608023883625877254328396105262557112512072467879396278382616629039236606230031704410900098012189868564304252505407739216182014, 29910717184174020269459419804603853222263931210836770049965243149091804650675339455963065646464358312364118926102054075139969557205050194747236826350693342180213666978283616966, 476022931201277230478350782280013487715929505935674514861100779051575720180760739343081148252458971955743651355619303633359974831441100661088361234452616155957247793443299250, 15519178841777614215608256408612790906611022051059022661117905397624663069524996273210052711734458910386843992361518269003544906771718843456326748230380826132364342548376702156, 82148893244654020197255245946766081961914826991945397665081568542862461515975849777840197059486087588160259425793210620923219876769787398522093658617810168199448539896917716090], [54823144358948672851035205699202120731453827685148485368347145526457752392451472715506340914150689849467503098122837893113127265248333811942499493807122299604363994608028555725, 39914553616580428963480093387204713055910157720241780010794049727637012502276030888753064765429307948981180930961275718088844151370749827680158720093249721134701516181465347407, 82947973751917267334352851455036146442644684794928573147739357753962840629422870230037562897595183489655746596293640681640984626346016372960440996142644276856821637895741002061, 100598225002874612957267114448964225385149980320296403486350467911202575242451324325779385868446215038098310226129582527326551816703529719351592194521255020540780333198432869385, 20652837027529749647509339958916293403720620251035584232501622680419774561685601502638018532811749505179845743571805669913587887414519492267627976619689923828153484324949336717, 44683729687375695030464335220625819133574373994498950915904264207392947058464226721237846745813488206331247160592707436668420894206403435656030059077269426277202132821263649181, 98296489038220431545638305634955479499292562059956539760080272911247583897573271262071038865570052005393160487954806877186461964542404970475085036925008834365628860560343739752, 41892109723591879712447453825285984490572391888265157567736378571612307802072155770603209601286478143154879028078428563024363701527260539332909193268704205780941592326799003958, 2879832294608610823746091438841857418357462466639769180215067500664658073993684651486394145339036293124822949184087054104182903161436921987077319148406364017983744071541912256, 45483232227705385339162420911345718277218266617707567875937882175036005947921219247141253068972915880366793401881761550832702504371005850901997840197193808437321949053377832027, 69311827892276754945477324686676848255747696990135389792500286752709478726113332459059809338707582403086822873031870450993759493566836419460763256301027179195045451211752871681, 9899981197566882116761611423220883420236446147592004536049455291418678789384557846503005430237449646141522810634554874797951292007259171507961953018659480476046434618411842151, 124121916679321656140456746159244587334674560287245190201605749496089289166364878889309321365435891634109591108927777030372103896288892304308232288408625780847021410561641206097, 82768328904739829093365279392050521765544898919368136993673593604285566051547573217613750239830835676382957624634988767135174355479112541921165659402280009711847439941421483778, 125986248146222515945874221155170108167814716311446814902837998110750832734481894787625860596156908099637413832286649554619967383451804528056364091817424054423631130286784546559, 82075231120812822614071644953029633244721052369344630596534237465476521525101303795313475874014844796010952128923331135730399444451474249503184958883097721416426602757128993373, 92660655474377109620355410017111281888466888917759239969797779711391281758171485987872462601007178590317714816293714912083971688822888154145970299629451488565042944005425790111, 70663906488235417178570525943204382005137767230592123528903584783416235825537944983782569397403490517658078752130471334496274801087262544637510024758087517405210884975107384693, 19247126614045609445062365600860139225852907699319755635172535268569023475663257338937837828230320258660367191298450080773455121834985184647511002112335985909135464191006711913, 112047567670552038439297966705473764236552592663226438479973703398618536745952251741473122034881850808410554145975138724279121181813540879947739643487477743291652736142304831151, 8191654384719948863947442267356905285985903791646632870867268256243992813164715570474342210902482058863719961951933533749956408505588692199038719802006622991531644926481685594, 98607107950936018099599068229894110078064439880961269123324769342901618801414739228118177807722591215850454973021270461617913552670257834889043542464747441426725191155694911450, 55049307222228238558265671897209126829162838112150311535477691744885058598935289084501541910906108311464864622365588764333541609546202255711861964350252408671929221594349853427, 66326175903614746196557699032475524497219794919438615564108012810482163639556566906661067881465889148203669401659943870538631396322459315882653005929856463294175169133886092692, 27235734261422085170911218968865988085413284465832804777569343862757953413745817909834804799389394013980232579201111539122932538937035537187507485493861449007568285648032753222, 33048908380844644355512814075137839869820320512799351283226642947566039916818384600996241721772870578459805696391310077663177302680525876615329163667551663280522675270442619528, 104655657794813906128019569547875868101098823525107537301997306615365729336161580813563571855199725007956563119072242852866463275190021517350798598498875546581763360037157771965, 75672090363931674159151385375874857222031495450933255853408123799157439825663993593226516178735110522604383201203811450204708333361692931603925103686271470188725335221258058524, 20530578625193001595436021324951730480580710257187198837535388308068613150388972224190752193836807487212550962563023762242583864795879434419440441093814961144050191527076522795, 38356052388968631129816105798354729566675082507450398468246069963944183005861472643504147220916644698147855383463321953302888489260609387025950182928736627479496903454398690473, 36443092791088879626426146465329037909632657556399690819357351585043612634726900407786067783628963178685079347901473480050143172780933112198938167566279551528950416370602541127, 53036294411580510166467695309517448374886986961375731200745234283533489399174447220444661473119184300877686235896338298342254499363497913661952873311900926920800045804874787695, 74511330924409642887710183575446134016554639304011683743985428514991265217925203260038064112949997759919312871595842244002204235967383712020944706312684874655117016156164871674, 116377655802376266887144221323785010905584439968829760992865696762263618268851584283786340532780795441073224789489327595773454390182437205501517032049937180243705937218074382882, 46506843749544935570770131241173718490976723425838761586940313389469186552701916410372256273846547924032566910572825363251496563685908652403358579748474503776563079930877230383, 18101241290429201965685867407658726064127946557269279748768305214245728497390830322834404233762523073909896765150546286985495713156127604800808498919855704354961457856398959363, 96728904231745660923154712276636424015844622305237378228245539873186690212138577888024303815708399246443439806031951285086571318582758434318571385621893143801366807972387528686, 88417174508037666061658003844858173221292643664236073923290179917392182818281784954728919124729375693293788955662706945112713455765910857014974476700883854262724145659400169771, 107582498047932242224700009667593795264453276236005104156112464713601425750483178811310485322520114060985990972005671198264128591410751129779408796762804597048041354532520952306, 36941846614761572613449422429996774493882206920592064990459457323226172094983122915178946210723230902630830473916948663368474127930257737236152353628142664928657320647800776782, 29656785856653605437287072429051816624937787114026426669727900225456556725178290605899101715036347315397355076349569639250011346874950159056578488898766473423080755067849955108, 40346820708318330005029559332481039759318045425803926172486088980215488526987358930930280775260814923369758277567735337539112793343653802503580678914865401894753286717156638855, 35887588000760727597586968013755189378019859503748147225887551205669867067976391408937079199447133460232592330165054715808690381134599259743744489082504046675240076720929570481, 58333786956178740546540939956934607212740515510829565415124429533632655630874652504162431637076929846153749253435511815018748466192640562984415728791778472767850531106599702599, 38612399856394029810551619255741322643019438417498949522859370274975884378977185843583278101701507757801711573290462443906036319325129372251523022792190355828114754805201339900, 121691335792269582400122991297201820168859052490311289809639590807775851011859957564375838074704564056299597843162100631371600531305681317020950325437360644081373494215683278508, 110918796691101264848547199112437037787831766611052414522844687278786857567536808596818215261271306231460770859617883503865825957468378441882754324139865964461858979992019284142, 109648207987559079341118746507977289452195987671193290518785500170928759941258839423334779287876028867457804455965199469826042158356015422631034013727830599941903726291533678883, 65930769174398452783065694054008552175683371727877017279163070061076507482090099643090517738626070556276363713514948764075303432112512175835422732046431457156288945653067007141, 55038356381669945000849743247648002651130013507171641521266741637138941105501579480673331699225637788980854934809946746087669727536400245797689980044931455975947805980475266294, 77736987504091304165204506941212463966891521459012665458543491669709292838862252470518377525254818513540194717305961291884933002006554735546870895658974356189127682617440024251, 27149764950481482550395803248276604665733288468772531336391584118008189266331068122565297896539109005846406040976797719735386474682113158716956238895392276488115975722106848087, 87916753060206985924063822037934546017972702738369006593151715583001288109120273648208523504910038913990570877259315784506621871349360211430340034970152026431068727203982004904, 39065526170588726103481610370355883360251640661290403538854909552399119455114948221585819754270785807841268930174329781879897969442801817387423199778757104925266040016846410486, 125823394610321857483090366445522854080711598789760262555336026783872361790164493873852842961754893261390520996173683291853038070566584507239570978144692090515105957234891585958, 10298957678923604288382670965446672380586608656530287087309363905682803271594441174958560116989179592281790760909532314060367500509108439812204894748654308643901696042646382352, 29433878380046830215988070100503337462417485636669535016145955916667882129825090682494003922146776965884553168592657517077363781946419464078274883153039393625114759072282164348, 117424261043478629118714629246522128956440934371511311676739365678171884209668694146693069184573271479535133353548956441469033162852990512540843363673277956738998797901305382360, 40486409299382092126082862239313372198551200428953318574478593399995574938886708515800950299124336714536370698657290969485291579239915320253577527915955299853099162689381425916, 80960385699565383235066394044000903854543857842354144603505584521277169255500811710726288099461075757508314093089168798942409086884619365491120147545529940566611973304386421789, 44977023217918544345368278899256173748690331958919655359553380550643781808388920713776507633580096556910885675267396529391249209451872928853251177392678014697506468027164626578, 95351377208839718589601021551121754134741901428447610051677013856371788577340697473966434134773511777680177056903996793064279756035661638974961042943481570397019848168692136474, 105199347902169952961695113816668586057121936279727491879398885569309404236909056847125742040277653897738272539560094251430551339231660213734185161588561497584257449355553249499, 122592367090997409352040577646563680104797839495246803201550585882099525065110322862476890901212408334342787324285177088823976402026488553642920793138277684523185680242102751609, 72879851214741732946515632226505926149738085716980650422662570923346975722859422187291583633176184103212146002703088048647660646075598283676592735155475761043034849679159218007, 54522170724797180138320485847077170026583809475837757759871547704984487421822508511242699463369968538040756524600292726760560558015104691289609496963457666733018695082632110320, 103799084044182312421256411649389383144663811097902328362707967173375058711195515941617519679396223049644475671496878329593114162706082289547779351386656772958661091733214630480, 78323979259865859909103376554252046767681264792743314912259697182589664022777813037438506469538339362228388314840195908687575187567799348109381889760603157514365528331044389042, 106570461716944468083585252318131309379802095897171493979146587517828454976509816808943749517132468788625209001013842411791558767903055803675928497893720327589046449980667349182, 55508461296500898258159865995356400530492760246510176206107975914154513505727373005674434177011064914585756207262671530290371034773876437601917300095340663350137928616113116288, 64322108050214376112069078599849346418632131707105577393518872093572351642819967555209030296409864675399974022830537207344690644612565311667056385951267274763121014274746034443, 104317900158377676815535877932454519209413398078843755400184263757193802019432273539010133955892762379928676276851495992666115480709591607049516726046922256275485764195532554734, 31814322516327343260829143744489752976987935348231807594718765363152845681608549840916706146154339630940253345524904567383925584599817166048845092689579008817458508572346784879, 80072681072521280423617036599534857045045012533740142984422735564026341871786487366319832741041429520325977505025074695417819648407771561993795682946035732554244060639240655667, 1044847222548976553999765330048861760288801454954189673325307124891562131173855792392060824866032812898495888294377972329644661586579829047199426626462963702344314348501872461, 12642249518119928418905879873991809442432051518373932717903433095686095214400266500143207478501648903447800057032639063873790790205001253038873817598687252202300426960294083347, 18148613286575086003889545849494232067260155459504681959252569974030583234025061758352692886189354072314281762821721897860731711031827110437096537386957010512826708808504184620, 88812086042124639639083695692716757535693700874540410537497129639140280787388496131539501679888326834126343131140223689014100581903895738479352626338041868263808511122642589853, 21696786353688593961242017984919492291728334668914459665987667872188910133717178570583063442652054962042789351752666989061409839128388871125551977209411826401337528220918324896, 115920075125422984003790165298150411698615103609332485769281319005211904034433725613997010457693558182977815970740386960695664612280535628482241923793479068464600726570988036521, 91039103289078569854806253849857717431988514179791112005337343951243305418660022230887592662627033540114601007560101071496292543235002163192213039078964219330697081118749902127, 125205444298411515771400053012778216608408507956624044187792540834738859810518173095635604740455669516033914493063874171534695312791923777444629492662017594934515342527810819192, 50868751949004586487383130360061662507169708942481972667878863239687740096701346697844652744877868131827693760987223384420842798286775835943006920334254806690313725786435757645, 46221169162602538119210147842149452416101341773343196030296438778935896064818189260366329836117279828091775779446762082651374195027138943797438598535887563438068582370448784381, 13090954968534268807724204477555862993269090898604453605020930504076224553367849616349288548466040073683418483008311499279441515753806963494253371602313090175659706214268918947, 53600764609316975762093353138682806851166053167802471648214346277883445517133211569330877112345698802373446838267936443331909388702023373122200428417371038377486128796215805480, 8771793957048354684701152893506356438900044809632123366665561712340511732994939990899187493884831063102351569312437450568094232307371260900453426966119118479930121293807682110, 52842788541066655646585035275568245067310748992163795337721082660222954619301376939015446465495397213209396706062517089672337332825413464147093698594589910373886299135669442079, 41018872001627420686822655571084198661022793799421129661726361085114492391987757422499049522843209804065693997726673973562826774297113951791770896727921872941487241004621087711, 80772346689935170808227669865877777525078993455534392460417075465637635656893374101494841538363496892053569579704580038232738243910589357459185168440170970292453665867549905341, 49129308046678698504616910853661478452078875419228598058670986694398881115461315099808924561151408867262402226608173269271285011532193492402741719336925582287231151604662342359, 107429137111531559704580741748267527337716862329141426020304558127353210979424630135728211648111800823268757598290188921875096568125965884916829791304769758843277408549633832391, 22484130889419996696068273935064663724063237573245799667747752438442978690944204424842209098363382623821164489263074862813853803596397366257277715358748801110514880492484722030, 1648486741308521831734372842368538135383629786507415451294934415001936030675856880278043115830108715853695724597434971255060606118238808727342966581330491158251549841977457385, 113235194660027969284458910356333427976057936069780125394801872933265725009417016243904632769844229178049821688467903508301250193832560811669645371198877973587561250308991820184, 89618572662680520348913819955209941730029226683819833591028519875142782852629793226099629481679583230169882734108036567948686285111853227932268839417343703088471831441250317983, 18014330477439189719215469670336628501343294298413794653115233217192961987526007886291696423202237342997996218755650797512903500781882130489772516948993684048167466785683689387, 13522640254727292251371843660497494751693994731383586757946058270885831805577798884503422907893560966670662857710276427733099579435940174285175737742549067086603038149557086741, 111337025777919243320665628165957482955677761901284162412530197962033241131993865909137178421001923339770727932385767290223407698446833747403130891954120789613653361774216524807, 24177434821577709083876508525236534475122205608625314160564572732075535781072146147029117764075775310769281765635275111703166620194924352064435946859553771130485383564589444996, 98059449754368707741997649478722893490962858752631918344993285315977202179838829477847344912821573583780912954094401233385711524647391306666770736354417676233042449822999111366, 105620511422068053984469337764314657380981081713363193832644608239800662249454061367187983030990894084071651606150955737364572478434461885140630139953702187977479932945427060847, 122869876721029564920489980349806899375424032472459617995035474138764730530405612031991688434622282796010891638052978332699596921067889781262202613988690377975731853491147883784, 13469239190359826366621274838562530928541757154751762853165324423042962828998378924739508372196250786462248731430673951329698963659799278788326364671832459359156620125907024389, 688101420700005389842567709459011984181158700803324163516380291394193435915738605992392628296609297896235485748127721952252213830208304355697687124306704846959497585318847082, 86818165525716539327295625793911399769561713410368516189179746174656740674617835779005641826750261316953248721794605043447048919733192528084353288063609032018506420111113295169, 125042225006000141381562390721307755202569162671475192606364159865167987501836528111804291618759108197918613969386807129608846112242929219127730570645329814819600158803496989759, 96418126598626283586021643460516210516940748309759125881991048071237218445327029415348630153305305729634261538167629677722299435679405485105319633856431512474487008330922634578, 64301423399582356935224032025700834736311420778782017247611788463561897527646984702773346218506312104568908793457946599329548235411421377765714265774499724431391117784557418342, 63072563988534217568910785022704101569423186408588743563289969128850915395474776469864595492607042734417149647240381250999448743634340368536079555667268757099969131637755671046, 124601966388748437392941425075303346503957315721948098539944847633970022268766814831531140051738579555433462124266489798567860221251365037543379986400856735499873465882655117125, 87406668459282730320632142032528290437598158996553409265506191567264405265008626428352961304371851882007692433610075993925981919124451091511027858772466827999688419659118464878, 56126683721532498753149885694064529414568820337790855462910468047137345305919200770440228268656340575438869628310463636540892079085623616015426720696924331158464734514593097082, 35698562650397618156479518155012892096625052408149848097499594686707954097935790503994365397164867245154067132216915653560208291518128637726670403842185198270307088957807134265, 88812069590794114977546849931181816651590999845239618417541918393564983319141251646508108123268578921706109660274551929600209796320621652802327844472790954276380466248154580679, 7916188026665423375641103404483199344324895216654847750940030660962147512937153971657536284607783974959370668382848054535528226388113744800350653535941800760168384776629835896, 25222981826527232035433128960580707607205300075393276695830622885508221197284123914949544695740637154821478932572830276771312597371192941095531331335750896445241707078313678862, 59129694686820282465916731958097748025731413642644869763044018550960303606997040623821657889036292871509649224134528481000482914462971591740922142796150557584088741335961292275, 58856098762040241502157036006434149829273387507503308504904000961709427593434621700483216411450134963086405516833600317654435050086366870760573547735222186510649843528143780999, 40025059809197553130078779480914876056053558735109897535311654577705608400728257772327154574132307019143585878225894906617644461039124633740985002822080366168732155335737424770, 86867222938012340887144553047761871179636199373671207720812187572828588703800010323321218190269522602173748829341553521626646846748768362142722812526166058097258085113779875799, 53109825786917843782450117305908768171688222648906970068291658898369147979660264243499534193904964448204809458404016777217912533181657975126528106270970236040548654351650427753, 100814470945369600336022815645037014965848069947272891142491493188072307398967352683905681241107539084125044808266805853682850153882198296194878752940582712301696034948904937716, 85135744818647646328334585267132945100861677168336303688570608392915262516750308439731724817019372556778084071962606085930047013150869246338256548232964448554679238349746670931, 69299600992281443994943104602499956910018612781924290826626930826474459397473924878701775876683818335622751872414142259466265736172044729943030279730978547104678748781813743864, 8413355360661865566931868344014093006052985461460555780888525954174208109672543731209778953602685138853563049786580238396351538119694588694199464434276876379611400309977971776, 12334816833977851502056158597503722774108013098764337207291246667695194631881565731592376491689233375937336166153509511359700998614983052676760040540914493832381288004170425690, 99474498343636792552768980553975416352619726095468878262835616397050252172670084279832327724864458167085288065612302619459218672724926301907696715011344221101270242000306767182, 73708170476506233085585375748177528109615226397665874061653166732452137716716380844583028803188766673525042375302225318541179579636969486450384304017576433499143262319071968455, 15782691621485890758156860671952265395444015925013090328932744441245801444462197321691818930241388989577424336606339596581919878108051748081060472518284386064987085208528068127, 77160845428075041886983968696035367122050003301227302251912338443214454833443968239881478381116429611734643459389245245710483842901071312106361426618401389660356295708170975932, 6093025042937922286141505662084542994838842145808134884861988490080556305723352736542112535700238653219592216878995148531462896540274216326225685514937992296731718540477460378, 63731816718243062939310303381750822421073837542852623701732279371732457128251456603526179431088205491007431870952775138397377745436592005717177304613825705130156221971505705552, 28771435705120484540391650119088067511812077303381727927591716130383773831573768211177862449384412609763650954798804407025799672428239574539099524396822501794441343205473085335, 113666176019207277182611873753368062362260095728576811081780715681138056350014838140684802170651092894652267959521271912830322496560726834718904010356754333681629381908700213574, 2164943000627225218691419496924445248126100564051157197229166218371106223475149053579129283802961494617627561729637461952886143691627580115056336931540901122488474963081024375, 121865864064131020368244463940366592640685132723182049690378691328696510101616600330701358485652247679856278920552962884341872833398103951050044348360940691503734619739645141655, 113902901446161297622141310467689348920217115095071760482142880714636319790770298645991152690262977873894115303938927363741736213839986460629356088650940514176019996067005957164, 58613796267975193215372541067094853945830989266471515647394260715457617981763191650298106998140063328369499457913801316823424771960438757262783180533105543522507086321980278231, 74914299708421482353786250378037986408922774400051988368890366171350500277981103045575883668422802088498987374498708281582117675847823667910276878289209443672311671769867940375, 14638402784691157328371137671085534960264170591306032288426549411041165621234697915312952381171380542681703850797605710142864776743772628384750351836982493021979851779599155817, 83325395385976679153772338356147763788778897263783577571812701388103356480299824152222726195208833141880639282344482377360720965321118053272162594964672903755579760196308786594, 61098829097762929246160066201353356552987743633638500047175121289546925300269788703008390345432885317766909912849557126576934176623092956685758514863046791698535611818337033301, 63707550018574117296850749255965682560987337192363293481092714356901478410167291536921768301762755291691943569395176142110784585372875672807985836483602174107825218287728289419, 89635197741866940539907734848727804017757094093329501610709448963701939146140240783820393280146726156189217761712818188744301804801622460655879568290726898703209334392994909386, 89951926259736466935063237065485147049713578127857722767680925715718190199555381233120325112224210780544167610152983206220033011663497529648020773052714297109137271702126061037, 21027762167125151308553078677401489142140384342222382994937464678338007168214830843572967330366784512821563675674064701902183315392323969729477507866712424881619374963155608478, 105218477405883333093237372935127575152005793475703662860889098670484835314810910029137330708120210160007333838185114810056871065460338258977465015782730288851323762815523067275, 46567383832839955214755128594667135956844924778870530017882202230741585938320355107840117087262124776097252840274555891781469986845308523730950605763261377616170795842960404410, 94163300438416162660676670127941293230594297883843605305440419360718968073455007879673402960239418987218492349667843796477705684889814955459699304541588460220307785730888472455], [5019674643939717124803509659374215082224398136620535542852558325724141922275822657807282784934937223819497463556376993050186936758037611845794608725912007630296883959181532661, 105419166555849853263228955260093645304596182847061133945201996361500957800986951446204496007553168392390922924315771783985522287887253013545065974925256805996412060240895933345, 42659024742402356352379401276887104503704264172571604647389909388614998283249100849434471857233315791557463835853049395185400343165620889947589149115227565745783271259654792209, 118721012467288364948868682699231476540338030675286162414895413180831023122583473170971325959433440122014670520476591080030353594167122626597830497419138914512823996096514345965, 54643876278479369964660809278106942232768410407096593434229436488925923690195324529791496503311311433796833815289034739434144253771172658929703998728246937924357130556003470708, 101309495676445528782375711038851972073461014033311994544477915839071248185933598684669504412790080858250871717880292963829441176308346227899152179902281202993236933881529798809, 39550367763010627557762809712963520309606689997806293486388122139907966716752459316333849523598804661257003305627089961232096575037606408210692198858891301992996661786956924973, 28567852163717851346355057646061904435282688243344948941203481845056597513068129582909040010010540308077877381839182129768771310350866058979542918182687656492660862934860429026, 66736321128890684874895497505396714016211093310281660913981135177588550310998558246176799555619777565669455476590427466382592723739383512548529867119445683392095356520713315095, 119175903995561842729999654566902937784592759479447737018993398521381373348620451745756356621169355962502894988765421135135867437504621333499303275101500128745195548990284364786, 85621195356385102694284887017903408544246814150379508293643438693205275551701626299402027009030600857656843566956880452295021274127835614635778167128652902225261528928125566272, 124312516859926492670570480324731339119792432252863134266598328339030908857696057680353649075648444372544117635499004663061516981410160212963524403951906664831334908467395509195, 66616734215223248099614888320538062311135355947371189217376822787008284969087300596067288917473197446337235961484108405398587916856361243140639663748475720163609250120713116920, 125724990862165759145382679731687438087287894022979454879581854651001281202615934254033389489429824194407567831493840709185297789783661948585525853206576313197262446604956069469, 108526433097003632505012300117212132349107577800378226620401734076112796247153679549489010833760622836318105550394635738433501566495323436210049384617296513637390496883046643234, 114964727270729940926632544506273777813002109093695389409366163184569043658152217750015745871814173438337905259838325895555792066611328093390178791362917647118677151022773549443, 894743843690632569695981059455765659810598213249431586385973705702992065747011254211231704686729167604908891010343005796037386128509718044344648451119511015981484267731481915, 79643271142787153792163720128214110772897837113816909056141687305108215117996198963709511249088855834237847524776625492956506065833609131377936891684848040734965052605359673538, 63495442234828414071543192761690987447915584956470807673117889954934961158115073015606085216409669727255938596603604743548398099279519343039636280127546799893567841515207836348, 1428478165836456982068262282134443885505520948998996392839541315497717855256529323006642829773848544380781772449119794568152791413952889695994322573144248173575882853776645539, 2375266530833292157868955912663280006912709575234573320400333980763575032967729554403686019118595292127975775709998553491902925549090915178936102014153648002623508463775858873, 72400548983054126479143666516278976641140600245581053778980250784103676109921277932082058739632326895015345025126327557326154244157928743295756720075666184144149812465407575057, 77238770206274488622666034688866190653345837147994738349943584611763445817841809352221442381511856301080070976077183288416705755731192736094661718216764121057443928426180843052, 66168653632026227720240056816412377067657909660284409736202391470078743063962904361630768732606695626062380714050738784802962209254611029494681548371739236942496814348715071071, 46687232279448979483169198890887613813824371587153786421577218159791825737681236186497535106822833472385551097471437928622716434602222800771726882915926394590620249150379179861, 105607081002117637832437315640389259815895212899604551578466411966560064934834947330935924818312673720939756341224755769428783389518452515669543859878962142077473030590933785670, 56044373459803237050038253496033823572367028743375531178095091151270797427483991484799701050239332909942441836095297064997663248995718393501867481319587878095557685946223942936, 16453805729985608183104279825453292248579009366457395158011740458202494345641353855445539459496311640264701041131785481309570216240562798353125085613118895146645032779194015168, 79179400751586689269540162735109702758808676211411317018347681422159982733516577322905720007654115199218989685155631596079054428370337941368943225814355821500405910723136923864, 107349065036119922990486424289828621366250723975281442063059661894644020433408152263362056945933219032335535429449513011450073748171911092805390670344074387574847469057228685204, 96676433191013864026308521934196360775642837006015747479115951301923085991335570049665261145362726911400085440696860989529601657386063522050122155180882363786767468012072884483, 68008077978362701561979940369405303817410497064892405403295008479753692205220146384163897314531245569114265847334238079795148600610768406474440684355696416802206449341272605862, 95199974568738017331636149662506359893534523898160615988365271220349232945734619369335336064663676904640877179046273296362833242061915809668316342364260804750482928938341694476, 113389772908002338872446526451566762575090847624761109288158087998529781473223655597049612930961963687885931197764201265351580208964820306848407231606929171814646419603616806831, 122030208430825782220360409041471196118890292016244912267134668369717623367801906632078434111435123994328260484916796892049315170832283819164530610477331860615836960875800127998, 37126491293705701156989909945965278581321561648360722590672936974729135245976425081769890444765539168197117167515539260259272822165779629130553815990946672551389465726863167109, 2875602186994829786556007826680389866807791090519403816151923752718746693935315171357098823535877443427546451974090201498111519823077275111056400212179501747474841871826046289, 64429700174181973261588600661482568004461514568536836032690782822764308686092817227124480322014599958568087750803749213626772190585994364110705442037120626310139367340507095791, 81523804481090306044459772506633973364622504674839461404316486973471042171019851486149172897823351305908758626211836054371381259367906998293041994434117840482126888136336079495, 29463472459262756605651574317207848889203133659189155394639809050243657181164230693236961315212214614969951274042405682237381572640127376681159276829632579447916771919611279435, 92798796925024611458523470931824913837401299453560784708537174408327704949905153902153021570006024823775293021352495455402294775869087514362512347268717984184575796141606635513, 74490642890322170315689987501048232618445322886323530035504026310674009706432119803000199061027236179436011973392672679409224378329764659787464562647245177727733304071902293557, 66885352025833747234008865778844422366258589398952425230902079641926528422325461887071392631245150880477863831292255114397026881769072247469632441487552749098550782807028392621, 39107839832290981219836207569520668957100050722828109503691761192506882948945406742403517061924006497802497843091595640736449139428921871054554597622425493121714039448353331104, 51872253198121959946390344474837144339938192534373463489627853129384022305220278554725286729986270287852346311695839457493848939014560672890102179042846833735588410875125381030, 91231695069787850392936072906733756118586637001746160599444307999028693029927015480361206444648483281924366732598184181432968610438964366066561784408269304492092333466854052037, 4519485818595035175930506702494317344715317346381147328149063827886215740529358588923570887127906103079144629537171364639156332734848714132780877718884690513407074784081942642, 25855498996411272892835453272063918582282282005703419601901087421655010873272618839987100446060867304996171899855551584036321141168940908107958168745830844675670881637730813384, 113158222497350334505840546172048742376800044745514218468775321859869847244173039274973404267331159924347367578560385786588381670075726801914135064386364992149842346097108304842, 58462579488937032321786559628909864262410305247900697804619160690765355789301975576904972536132703290209175649225169687383962048141857258107155061391195883960160368131846889229, 87022242604151039841484329469478849867801038047914216919434505795039722880263890000433450629891914644692176217155351878849439834573978782351242493441851466515039954181451154900, 76305675679524520596969524278508564002510633796421216918599153849394536640006803336014521938226901234551688083666710696125455413442136712784200599858744907676375300421352856987, 115694642263194206746104596893416153045460603420760800044590094351935715434174223590786991732210830094237626119953258081598916367636828662151300439159648093018411149456545337092, 28368931966664040422785295753412236485386494364845936782538079024656119011412695454137749126900876363485261859103531774174069945750249323985846104086980185537389633797761670645, 36124852699344942018789574382549119426563946470658148471404417909639940138965647934175288985398139298043032112686068943811371619512249159064066388722112358813207199554140221844, 38196292733726241410376567124991906978288726889815968280302949033730965635131064689485326647460073304481314113428971559106678933936067568610512751036154184910230552504399486160, 18264853054779817139814181654997368818149129092480187504182146525685731864336443814707878446419209215930213610267949829746410903508726194529197693760869759278902410635041064624, 18800543299606948770104461348668449318594152899043788394656631850689925091986711689101656898898586399996319867734446285233682212742370523531003087723884474082208511821579269328, 4992599571558882998246888846120122379944536242450086958058665205359940317408629016400672705445174780817597085468145248651195478358815491139380120587750916149318121693646446743, 7695195253727485104266368539846282363721331627757055186257118484823098868387207203526275479745846688988254005704320485225335646347781112518921593914635464234192208902702962665, 122102675834715603558703506889227091088338934084733255435289122592591417039906981761149979163542075894648432387466989691899183696245993853808224389903424401719367276155439288566, 68084497169026462391698435296155050329798528374981600465070848986645300771992213615639384340242546498336278583275951186128832217717767537314041373641894214670669469254359365882, 28110753384008890650668003534717884726152318179507461333898430408793009434677630906666559064793317984624519786147433924910495283757644140850475939690505040514451070100427100307, 100251808956617564247555243567840904784636801199993362936201687603398799555526298356950552207539857603590492790199702140906078008178469891181702607075131927117196602537937232744, 42407623562589631578258882645904963532611461730986394342563221408641524679892354946887589945997450472809601654991974917555620338109413259090739939043228041188103839357686089754, 43250517617668750872113364921661404410659192845580758450116656284038550855145368374939055839973415470436662391924922225272020705570509305224614752884148708654842527637668759232, 99065508163313021664341332166742149104024311944163624568862017751997318013551432334850530118883778755942855325317835719548956568795114479601322967262754146101902505217860151294, 67402641469361692077559174397836852811178237313456148857818145782694121610951500758755870589990046077020291024875174893116197081844470037824527390559228333374851402131425416671, 3415869926598472006658605093746216653394497534504517371029330605235251061422280145126916976120507545285905713676093293260591448722858059001807816657509726468143735505034874406, 55570340846684739144417394859581038273183152778613326609409157449944901161738617434423718211107071052890927304583488329185138722381264942173068888354295493512680717859212972370, 100392069487883283782770950916236719429924601971042807720654826144480119777380541315995895654723857020202302665729115978659977228906253509817248923563250581029545607485012775351, 60919859652790221846522164041223958127792579823258815879405621448712625806941081957700173958591247385155266568685988533325564275025017760378804202632265235942256942191899923773, 54365472767644366872472239011538723500743837093288253503303584824227930608445400709075600020960373556129894899702321140688577995717057648048605477219351936575669037669316292472, 46115080009421909830232225311317414118151549059269949446147113443820090959162460402846614823166144848353532358239435859247768510929886337564079024132280442000209104558505302356, 84834278837703530276858630973286781816058766706701928111317469633857646276636635652711528430174092330256706627808044970045635337230889014588167190443205769673118145901165378121, 9415278249997106747838615675415541865579569203176548814936829283129389888000818342824795198506552774085515783728472556567152018222062624793778067825456674780927958524361070269, 99157022189420959007902109098292229416745783397561123040728073917915913313582712582516832890227278043274627846421699916367320230482849404181926025523523699816531378641626617558, 1722756040631116766932441758320651241907447081453271722177292526393849936154213851444186071205980573500260117999997216342638325850838632960659962661706762413730479737494429778, 103161710668792816703326518239115021691913180677343165918482681312660278505388838163817533851418472971102592542640658307334891263142047763094794910392484560965408560256688363246, 85083663909455590647972692086740387209238868109295502789337088057026905259528220605705922884614843066599694007416066223863131001622228005033551176860562641560585536390510034225, 103768937737661539462507685891148735993378525661473366959624512263158423792601886109027110010077089560695360088027861753939211059682945875206255217462476969757478960077190851263, 81408765299722149192805869444694484069152127132583121624161690476568680636054210297284670287137928821928025173672660288085783690579260519986803868904533416106218516199409407022, 57325864518272968773434539827891395835051133653163290978701940506694319256878711229747210775910559600460020879157927385711695513199648487889913070040668112962662579036366021520, 103769658669266774948053180475029686764848151112179822796057300500399601228972001747926561060727909781081776246486168395968737423415164429437926211241434947387196382568533749028, 106322485123968717856020712862032004890176919491173861798795388076144235506913967900443390936695181793278879346758610357737765919057363293930904863463254828996560254211006807590, 125500009920590773960722705534802826832442940211615751854096587593203570865514771546475983896292818024037333004230221394186641113830418385531138657248263392740494379726329915726, 9335734799799883746147004878773532639960676251381176792662626685263890424616121151721873748757024417862179732054172373188651996055984504945996463048373254676840804537616569212, 49784528332734038470697288817906963688801155145130241241763740528066185068006864689302315217766416985034529070449949336944072960899469229735017809277658052617920928560278721972, 57315655284326008281667450516834020290979099374139238497398630016012234587941324473490239816924183618378418132622356509746528102224466984851883329431117413704144211487017604583, 28129926132745940914366044455776028766172713730087850913385626063604782080266784647012491451353334287511678238432579563690549645386858181065407612460244293036994169859800933708, 57078946687129845930758441183834252835954128485029026392723221571320136928942691225403927236927797183879816211559136829291763335097296239813467187044524354630927825195932679474, 55928368378870030655304292604295302950689062572084952586250229512605140973059331817587738899912052811218181945813970328493000783647310387837766045659326551457133411455434933617, 21677593829043439426252468805688519636987219304311686239640184336987486388052982916104029542288603029300376916180481477825156732616214368437567402024496708654010430743358202857, 103612459475469807296011304271128155381987405605215614901831583411216747845539094060770056478077795160510831759100797737894346521681513856254001302447143915390147543478873424198, 89036722470366161623169674288300984270948949524286254283568215867661185231681864395882449896817605585143710170975122472163454557512909957412593409973815035485140890658435430247, 15902092418751007955878592265474818578357133120757217124896593218037761075158253546595762903904457335793379978410304460340432569840786567736059182224060299037072111390308829720, 65871858456495385338061556823725996720473549471606006607997397414376538155077771087880484561599567664460132569288995119020144792549034471897552925924019213954256620860887935013, 64974457823552982545642808759063946355994793544511817581968383208025691208096736243596186941090489319416712950778585327884079438481509557472526017088266218997033620432023657621, 101769233259725610109108806404494068357664950740306057098804461028087430066740580300952141135063639622657560649057739740463133463581725573347118622532608685096193675026198002766, 62943809207773544151212820594258281135478963189151082070814218609015051524854642718947377782578071033510338173244562285846157611541713123380069080114079935759912025321357352781, 113770387485025383030974863878177878821297595756481114042918047393181130307985981841650663380502634273032724710147380337079009575468290558211382990409363338889911011334129086477, 8209511397914649524562823243714857297396191215738909137424018994218080788544731639280025660600151599601286822913345784366123397072832961491192751424753265033208932737040957098, 115051077894896103407677325890768725652950235747993983996280959664196649372421271832427244971781248336134064651563051298086311478173911095452979288281081852159737992166546194239, 29130409853143907862136599659592895282288166248054656725058415454500538049259731576078698163733795613170082237289418661871284374104919894702160251626004959414733863397179231172, 76321934052870210377366244430331426236066645744599407006405206119160632195637591089684330075210501009815690844667642681838412670814530018787556397091576714713526210486137750997, 121295628699466796106195775793549702572704128227453164741276537631043387505378869240686583353485651662044485881732476757551322164393303305220752525438700229915092974153954591019, 5435210526340909735138638286376438402789949404884401063500405164453242690282960948282068646324366694297487218798707668212584023559202638757617056799043739067397985541610111124, 124319858515691646450169334625253493952704308510203946506534521101716551179745442325827183263358345778746410653055756455940988742455133317523397440639159552366048986492277820452, 107051445290443158888197645498403749858633575519327214178549492507404667630994832617725015073105735195334192980430365195802182179401141786742461857642813387854418458300214518088, 84395684620934488561849342252459643257476078710839573911465982507225729246430268444836884630374754569781282331872863593334463785078658313594346023533835693480572809962104730616, 63421858579585864880125416757653125170037375231892534350841126613816258612318616121670009904293312136124744059678260499557129194489254020441718537616438424497532824967134501318, 119175961208726839735595582166113958010096598985743892691458307872165678141780689101169740743491047884903798460555399735764476661748931400713708065830336639328228885348591487496, 54925477611543550852408585771075712299669744358001555276386378486103079035554121782417244848336443189787343259455069205958946291483608812635617311877685832582496151255101593431, 41910628185533160204094817048234698294696467598762152516687315523374598022394699649910493710683773836799789432770986488405123216355630937770055625218528627444376827161061716732, 18859424702344548197924008462789275861417999966628435951838650416344443364668135077364953601870798091685574094836266978819291274341399749286293960789644431338335994282221529743, 24816160727083306796445998527535205132349832909580367449939499274832318905442458221207088939650354546750103916867984560614187038014419960112820973756877971881896665614214353822, 3965520674754207705453463133166613058519033802090354646745618301840855197416254702132355568272835974211064647205847096729511255055134820888420721767513183470539009876970793283, 93101557415986724382884170035057379670645206187067359720968631780900428893011651039061943293026372868818322987911200586598794105007685163843213225833611677213613607368155522488, 79467355480830984462897739008505169232228498670238766412518329711039259450300096822398307763214666639871345185055748615687996989553779096269183743089081633381754491956218743721, 109187345660697297925543756603515269513851443892539264078665570795718535812481055597022205417527475299210461868343668873801721020306073974202559768662554693024013166779782279883, 95706450327267536325889565585192285043420297658135120633441304515953594143968193891402591576718549668993337773774794336815103626126795509327199608106791504001520463244057514246, 95559379799385284908852346910839648656052927457798939806691034761237832095358742544928489577709177476712253672683297668898227200136278114259577726096541775326172113924633723111, 66126086003107293457151932452990321069933048649911912418706600108061566580893161887023146703435197652631459094362892046465860046975046627316500855780233952835449559924623755418, 16821114180147040127306432851030793768635415729039551177200468696278053226324718935708185427242563118348222287219768746100907258323222042113987684781411931872870104824932454292, 63751386831461604577527383341382531263666267805111044524486882789435579225101239170418401519037867066060109427488344738197999273400693488885640332813056926067004367305018782005, 14619042777731361151736315929382562289671927888193894292267873980590154082283441825028109912217628258391714912986756429380864350466140140902650490208670663161252513412925198572, 121786630099068878849085070433834699275448283470697638206447680967138423780343889448652084795839131863228991530547569968278617165384568817961413334819637852216564231211493407460, 88989543320640732527165785943396695305741844776736650392924717683073455519683166964335707718197244536085014671731161227849058696337312634929222561939570160927417886620612631294, 81167954833747442622779958699119133515888489479505117593171785493367030281745514333395531276590917241330739145277548186213033820682380759629336458909639826255810432216643410134, 13483061962927534945034128721076708175751365749804103728236820456632437384938172612014612506567072396113674491590426602570204634665677035726693375814808529346499379919553587046, 44756885311015826196761403331782151075030579929948675705337936503847479392669822375771321050783649639518439280462172491680777253576608157527283363563542983932045474162912025621, 24939585083529089935507467797044832859696667436608120777114649374625018248163289334313695888284660575719426747914770940528014227912332412831402789068836143842379698030394704233, 115858254756136757384184058315713519040965460670367579069704002437812662800557197296932516291465442382660301216051773916576888321461007223406663773276625051959609576662036532622, 97401919581856368636842152841253097954580574600902701660601775538195249790349228055886853450046693161640417234342900942992564227974298169083030593916768151137989227122773896489, 7782489111477326836686502089577312516764326156245412965223242518214207665912234555823418308051157150083174884149663746567516323596035842312703727607158289297368329981649819562, 49632316030098665580119133549468395467677116981863055682836309731083592990877597281067538575551285759378258413246346192705639823611011077401540278201519778395879815210243599321, 22655071062956463396331622095392490642715771051109385444679972679468589678743618998455793284763984437407233072221317488606904358476839331939237673003149584142052934587226019828, 117771572801770461113433488306169583951002472279458516399731722502455623369344434558574058466860438430491695838835409759986649279845284426436512045073635787904030517621759916428, 18853685516681599649504117234420805409012010323029635305514317048165361843363054304142333092814302541036200741600107309029679735964127156412701611669207785879158206904118606744, 58419579204028203446576165954349498696499508181209273979756161617012127503344751049052124031108472594028505274479418084874100241539023359427910690528510503585173657616104504617, 97944277892014276596600691708140445027264108679077520952016072176258586024652149264670557983120358613991715822190146744446921489740615378329856983876558129474337946620689272738, 50669919691238516014966552174524443257331046308069826826898598217343743228073740889809168716815910682134167376225053267480658488779586302013402233235590684006187840827846913049, 72928791892605399880298335307455355497658773338948895819570785022747179257458751546986829784050582579209762872258744793528349433901168211097459288995990775559769058546365867713, 48383721784295887120393323937541468199284707753928238581114756821347828730619053573807049959020252557413871002544397969394685636518831510836323599108450362587256242848625082735, 75826129528247274396798353869419169568837883801523247587119075655412795361761771448322832846735948422702330216993373353014239711142375072661510971259334189628222879199636085958, 111142064053209250798043164675556873089958628179521179319863238734888915697893953412231109019975946680562233219855727477844636780216771627245408739015759640829478741891984273487, 96074959010050692264615540370654381332916277211928072042522014266378771222807933707387601555634906531224530479607255476214736219457712988863649059325275256317504639031483311263, 9562502294628718823356740911715681687375502524007063774026569450798933605787430117455734621110684126214137560415737492195109946142433816818577149920777360407716975491111656450, 94558460147669320602324628658745783963845288557089411713190620636818290377950553832050430928935886334043141993651431800602780851529552538095585270846051344224150512740833869292, 103408568815263472522833828481171637465548462812085414755087311712671584126692889862046386463422969514181528432312361985979511806576427048374680041875220510883849530331413674721], [7479378792512282710091492872432056995795066006709516878939615370158232536533917701300078966744034122820088527222438305739462986289086791015946056065306380378499395606490644442, 38567494092256017283732527100658079473195719403127985172526347903111912706953144558838923060128998287432059606371508383337415904399753166931281713186018260286223173037153580754, 14294201230783965186840293675836154361322197027397162929939365961483547468545586087006266306884493355717775037353656200666876880611148310978276491762464974474904094808802182910, 70494054161392283915369639200074251932321057072888532929710301659865155294760596908481695467449363746304566450834393156231956962420696699422958229228802006053044494560521111163, 74404444332546202085291884663367149758155120255435841774568574670792994547840480674758775518723940656637621798970401046192850434570295355240541553786129739807347640132191768801, 29214818469915183674973570874365729397833087666461773536173967501917670749038108957110652285493938968255520655410534630068813413829910482454646368426105778289395283070744419391, 88613218413742075200203203749185387506048459348676260847367616724445009654400495088531229729998541096742972442017930587255298895245620140864193134680693054459850605267869659593, 49007468808650241064759573781214720594276725940154598035782765303334761391519952041633106594818401509204096025698831106657943470330483921839319027999280477403173920016100537073, 105937707581780517847732049990613083127479457145343168368839796309634111783179491681280406279739923742692375665351271564828156088289077158080597268891069751910967329526673355423, 96876525927411640295866366249125566840384086390585057206638431444788325958294753109084234396745743619907888067991008765506398016194514014233863164555747873037376774779606175461, 111669190799760335644772377494232990450511018441619783706714199862353350655176249480677491449659801783169435756081528485372690874835824910224178548650641333041162919250634670354, 82743839043652309183973033450397373787745595247007582366683744558099116228204660017531516056838788955619196355485171330125018785178999149181950363429338656782323367039071134840, 64764090468201081387664746694859845213470150180467844183704213236488018259557143220975204879640010779791525204652411596297254514386757048942930420684687233474548699207064445676, 114933190113524404016520098627602758138473825658774273204838717181384796221734554350530215528747023678315923498907966437008946234092715280658502582660687876669610826368225248255, 68559552017430312253749902435144309278390822615661991477547664041520461906628778662122622700701371245956488011062216684366469513229995427506067148188917903705363269300421238833, 54324250883524435787960456224811487706184773167177324928430499661185654368289872848433933056439338184769591165700421413168249554200609924794679201232400273281524798889373638759, 88472427911696835507876272069293773160208159353281202834478307272696869998234902755441967245362016562309131397760219714044929687222855609655521635900645818354253099910373893924, 14442469087623103366484880369269260411142308067628403293815774240470882645654666472809477411182910573095153263410562004710769500512568962761080841011924574217061469315819699136, 8533339793707750061082638537855926432176554634138039512375431361723041549594139107752069850326432909133309931784642357559437799267774450605830948943261215197855841498570386760, 60473567075613301910902080354685837249681215885478702555395162171803706356220510933952074998820341454869065443293832762522331967275030639821773562362949274505003064574469105340, 91899581643481661437150907103126014088487414942234704426748369634505508382675194656585458883712828341968449536015320822147807979119394501502196268543529798477509504134342933671, 92941775993256407719338815434194360917307758297875288918817940477940513040275383667177745039341521392416764447447917215691431313719952121427232675723383851225035921610466167408, 36544061442237535304926455769299974851701130981767150117404102460822037112177857412695454091875434346250247295327419370205036532721090164716836914290792945027724867286861079299, 18428804799337552836594189402880200389087220573199577874686811710692256216333904230126580798597164030422435283875780375585538275020688699366155059015291853539757914085887119669, 42060573983789946642124971197588785161998784597616704436337092897779050091927149482637403076160354609772971653276299198368599287028108131919682509823054398487623426224575316231, 94868172754484614110981759093830500828295000656854700958721617281214671949282638852713539523290997310267845829273073213338775503084452865620617948031045138104096496562345114741, 33904357755970594212668514236505335268379671599246166637391434193481131775305817025435567997581268997930877786967620946091448522752959802981029368868657022789511734005199690035, 2844465042877316403616656937581278874473116921287811236219411330529487851247851366117564679404653227310622586711750573074475203548973085864036380252650944017631888275405341348, 118447384395328727275915354007906060201459294698944537252181877087955063749179786911618833987397862833886328071889261107016536899847873416533510781191599106132038557604884241864, 91601968488645116675986945165223101967114762717059659459886448634024174292487593309244649869292754372363168714601994758722279654329287664740267058213890788957969616750916338926, 25095855948699560062562899168051000015883432804910028710624471090305796055015578127942950101651894618012594055651652772739023122117469137979022495775867309798658810526075532677, 93368318458214590834609384984578954713561277959476696572734809165033006402036459890903693360720347954022184585074667824382020854165449049466376771044321948791128843828616905459, 56506419408572501025526938323893426141345375902387123138301099132632413396420901008050817216085654364256401816955921994980475521463961380810966877498251365782603480707529248984, 44929177628210884402102606478808837725260861537241330217544642964167124201508448456048538221581853798317752132351053952569542332434927170357678064865348272026118836396876737503, 22475999632581804365825388975186223351446490729580920366267786647482976165351922745884133741979725814567845258158242211524919037196192361593509334062785320494184605962799817896, 52196009707514540043884090410947761902611827307099546315154848698086659813333492262420418887456781824464801313962802046991179181803329771162172462389085055978350553822418337311, 31403933944627698242091570869747459334336219577942877172327533699738603827027477083732591840344395954964087916124386368594857273620526453925548456549614869881358633055125691537, 51519412885015893876616273597588125469129949285043052915020123392589751850627465837369148027604209073461353896896277598523844659574016856244941732855110888590405190063981923503, 89454257975472977423961731166774589006507257806812895022276310234441209428567466438772664906430411107703323670267530073240394472250477810854980554106244609743463058202080067603, 114786611821139438399731574283241617361104879522667459224531957822139418272177459522778257215811217564451181082355515423983896621757274444913690235638170292632192948009186237022, 91792374324851358995883776807512839034314847584234780380662745204800287768072779529291035183668375038829762146769124460606333584395701755047660288078365710268326287080818724205, 119059761462057702648453143735127179405893802448222725789089101604009497061130694046311781571387046830578738452929561280574009133045562500101886248139429736229097937993608698471, 88043906616803327593883686130665089533418095601795509999729754537237727997604945939278595883082661936977697722391754949161693522085087934294902993362692337007649835106042295233, 18645652149359727946490525594122027299872206701673539770311089299809257454810823769165973729701499438891988248951814417049005821361961717344715714615085577573654045256317809166, 97913809636540574139358110229929493725728403656508221206644396649551234811617247446389725035961127058563268175274163377158052796987998301137322461377734839879891064616935250096, 87723407404120950764569674472501733818001564162037421168203400981831193537785960891083356753894063014150039986281693197504026012744532954029880930409817302397088509914283845504, 60279937566969785542737738933327345619211284922055970843485801354961623593510412700570327447532707076911646839824054536403116612007717638022993189905159108956815049458069980065, 94209679835514944780964995312624254350584589863527324363832486689090961737045013125650495406581437204662113872942736509041172219316815665094730344317202484321593117008924757915, 11680243068885209179775585224947162792852423133573635371483874582079985987929291955794621098528997797423777675139854204296511198793214093805948190396102120181687873536208849810, 118147385595526271253530746321755261572486749185955635830329808311772430388562649635046824497513559010890517914857013089017377278052732608996207868236915812224740065137538594783, 28966888056527933345576390329568272845432608221551248444477041202304602511681878045395087743220085162860214843071520550617602829302024172664736125084021649590398538176418302310, 11593726233908651316740673401706055750032104153594086405367932851509015367938022025571376109019250790282557302581046062197170397871996811967130135227945016021716332872360579593, 101646163219051250474167834658985682119485473309698563002149873425341397113649405581825849451735386614475393426547175682809376219630002791907906727217683135983945266372350370838, 16583692731283039316093394789881929371553223951815855715425552555796429961576232749202378270373674556214234198150986417038547618795925415702236594167460331749474574611231492379, 46420345061059327244300742578342750222349513001775282825085200623227594624475081777392998723520064103451873506818536719287323659681148615394986389609868154856339641719324407116, 92171029459012297125143826686982613549210256589973822500330900644837725531765587537833272959066566155387828287938939552100795737167580198017135616986074409133030862718572332862, 21402352641419444170199956822961213568951346080927190508815341278998372816016471497613230792155897797542403781197672751626478902693012403162581769216565774708023836674582763191, 88824619675861729259550776187636143727122220081338612247994816768625062899180621319130649988739130012666656410813303551397241768977460368515250183589833263508645568814247203917, 40850679013387437988305162186252420171553545339425627915627836363192960855742435534770931876304384342109736283581819617711820126852882351379006581226869860617207446891509202772, 35725001553719125015644799169671276833297372383353778772531444626792527109199130830976480707280009766229637350508582364969256240534451322274168822874038206923439433541121881368, 99459076972287432745098147374690842036837157705821997857798780826834458357542616533905399214022147395315538530863557697844843566970009051149725250914299329716068164118893541256, 39530179390470544133587777750424690954749954557363865603535686178838444070307109715650613325660629252004703390195616501183375118283183623235922022598286413053058193312160639053, 16256993799717314581753846127780973211725821175900762113998701913901216914190323628207486266304668616695555726387376608768924336888975078589307266664406015996747026248213081793, 113623237959054926172005479569799325033119039315815734225555313974025823903585624217476593774720299772702421505548662904317177894404044774917206767743930790938873162031833647668, 52257750816802796920771090001672847165379939032958938958423996235350371360225652688848743650327934399659766670979797549013376868793920654053578976919132470753368984160297116105, 78477839302891946182487814568159178172282924428813790446860492909163937171038447800990947038323086735069757200050216153855109429790037601398897576411109628969993357539699964341, 96738501219502690944263115507636297028408054458252766721136906115577271677195212211702523424476598567810783401482830409744177728814806093877153378869402998523448556075788627236, 111215979646189336727953157621871699740640366257556633334614239401245098548482674500414758558999099611384831632761408914280094646979015120303570998927133017460639018110061448755, 51615962057513032979844948016501999672808874878319833762600166847943424150949057362852355565863315031246645254920739006904630801300925121719107973593902405218130929694087272176, 94869266320899156343821512429283192080758771502285683706290816487765500301853899753114725534405532922235028587790622981091947600223939251637638560986273862402636682176126693465, 116485072747279489165177644707425566223682405879909698431104494317930074261210931466037865082665995792735100537176675870441366153955079366117719042661922036276003189277039881523, 93893237266954596341533490204717049801696106343295433589499937600059696114901764613290490088414477433846001186641900709803429917513778944066699954974759847908653333682506670452, 38370696439934072886191265767578143717816147502176585670881066263213080983904071157224013521837547251821890649068150532969334084958017233779993871681677105564714639024226997710, 95527336442384423185349378493950751894086746962573195839499741956794326674188340668812285642620826043750669260215133203561727134282802438360749919572584182903625610742483605095, 81442920711901756817879011344116288518457636477501238064453122457208657471299801671811208636917890972589946632128857960298571310168853735408504292293777465941460972793029690710, 87914489507648998147816302655673138771592783463765606575407718466028697960243798912695736116514716210257557836255521906496732465821609621997688029846389604843215305662930073821, 30045372840204955000699705178200856451849131015319628270012547544908642419739733500609151244032543964664190397320125923568452161919548162176000905583628413153642585062797952986, 49611628308190246858446279995048130297709442773106378649531596324204092260223635084135441106190958791025177509195920437936059738049997703836618021365728242321447104200964524231, 56942496522488240453415952931136488057969261891482058893782264391068003692200370653132417991245740094459810315456650525121084261782568617910333234240335847045039077551052646725, 12583005978814807076229846219918683937196299085153832034703741703003301532906708452745679796491864461724376584083123444581464462328884904871908460390821354635553448615142013996, 27347795773023530133377818199171389833722473983741389526787774005247169245888109371929174611739046568344699004621650462958539934092442645060869610128445498855833618134080098441, 51595777145960757718332512727616728822111301332170044323790437596002613432918558748673897517188264430231244345671130842107420054873419095036796306123171397827676012600381383919, 75019307108002362748571964528782520913241983018098351052179119760700052164949509847846538174625596186189012174183238532164656252813462031249591030287877921188308093430259332855, 37082163517826264653552269970866544264859769972888040647372150001574332885913371778217421639104581448554282522878965387253065016448468761435832327788790679065878655719190143923, 52372515838133245877322005188140589924823511654649782131133311722213040903990315831824993066060649717426696323718038674202683626278645496414715347755299510176139395564904070028, 85856007274176333095756199324552560510069295645365137462177828866538069732435499168635124670966264528484873447034612119976252871796694264655644016414604029461767230393021599628, 108414311621029222551902986951551655197527663256186583902830253971356706479115137659803967749807865226182325067063130520306535236666535835173617031588916299732658549885237854958, 87039190721890524470254416585355061333603710095276499451093615631918169578728913894788509978874807627096159488891740581164162105747403551532135891789654591032203823066781534667, 5578423134672757318625906120097010716292847017421271836531662425171412408093556543993596519437078923069267564837159455468179442116243846262151116031711261749135623816433558482, 58817729816092399895166502125050704862227394472024277664462076774257829572719404481904537931849498110727539894987262550148747294033994773107345374503539222209707428598105501009, 74609336762720382075976057450536212449773817174599178621802453082532147915694893506575920620366637001942843542054656542496730331157146516940875679037938705583616768495219362859, 57753253454496196316563714994369272886812043656707294876406915347977960206136951339299260597175723114745013228706511651886801082958352500663184734502882803423094585337893750928, 119042745366737251185899117683735574761055813617673026638520918186142320810487194960515420528570061995098562078638801966624395695054629399262742597573075300547014035631230645238, 107393351499918873837808697031388908692315266126966985129247304152474905400464183803415124005090478197574685089063820538354464425694226790885272915577167607881169157184934915647, 10093983078489087969239569972061370659311281552670582541717728748639893969508094196436122692504611177758366158920749546887022273412163546921296851368041587690510568016981244012, 82659110687056320985391872058181061484852852076304703316560684290708119927338339944745461017046672466105206140968018125360422938229325198520043457123909805480897508043726410670, 15736346161245047898554312945901499880625837992479472960096095251431840325667254487345034317030189377792284195231328311314649930456174350084096850229479086337720130579862188382, 9288102390062177767239414498392589788508864006757767897037210971530858291716415802022606465645453187605080964818301097794008216932720815204258529389945507783308146129135201429, 201318896705930097091553406561739106924629398697354610211225152973299445385430842080652460053093983293338106637402835788221918953540507041539367651085658933850710733766641017, 63761949067682970897871620556048813123271810359314136531408055263316423213973916735922301188771385025221781888850831581385945547321348688611464656816058494422106803253000542009, 16901152211985464819223309671738068887948052706796079583476486729884830091425009556828751702406822765677221383072357392650817296576788812420332054472081952092236359589438282170, 12879599232769936395425075875444540155461415539343923023535299917685736760919010063110168336242442306597963346213029296012165252296521550203996807791072322626096170956917007173, 17591817012658891477786301531900241362195998573149158655553426698004471613916814917485020323600793527181372970598015207783344727868268165886108591419640996219448113322742859772, 97112621054427854223091999937551271094944293649702048250792346873311564064520195652796550944213330521504224504739786223946283991834648492529683961695268766343410796382346690268, 105099250644958011599070052468361770873233178424502020823323755433762824405929031779255096533451524686147799152702974136577732139590509058225862960279423785586332442762371069234, 112351790069028544354918550740429736981481658773053210729731174555846906748308545981102552035314476867173188521336965105255506396292140240726323392634680372919391029402186869797, 114602312801023076632679756329890469542113177390920739596646439809707557583547133379781758551237309128303373800248004970653643931256651102013070109054984212327725875102048776149, 116747689272698223164333504382216869009568105812170389464163228393218252185727641853927093404772128598151885625752225502474125268601172612144399341457061189254832337006274967360, 30464172690286591685116310529040479268201468919361275546668318250004488557670657197594975005211916516183506773432241179718859689273307229763642095636722658487218573186556681208, 88957561963651246124520761837015801584030128956122110154809750360248703629958860326151103748134241108615390676847557912476084594978966433458536241913836026189705219030260123802, 4705083462704548013260482565773110510302958565938734571286236795910133471982288043260015453265100767188731294089601753687942000966624585353113962160964619997137135936817373322, 114765660924607570694406204453795051873718198084966824185942398382406106612216510781454078804210890576777416652692933463933852301694000174310536212021406588669152405783493193079, 12420275839180782862088114135898008032906576861692855881288515714060928187385810001919145324234951800555970230929304576711202754947314909850262318704728977887154737096760309550, 58228505064486914136845760412423590844458273549507401069793482024520821196956001806239656766094749154026589906238584784414394228405672974421510230021190662603477273066629068898, 32015969594861366592979292388785169853860354941275845517154016110659128840145695535931381655618935261070126387400579597281115212210388254643269566144229803889713218247667756958, 108796723625377367626070347981226121237464013378441594877289564401604594966458590396197536481239531431577786038072491685016319189006329413556234566270651980829389422342937206995, 27721407310367998703177070335200523420976440926565234936371432176973740185674047276172199616869480925971578411272167161337968785043841415074510291589069278969013544827286142116, 91068373238193139731991419718976881408976096778480591519194594531228053317479599551648000291745606014002678304015988569687135667248733099611260468372314512830791408760330116114, 114894048325916515596441108871949096026022566337781458257168014817496769523752847818980314991496353388020792062705396885845892155014244842580550680409903549083539254071125830112, 101277152753107333232220876478110392535439382450106482382734793354045381800912608119486220347415625091868278513382666273477902954473149299520466137032886526832582225659524059689, 12170860450200583242712575588091236405780959035149707986656034276744370495765266462562441665901419935130973446333917251150786280953610466927989748387737070598216523922508135994, 126006178297990122461037011220552165788232667537538617070849826410234172608361888767894691074048639596163262342993022085512238916433482147828468529772156397090369598605027618232, 93809086420970650293209867809404698463013533890143140081831560627973202401460334963914894650108444772601398097137955403250594244203824443799847773782574297321859457506243251689, 54865383083485320811062199774341624236005941206919066068589907459511353113228467028956170444553692923395586529975071852642393457073580586731886712698535785352918071270623260224, 81994754814064717093736868995402186635341135504671151677992496654541713056550451693508490256182925334147966565878633099571512694672792909255269781637110395620912804056728506558, 102499385218620055792560286259989938133525915438822742761122537552770004164812697308658858776700676098708683910470097300337227407447415992604612083712166792744423462885451720435, 97671564593691837020395009206161551203492777592519914288464696415002602994112127597651185926006019321257113698726954348865082225076775894534203163731574747966977242672257861611, 72007061689983668691539181412640521891613826796032769133231109292531551946664950180110434911627291256327342719858309916276367055025736022629613451787554021878613186017901540457, 13769604209258634281058791913639641195028944154901122020836054964795260968848625490422071645410531676510770350637391967651129291087673680969370328925452044240415519734205560585, 48925951166132736168346686842766666502491442073718780917039059752377943425573790612907754315504136382017429092814350059721410226501054128991601506647305122716943290800443438589, 118363927942317901140153721669629911239562012996337609945969946440394722246938710612547963645034534528739823753708392565730866149326183898102046666619722649047802268856523818205, 92738683701512125327454722642823292964426859960665529393832153674578162290389235071510976915597166915858132587251483012808086278295744156634355190686034667702529691147460822314, 60514750484613641092252439002855690672309843998538095217671739439002987065700700064223283609897612309243815126070275436643726222563757952813453081598737726700149480902171231583, 78464445325414679744921979347575405243300276777396889862826815803097923854980676565113526782482196208431346395228619121278765587877110613021249258801125097494679825399806623222, 79723793208018498751879344042061998867582386994283497386606337125575299226022431552451783890350089010079385763823769356526503987787942471686323246625890325097573779362980367000, 25471265377110263785903540195739213965455378840855787195651900695192545283135646991475215631227372804276822383394794087209917755934022922914945451439539704326078157330376233442, 79325913654225609472547309050159660743344961528541666033274541795354314767968083091264191554807389724587099887895485555125387424109544858456240184079129415232384237805508833682, 39920622255996399695417659256007497225680962321875012993974333496350832031769251717634054967761783364720557879480705549568678251386068630152447826302947919350544043681731162817, 12876660297153952324209893162605827114876971705648235405232196781243166925940424591703517445760749119300255746603218571711380664642658835625135274815288733350203970043367521972, 333559720710017097354361435784530615480688182972532509826463039028760093520296892787932471219430541466527094499181154379385415404218134610656876219945388320424563049929719246, 17172557916751494186245140273224061691086726467772676150409675851747391213352259819359074302516522280416349601556014774851805399860971628353871946761563934057832959116738876632, 1743374931066030372042875131954120930569021328554831654097345875708902557571118903426464451812339700473979448590925770735258930708987772192108317243544653952454567599175968639, 120850729008568888795413077006920111824730016981277596055789123028934434109369309858074561992057565195994108713322694829352953219501869367206670416696034143775593869183994104703, 93430293517518270778703725218605064442729547612629894919188941880756219898852266632120836016894886038143187178621154021683021644154583265996545983492773961711074303453789033063, 54140255389434190776459244890164807945284020288455517788787045343383861474041567231118176094694618479087927154820839216643749829857762984596980477980947956208192394297683710637, 66059373208992791451733310950495229129920009395565779399781855254961137150912036957259275139204238218390061621686398906469670831924816997253281798892174665469152185833132334898, 55327606973821782284505955770599889341226405215438158720334577490383602439701638942664609388011232775149092308739999224432959841827127186306322204406263371628512200392604111279, 97902411986516141418536595377017296605880840974822529454459606036090445437031119395786636789617724457487722597593904124833795189614151431586730198620549689494647570845950840161, 69647848976889062145335985740015771607158217503405549652440803364984716852036407268262361074340221953821918069362415274971133579162909433852493078310730525696844728396268136758, 31097163678020533008410144743140688182882289585429240136538388272888463593149359617507085152466508651664618799851144674646903092121757056704214995206113492075114268552581040998]]

C = matrix(ZZ, C)
A = matrix(ZZ, m + r, m + r)


for i in range(m):
A[i, i] = 1

for i in range(r):
for j in range(m):
A[j, i + m] = C[i, j] << 200
A[i + m, i + m] = N << 200

ans = A.LLL()
B = matrix(ZZ, n, m)

for i in range(n):
assert list(ans[i][m:]) == [0] * r
B[i] = ans[i][:m]

# just go swimming for rest
ans = B.right_kernel().basis()
D = matrix(ZZ, ans)

res = D.BKZ(block_size=12)[0]

key1 = sha256(str(res).encode()).digest()
key2 = sha256(str(-res).encode()).digest()
aes = AES.new(key1, AES.MODE_ECB)
print(aes.decrypt(c))
aes = AES.new(key2, AES.MODE_ECB)
print(aes.decrypt(c))
# b'flag{69af1480e70196d93e6bf29c13417683}\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

can not understand

crypto-myJWT

使用的是ECDSA,虽然是密码题,但并不是对ECDSA的签名、验证等步骤操作,这些都由java封装好了

所以是java的问题

由于代码中使用的格式是SHA384withECDSAinP1363Format,经过搜索是CVE-2022-21449,发现竟然是java没有判断$(r,s)$是否等于0。。。

image-20220731114449362

此外这些都是不安全的

image-20220731114725609

  • CVE-2022-21449

    java没有判断$(r,s)$是否等于0会如何呢?其实在签名的时候一般都会确保$(r,s)$不为0的,但在验签的时候忽略了

    image-20220731120318947

    验签时计算
    $$
    r=x_P\notag
    $$
    而$P\equiv u_1G+u_2D\equiv s^{-1}zG+s^{-1}rD\equiv s^{-1}G(z+rd)\ (mod\ n)$

    当然0的逆元是不存在的,但是看看java这里是怎么求逆元的

    image-20220731115417980

    相当于计算$x^{n-2}$,如果$x\ne0$,那么根据费马小定理($n$为质数)
    $$
    x^{n-1}\equiv x\ (mod\ n)\notag
    $$
    那么
    $$
    x^{n-2}\equiv x^{-1}\ (mod\ n)\notag
    $$
    也就是说为了简化或者说提高效率,java使用费马小定理求逆元的,而且没有判断0,这样就造成了
    $$
    0^{n-2}\equiv 0\ (mod\ n)\notag
    $$
    $P\equiv 0\cdot G(z+rd)\ (mod\ n)\equiv 0\ (mod\ n)$

    最终使得$r=x_P=0$验证通过

  • attack

    这里如何实现将$r,s$都赋值为0?看CVE的demo是直接喂\x00的base64编码,不懂为什么,还没深究

    exp如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    from base64 import *
    from pwn import *

    io = remote('47.104.76.78', 23334)

    fake_sig = b'\x00\x00'
    name = b'4xwi11'
    io.sendlineafter(b'your name:', name)
    io.sendlineafter(b'>', b'1')
    token = io.recvline().decode()[:-1]
    head, payload, _ = token.split('.')
    payload = b64decode(payload).replace(b'false', b'true')
    io.sendlineafter(b'>', b'2')
    payload_x = head.encode() + b'.' + b64encode(payload) + b'.' + b64encode(fake_sig)
    io.sendline(payload_x)
    print(io.recvline()[:-1])
    # b'your token:flag{cve-2022-21449_Secur1ty_0f_c0de_1mplementation}'

btw,不知道是不是jdk版本的问题,我本地不行

crypto-Factor

  • 题目代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    #encoding:utf-8
    from Crypto.Util.number import *
    from gmpy2 import *
    from random import randint
    from flag import flag

    def gen1():
    r = 2
    while True:
    p2 = getPrime(1792)
    p1 = getPrime(1792)

    q1 = getPrime(512)
    q2 = getPrime(512)

    if (abs(p1-p2) < (p1//(2*r*q1*q2))):
    n1, n2 = (p1**r)*q1, (p2**r)*q2
    break

    phi1 = (p1**(r-1))*(p1-1)*(q1-1)
    phi2 = (p2**(r-1))*(p2-1)*(q2-1)
    while True:
    e1 = randint(5, (p1-1)*(q1-1))
    e2 = randint(5, (p2-1)*(q2-1))
    if gcd(e1, e2) == 1 and gcd(phi1, e1) == 1 and gcd(phi2, e2) == 1:
    break
    return n11, n12, e11, e12


    def gen2():
    r = 7
    while True:
    p = getPrime(512)
    q = getPrime(512)
    N = (p**r)*q
    if len(bin(N)) == 4096:
    break

    idx = (r*(r-1)) / ((r+1)*(r+1))
    delta = int(pow(mpz(N), idx))
    phi = (p**(r-1))*(p-1)*(q-1)

    while True:
    d1 = getPrime(int(2048*idx)//2)
    d2 = getPrime(int(2048*idx)//2)
    if abs(d1-d2) < delta:
    m1 = invert(d1, phi)
    m2 = invert(d2, phi)
    break

    e2 = 0x10001
    return n2, e2, m1, m2

    def gen3():
    r = 7
    while True:
    p = getPrime(512)
    q = getPrime(512)
    N = (p**r)*q
    phi = (p**(r-1))*(p-1)*(q-1)

    if len(bin(N))-2 == 4096:
    break

    idx = (r*(r-1)) / ((r+1)*(r+1))
    delta = int(pow(mpz(N), idx))

    while True:
    b = getRandomNBitInteger(int(2048*idx)//2)
    a = getRandomNBitInteger(int(2048*idx)//2)
    if a*b < delta:
    e = invert(a, phi)*b
    return n3, e3, b


    n11, n12, e11, e12 = gen1()
    print(f"n11={n11}\nn12={n12}\ne11={e11}\ne12={e12}\n")
    n2, e2, m1, m2 = gen2()
    print(f"n2={n2}\ne2={e2}\n")
    n3, e3, b = gen3()
    print(f"n3={n3}\ne3={e3}\n")

    m3 = bytes_to_long(flag)
    c11 = powmod(m1, e11, n11)
    c12 = powmod(m2, e12, n12)
    c2 = powmod(b, e2, n2)
    c3 = powmod(m3, e3, n3)
    print(f"c11={c11}\nc12={c12}\nc2={c2}\nc3={c3}\n")
    '''
    n11=801049932940568005269978912396585741498810389425615966036828877784238116634177290247194019425111606811005728521368879065336038221361037062407029836155148874719789714345603547779284558101833801155509762818376470874215789574939002212274399950433269775325144015468620263028557804618774240232988157961712628677901130814703917513004114547234375629747176834581166306552311075522669403347828095831520693563291249869832390698646691647204371133362254846234990175138047928703289833460734235302093916147489509206061923877623300596194317059884824322527532662470348274079800781120104946546063500763852622187404608639542858285661288293918912184354236687975919510300221932074135531028314170475917110204254042336116619335841213418990605590620842511615815443114612333881430920769002933370887494558640833005339906706603497809846863863967391543647049224309556936909768179259581851520214669904560467640473144481633920438487615788689262961741053146610554997224861331949716721056553499531186695425439163222802917813140266513735841447717418846360096652592844940362932171019143434080184728093326143821165097895058935372215708948088248596585127475770021962501262915274497478428868130455122612016408381607561200802267038869516896665387576895570245272035575637
    n12=635401970340205725139325006504978344512744926958688031423448003992072769931808217486709574151492230879374574313457662436423263437792389711379687512056391117410807565492548718691166183372633151644917135272259770997096195518489056319350258673723095417922153182423913759272893696867426193704479752772511081457729513843682588951499551132432923147997238597538055902932123792252593514225328196541483451747314048080824405530742533473914329294346486691684904100406972073037050089861816604505650042953778360621934380815999541183067585498606053857125775979915077329566722531830089714823979965934190338538564188253271016367299890015449611141166780048763403252309160517164569110740561584100839212138661881615351382946813818078899882595313362934594951895560189003438775450675343590147821186953526262224973333962454561275321925151619178204499342339749637758100126893330994252902926509705617882239610380420830791088907378397226817514095468815228186716220057075095711894070032344613244803934541318573847029365563159918970404057137270884587905766828750387753130065274147902379993224780149663600462492281891320702134153853359393588902750423972068679293373333869389393970353760507436913233657422185531482023237384247535554666481760197851108297145147371
    e11=1898839980562048754607069073527844852132536432440793106124181406514770178066775988232362054809850074774981836898118651469424148725970708199461113088705044905633592578936333918328544505910996746428679299419879472444790941363558025887620570856598548320246426354974395765243741646121743413447132297230365355148066914830856904433750379114692122900723772114991199979638987571559860550883470977246459523068862898859694461427148626628283198896659337135438506574799585378178678790308410266713256003479022699264568844505977513537013529212961573269494683740987283682608189406719573301573662696753903050991812884192192569737274321828986847640839813424701894578472933385727757445011291134961124822612239865
    e12=1262647419018930022617189608995712260095623047273893811529510754596636390255564988827821761126917976430978175522450277907063247981106405519094560616378241247111698915199999363948015703788616554657275147338766805289909261129165025156078136718573006479030827585347458143645738353716189131209398056741864848486818076440355778886993462012533397208330925057305502653219173629466948635110352752162442552541812665607516753186595817376029707777599029040724727499952161261179707271814405907165207904499722122779096230563548011491932378429654764486855147873135769116637484240454596231092684424572258119768093562747249251518965380465994055049411715353547147466711949391814550591591830515262296556050946881

    n2=209798341155088334158217087474227805455138848036904381404809759100627849272231840321985747935471287990313456209656625928356468120896887536235496490078123448217785939608443507649096688546074968476040552137270080120417769906047001451239544719039212180059396791491281787790213953488743488306241516010351179070869410418232801398578982244984544906579574766534671056023774009163991804748763929626213884208260660722705479782932001102089367261720194650874553305179520889083170973755913964440175393646890791491057655226024046525748177999422035469428780228224800114202385209306803288475439775037067014297973202621118959024226798935588827359265962780792266516120013602384766460619793738405476219362508944225007365127768741191310079985425349292613888185378948854602285379329682053663283534930182589905986063348509703027498270111412063194971956202729807710253369312175636837558252924035002153389909587349043986253518050303628071319876207392440085675892353421232158925122721273720564784886530611286461575045181073744696415657043278123662980166364494583141297996445429477446442693717498789391918530672770193730629928408766563592081857706608049076318165712479742423149330311238462044666384622153280310696667586565906758451118241914402257039981388209
    e2=65537

    n3=539779851369541956878655738599584730199799866957191805784596190682932284216781781433367450841202917758999300635019369629627621029957135109806205877317954671312041249493462048283611940752235036153024920172209763260723728345918562258401803973624430150143563078517485996070862532682695228590709019451174548520135142052216785774589096706631010293690859363524584240662502290912412366366114571976050857239915691266377257797199583543940504695517331512813468837128344612227973709974625418257243011036826241599265375741977853552204640800449679679351666009764297016524814036295707311913711955324055690490892097177271718850857268982130811714517356073266905474635370690445031512184247179039751734276906533177939993769044135143389748416635981226449566039039202521305851567296884751935162651063209779647359922622084851547605090230221057349511482738300221222563908357379545905837110168948295030747460300104202323692732549831403834387939156877086852393515817984772384147449841124275061609701453997579569931391166586163299940486204581696722731952467570857217406030804590055255431828403195798003509083922294733709507134156466158642941338493323430671502043066148246348074878064089651235355282144209668143249348243220714471988019011613749340243917652821
    e3=8179300978753084587812861894047395225516049110376948812109811319430275614612773726672345893359691900281432484382670047044697374818043512731533402576374645405477207239801498428774783768163880078495448747421425078521981578408638790336528372019271073712013371141939808017049399434858687299480461753638164719404612128939787055797762174745092074547412183349192156638711750872083313795551439465507724807626674514935170104573715458782366469587138508845980490673890245713729782917089910271980557159592807350504157192913530007199510144004848020221181558472160543018733124225266127379373751910439604459368078652499029070936707349862139053913745186413782066470461478961703013591655136140060879250067379283913798867648758171004535775565306842444545755351202796833177560656564652632975685912935281581268141803696686952259539945588609591385807620108279333498170028167338690235117003515264281843953984997958878272347778561933726792473981855755454522886321669676790813189668084373153897754540290867346751033567500922477317530445967753955221454744946208555394588111484610700789566547507402309549957740815535069057837915204852490930168843605732632328017129154852857227895362549146737618906180651623216848500491438142456250653458053922622240299736136335179639180898730269690699965799644757774472147210271111150769048976871249731156387939260749192370361488285775377622944817570292095201906142567403539151179209316853493906909989301225903409448461436855145

    c11=18979511327426975645936984732782737165217332092805655747550406443960209507493506811471688957217003792679188427155591583024966608843371190136274378868083075515877811693937328204553788450031542610082653080302874606750443090466407543829279067099563572849101374714795279414177737277837595409805721290786607138569322435729584574023597293220443351227559400618351504654781318871214405850541820427562291662456382362148698864044961814456827646881685994720468255382299912036854657082505810206237294593538092338544641919051145900715456411365065867357857347860000894624247098719102875782712030938806816332901861114078070638796157513248160442185781635520426230183818695937457557248160135402734489627723104008584934936245208116232179751448263136309595931691285743580695792601141363221346329077184688857290503770641398917586422369221744736905117499140140651493031622040723274355292502182795605723573863581253354922291984335841915632076694172921289489383700174864888664946302588049384130628381766560976143458735712162489811693014419190718601945154153130272620025118408017441490090252674737105557818759190934585829634273698371996797545908125156282869589331913665938038870431655063063535672001112420959158339261862052308986374193671007982914711432579
    c12=336587005671304527566745948355290412636261748969581976214239578621816863343117433524033533838636941679300497270909696775021031004312477997130741361709262822736904340641138652359632950455651920464042448022467664596484055174270895170499076347333381222768518599018520948098943626229061996126260154604038101543546588917619576702866444998578555907070990331574722135141778182631559802154493815687284077524469331290249057291163803290619701104007028836609832847351748020354798788508790258935718399783002069490123663345156902440501507117289747695510266461539019431610123351176227443612317037899257774045751487135646052309277098939919088029284437221840182769808850184827681307611389353392683707516141736067793897378911235819049432542758429901945202632117089595899280390575706266239252841152490534353760118231918190110043319877744119083811214707593122757409240645257409097436061825613686773916466122693168971062418046703969144004779270391320645495586024342668002497155358623795942692477164489475917351003149045087283510728981096449890130735055015075557614253867698702479920619299919816768972581273507837309179450374634916567083251630203067065663910073926990517108921490442919372774170201239734064819301693527366233007925670043499415100789027665
    c2=18352572608055902550350386950073774530453857897248738030380007830701135570310622004368605208336922266513238134127496822199799761713782366178177809597137102612444147565578155260524747439899150012223027218489946124086276814899675563837669559795153349686434242738207425653079514376089070980797596457151965772460109519623572502109592612394316680202287712465721767341302234806130244551387296133051760893033194962691942040228545508895009195291106297581470066545991352668826197346830561010198417527057944507902143965634058848276017283478933675052993657822322866778994956205033704582047618324071045349072526540250707463112668579342537349567247810715604220690215313641329522674080146047291570752430231923566302463491877377617044768978997438596643458475128936850994934029476030136643053997549253792076260765459166618369864942681056864815996253315631930002738854235841120321870075261782250357506436825550088826469396508045912258303652912217151127280959435741419961721418428605515096160344688795655562889755165362006775317188009008288782691705879510655892181975003485714604340542378477388225736316682379616676770234557939471098919647053799313777248678455620231721202780830980063824003076308811540534492317719811588898727134190545533822501681653
    c3=113097822337683973761068913398570777162211043704088253732500045618770280334319497174908657828372816818344430304314992760410247741225285170975119344962728883084314382093407445567724674775086423808679124143380073906159023182353116556175251427048715466914368972746661938211846262612414049036821553068430149530397389927209475908905748728402722287875974303298260579839357610962198145974153609818939841880084892796820949226354126424023144300953584658958900737493704530725894948802258740332090822797815745616247879170037794873059391625680745994045522420168248552864215035136318711240256011217929372430302003068882829637056296413462078222453765071094277727760527662423010417144554652783429899139309180017349156600053882338180319473460877576898373222480215735280046214925463242092830060830764299787309912687294672319845054775281463150375545716818434962456139485501224661520991156961587158843064393883274763714930309353593180897123378717852182761518709151878662808890356934477932099818218743384674756674800089177733447066489275506387382342429495897972218764782517198727316942685748481956118012927027254979181519862451112593068440686462293151078537886822555211870303467014484443432209106264020502334805536091587252238173816637270028678636848763

    '''

就完全是这篇论文的复现了New attacks on RSA with Moduli N = p^rq[6]

注意第一和第二种攻击中,用CopperSmith解小根就可以得到相应的未知数

image-20220731171326864

image-20220731171300864

完整的exp如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from Crypto.Util.number import *
from gmpy2 import *
from sage import *

# solve m1, m2
def solve_m1_m2():
n11 = 801049932940568005269978912396585741498810389425615966036828877784238116634177290247194019425111606811005728521368879065336038221361037062407029836155148874719789714345603547779284558101833801155509762818376470874215789574939002212274399950433269775325144015468620263028557804618774240232988157961712628677901130814703917513004114547234375629747176834581166306552311075522669403347828095831520693563291249869832390698646691647204371133362254846234990175138047928703289833460734235302093916147489509206061923877623300596194317059884824322527532662470348274079800781120104946546063500763852622187404608639542858285661288293918912184354236687975919510300221932074135531028314170475917110204254042336116619335841213418990605590620842511615815443114612333881430920769002933370887494558640833005339906706603497809846863863967391543647049224309556936909768179259581851520214669904560467640473144481633920438487615788689262961741053146610554997224861331949716721056553499531186695425439163222802917813140266513735841447717418846360096652592844940362932171019143434080184728093326143821165097895058935372215708948088248596585127475770021962501262915274497478428868130455122612016408381607561200802267038869516896665387576895570245272035575637
n12 = 635401970340205725139325006504978344512744926958688031423448003992072769931808217486709574151492230879374574313457662436423263437792389711379687512056391117410807565492548718691166183372633151644917135272259770997096195518489056319350258673723095417922153182423913759272893696867426193704479752772511081457729513843682588951499551132432923147997238597538055902932123792252593514225328196541483451747314048080824405530742533473914329294346486691684904100406972073037050089861816604505650042953778360621934380815999541183067585498606053857125775979915077329566722531830089714823979965934190338538564188253271016367299890015449611141166780048763403252309160517164569110740561584100839212138661881615351382946813818078899882595313362934594951895560189003438775450675343590147821186953526262224973333962454561275321925151619178204499342339749637758100126893330994252902926509705617882239610380420830791088907378397226817514095468815228186716220057075095711894070032344613244803934541318573847029365563159918970404057137270884587905766828750387753130065274147902379993224780149663600462492281891320702134153853359393588902750423972068679293373333869389393970353760507436913233657422185531482023237384247535554666481760197851108297145147371
e11 = 1898839980562048754607069073527844852132536432440793106124181406514770178066775988232362054809850074774981836898118651469424148725970708199461113088705044905633592578936333918328544505910996746428679299419879472444790941363558025887620570856598548320246426354974395765243741646121743413447132297230365355148066914830856904433750379114692122900723772114991199979638987571559860550883470977246459523068862898859694461427148626628283198896659337135438506574799585378178678790308410266713256003479022699264568844505977513537013529212961573269494683740987283682608189406719573301573662696753903050991812884192192569737274321828986847640839813424701894578472933385727757445011291134961124822612239865
e12 = 1262647419018930022617189608995712260095623047273893811529510754596636390255564988827821761126917976430978175522450277907063247981106405519094560616378241247111698915199999363948015703788616554657275147338766805289909261129165025156078136718573006479030827585347458143645738353716189131209398056741864848486818076440355778886993462012533397208330925057305502653219173629466948635110352752162442552541812665607516753186595817376029707777599029040724727499952161261179707271814405907165207904499722122779096230563548011491932378429654764486855147873135769116637484240454596231092684424572258119768093562747249251518965380465994055049411715353547147466711949391814550591591830515262296556050946881
c11 = 18979511327426975645936984732782737165217332092805655747550406443960209507493506811471688957217003792679188427155591583024966608843371190136274378868083075515877811693937328204553788450031542610082653080302874606750443090466407543829279067099563572849101374714795279414177737277837595409805721290786607138569322435729584574023597293220443351227559400618351504654781318871214405850541820427562291662456382362148698864044961814456827646881685994720468255382299912036854657082505810206237294593538092338544641919051145900715456411365065867357857347860000894624247098719102875782712030938806816332901861114078070638796157513248160442185781635520426230183818695937457557248160135402734489627723104008584934936245208116232179751448263136309595931691285743580695792601141363221346329077184688857290503770641398917586422369221744736905117499140140651493031622040723274355292502182795605723573863581253354922291984335841915632076694172921289489383700174864888664946302588049384130628381766560976143458735712162489811693014419190718601945154153130272620025118408017441490090252674737105557818759190934585829634273698371996797545908125156282869589331913665938038870431655063063535672001112420959158339261862052308986374193671007982914711432579
c12 = 336587005671304527566745948355290412636261748969581976214239578621816863343117433524033533838636941679300497270909696775021031004312477997130741361709262822736904340641138652359632950455651920464042448022467664596484055174270895170499076347333381222768518599018520948098943626229061996126260154604038101543546588917619576702866444998578555907070990331574722135141778182631559802154493815687284077524469331290249057291163803290619701104007028836609832847351748020354798788508790258935718399783002069490123663345156902440501507117289747695510266461539019431610123351176227443612317037899257774045751487135646052309277098939919088029284437221840182769808850184827681307611389353392683707516141736067793897378911235819049432542758429901945202632117089595899280390575706266239252841152490534353760118231918190110043319877744119083811214707593122757409240645257409097436061825613686773916466122693168971062418046703969144004779270391320645495586024342668002497155358623795942692477164489475917351003149045087283510728981096449890130735055015075557614253867698702479920619299919816768972581273507837309179450374634916567083251630203067065663910073926990517108921490442919372774170201239734064819301693527366233007925670043499415100789027665
for _ in sub_fraction(n11, n12):
q11, q12 = _[0], _[1]
if n11 % q11 == 0 and q12 != 1:
p11 = iroot(n11 // q11, 2)[0]
p12 = iroot(n12 // q12, 2)[0]
assert p11 ** 2 * q11 == n11
assert p12 ** 2 * q12 == n12
phi1 = p11 * (p11 - 1) * (q11 - 1)
phi2 = p12 * (p12 - 1) * (q12 - 1)
d1 = invert(e11, phi1)
d2 = invert(e12, phi2)
return pow(c11, d1, n11), pow(c12, d2, n12)

# solve b
def solve_b():
n2 = 209798341155088334158217087474227805455138848036904381404809759100627849272231840321985747935471287990313456209656625928356468120896887536235496490078123448217785939608443507649096688546074968476040552137270080120417769906047001451239544719039212180059396791491281787790213953488743488306241516010351179070869410418232801398578982244984544906579574766534671056023774009163991804748763929626213884208260660722705479782932001102089367261720194650874553305179520889083170973755913964440175393646890791491057655226024046525748177999422035469428780228224800114202385209306803288475439775037067014297973202621118959024226798935588827359265962780792266516120013602384766460619793738405476219362508944225007365127768741191310079985425349292613888185378948854602285379329682053663283534930182589905986063348509703027498270111412063194971956202729807710253369312175636837558252924035002153389909587349043986253518050303628071319876207392440085675892353421232158925122721273720564784886530611286461575045181073744696415657043278123662980166364494583141297996445429477446442693717498789391918530672770193730629928408766563592081857706608049076318165712479742423149330311238462044666384622153280310696667586565906758451118241914402257039981388209
e2 = 65537
c2 = 18352572608055902550350386950073774530453857897248738030380007830701135570310622004368605208336922266513238134127496822199799761713782366178177809597137102612444147565578155260524747439899150012223027218489946124086276814899675563837669559795153349686434242738207425653079514376089070980797596457151965772460109519623572502109592612394316680202287712465721767341302234806130244551387296133051760893033194962691942040228545508895009195291106297581470066545991352668826197346830561010198417527057944507902143965634058848276017283478933675052993657822322866778994956205033704582047618324071045349072526540250707463112668579342537349567247810715604220690215313641329522674080146047291570752430231923566302463491877377617044768978997438596643458475128936850994934029476030136643053997549253792076260765459166618369864942681056864815996253315631930002738854235841120321870075261782250357506436825550088826469396508045912258303652912217151127280959435741419961721418428605515096160344688795655562889755165362006775317188009008288782691705879510655892181975003485714604340542378477388225736316682379616676770234557939471098919647053799313777248678455620231721202780830980063824003076308811540534492317719811588898727134190545533822501681653
m1, m2 = solve_m1_m2()
PR.<x> = PolynomialRing(Zmod(n2))
f = m1 * m2 * x - (m2 - m1)
f = f.monic()
root = int(f.small_roots(X=2 ^ 1000, beta=0.75)[0])
p2 = gcd(int(f(root)), n2)
p2 = iroot(p2, 6)[0]
q2 = n2 // (p2 ** 7)
phi2 = p2 ** 6 * (p2 - 1) * (q2 - 1)
d2 = invert(e2, phi2)
return pow(c2, d2, n2)

# solve flag
n3 = 539779851369541956878655738599584730199799866957191805784596190682932284216781781433367450841202917758999300635019369629627621029957135109806205877317954671312041249493462048283611940752235036153024920172209763260723728345918562258401803973624430150143563078517485996070862532682695228590709019451174548520135142052216785774589096706631010293690859363524584240662502290912412366366114571976050857239915691266377257797199583543940504695517331512813468837128344612227973709974625418257243011036826241599265375741977853552204640800449679679351666009764297016524814036295707311913711955324055690490892097177271718850857268982130811714517356073266905474635370690445031512184247179039751734276906533177939993769044135143389748416635981226449566039039202521305851567296884751935162651063209779647359922622084851547605090230221057349511482738300221222563908357379545905837110168948295030747460300104202323692732549831403834387939156877086852393515817984772384147449841124275061609701453997579569931391166586163299940486204581696722731952467570857217406030804590055255431828403195798003509083922294733709507134156466158642941338493323430671502043066148246348074878064089651235355282144209668143249348243220714471988019011613749340243917652821
e3 = 8179300978753084587812861894047395225516049110376948812109811319430275614612773726672345893359691900281432484382670047044697374818043512731533402576374645405477207239801498428774783768163880078495448747421425078521981578408638790336528372019271073712013371141939808017049399434858687299480461753638164719404612128939787055797762174745092074547412183349192156638711750872083313795551439465507724807626674514935170104573715458782366469587138508845980490673890245713729782917089910271980557159592807350504157192913530007199510144004848020221181558472160543018733124225266127379373751910439604459368078652499029070936707349862139053913745186413782066470461478961703013591655136140060879250067379283913798867648758171004535775565306842444545755351202796833177560656564652632975685912935281581268141803696686952259539945588609591385807620108279333498170028167338690235117003515264281843953984997958878272347778561933726792473981855755454522886321669676790813189668084373153897754540290867346751033567500922477317530445967753955221454744946208555394588111484610700789566547507402309549957740815535069057837915204852490930168843605732632328017129154852857227895362549146737618906180651623216848500491438142456250653458053922622240299736136335179639180898730269690699965799644757774472147210271111150769048976871249731156387939260749192370361488285775377622944817570292095201906142567403539151179209316853493906909989301225903409448461436855145
c3 = 113097822337683973761068913398570777162211043704088253732500045618770280334319497174908657828372816818344430304314992760410247741225285170975119344962728883084314382093407445567724674775086423808679124143380073906159023182353116556175251427048715466914368972746661938211846262612414049036821553068430149530397389927209475908905748728402722287875974303298260579839357610962198145974153609818939841880084892796820949226354126424023144300953584658958900737493704530725894948802258740332090822797815745616247879170037794873059391625680745994045522420168248552864215035136318711240256011217929372430302003068882829637056296413462078222453765071094277727760527662423010417144554652783429899139309180017349156600053882338180319473460877576898373222480215735280046214925463242092830060830764299787309912687294672319845054775281463150375545716818434962456139485501224661520991156961587158843064393883274763714930309353593180897123378717852182761518709151878662808890356934477932099818218743384674756674800089177733447066489275506387382342429495897972218764782517198727316942685748481956118012927027254979181519862451112593068440686462293151078537886822555211870303467014484443432209106264020502334805536091587252238173816637270028678636848763
b = solve_b()
PR.<x> = PolynomialRing(Zmod(n3))
f = e3 * x - int(b)
f = f.monic()
root = int(f.small_roots(X=2 ^ 675, beta=0.75)[0])
p3 = gcd(int(f(root)), n3)
p3 = iroot(p3, 6)[0]
q3 = n3 // p3 ** 7
phi3 = p3 ** 6 * (p3 - 1) * (q3 - 1)
d3 = invert(e3, phi3)
m = pow(c3, d3, n3)
print(long_to_bytes(m))
# qwb{8633ce6d-fece-4cf1-8f0f-f27e5bf6d678}

强网先锋-polydiv

  • 题目描述

    多项式乘法,已知a(x)*b(x)+c(x)=r(x)a(x),c(x),r(x)求`b(x)

题目与提供的代码稍有出入,服务器上跑的是可以看成在$GF(2^8)$下求b(x)

1
2
3
4
5
6
sage: R.<x>=GF(8)
sage: a = x^7 + x^5 + x^2
....: c = x^6 + x^5 + x^4 + x^3 + x^2 + x + 1
....: r = x^14 + x^12 + x^10 + x^7 + x^2 + x + 1
sage: (r-c)/a
x^2

或者直接爆破

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from Crypto.Util.number import *
from gmpy2 import *
import hashlib
from string import ascii_letters, digits
from pwn import *
from itertools import product
from poly2 import *

context.log_level = 'debug'
table = ascii_letters + digits


class Solve():
def __init__(self):
self.sh = remote('182.92.82.77', 12469)
self.r = 0
self.a = 0
self.c = 0

def proof_of_work(self):
proof = self.sh.recvuntil(b'Give me XXXX:')
tail = proof[12:28].decode()
_hash = proof[33:97].decode()
for i in product(table, repeat=4):
head = ''.join(i)
t = hashlib.sha256((head + tail).encode()).hexdigest()
if t == _hash:
self.sh.sendline(head.encode())
break

def Poly2N(self, f):
return eval(f.replace('^', '**').replace('x', '2'))

def check(self, a, c, pr):
for b in range(256):
pa, pb, pc = [PP(bin(i)[2:]) for i in [a, b, c]]
r = pa * pb + pc
if str(r) == pr:
return int(b)
return False

def solve_rac(self):
for i in range(40):
self.sh.recvuntil(b'r(x) = ')
self.r = self.sh.recvline()[:-1].decode()
tmp = self.r
self.sh.recvuntil(b'a(x) = ')
self.a = self.sh.recvline()[:-1].decode()
self.sh.recvuntil(b'c(x) = ')
self.c = self.sh.recvline()[:-1].decode()
self.r = self.Poly2N(self.r)
self.a = self.Poly2N(self.a)
self.c = self.Poly2N(self.c)
b = self.check(self.a, self.c, tmp)
if b:
self.sh.sendlineafter(b'> b(x) = ', str(PP(bin(b)[2:])).encode())

def solve(self):
self.proof_of_work()
self.solve_rac()
self.sh.interactive()

if __name__ == '__main__':
solution = Solve()
solution.solve()
# flag{f2887f56-0114-49c0-a0c6-663f164ef84a}

强网先锋-ASR

  • 题目描述

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    from Crypto.Util.number import getPrime
    from secret import falg

    pad = lambda s:s + bytes([(len(s)-1)%16+1]*((len(s)-1)%16+1))

    n = getPrime(128)**2 * getPrime(128)**2 * getPrime(128)**2 * getPrime(128)**2
    e = 3

    flag = pad(flag)
    print(flag)
    assert(len(flag) >= 48)
    m = int.from_bytes(flag,'big')
    c = pow(m,e,n)

    print(f'n = {n}')
    print(f'e = {e}')
    print(f'c = {c}')

    '''
    n = 8250871280281573979365095715711359115372504458973444367083195431861307534563246537364248104106494598081988216584432003199198805753721448450911308558041115465900179230798939615583517756265557814710419157462721793864532239042758808298575522666358352726060578194045804198551989679722201244547561044646931280001
    e = 3
    c = 945272793717722090962030960824180726576357481511799904903841312265308706852971155205003971821843069272938250385935597609059700446530436381124650731751982419593070224310399320617914955227288662661442416421725698368791013785074809691867988444306279231013360024747585261790352627234450209996422862329513284149
    '''

4个因子,因为都是128位,yafu直接分解$\sqrt{n}$

跑到一半报错了(心态崩),看日志差不多一个小时的时间分解出来一个因子

image-20220730204034366

之后重新下载了一个yafu就可以继续跑了

image-20220730222756505

最后$e=3$,$\varphi$有公因子9分别来自两个因子;由于$m$比较小,直接选用另外两个因子做模数就好了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from gmpy2 import *
from Crypto.Util.number import *

e = 3
c = 945272793717722090962030960824180726576357481511799904903841312265308706852971155205003971821843069272938250385935597609059700446530436381124650731751982419593070224310399320617914955227288662661442416421725698368791013785074809691867988444306279231013360024747585261790352627234450209996422862329513284149
n = 8250871280281573979365095715711359115372504458973444367083195431861307534563246537364248104106494598081988216584432003199198805753721448450911308558041115465900179230798939615583517756265557814710419157462721793864532239042758808298575522666358352726060578194045804198551989679722201244547561044646931280001
n1 = iroot(n, 2)[0]

r1, r2, r3, r4 = [225933944608558304529179430753170813347, 218566259296037866647273372633238739089, 223213222467584072959434495118689164399, 260594583349478633632570848336184053653]

phi = r3 * r4 * (r3 - 1) * (r4 - 1)
new_n = (r3 * r4) ** 2
d = invert(e, phi)
m = long_to_bytes(pow(c, d, new_n))
print(m)
# b'flag{Fear_can_hold_you_prisoner_Hope_can_set_you_free}\x06\x06\x06\x06\x06\x06'

Reference

  1. A Polynomial-Time Algorithm for Solving the Hidden Subset Sum Problem
  2. Provably Solving the Hidden Subset Sum Problem via Statistical Learning
  3. Provably Solving the Hidden Subset Sum Problem via Statistical Learning-ppt
  4. Provably Solving the Hidden Subset Sum Problem via Statistical Learning_Sage
  5. CVE-2022-21449
  6. New attacks on RSA with Moduli N = p^rq
  7. 强网杯 WriteUp By Nu1L