45667509978629986775709428598475392388185696886239701590341228441656487054490172264172728551771229324563597169343868745499762133187577331245924172807553653537709225684944529777103830120258191330259945632278246760775159523414864724230124831375509801284512006416067876837996829733519166718235929986290107894583590618536485063159752929406765570097553224681571846537515761091878319017956536823598014647159810446376782489428056860399517828513535791725036875708271920379243799592542761591850684514717771202950670578671857678072521577462985308348027884276991511318265099951305207816834772985595077424386440024269599860530379714626373966308222460413943483473721205986544662052781392675998532928156973801755973135723439496353971011828193986864017275469419778075365470159446669299962651920843216833293626586079098415307860486400405647744528848339389544637537795317903514178116024923789303357851030518922790279378200605747538493601458053675451834323342233728373082145531609444662108183649628964793768140808334220670402713874281057267189628711607491731249654385470840033946239232824337439431765530250138158774931725628157040078844012579124084246467821483039324455053921164283981764597427825259551220486126296176211976203119469822463281051430603425081719815261614282643466707657808314858082863124931494396362802857498876944874243253629349770944558634967512341078627907991794378864156949935065924549596285318975937361508511377871662842570159747218572191742316912064382431868015103858010113305584116839999407731329456901644987617613914173197714337877874516219121896588256187547234871993406236607647861443742636699518646382299259626910348033628197875165929785961237169074774969859818940560655773279738063961588670676476607460393741754920269427259568839811047149715938445279742252127138620416882221223612830672926345580287888967282296647517030889736465758661917187403839743895774373736691661656171634024431251244604059969691877501540845777918300568679514802272749044757659194772551632952501613091915541533635821694016266994892809953366531217236882619763336878437971469532755703963115477478758530857208678658527790183336656103955173338859046656072703639930743586931814327252808521615050133414122343106150330777390927322194782603892148986231737436799102647716877822352976633972914381354259341091430221782455297902148036486264116245496446637422715286383369359551657213640034542497499531650618514239149084801574220553312691575848131499301770044561235355975123732479564751073366233811082688855012077958887647251904820463559522826637393162083251453474282219194212490886112683422452560996253155921138648579158021698890499618629341119246516542223762539744495198021967474193333404875408081162526657744882273610328425360648875569718727071721972744939964500750294055152716171866421141859332345274338210594988097113096828639777996795561182808164161982100263046052380193599988084738582448383092559975948756267102865678980491144594249386128397705203313852944705177855091410159174487196869465607467191772333354909629223579306362264279824401470579841168934106787093672416257219944980466935629682695628260563639889833138503546297468954116051732054977630698860269325824776928574369225822826864590250376485047862934583879698977269307835891755241113816183483639465638049786395232850611401280745420168684973072092594270661248496962881264429894229368895610507732351104211414749231360999833326490687679115751834368996325360298306816676953439339392483351539643811947051696322694981311584563163823519883227574858077309861864064406578617432970629723913165652882206198025997412574981224402175684013019924678733258662823633075325760466489915479017837456736845947076486634272072728252086564935009556913424023777723299670631149420315372784381311165299746469766205181150342079899525619511360246409241944577013391242868383824912838267345740951831437655264372335217215158531939317432577223814922541786487726198376171610859139870726291138882638353252381880398167581958294562094953345516161363507142531547260377467712466073454408392185819117600431973397595542879292601676146056839346724804954277866757412972386125884195748134300728144655680913491745521563903183376584978513590413032141252593966436262067113802259391639808702485018513313611910636877252495291294239629766447608904575522918336178885458237476323433681135504960176578181614472483812661895335374748698150816834182335038765594187092113118643358069244658267622608633836103918697788886725532996663694646454969524715812672599955346886913174185535028665801437554690889386489628485781910678631521813692862712472935772639541166073431692157088937593632084420510535050409063868769226316602241814360974568847500716594672517470426795662591552078958770822287163489388082763665668392812647177131418158556617765316947442636275137955109529319902446214598973407571931086104712841742132682799936768414385084306613639016959330757824286624427784895858314675912851862150629426036809417738933183880699692349373212660327471929148683617349484664984741619144193265929990887736843165574893415347638392282378222382804803795179536876942311242832433472574332654373338928822648956608930625468176671242175931176115147814420841566259037128905651927024278668512954220570475491063104051181575212813602750635709224339482661744361502829155131933038611451375548194993338715275284787546561941803122966527425132048043940917569867539520719582324512631097397589368838568280788634275857586758233174593739413640741741968339459558236437357005686487953435859836133627538659216936963727128390225226819658420762892951261089159630011016205366725944465976517669820111125083177546167942963786744536163870116541721408793373431284486654551258121992366225968925352784874695268782567816947203475451111571069642662960368354755988464171205890881863759490555264658380593366689793592381569571166058591377250986556951792605715451277006799676654237827189842119096393451531356614038