PREME/G/MU476041
0119957867149629262451424784354211539757989699978024860621995939625407999399020200114477608450414712397270141758107545203721733562068045220784393541243743797639832256374967499369742363039853657108329599689354788334218591526623759587358374537991762034370110524824256111973000075505764003140141463384024387351986402942570538858110031330885155913976583122353296130205472671057083179194268115216033874199707334249252798308633042450694019832056706499797565022064944514985621768008506717103649879357584008543514301902713010630746485123839333855542554665947535144982820070972243678854881783909428602439031883516461901592345884841553840859386434955375918585388845257156779295200374387098622102781367108731870430039986979150332384787220598891362842976471007257729200682369989720055363959319624280843070501018099831688666192438757202352799702345662756040273181839387513360836924393798670923465724526829499700084135432551778775621028859644263141729928876031170815983376852937977812145369244556585891020143665130270421237374834453740646008464114788393184520293169620430992209686095042998108490494655641442296519396458807086810106156956648222527559086316126137210036535513620209456746935602336979453686424256369788350015979458237178370541919966563429368545695517267243401760965166061384367722269135256661616911120993755587139838969209769238387481154453582864666534271976804068496543902879603171385113077884274437014972212346909922527475805870314424182050063927981317507564918018198508193018595273775724159820583719637239482345012620735411966339601950083944774129993902827028339139644741748165051184661217826631576747820903509857825116312257165198740628217214822007047390313809686502956190206832187651204319613649438141814189513972277407350223482364990270357451403128114403404143234674785253095239907350903971539043908874705930342197370142557544378291210087422269803494155538692722436672178049876599883556873754510152819141132614411214968758448937551383631402353688024120898387755112930356678731535352030656318669245920441007358616400797168016511140651346099736160219483740057188360542990741013744554954379874230452762599729519479860780455369181761595449901223104448909505673285409640767617651461777622332519808258595646063408736152224060541550075429996906932023365461225865616765733810312553138853228192247035578381080003218653955365802121372771143975272672627419177257199956436991906606842432789211584450643168488842270613419001338756436223543433973030788536893807016126851325765755096909597177632713952164308019206471052730708530136494699824767717905386861516554308188210256827729213226734647455071518637881944167901725958502744817884105814044284075125855145223593201766268769860276224723166738819552896279527207671635145977376971601598997220670705643628936944518870659994603801382783841560224550064053766434554180172376742973784506793111420644899649236675280261655884550950488497842533247787414721486312283163874471940540580760753998781760193072617937863757654279034120839956002713066369381606224785930173444452804301589357168429656932711435963017895539076184768793839893289239532357717928963441378758513906875461102693936169316879463403779113080221891371035279637979752168124441341238077160490871900613229373138411214278308949701562916011003614963874702977253790921229738153632347178082954772512105596227651368747456314434312056791381253408431625660756116576496996364047191696525287657538413268339179591450326149229905871270320340186671301965330155800629157391572650763368328916018431833107347903994293700975109782822468874559388759002072582527006680938849884098567027459520973471935091185141608991489594378108694459024422540690184960247600382319535083945077132163584453360586612251225853078293961915701426869420455275787223598622871911618310299180067593235563828818431062969611027236260599519331452268299384322883508022607639799446824027432538523290232750140706820451942309851309422711110249586639039556667326139425579678144363011724381827038045374343848442270744643023542676552671401921734260998721115822367496907028002150727278706807851040302184268778259364084958020696897358345785269214810244701007976493595298367721928321713452590499795855198070896842467375324873317458604992106832012407880784638656800536016808871400605819206563603791949398098871192837500920263914804462363842967178391168110887465966954906829103895118476296462830308338893606812059934143175648635009672927658915025644538189941662120610486176486289299141199376278623527545677281989079891260223966455726467946858532065801826310774403671144368558771975261710130317916048367802911037376989481384152635814926040700504873829998584706610512453659358726538248356584257404160195105330591700979321953363252661753408627941272611936017010113249676767407374570057228106299674087770340672011347624756157330711133246519277972975361676323180252691875041483540089516069490761318445145856812986485050473199681845784041716998531381443472813307695313669321701569394080409788561760797773592990261229988656863111959573122368609403003252093946991630722038500781410172191727620911503242085589190602432175309129467919814647786089341703275162110052300339637962530263950627887598025708213308046470259337150277204698636989451312215918088421888762589922115977093870315657560231862342815310359729330844160119373912085776266503460814772661635541930210776421694614954939951540841239172898643761273498290698066485407357639564641924596279293667474553215927094629479310728609464958064959882505980262970924341559543881428649811576952068712915161015415913069434460128551577914390009497141282397953147813295033461083920233832711041108402445733172162472239954592617278661836061778093763882306839217249873051174992582645205791015187526538810355695423150050309222651376151853822396051741392384988637097222157433068068163865705292854785123550258168133893198675014055086523113038889763385592299129426396944431249748919941585839093434026058975503686862326543063654206309962211944681894082342969840129909160139409339024864877942353601708847888442069794003079485867887222283381721916551163824475813878106515603516476193364003384638525558707938526809762795507513164382747958533760434117782867765176403504642447272150550844737204633642889182979566143305589139984479766404346426973239555967393651374176699692503206270565983667377857175799140296673868441191133971356469978421076610712555385934513350735341405854041527590675056591853592025787799096829666503446981980189746524212087889816940711315456027120437286049055022804902898053384760807670296554954756531135230472361393536820188084486787873489897365566493939196509973854946226510705621480200063659460675228415129095885731043431824891919767440470706640488674942880551089122297221707221524068910531622693621440259597285598840059083779786165174391687564834566295652029477048389368684553413998251245842152200097808589960953284752984201360865678307060921638060414346128040131135644528941645776527311956697004187467650091538626323725809291569252207756659426496936766150720701100345085820047753555644961874822505354958260318099200892926122604895626319082819735189351387112937902046435684790641792787394848273162242181399949364202730584896342063450535301902191981490560240310998312170204329539003624134591647332571285113369301934072968586492127427560492012236146610208812931906819215794151318685717461611980466385003370828566112165882622115373986067876750519523119340331129678973333289613470636856099443899771425858815760424488458745884234417229411862779821585228981248191107919015772917625964345433478765111119304950961724941598299489476465766512355652797595368127210840435543855479725193090225919202917806500448083029607962338064150358177248618088864304943232051998590709090064834148797254111763005987608306833381606718288238691055651896195852252127723059207122195941267648902610599430696749346701086354643520673626724289985263515496273044475543589001609573488534263312927009474251073847745888871129170579308371113034069461410248736300409787414093398969724030108605407329919705452366599520670064477886988131710788190933566282673922301704424077473996307455438321155428246983252547016144362561049245397984260020978529187318562927815800150740754443744370155146060476646505627609917308321666122039424637199345428267274280912464701473329715695783826426706409381400068211725575254553633851650982165841675959975265270485718447827532501152357640769950223835359063164280075829584559040006414273966251998799490636289770229857539781238466909540205539893976180931461499408320940978207819042169191150104403938455728606217148304789085858064529859945604003870150294347036533801625791052328260115040354006262507679373029963137420249109552763650138964511666921707062360437072280604464861318394659038570858763390224517303122946729413964190117243960763354667719819550772199964905743302092165017619503154456896654601039047978923301154430792743651014531829725301456965520243652867434187409553459553339722165185072589801415480396832235584162951753350855851867522735412345038924091118064502758881521718521414615037383469554724799024300264952796318187369652639221304247550824576999689971104616243292520564876591035452081405274934304077389061937318066277086415594858593956175332386789757225318512531580845586349629686415508692876563496178252447724712066258569192873944892984366635781326829481017994068042470485360527499513156124590287511823625239265660257718949652608730014697679901623807222611295684920064891463942424805591299979453135438548247035238288732138574182597748775225167799110887574660599117502310175195609622036571060859450078845739338207111195680120724177243370753547008092798162370345555097028535863748060564839231167839658634399328016297812909066336560189076439466769913275866949273099437243483584721781697149143580725739990220387395373607021331303415667424460449814601186034697523031796360302166212444565785788973287336526442561884673512994331556966211728905821578842944243535966752101355987655760818771175202274283352318837672833860390103143985732526594381282375628229018416369668012831277363304027882496966153960768968482283347734475131712275065988949318771485292635590979074562208038310017408507831630075777754317288876983960491873303844656327394394477907502064061307849806548201304894675401791242990526392364680119020456491417974627185333750032811459877279686163537827292386357279072480577100573670826823304172091150272766201726732009979746228794086038559204518780039634871249146414846663011253813177955029303697683431867367351287249712297674053511956983537547508007721119572777190817855162305113420728363876372734309777014153492581694572568838029782232909711362310861739478073170791760573888356319230168562542827998282552019706307724095741417010672890711717885866930975200182999763192968091924249015475543779893293989339911483635461569318007303288811455565930714990284280591850416223705132270369514946322691819130852221613280866677879478480529729548412025064469345194916364767245794862241477278448881535447209784500143579953516165272501608139841716047576425061776562597835520043366138012119297873509680632620195632526250370852912832604693111247607819909721294213952762358117522991407806859160969661460654993720149682904140026906811385990180666705955885711848518290942328608042668682411959862367433583755933512275322973439379650451274284616152678641887511807001963791468089950271061392284873213741397497618994625007436185978983760057675298581783364681773579982232926614136876863905474078991654960019210863490148654457429086119065398942351318225387010504354193329868841738701236471533003271898609670361120710196489023047816062180705997659872498433885574268929031064122920292441789751762063524842732256680470832331246452537823181519064113415143872966923244687035986087672983581159896368351759747074286026746191640396369611055899514921072298052951827738849554703919060633422488070897614846890578644510827228293610964333773014082757397910836187038906069697023445475675111026716580220366727169840686768339911816994433672987478736917005493228991605175864511355406782647627773168885647646080713522419013861152023539198206267608354229785046372056160135269529646819640241499034981375209375412210193549963302231543279577747326330171885063248064745279657493855727220433022513833681154495274179797817737166272773802271610184155250560201886159990822968248147458995459800565075300371471986103603160050562199107350152825973641825033823580955932890702239500405143833221710594708533838872952165979886888143363211365019501216357351682133898603017363162230538064883042862818308092609187322878707119218465246857072817002286031428145380247663681130718338034557330041424676202608210411953381662105804669547769116961685350467705325338241924388502934176839929232956797618784215996876853945080170898310206130756108427197192272158908641625381942347921055361776531648712343574803676366328489139872559767393285394716166379225287783449386208915576724296860898295432717331443893266879521305695000197676769335463601872747672677652744444932318770740666377727364152547593040189409150565799686281290151712491023714357318989340899623438782020458433265443594798755023114446780722510649030171090432617814443433617800127081802453965278418715014852636889812397078800062553898543825723416493966226549468586324515929213756911208383596741629863204168794532962561252105968176743960703869181738496275294254974795743180223142797760101552380573104679302613286264371866719291686209115198272598533660608363332460854064158028864837455787033408729128743227847199496452749841154703816257794313654440596868804548452644994482077296136021555977547001029871552761395808279931373309331848525236254169842448249827617395945122394359110173535414350461470762690213696873831910084481671522715316803866744247451400999756662187138387481003555544389689364263680787407704511299293165618593693187948319636226427672087373250314970040523233970379387523536632316012558747289789497215123778340388107842824531738487779217098123478856957220630432536830724067707110090262290492418290779784124683413304096776150059591063658429200058929969452648172545347680552030632269284199736866525468866599582630079397972004847646485527935235474638204399195613598204078694696166738355915064603009558596377620136881835277931028923071038067378310799405750258827251196581302390214036427568012653898666638927295095278130008810409717302329659080510001445830273962282922432985028141980232301731600103850606322027446295741584509852749252157264088726382694819017402299802624431700030987954770253307890788981433656041290346894929860469700079683162518377532756756069148168846289740938875696166581922315189165845398506883763903271147773125030955552749376969933948349992402982078008907733067550332956290528918364835715988938030497057651426221228986305330736467185720431269830180479302686755509765869580265929263318989308100957166247817799347029710209818984299568813946462904820080554109172335839646278275761240581334667989342909092116110474343150146165918013341489615699525002775126809272989897472280529589617789008583798146063172356546144651913876877585705153542897498367652242046952073100622872593263022402758085995789224053806118715292702333338041524019792773296772587147691225812219777678248544743414908454665442756551063964399740837805294693921355314605524001381141450843067029998713458189825154254461964748354472166935180089462216872257922981817638714895718941921891923062606859066195934204278236342745414251153158702666772723805871327636171045562668646179166924555774514063824295266609656087885824088697265793788382711299563642677665000122444343618674450644080781289900944360702918436804124677430304212744673945512215603367036403497383869258718266292062346060333600310487013131763507776326725389597894883445187431429616921876378527946068086972458369383169863260596117806665608500715822637743751122297058837935756734892621789496954523827412413558620657897197272831775765999735199573654263400365637329063434463257953958646599490926578773617327652383197769279463115295963410252551969262517413167728934388369467134508521750836501548434974655490123200545522552716369188809724849450619522859786793565666136384231274518461043162502797251437380233239219747702526572217096846055955669453927095127735375407349337313145115504588523411286977929035497036658001273657945026233536815891890041402851653833930098761693500851521818630232764920271177309992453040638975152350788064366651883394384127120444325926271173390341425606423416930929068790152430133055016519116060778317607530429316195640772650041472683242492249159425619255488165532071326752139257522461784358432270326687504841915891295460156764727047532091737769330203974086688273383586550359437618340954810974172960525871330355653247508322693898927907139659327580572057115538237706967910753953787432110319623384513782940686729543762646187285072082905680519863357310777758259988727865907750043376678789886430460687919827060396099555968197048294835381755190823933831558587247390799179581662995533048211422805362394913117654434012350407341548603779788548849149657295670397044341690724572573864404391975194299747083250680282921763303780002763548401947591779004136621623932649438183291787938468504129469891018367117526674907128142550101222970353315266288619833941428165910880519709701355639804237967679106304593051908166562533351257896394943678277555190028749877932224354291478163200442946484239935495838854470626335085872494157532850428194600481179123943849561925157711692672941503260703223753802876186833235769456848878469742951427784728451118440856732580740000295954394158681310413128172673151990059945369895688367719953613269750606255394753753446643463571306509837808638149738985045800444952989200416984328881502697692107598406950551774230893568678096102268613424896389269256853783278915682456830172690835439518066892503677951692410301269997914733207652567542399224058906640593957170785009380241914722142103010440608733693037584822724361233811003258199612246293913640627557820183084487916582097465674630869813386503559277253393539006999734110840909124554165684582406564728619729806691461528575289805388671977838709675954659373045133872838390113789522234026858976098469468061814475971949531183253834619119853989227203292199206488532791820587296032912385160588767247328210711874334828152297701388198448872905543933487131556495600295371405742590607789858393875688906484885019250403879612306430453503549062780843107905586127099387829698036062778817772323641150407016825655044769572836591369106584184840540823480440828031141629404215988047406547585060024216544927718929249064556242741865771150481109371112391244137099641682484799310609980607295020948548689939077158752533563797584381070193024630975753180240502925080779845265284575225377987556272572148822996967329452985384401041862284727802582579881432136162357855292021875329005058334267812575552154143095270460999311364110030022394380924659765490386827852145254003038512159830326212943808153906925721608821517524069048953629067303753439075194050784700079113303083846329727301714809576350463586318592090863691765481108726151242363102296284269158245915758352609550662609129788904346967303609734419869693964365375401531377791541090704657201694300847552968944335378360794570028214343169030199004007345206137997327792696566407339113356683601395182445100511853323236908590497271691712322580424190487010360580924008995291277477767979664419038266212817671508635340886916409885113887363880411192492934911018858103820513300987061561985548587124848188961263473498401391791463492929429377982213047271442365485701769680429805582377271711447116181649123535396984676418165802521887526447706234799479724179124957115438236448089376279001096328810834447689668080994638593763821254739037392151301512645467430289868620896884982756845483170530989239460455645014864846703430740230116135567943351241530060414053859476024177944925303390254217601436699415209186825644186340218442995744131823838647916252918596891154056756097593278850324154889557095328012634492419843365950184091574027802075144664382803880074246149689473336383435494188034876693012156938939539105389727152803321811703350273061254062117352419467151834165569586497450637922042263448689359225143084203198293512687501651805817275101284599798647288050338161388156031276997770801071884192507629260543124720602923037500465792709410155673245732665451061312991346618871404175123453538102925667503992504112213438204726955093227007359647542416157338762792191508714084578325857748903563585075074794574778089454234019906675268459848291478951164290522924303384429770629721209105857458092964729316085482140219306061158660630035490512580783886908176065012027750729226194766506920775067020630709344996207570517860765215253900340576312398544128323086329255462801145101462752692089885129617031363783687094180180158718050741212190983442060656694454542844034681507052311695062899232325433962901098066074896377196498609218183387986828390578544395337404972584109318826281674847273686911190834846950008551678392337144417830327350777229013585781939524095815455591821402950567193667466369022563487095758092818540314986178872484767656318272479334915098019486687461242451164052676927507977725453148646428386556671807676314162804603351112823547852335803504858328673196122175698017940729524277336422812408085966105053042548737604672834946796721483265239507394649983853606056409124104736632009861391816687240755491563861218590633841824295553242110515632012078006875265889489306266799184500626420065905536081453726723267901429135116569841294703268883263994879290489918910410094960433887390183809578544892885231893837664027263328777327515411663894303845016102837504278118440061253127071887520258542614526749747991214899418726726189948883529191757642381835242639924882297393072127576140378824904218845712842212378316528100035597213606293812895109290410474509177741998217769503987459930406179539169914597690089482110528248367132732585691544925053450286043588814050430666554360493337393513997025425597464958324059822700926783337225894332447595354152516282926183641532800352530186923098390973353953705011116829515814418166600928475089602415046301672893971600171159806800171902976526293281781998654681552725346503312477480492830495175556710311604799670429817450478159094259998255533041231063993761278431627869915607808729575806238138661758848803659921684259775904086255058603855556438087660524238100464431317672824227938275402450456200770561099394505496230878954492530302015837118209766488060728715541094797119736794336375490855260661585151332210987111410932101803294205155193335541401441627165376109706712691923148299371530877280821644796055615358021560148518466419604307094378241108310365192883431418336491580258198451788121067798832202707235117260147066737652184487479197638593072679428317962428653805667251453339188525602830551231640312272563346209390942707420311822426646103929192995840005403127825433246713459473523379781644420997990797337201776735088351733906216067656148087431864085590597922523801683934727999883254021365902135514443169572634360609913312765229783087668805442762244813541167613152731056603912098149981352633629741931695622575952385969666050151259644986094710359870358792447757666379400807971336949321546136319487777486050079209676459065926710612248154530505425694053844222762432877241890701798952966858325982432722243976921905713332442723400108881276796773684085716684819782748123094142137394197167472133048694841132543250552259525831429779144017133677882587224758284909129059708514658443932755722332935925258306890678826784477998782377686082611279470312919733091515245171363469936589156569696135966209262404818330452673919844233515038525074654031878126037872296989359202693790484659038741898932473570960460513279829426289980409205916923849466342775574662487863981348133456240710741334506107048912626388066023067896481086277984055551756407834494758020299012106309740536825688044278512731005406847246832730801256572016927959524480212649733788355885858113001863069862489843611840538693496356001338477846337806764890331227755114969402166669860815336961230116209537592787208214108606051689152528541210028388379977583040678197428940921025465646698282952945406514257993970394617941715305979934602373384588006484115950624092827981846067651290546305118284011370244630564961490831088726816701546961795520236241771874582724836291561878406884905434342953943359803705074643991802869257183852464305208830779667197929915338324015276635932470256519460639562266125527175153638953393093538981201843703088134665154790028179511913818864599667377976046794922268564113872892139656547320391964847349446471040637137807810726481122285774299922647888400133666377609516314189243790016952408888611386081735015711293393129169505533771094266657658782717019491081404244226290621888171819811053820759270732055850218855287887103067465664115924475420037720417165347731433701060708229827192606717910178913355958932027865072648961465616066350303180429417945582138647047400439774540129143858722870788939781002173631789300093993037897133078191381794230774474998241355910328525942006735820210494886374802607145074067104117294919026892860202229702363672505272675580703011203517266573497611711274172103082435019678086446596145058090546128667719086193637382394377670324429382731209386960312754315288938723087636843061403332126767126082463775675858508402107074148505712537204683793363955926921687291282087488042285196095338888130549645351668502992890461326856850898973696863727175532463185411115409955206004255014044708467262994921015861213166762390441288200843332036414415991568677386175131606031800666968031608318184935252432975336630468065983568943573163137170689676091520903004088695164213093221150677528282799385695360927515296516472808634414760049135845884574302666621871350158139800779562200142943019901246246506679301249309902244671549359219035564342316230322996182313599337666078084176955043633908317821799656101591216493910624481979554688277315077529510004852749675941385005194729019823532180524295494213206897206845945326248070713925674686396457955144978985770553133712827762835775498625530184603701361474910215383333090088884638332972612014564761647939079723827428355062232946643628160706218636114420788044457850127094865910744403530509242861933762183470563279950605370113690673117505992314923424718055249309171700435593892012975592549322708526123517825147289177880579463583929769815368772622129278138746886972083595353908540278974682365952783187813946097630618440707061902728413595414944895951061300688138289420355870487830305395496924136391345289270002996600890569361818223488226144147590532766672766761002470569283677945417906038346862649276736594755839684558152290104518843868861363448470601231977062647219754407873143442484165928499090617899955017807539600456428722456738819202505409857421071134191802387251595699139299120080993529623766497165412375526694535823456523660434979357467109147759068061145445670966303609502752845511996941338968383930903906863678644813937504950665155343077357223003436657143147142827147862675296582814459411323511645960329036156362091186597006948472329773597448653420740577540969862326690082990696568108315574509423840186709546398842694930052125965157906058658868330550649676996611626112165634716398844004093846896028330869229156806401440664751882042958589676607024024587833865597055144797802215137556252473805238743230684460730992534687374700127006952914642667554936061454348490993654984533333339810729498804581889231141780081274844258267322718643470241397671550747415894955980068213614651197194818416518627517665565449412040126642861157478253264792869443043326556814239466408166420088226491717828751182609658978437058201226508981459767676356669666519856713445113329969057958996677657204884774783063193361605528695591364551663700833701737002500648137509370654646182963535855063229841401971601271018441629734196717081791745390212971972846514271649752355144399959430592948682965890954003155953676702858544701255517287933939324568049561410885994549195424883388632854505513839015138513814427616426202692426263946534178555913037711307891204663007026550951726577072813592534149889150328567136955204430840164427157322498467562234807678102680024981595495048386559442061298508532723988388166765826500199027393975974876949887846011598519545894453071623462233708389637005005225327293094535415124259996343374064245499829607164367811632848415416539168629723919814318226571338422824244020114995444354052683653893266437956633689616291420492286115525235700352234552095738549860592530730505959935576232312911014303736843376468763337723694161816255042043275784294957469542771067358854967729704670874807747933709918438732184677397691814248237832759444665646737061139073851301616325656692339354927752772367397278557908708057498470521576391961935723126933982193889023250679752915629725670770512788356743841785233778157296078305168649731353018809252657016013123458399790291786615376611623924964458416810797020073773856917285102630832466346513264891347912274107966761667447083048917492565047272339016942774008150123811246264462585860048242150945208860839327961936401249950289227579770612963679893823677003102464998568713729172034599434638518470884570691750933342400700668706427086497922196044335987008705628108981349925226858800708149776438190536503625263431703366035053823785860733121255198441971508036944154945889410121668642410996542147847269375223182924546280185216326943861113693913944284876775966946251601318219944639906761845374937502835371856189999880650690049310483709477518148766494649181163866005079932427410746431119907965289561233237014006713877894799396381718613461044848519741536169488057014968773754033476861696359314266328683729930697901026495829615305133625649470772781024608017015831866503138325842381013703865091761311422186743584860930421034864444701270606368038067987856274470067920819948379065742295329195303090897541164525954777538248473014633573876796830085201098559640817831583663463303420541121183715764694764888319261788404369685028124597508445995459726840520680784805246826690282981543470594425816095315525295390814240756829926724930652575645897714356369406702107417100479997569614304945181356958557410448200532882956012764211142516146431285207904173678352596033791516116627132806459317551148827313379301362409165379873711058251581045786376300258053721155070640966179708545174756321700628149380238216654091970527117915660668744945536525893143493726310604836159249781585389360816160226976795015716584049090125600348502460663261269142112143546137070586495340162430661536046041957828631238099690922243330716711670960206109229769127270417122127739114505229074166319894327113829810337233089614250365750306469762279805972177472782763306698552665389214144056025604265238990065883491647592755150459302149005745787312118766067000976154504550739991436931668645982487535386786541543427549597065392008365284317039451324028357320510232500686537631581847312078740411870146427651921960264365389347285015288745595186884286969799240509096091199562498535718053212431550574862800998716177552103150067893650865660652994281749039467151857711335547273987842320207403201348470557930178441167712995560525031691101663918822293911635344652677975668609109956870216894098121164439050661355968486231162259538357049564168764924822722391346626706564346517376086135105696461424210010878464326442634023012900126400181189112642733219618057617574667362970341098732676777135716227878635748715898823536809113685963583612000568305324061173718637835690661156019449769300073099486230017538175653197617468473242261482076336697998039852895942165127593510510954591789669482246689534063018439515420173217656654652369103690244524438918498856529390484503705662012212812871882641144407973882786662158174419770137879151768069512189438779346638526227335751920918122417549826329692122613097951858858222437600230909810645312729862390972928259639563558374921294241030853543793183004224442445360219379353706119521078070827821015551703610003214545389792176410320808903836717030069747618612381865504936349558777886612632276340208186000544693357653450779922809493817572947020492552391014171941236978605139121446515107975237254477640592035387913862460700107493172661638183430657525680538240683137398414391772523888686239122103890224140169677198061206180050768411004730305990969799480330420869936897975603702810834788486461720673124626263577362735111727624962029705018344893591632628532280501167166406567366761226344776422635742743342531077567626864700361706382854314401667557017842673755445443742076963660856741296889771954430450634349477763229033046607982904905425426839921429738527858484133044941235932788051327812898423068630797546595874184846786963693306330037620038441365828942432011176933096426527590445259856236486524955362578225850196438077771492602514990386142370597847918838105455322728654966334850318497130121101129775652527105895763601793833151316854969174742872528413416177484643377243848276015490736160236461235691894818201216731166138619518373768513792085832577218777074545152547076397620458065006048406037603015606834282362693419330637079826825232589279855047186181701831357917455603474843505274918352140543333932684414098320242307542064678481604787128145969307738669649915003430831474884990697808691134397554125933632915806068033306015023268554184518062935136650825911311821056181552751988053720914787962153603569817127151023010490181735147716675758454565627645090791585670416127856177766122675267246726063762783656850711582976164782241561713831885732006190514209271831958688261176257806152179743218047293461832979862321825005900292177737041148516012555673640497220114529106304760426996816247089863566150790711170083895981142196046896044738639700065174300113139265422803271567780498671506490834949637431750081655648817350726185828574207059564938099662756189309073495852552123084473875705375189582056494347739259351030692796064682845169637736683823028538369131620915567371810877519549678877484223481470797880317535716762215899559220187749592065266825987895456066210187746812417355564658966370334608325006521679503030304414591702291282664397072054673784872096224658697648780654331570098638322645179327084392736944852682817132030240786155152281390882872521673846888265098721539918006826178717636465211515681355912502508864626303031111033342748973910829291494248022143152624995868519071491208117799807565505407331419892310239402142032725530022432463441149619408425875820078233763242837731602121172092392317679808565427559591649164809398554208441453007239009511462750261165917951414201012164592494896881129585874286160545038129532203932588438932069823740102287076611807265594265686506750349821378018401975754531959731295727819937959220920894665280470453322225045307493649942020135119368018482192522000081023151728610477680863171664617232767459581165413906558717021240140137985151511415087139094253382989605565716175286197155685625027748161621987358958053170454900839420416319676607215981452866510302732753526394534326377635231897471640767113357127813398263619067234378227690187650947050143390718096654603163163505133132117321167858711244943057772387844402806038601266299568943967216473627063078382837285208390015689180977851352648809110344129267778665609534412208929875289731898709699118323119242503542771775137417017117558072084537301859083265234030398771397809404396181307743457715034356580023961509130342230451683665725696551117595343710284151655242288381918902532846639514199569031929156885216977058789189430231469745886412328926167176144417337037623052188623369222814815932307073662637145300929817092538716605347581456765313374934692140866831518263199250643934314518510649125132800171124269725814794740857110466931139722216772941658800132085776686563885763034317968600420052553459942038204117141619563384274576691973362996161345513235650704290110350532721803069231078834007854666639930389349081950892381099362851341162944353210340036559356960753193660876950579335351034493684654203803172692715243087572375606387841418614399809416852614587448044976764651265661306587635145063393940285493542946631307493074629234070349150946731599994962346957699513357406447474442019171365902293138146248486060070800279682247190276780503108321170483583177133051221361294979833302063646272215987465725427195074356518287189709547586609078199876375566952503932384101628103584975397891088777240325261535727330414986145064985336300903884620979956766095024437483770435552030778210312597809729456855702963295796759255722500967190795149348571117857373012514101594185898476014255918103917016671313978780695407337353953237324262733869540545351277662452768328866328990342937013573563243146136432003518435176183893455216142647470840954041922673535641987710534536461287493269651389753795592417007207365567984444851587531737951973300980192447390459803867226695080800669583783514248959007667823438919748988925637717459359231083190402857879372147933485480983731674895564872139287197104455688816105608596270478776817654602214604978990874304277203673143919403850048170298729890510313360768308961255191647528012235876659101422995657886448251110928260018666851611403510848765008589673608132778581586379172306322271313387503018439323098690392008520021665030119342990083668888928668101303089193979992154574605980812810166041968415687355256914950049841908107773368395485714326219389629449858532841203760802737649062983864718585198876833218733277311667871492509940295659570897150164997602414412253494660696329266816248487573131730306576991011921287201789307130118452774911761205164248885264187930364929606744964321474801103094483527781832960593809877380258528055220002781561981624080558698274049683524356807785897062265951846948573472000855535237400431701302021660458646131685380933070038401332457978241435254526620557346934441781652745213943102799578600918169529334910101365055399024431804488305584089583478093876313425645280548060588132386397431192268101401575391248533358196981103034364882338187409232282432266752311654922292134330812108299209621863170556437860029098788922730002548642428665153790673275427598565114903749775499567723007519386013623220505234378151915063063209707644759447917173992490701939685060368452443728719667515692475755168688131558914067384499835778421741579504935748449940615779558582052907401220858241763604642131683650330438012923928986322904656322199224605517755607431678236639444445313063481796344403820131844706407459251858556329651403712167929394542157194057957527898506300366533134853497300486921794825469869842611863250158350197657445888995173558816232170330177537040277574461179665167445483034604993579242333604488354191878959874462110617769652062360403802349921266378198420612330533086481052182511908537077365821316953386580209530485916157468763633400913507468872365024190843427770943264775223338832247721123275432962658470896532558168739197483221062874260729803929402405731925141971848459893618852555071456603587489035534201494983534037613244841002291756910550971746581370043857937510697789403373050750984150077322190495084394915685842298353296523626299665418677890422390598331232227321616568899814620216581868890325944175197793412766049915859292379395696312176927084617805547954169007197719309357802828442764899694167913939057473055831358351660544266066228568709542016751286636013400411307586781498985904903190919968522439923322251735996428364773410389769870264658564989675550506920422923186200662318660621797081016427433879166783469094563547495113799750717996113437068690307302373638042467722395411760751843833186802945834648066788007440683716729299354202068906022913294549180804947013327764370842862246051901632989778140841264229595918397194927544904317196453521158775142095391782856117812414391474570330197599504252604165817661326684474804269427369396270106591303947072031067197485367067734132307823130534092643320814994976947966806250718154227263339800782418904078228611740397386755908277577693611945353360649430407683252571749743585618878211870296083147970047296704642740151909005787036327172220415846978832345877694988388710671676920186691559667295187028666569962750913660210115898022048259536605842217640170899016452448320377125575479035992239362467986403586453569467790635021423575577377082478127314039522558330116127462455053564383632886138245086676797772440797499392163262910452886570898506013611713219946453050040068272890069667600772965104465093581051286633111809046734734606451881453281365236843568877424465594531642932285443401484453351388154505896862465104159615432139649018803641079020792325135850222673002485731914436659660788884622932231043070270336166218441515261763849613749302179073533669023169225924490846257955921297502991036776393529843145898148906018593323076637100936549793930013415489988955216916746370733761128653093093211103589204983799566392442250086023859472235170414555581729510125942984169234860176164399352958725979319196610082569417375415503704886146271961207591348588140797149680264677803326657467898227112275668463902634618021567906285761611185183875016371108649404004515290437773987814230389093540149825889843532616691266626162496639588194600372350269356539139105686316408695747537025668223292484377613199926115904803029811227844014421196533396356993209989059942718508497771404590388800802696642155919406306050477859472898161482596296983952576587596528821865860437396340091074131356313281993779969406682544684445350990513259443961831029901871970452655583614682798132148579492674792715712477700416652542290619525527916549038775538861143291128156418028916538444779079619614953951012080979698960681908200176286929795234988712271746045165233477253454339652100569300403825130802938178961123462318233954260671693330240616668737433955153256491060486217992858020420073829489569401903223194498779510595092446245305386789318841165079380829763881955370053125261381973213739426523867462636849778664489740478040891958312478814238556683906065510917474772179591782681636970956491947003657347900711162125603432975076764620916875294770820876336190360351956358152942036858750398377510496611623424988329623075787243322300822980484497706334229217027557161417181039260195603163270912826327647959436698342696127732611405370220771885339655897021552355682020856097304185236801083820730372849518941414766835410948097613144217089244341573845786478359730205404623342640527465574236283222658330277499204239585410006411008984968181283675923967093751242484607084420823402525260895647836772366735818750238245259036429715629617022824474722094601447620197657487765614652054773413904888087638761797270910419399630699666390395813533996129916768364901148208566641603863016295101174614958046807434397077097614844132729433007081879484647613809078694415312715264512284822330465496376660991857192999021406126583095430446696903668998678682716055759200996190213872839846499084408305303595274789823593469725385391285159604256932484639664515995674725736830210122756424685244614814401563289313297154652010532311666379358841466515202581449924150502299517536240815337538282651231757151009112782780167471399136425661114139008417322430664271111780706397827157807402335254687515787900993393486911257344526912657083567417406546749187104306790014052284719678740264497126696488760816667071325135642847900392437111932550876739415415117036327340330810693651621876281131061805723531039684975795920540476273286567522540365070329459688064049673687228666170725345644595441219028604329957749809754726695276154636921011631431575845112888129031330810680779172908794414854248281743670900797450442232090391989496557807132127963522622748787875104900190335532074192473307984436699860173432635828956996146537279979337798173917169370561414207183042590948537301731351137955223594161946691430255692049351871107811424412390854974005612990766480595626040059219867918676366401251015994631021173571482345778118349875954547142165294245267488008812395269434945126239447064098935045882278898118499749991710079494815464597323287170108766727033978727312213175499167583851888015124923689593291663323183927410595113756759456645843665487195884639035385534811789770195357941029957045019744397966415864799659690511835380987950132992036266564031446674006813154940705666882673185819372820396411653582993248359164910124858723596472675677418257443387130511750937061617041502566199560768886002933976887082417609036858932048737547638222440986863116575482251072462190232409142952745048256653477210368323845776796276276370748199198253315579923366517300972355929044440272156689278584480792662560459705477578080518940192062201260499793871991422332322900424689853881129822843080099310561751644901677058032218013827695284308079776803034352853951394713353247423294171448433827958613926033689781676582966671085719725893294718338740166862089887996991830445525768756179233298273496563676863539244287413846611705228468915349815925628520074351073164446968152429480210493384671339193042972263579095217630796326863923657527478971044115273451593640461629789325476766091028265328596704155467197424060075411819539618429249969716015860688636259963206820560551833885519704004938653885399674247323128783669265730421996620145031686436132612902413681593847935550699038105609348166796067569382799809365879077034803597330969445770757024237875424067964487205289152727508228710885864643702843976455283791261984957150766692133230099018041292641348028932049377206483031804263407230575830308434166930857467326688783234863713004107693296794161544246844975947518298691878891443324777456138065769857714087567647210450413539617497479103607256291623510592340176950912321091343700636507188837129995633275995005073193717598668107477904685984464584846594525244746832686871515591875134513980344358868169789109164294027827396205590508596934305952614507748651705798656677601447699307548205131801126240483663714143092178357056042720820846593815662058491265614555504214796588412164964435587051992753680124524658311508052917744746980917879369809634575386287247990572975371214796410278295219264119829315171464371663317628338428870195037645036967659433745706107196884740518845939173353561810874695514115013947490109222292359748652435869519457026751518893578463050254794838833184607547162896914329580094426976257801236574798188548188575386920662470036064057360361705440740441693566998203982923415511293871927091750352721990675410897525322217652664306549885825321481794975349364681841986725768223849625581923199213261121609851710254560535900210187596633222022468768191254128272316506199499221548279945338023269274105385720086536758164762160344600427989877834628020660589910597457050629650804124982538774289200129042421207494262932975741489146344722942597192967426276205011753527231257659755996918228301128087822382684099156872789281221902714003061095562885636878238980374260509770379500515972570200734797212307471843776147421964051884309405121268028474351663722846341087183824194473890218627373185583224585998771108684398740836735036615699713978525710103122902309206490383583618972595730062273975191074424373503624105833447707111756021267965362453898181219984700835642981578358578106374392841128292147771571791165280522031817979989548513569515317884657493608290633161643102969515809981375814137287947063799865677672018132038071841555472027840036425008568867776777155015176128008138515977102375065338114709478542623229941785232530672041131597439365718580632424785511611290033936198027183225013727059845723461151691631014394087669105091541339829585890356471775879557183127397617272252460212828477248247395964318276692485467983646276188234249565945036933401979208855967910263788785458041153550578421542565423652844735630296740864177597071858341255153510158916916754678558851836441724343180955081730885585232152859980872409478075050013346742485376091971966750934560860975774305676266804071009654674266688362695870404680209093058335395630942957530919206447037745097409577522213106326287050019232644331933689175093663949627112887558135285756829424410181440701321234961718420465935225805638368387885173511678993789379866866492131264892830207590228074903164890901980283924492064691544494141200441703491893678430250654366909084417228985124468005475856851599361216667103746991146011675829919425250625680283322556445136551911288102401138772937876683472995515531760171976597057369289255332387535881011384709250262447420434508303811766038764994325560481812839423810675367695511355737937469211803638730312005033495013969433833191628154013127273282568592500520530480267040844414606245358262046167848907706875938262282065468384664343483527252567897466558345549185492964353998099992586447711450505493599730577841456909333278884796434696716683918848289701735950502465079938121542512779152434178055155162131538379690547279741911134213952411460889980761555793593630474061643615870180748594888042013177067693219578522909138876077725536127788801901959207053760464386196595329658137738354688391447978013384749524636677693708848902382674813057243970959568262045811598759029039474626041338633011770693237366479589789518748544446149778099513314607679808376461391594930311610028674927747124493173137564448634850866167906258912861523658153366983258500039032185075034262688435135142610749789913699485590714245620138904010971530322752830457200752099709267662099491296009471336509833252320623775515803353990627177342333310890634800138142733867950228472426588816052295872458724018923530283041471531480808430435350212994316507567735382641424808700937088276023586630128653960484838357488924505394745023948957589829554188093652374109130954090045197935871783392301519201327946344838369971381439315920897126494351050455934214810486299211729776047682612355108120328642680653530635693677244306187858585333917930783396956537013868369697323026752940370458076123162286106402886973397385176064921805217386794724525613298664216645397174605663913671205190296821738060091880132914134890275959801189169371776103128655628043635109962113952395176289596799814122148412285788844406207451550018496654813056293975454148920087179868357514772025279582779794583976791386696052430064467084385596032551498349365195661710843875187697739741572337941772305114422450041932365389393569940462910608368801371582141966164748384506341101504167846022697376166564822154240927250003363703933116658049220778535217660880533340713418256114549644386987668485375357881248521904551773659382475354385773452295318857731725610782666492966528843902978726212702143387031620724897715034396358123564633318050001781165000988633866287114052298731624488726787704189644001912580710093141164731172571576428843250854912282434136294939746405840057389304752488111716077364436228171047574764196315397865756667073434561171776209995029723735894850981176437626424962932322403808461049704449458877835219236583525754921096531766843169068353990336036640919493974549172549715451555522854368008648051078966293160972000014785048329766629642772605661482090545126167007306414052200073682917162945685584799909169079468566729114474169057984409238014026905073866175785669847139669523710067254862589891316775930434535561184423675697004928066530218673648861761179771914215677984859272162661448384658546018836261000040777771157753180613443782954057459641318823336694884824907617491127520801894869766316356289737204969656203832032286129929887087366127740623879790808899008028237335532044791461375678700163815912270255265308000665007006133371788729096245438257018014726184882442990709379529264524376143881798453030738025907210564266689310250074891606798631660981821823413056403527384631853327727054519833783056358064087423669388365508506884347039714536950706303366438348095373510119360332475517826281285487560142890633581774252827180601490794561606738399587984842655472373218325572666922234716142773077909098594215122243874931515137439859500970911821487720850804861757992917278440914666390410945318300208046860947706533397950181299946701184030290497653138223311768849635064359270599508286320878413017833815360991365954409060551308060202905084088912336378014107556935536201179398962696896344830569406265981245288413988341426354593007505355951423989057962748567892631935496842770795284991322261580259839118685525628172547892482453908624472766799156190768038092307031171230144780913923832783286556220759743039605825643456176128423969019980406514954944047870356203536557941827357938035441665630172161823403591488284361508212961505951286295021059066703304376443770634974643760369167706258771518559197452108774224486943827664678994594808299318940766278934356581830241075576680997536391684880303016998866174357039716716531139337736102569475659419646785858591315452273714259316683071593925188966592324051949729309611904421591457178495044342211277333412739148197469307341337832380144269323790986091375389941601638247113777866007507080859488856533073501841073822047828273154028091142111567634128600609669937992395285110202774172077294895616945888970686132343595260077640236868581896370879288397929975970370642787340451434287463509744735576494533082649187459603648798099314044892069713869035538989389428958969053699068864656530710918417999653907249192702992745634993149760243857225812706766308012678130307381982641472253711090054476968778990892866666130428746721938265978885159456849284341015150809516654136521704743169124871890716589661253618135322997160049129723667143167834214494106222567427567896347638027018567807320021984954563452881975407372231281949475273726043663999526733578642933930704692295353783327719898071456867752551179446791804078975999643519941617070694206187031487324155644276845135803372334245025774206884163298946314688550416697921735122274040826117851308853329447109185706371817610025776715205534938647154665089466653565877867642522182119442106744118443047414318258751856570473891704071642985369487709124046866790773089860228922197782386031970459630782307042908866457062672801486322284552183483843235525743057015753720975481495393909507150289987274384267600644230121238017251676897952775601555402872406274984551712022741513219814091011912201013438130616358987993085930929445326593492948928758026527702253833770733510168511180860800813076622275632884634203269023438553401903618852625634920922209426773490961384201082241510969627814740321025376297193324094037702269297073086172588429607700024136910571241766784226377008777337939804024634218652639682262673159057652817591576878833431961094601778507908703951142625646743299732305594426690803005987652187764499760106786031012863399289282463351912806389716139471525151993476658327827385535268161966421171444576591350871375324308162864405432112783017464000516952730005115548271903106550023617407692242298878625187211713232982464154573526272764158511082511355629922787311499525671771214624276643812164834198060642229236787302864895369689789532279466574371377579834068563078265746532826302538808575140071573016736456936296908458033489679865758153450790523592405106485803420130341101461181256864693109872574522844286813991744705477869243931534695983347170118592656487186094172771882450612529208239352501893196253652536750258873392983009635810955874400463067265190594141954036467995553979834517278636105544175998565254281655204126344827749986176323642277010881805573818093781599821182140196760860529134394435391098825044687966286681320636828186217237440255656130834812889192779322841155045066180079799177042648988309106770301574306584461780113137425597142767135265826057640853530018747140715951094351891821653195837226028097845246081993272305843953136915093333803766245297652816629048542800157478542453008368825471293918040153007317204577609912077095149293686560515332149150853854884674010969301332168421883547728421188810249495539674838522058110728336634764401789890480872666474597925822369189988379601945968817170020526661247542599583851205170074345894603114025977424931384607170447192017778915243492416210207543928058971576461989931531292784873263917315985866679350783899849745149812944146431076602700397928147106466191463355020733573517991522963464836270995333919396293600412933598533174085040243290782390463161665627146568002247548038867673410819106527134075233263299185931186583653431632306595848371529365041885948255430934212669332057429493697018518804977182808812970945840887328024226044667295500813246540429219636937221417959149587171152220826371523432298959785644725741251280779740812332518621290988047296337242058380608058082219290426161715960644960493269561748236912939977503299482729544503627178469822570062590842368747144485912514212603481480212292007018328938741160529303990684451473455862127009679457531223284373087982173740600626788983876112662781278079132185140426121473173638013553988389981826635077240471908289254246428985235731088484133545142198789323896721577678343221478759012536735514205678269828800780749555862230857070530636477429647936374400022067934772214805335965326392185890519887241406788782758442629887731803249914084650628419127503252496389611415989185965337833458982288351282224753992000681879517673343538519101169431602857699053816808776197389532121651651881261248001679485160019380203047494447136110476141294319529373163750623063075304521851370462861384155508823644588837227036469979583292457099799915795301986178994877049001976505514003816866104983360902508420110136638620359884555251273869329564084768079818985513239237843983705191305908942693638809112355329424226962208689097884486077600583296755139742485634264373261443800431451812001119223225352142844690366370302560808922331999488231057015539085673540619916805755075558510092670437725013208969892294958450635984504164016940048338470873532120798579214713665737864754480989517710617932920625250539467255383688684581709727799966904645249353654247832005358255471494454565869147337768419479075636323315333017617195116006805757956757585351220861847644472390519366883886508167284945782070495011644866954508437692189888702331362761908806836864025126219480729107418969294022751131982841049080554972196500164923055417309984286182604550467513594231896447461039425753489752026024091853718322923847022116479676696008729738266040080151536582793295510847716388224144329662420379576180198224045312922501768906671350983561269140941806542685619160906163442496600889007478739356631846610739239705026386851026101909694999042911614220897254160367686812486566611803466128901883858500696333889292212301898322196500224311408063384281115553941109758047531163764497279199267197999467125468139381971307022534018445799704425349754076058598228914976884044836647693310848335568639983248359027879303084125850064571190488556050913593629234160996725959785572814179164838345721729062212656318314567273140934488629773945327290784982102730988139685073300914317762196156280202178508156009134764007106487537429147578408595340207684302752313789572709840959997560124589650001838128803674223370447631817126171865181956298082671572034169225657979255325580773301652398608172076986071100807567927693927597710497706076391338390732450012431575931151529215106422351657762090882690684747945869845044502423875004829352841504941982025226251552500026929734228863986580536358284057958153346576012938408888070366221644674362028649317358113569802586998784153247371721669143360483775400308219762113488457147913089333973951293946976660398101642531719337463196967913937055786920611745085614838900727045426922894552504867860912410776330548849546832084124304771725412833231142617312161627923756049138206583670174476458381829348064509787622422970728736235883146399427996653694577899830981424569889629405370809337886366551508051476858873788778110203253329592868893713117179446803632879088703559002858592606880667416760258314166602440420271951354395536195135894267321431198285121787876810841915826163031664642613385948715136923266163255877796401388313221986467049061284563973655417589682753137184852589213424315051113036520858790609216986887695358892413579039085672026584100317122038912612689459687036300465240975931033329117297525508549120921190426425680525585510041133194212209987469557881458983262959144717913904469424451131494887316175186968523914806066465757355435375141264904983057033416001128556854266002547460541188972003243126499459074265848444358108646378405988300483311552356937080018180745992318355297406792025802873157591191393884560160086083337101839945380139530832492363489756034537194984039575204520848970277461636978538882488024687254295871309030131278157632928758976489235999866655770904844063995478893157963391428815478968572152870613932837717440892413877203227810623563829698451140099796162075405216698211448619006159640520913620981434734813447456125326690426884566084186509418339333900389169928753814266112857051157872831789143386775182738229705950817340789226265680039941596829772272540600448161884124800811861048700364507610829120761166464241251845683877711141525403426428348640128633551799399693274177530187114788279441169494808549592014658335197691999866063656016296569628669609422714862754932977588419461802584197500337979307370717770981008782627942171195269834608443991930930994211818821673238314555632580875564152776085479930800908015743885792743904486064724856492492862509944226024230461611716614885735353176880752132601001195307549143127645128492459727991800253313631281633123748387966839737426626423890341942912976769303600895853243096737499956384207217705624496079587482639143538313231571345872708428790658735195901873708434804739438106589277277340782658724096708466741295406793470864036105153878484981408141679678846792889661406020330817245083890132660839653490191198519704061464368996680087615139981392886608586261015750123073096977165312178231790205493219465455579875921071755692632095494094299236625153588219444005764237270550920458516921856534234254756424841141815328272998462495878355894834729763615155180266804325153239813328445300146123895387503895086355773730856623074987341120899208412537746394570077258276151442815914103397851678780855863007215041216903240160191127122225306225814732522982532276718129178487779435306910809393190930575810907354096219288272921565193673613085363706533102611256744119199659541046579487270511786741390536374195698751030192830010854137932528526490798192613630583370372341126398669576065404891989339975720041449716016286439273136134645184637099149437940554695415023639935004200723046841325564030934356983225700154417249889365110045220756361035318567299411446218241207149728017719575076230551283191822562171357005111404328194661793974904502699642134221626652751915681228087196846018604080703036312765773672134962702547601477417403679524929921958367773157634758889755159711788326369229988956604026380044471443604767894738847649128022496128070012457446371903196290829205466522521113272277947130818552000689551093369127387934085347166372111897129324007711633253270568185053261271072316068424391997101184086596219821571755047644470144995001332164743920400623220869167683969003798029394618379581052722677845387721527750641548818860054456447190867816272839481898375944149990982854200468709274616035157257766053438370023976027329003491791521105153067162528452928567558210042488382219988909881592709614917926348316949039065617536061399958259021972000837146087841250396373324681047302345276293199520217646777661348126922339824888450107577271468560639623419005985584209563557312410987563742375241542006181235340611499968831969220431712147758716563642822525816425196399850199852367119509624902394820321001521612920833040758233988053409915412543094218040609969137187658569358292436736309464575765640380623562862060149312281584605648705208686192848638556190521454303520064809057575620300280065989607217040370178109452451128220013959481875889758014922987631000848698481335151237624812287461905492360210145693347701372580856942697411950391797726972086680290317015433842017622237681591151119428326445410334044993596047819976377671225414155713284188942712944418295481462156914901875447920976921101712322288860190977118833701197929679727282479456551014975855719806821547098368441035310289262735368050035434691015984606892046819541048880246427108576072034184217050784958149566494590327302933499034143510403011947116576950888784173354320775883332826575668955123046368235510040504454431897305947003087957025445250727674297636886980339876482061112979190864130840176257619073553517419252377068837932997255208474434305641842045875598888062004384484038978457202827979892138972053415312213214074256569582263731673058923805145076444306528301157970444924820587442016905847033459091463183395288914664706337356300539813256172989816855923410981757897629558351668891419129450060253278538676835142642362493481166216572240496777099327139233076076497863158549904799287354809954874691042574511023561401154451040435731878807767659174845965892699905950949366188056423559416678333563634587073326278072096068671819261403980472791647222024751366200063100906728026979040936862124329576401055276592503630666717162521948604238512833533602155662940836093604906333744611114287881173526417894608866240573708045541767392233619983111184922774886599101887123810855853168310743883161136107985447694445527201324397151817361927692599697187477947042315222188735372532817001721091639375560063912071151953888373990124596778321971383650962066987106427342702559802200134050349652833827750833605320802140638660418301427709064839857438781125612417365532342911913883951201222347014606362497272494109953876283250334906147871855786157771121276493170126604034277753379239231975036376626388824640625691306613323234291993409315661175293567538079361758310354480871599664209614928794523514834430683949515775464996209627488466927168248513189579254379454843413267692874890890146459723589520465559356782405308615016449773717941236822413193366459289445971242133005051321620431942427780533207564128194602199999656212092166304078476441556363343724348125330683346527371711473030375560059019160425392844712823852241557575771929442748627335758364576253886304037338879335805383488928436707647144133570286829106589123289064658554611868655179434588114120194688005949551541642814933045553839076320787411136023505847672151257324235590788521217058280227472992481512749821752513549732317536258507284618560651750762824508886151511484133584623788737022866627220842257313326104622905872444696051138868536102858966447471210632140303648564982301598530070680385561944917015050557049153979086978197808034919208898939928080561444012803287001388437908684095690003232957057397055176703269315002062601485697231171533131934526333916328976496635574387111904234908739223433182130918378592317050114802333616249466696519367534151670696253778952397878847684958514582783840180339149631250213923042157713490974388367001616325104366953070615930618334669238658551490481698723735575053619402078304818809325123281595476029603391520969271435994651299983008948066516627710667208545654357351560387578074093447695097815556009361620212577156164230895125799216613066859894286804232859969800223254377513684178485873336508133010682888453005429528218739083950397485483759620474709480409030794670583789851978802786705757595732392259430416748710905208504863881416117686225955167033074487619820834479321268553456682372181634113536640428819709851845841682448379792569459014922873454434834093466270097855460899706540104616086535025354565529336024865569140973296018916653790389285039159037090076992957015125467118690820552288824381692629733272083836318943962418696802441357644803820066130952888046536729402473489951676215091727873695820923058246875373591912704344359108485065735147788365618651867942345997286722651578425349378244156562050876786808673053794382647546938725226180861819343177347228700730149711040509095164350543476241672592695556048474674485998851892847757189669923092837554429880972305347781355629021601086644554612763204139033936591217260389127916441598970076966192225115735677014465847610689587154310868750696092627960389456448310455243161959403263142383241926419337872402976756770424589736330107145272280481121282960897176273246409491626017624208800409576894518905385373837037530102869991443264089420824621148302777387208312949849156680760334765797739024299728006900355821199583482965619629151271644099150849534260200229886611984857529760015262149784200329778801546629069733689895679745889581489105970895248406670250896256865628982461649121634483602480183090902049371335278950435491587400922957486493075786124763200419786460780489710594237892791202528260840190367489421361256610104711006459278126793955321370009527498629786113821595580421848984365739839961761549846303273830199169902687194816427853324223235178443537686946622838920261875386588474004280758032974619915851266572667501679198502882324494014030301819799384929342469890599450391670968018679294506587412004617697372672723101558883620397834352354672300980866723175058957835528408493734170698673265251323396660474243231817486059939803288347430974151335976123794178417242013148888943040582277245399295202169484973019795265398351829548213678021257438976936201094989847039810634051670384496544437543964234641107370679407701760565150216505744148962101944573067782766807363655314695239214328648413272253930949914376101795431312899927831518112569399733293588212716290375991903400603098115883913958724841890671461503355880340698255227927967581368983005386294094452992724039623857213614682019955948189331861684802633328471484081850895444950118713145383645403619559432638571625698981384185343201989280404445988618507435002378599600103606165393845823945281206056914484818510369090585006268611441853221273265187220313886265770892212226803278413793989677789051473718759097945234315108759993228110691638711530218399268944805037796268972082082039064989953901885094378817843711893733128596457300591540557117298911606041984784759757861330769639195041919147529702761170421306353452273312295404755436180246354994327750903860566758880677693196001117533569496902626397803812578125753368499983029064994804307611552062431737446577110563082678471684257102198668892740176421244176344173021334436543783929268986397823867327826683767626049963197251114277520733414537067673741890577839575737031793494013737696445437331646924431547178375090999295897553083881219964662436708171620311094421851757285644266941697218636267212648116992610978348052276850237290319442600139843991399005083432830164498008712478432362103214172540429398163849924761857509404775806915504496060023368802981415798493784841542107422570594125462099098955426941789038060284254340438157274369105369772405787801220594289986427919889775649005538181682657895252359154278130430049121305169360482385210287150290267276728863294874782075480021646610670555373123408058258772981241281518902284535712431923207300171888792957307576561457580593466056303597364265186844637456882971240111677656998247796896628611835751877319009650627999247579771386239653399282400696605665631800116756907222912542859793646266038964853617652442209083309321935979350920262841742107050575980585626240918944107781302139978722663258101072644290413114641600812683616568413250052755372489207436295122426918970239894945121174050686899813008173494376479914426299150245973137604384898810877558208240682593953993031711349450100919510074800219000243900309746863119223736688034160827365683340794313329460469983212821908343446368310203229620424848749135710828794154124239646488768937978598712309256994578612103348953613162701719141296662957210924485224621090614885836644352227636370457072608480651249415262947092880764333054049891051206826155074662908609946739447811075912553031512877739166402582369291396802573444680713053434942317087076442272376206523855769380015275604929511821225093989932155299667816239132970738350342339021571490155311507688028496371800728610297908272463025559203167684906862291878601677928647882811160408360746059751731102103408804009403500889924940304039080128816634283505761111363180127658210796859687134479728032945776022561768715177075636343191684271652332271568600888397153733367446078987449769912538775717380963313352563859631082330600470144112640518626264544788307062668308226972718151908228237744680741037474014026473310007268452329568193003193864908455673102392387572228992674329909765575187421206159414890156597534457060056679285837548445465841608922260198514454223843172405696279500430773076361098104690253009011456421634012890027220190751486623811372150722427919522502829400113030872203199072252579954211074282095138685835670657931726460228031485475017696706640177736224979748547176805894835236445108794015261722890129451973343410970584362280129090727538497946274872395209916255522168366883966923725659494892439928698341902704584002642523942838167979776040918161082253314992330337789957270152421694301646409173108948765638459723491920266029095479202026696720851971391862558717833335604894855216877824099456538854206749598755893712437660821830559280884428529476706183843456071220105183534204581779850388356773931752432373634908049178196765936637863891542134481139012887192758707772616017185482354013283543549810809152411526923769538440963515736668011783532329261776661942918803425143126348188525827063333703024283913816710046411045248559304753102834357383012525496396357489118767586130576493316694857184271678594516283401734820353122682767921834107801576558161941460713117067052486157220987556600686893910788607908465070457469663318984168774794702225248785636937625059384916384108781115243423149108647627347875425311902237656832781787407947108397537000728520720810528005453712349200211799172246104725070672682866079265110577514092112501883977331067634786730761292230640604790654784809009434156749567214622713894469157768208550364997508387547119518476690559390050523720289769223202164161977677783027214380512269000790897230719906960497698446301192675710683556275742489605613787539541353632600757186647223734637445226156652387265507602715506517886033726096801897128343561222280416128581701898567280720808970646174268896121203827840507687494096813862816298105350720608780858445923949444253446012816678020312224306168168892626716495273059396648438086388502009879404233554041431973655954476355413435288894096519727748357492194506204407959592522396360975802370105516778482908979174424369570635935397081425807344815709498815044558518685554207078550066909121247776594435339268249181597639315212021442882453122725872569703015228416688264775750519129862803471121541061550713566587260631331608172591434199519507887522341052729392659934305569640473183349326921971594670148152432440706315035059903781442543396575978727740365687267893151851718763584566955281185728805212940245811813668428921445537781448826903241390491438893208463822352944086727428481327108769141455246192547133417250599034335325649840248488553099408592510486307920051020544673908492425407815425411530669950075734241397505864978572844012317787592892535075098285060172982206142877216023709498705894716719168607690272218966419867536858571927834036382503601798735677107899318314665109840324522532355245877873315880968239262292506667477951686139141771205507157251316473926077376555098215382842407145161721411029916772003466350821724353262065967792980883083520549655063123758386124122012055517962127925305996442388764312369828272361360295827180171894956738042944963420187756914846023121689195541512788208977580173882748426544886534518880281256894112393026315344270258402589157127556167238329128477962387594223235829273699983748317694303695992370356572709337700309868498267013432668579825399736267200182430538598477193450791881839036917223160251330070652118686342023879036731055263013858176564946713716046987901318856991539226363584984505186942896629327245986140212116448593752568755323070555288353677850969408708634496838536908820026372608880322631219691175378412604627090585281390009498144963385756418083239697775318091746222848069959350282724586184985868322168694464370807787652931515972492291732275393260595752275735356529510271049871361245133114019720264882187067121358673601149556134631203705538869144436445534600149031493555699334160305069645084825019393600128638424577716622151138229610699157470634211028915896798978274430073707192326070337522018377654957398468822000392528372151316054615323636617663577854068941720463643295263741547769699601149277191557666628390965505840317327302638401052630765743221865139954418831505253317384178580718392782433376405973383053185339993678077890575321713319932404517932426102983273733362353964860248965300718204584105688581654043378911341447288083650630699030741115832562462178891664398235256184025966773823691888266861733138882433567904031281586073544017832555934498720131722200605856081101591856450648152621584202321849581512067276612218802653777828549318648266751370259239449115138816598209857243883053228855937879017916211876072796077647543937764661593708749370166755017519719574458421816454381809648851522741376539381483704255725911013905152415375931062063257308070213674665923192137664635346023627981944378801616000742765281314378515965831145606439393573586859235310868094381513529256496636769150927365574031767914229293604819812589958836120250334130143224266888988614939258914071257928429796214563130449941041148544469200482288561269866674161831457633181952406835630987552403570436677815755146260054896422281486881714927678960479800811346513908591588596953439597880033825719067733630544776128117856722009506514133025202714325499402626774441808051342750087183690852106195073454362248159060658204963447619816957497144905958056308230481090964891160405147844177825118616496622338070889603024077336565701049041623056418605996917586122894529797922742479349736535549537618313198724170688086685155755070067395259506610235523761778144227636451922551540447226210784430585072061530202955819172585150224985711531963819656972936822741193088825554041010447722565646865995212903510614359355159276291408205949987295744633845326960542552346682726195421133673603920338200715493228950154795614521039798184156047285739925779271457563486208880076777661078957890386917863023166388415476779568599015344059513141926140892357586852754556151049931764103657126348853022928035648830976312452280711254350942538450100244373616019354646911660593128804684008496981485560544112448908271659613448123062750371578295559415083342616594897080551569688732045171071670465318931304477975590578861609243999659435183833577750071291422790531728885671193804087559706474015236029535414929826216898117022866942867972300080102406418338625104292486688521529682646653306686504011240331612801106576695908390847084411961374528588641255912816438940074509589843748706108209462631593565735068248159400499465553336177330621735528255117369380072545766764010881366113253579942771231881518880060268039599313704309105549058561348968198325408997224593563750717083439968223539089890830763647340020311551940016607714678171281854624300879984668693423397254659551077918354988136160637385838204867402112539204243427118122143916430887499817322727230696156648424198359065677022195239849440641543876980165255851664201883064373452857789372570696163544463982440574817584219804186298492921900315263427848225031644103285922559995173259931330133209680137959029732253326368383311937376170887096957286090773590620502665186708715421740133983009227123923529943435239946168340249771707750444452116334665127719417233879678313949514008643321769866705330509413267258356430849277058850898591881610674667015435301981542243169677664228870408659383556032397373599406689097246687692334721862345291812155452847210684256884819948679328215410008468998712135932254934580207544088010152097208719973877616768385582056404997215833306645863109125154230323836126734578998415025196572771020519675613932979592401160223053534602343433340727401319399272628833405996581207611991339033534456806063074858920052830587867542360534704689869831212658641225470246794682006420600072493358153174146673483315531063686323613747869891617384853493252074252342504969409006407569933665461149460072407872212124826017685784501238445040428241134331227818082954926485148154239239018735722683610110974025061081502870229353795245192895348394522407030345753209893879354501238430035087333173014253736562892917391624267977057187404612082194657979710186704784573502147303134949621913620650398994374270183544632705224007689275436862257816447324432112362679742876042964779661872763306632817145825197132395581745576513192874998943004644249771090093428711993392198063040191227485623257767099705426659221470173599336406746460204097089146169130742893680280178622411204174925366494210647936625719841585210885116584338622735398676643769753393606533642965864779017093603865711550756280054696129200927732576916987445957057039368989156718543302131583466341778444952275416329066864188020397954126193735374578098096916842277523718383467243169139003492425389769382372168617924654520744015941175698030217898098864208237266337717186404327563903220908214096080844711871289761927298661901577823506170892237491013474780422389096140773055133085019882682185845512944760845685953747248103855840602216731404921086620225547505891612036534814771998203198952917613860535432694434900454451483235741338405479157771396486972756389848541297087823062028467386802710895264113060554517988020904797901040536110984408197861005368780879321887640730732022609495544745376913668021953546059286588364409171757596841932239507242387203467896582230709251142441934600324256114618105695897855337494468208237754134128590927630059649543379975897828549194979156180145058209854970760859009976332291467260769642080019067256185081275772305863443106549021613820161510449554251095993123094294228159155232884236908952034656344568241860683914196038244039823945394107604716797144556197986369364764799136461098666568856978750337562294868803352640225663017098562730161816440685614765845821239208173958756985923775381867263878359571302885910120113745097190841128019926195383399153524175477807079414964264575786755428148325080720612383086604842122128407222972939615912132131057047499956545982777922247169575293067124575635566533769599868776034698949453776943699372638424376470119086062445737875136163420041386584768882115879641359616723867923796370815544391897961323841770143492848737081320602513796198638833995572287779663204187709811180171640152734208253848977327673338489320088166050530022612013080154988052654502009772786813660554479222449302037471370461267368249450223421680930883754222554066582973303987877785305179743207621069505532108738456040956730938382981164396092357242527533986222394399354803523223834983403435811382108131801045375329185769684875921127500135260458425111657893708173589728486378483737832513899950712753195578969019888304042530205171754687386857877341915817245849956651433390482654277892763174448610059071733436862195558642824823548075548661745505876918392428997348352949707710970925658329842848403372908586806091822857211244998290750474688202318632488317213366027886813188554497009164321131595186602807517237784341158733730035173838598485681134451172327796746464162834736618820939760536478549384681458551175653593485113752223165157459625238147735998431147678652295906291413902822297968110320764955804477272517132177432029072740084537562026769248879674507259776805501961411427174926394780653846755595306200842560893078335285010951666498655375953148626043309941958379080929606789989515617208613251170516537956552213075533732766596276565631799122341741312254708928463832319778328457756028924470135582749830207869689027627160269100237219078257781251886347827887924781282401309789930293670181215441326794614865478263726803906950281022641557739167409210144473517198274369266462968488507799274328160955203857307579672113542770650445570311642290261463860535716160783682731387581172779518444574825945843433541369475962722726971698370535269292438494451119371412158129379466174747692032950130412071046999204631014174466364211936417319224700743183981368309701028417381133574445086981142736165430706581795975898601307025076260419633316847959589043835951024052181928463586400831410174203621016527134666723108403721791634895010667314668611838560935405997625043554205638368790988779618703093722118927782375727792156162197591308602897204543681444544629930658015237338884647270517146334421245528302937117414497061543541125758229536274517074421349589353327133911662769488479213063896957463078021297785042696097147477856971026955412319004509839979834683137638963604569236073936120138253956950573159717224971991426129311094948904836386211170289635191729033069163795264076753857389214274232612106568173596781811878541037409565305730494862583128934115924679757969281112055316541822393693491148773071293472742225199050171062661218450171998008754435047055943597480411666090657845199175926697026727551520915427251499475376775198606295966352271202195461721933574084446298222158082287543225390113498748404341945952859445292108221045601727322067297551224034372441783411928293591769433818152646982158131215908200804885595621232510945272843125102729861759675719751248369356456425852864626603518582911637946849424119099233078506280447605089777378627378389707122091845680137023739940573884945467739077020687607567357351827849719635647456861027383454478546135372218710605512973931154302454823553854807880271650380238655076349298876901470909152877227777983045961546130327450753950128301642542265207442613109678304499205631977277798418640027779300596083665266895066083082343735545779207637725736536538858100941656369726653029470794907596018767147139586334741079579330602161708475078517761202094512370972192499783049780134041775851306971644367418115325887023997892836332387880927768635379215496488553466403977926567851796525807452201803891453263277578404778249808925409646947103593492455258854624099253777743962154732251893378154473696342728028682840037470039347416399029377915422281213627375822738102319843586454055723598728512455028091735886435210205557273022293842328859045528112048039562833590791265065287606213289167039178906463093399912825889840408204547371170767067463473264067729932893526243557205072805226100858609179734950763698638300203094524794074186278514257184312760568574497263254673672600293481361343873449052762378013119821229608026604243870820467531153308168474058779185474797370850749166767635825352134804088635260005089131885120056571821705272101973467204317726837345574566255242518116185823954302328924344187285248730656123489444698678649170166579190716388994047550016761015236251531715601461213601300646853503885291380329884043604774246430689544516073411971807402745914126124823442093738066236209414856514362724126367950826484155583849060772194405344324341050003086499766643994792796082152902525979768981977049533877934963164488908185749402176144165583080196419915409195030932928515397900763592509843929914734583759888881203022539310305648461182322085131089773095573881412529978855606714140111984394240229916159233576052032392578536386355303203604779515861696386340618134517129187413925449368103469943293008260899132667563242224630102226536382073125591851176408693167259947473474812985500197247727648477341548826077517069386941231629118072492647256736318994796969099860359445309401404410284134208922961691709371618315731001078119780919896619126302289660860875126835542481855750909484228674245867041122942087400143870922804329356943965680216782908271531843571098407914467470320231458320669849656064113968040122821973440114749555057976814732578526369598877733756668099015697558555363244114309376782167093748400692927153311446044000153848411517507231246911585395516076485695737073065246458206673954949178182675243583093864226991655442272680891939194731900598480319273419770739789330188948909010267821329679444702047128797627440077576008722182072356227108961373389312343494324412610672956207120919896072030530329504748165695823550466290635353038522535066121634008434250311185172452161022905743343398194328076288359098434351468089204576032911942848735734581600066726203046222761964885751257597480630229892890320398249516730920837417434984709890662146288512126320520153090476767502070188275382514114570915937162170548559184396573055483523643780021385097351566283886132135095410098933009169358944784648523366001750832716013441755126899542800033947391057661374915264300286397714052592475710253670494581727164941229088591088277369065516115980087445475239298636999492410681300346674556362019779831459836414165408123119112761027906172803646592631611955303591760865416752268373698617821567884890313040324336402524241413445235440638439778400024843998823635382710390223183660338242377184818598622033477790605986142871247393373459372423968308605188088210981363934423057380445952777617973129186256364082239427453632008850054510239367141856832827603702419264275349335438752197962449255165403408457556086274204995297569258713113234567668566953056659007129272734718854088967538154989168793257450978821248459117986955976010719099927741608930159054653818260211205959279046282411897866179903410568855914069676678367551265390575332784783757824989618156977870829151807397952934996183854710126139296564819044047954584466505677453475780035987902157515069319030024873045729434808035743201731643099357030056137420503778097838298078846876694028762598265330416217676248346413518900365628609592728169280377151375532387981506866268335875689316059687022585646940149615267958628138613171165653824504875678109324413622160126631423452820838974650522491468308678479150852349717328694769822112131001816228513897948428973999289574833948343506217883768549632550176800256409117463611175128780171641621665092292834565115899648457142341587348420980230971005164359137614109660715434047781545703183514183242076009617869223387439469922089726063705791982400582439546356585528189505409648483995040700155174452417154532411193262952138749943654053073247719260060661758340852469783456700098238923218366274744119314724908222440976174186004162034465653424775371913503090662736754325673441974325051055400368413071234823468517199900097984250181969187112087079841863434899657610846537975838818453126753490416120628345061157231583380047955484768130822103052621312678542481671262940602065072379354263218196633898485535028155110388170778229960109128458126274705873464231361077230885805094485208591105612347910737304194472174005680619463322088425343447118851613329126452366658376553242460268658038259053503882060490670222163600536153180558746105232127617222303035661101300877776668547930010126416747623310954130830271125138057626392635692735767561937188096884579417130957461723454596289453332139234774492769043120972304707523712998589112248546377223781456027512618212894550156740463045543557550097666012090260183554606386227569851122024349200783064093202851321869456019272610913373026209703410270811739769874036296868835127994449681622753039774297276295230466639086762132769133079464219553971915417825038638245868765295065799027796821126755266180694036975477704031148161433280341299892960937142712523108145004672213122476454775778676224204654195621246118491877964782885845829063254068202484580763280717378030758933313902613773730071409757262742149077926958149909042500793084633457093474625564445445891790778421123065944979174290397674602508342320701618537470277721270555286416909045847614520994073549949017410688276494026641232389525200757163680753551291319315074964451284187648918428799624151712701110426724455886346361174533555942676343818366296379062114161327656856190554673152601509421323243427302840462161232140527411473287986946338232488782930229589253360969989106076691800278093014744123363329938302462653178132979393934838327528276524212691954559703643090757807445022143065988130975611660942755527402202929121776929384478094860010232330641699815666243205891701437065209726179114149821903055773801092642446862488144568108501011197523506866518700078210494437222474721574737044936875046948987817832354051464575056276625880575514687059347428700942753219436214041599810856201196414945590742003480838135799266703330340830576367751875024633018274267882702720835597882943891431665439025422152868881382760903274709469624489363401000951488805162133405476489509310469814687430962696136063070852875781998879993494317318789143985583656270850788922281551661878536738665319103755377814652133965412526482829733674686838402113705204807784765997926582500919922920694244639331092568323951467706191875282961937392362116077828583115037354068636030488204528702805461281517736049782670414325013354585571890139797515748045127672538318087004781525959220943074265080831185735511476814309366415722433537528853965744473380736376786025594378009772491676972729553748780537040367828172613979563586703353423518393940541909354598997293438563048555435278639848102410963598908079137781608203064884159789686171669929911977400716302474187732875072723377391978742435584308398863891488454593122794095135187826260262284061311336931832300290983092318933240650994928247967440684365709301999285235400013818065861628845856943852546988308915854986628548201708952089744076917864738102197823110680758301801836621579830546010896674500008464386646944262941936231560604976376056606171515620947393086938432542455486377196234081068719068887044427183573480289824135404774364227319737277260776471587359810963067225619976910435309833550886736748893040379837057933833762881856261865550856132019038271241242868503836364201458446602927699524892484513419946404764796203333580824901133253231357483664079410689535039534979578214573656408661264673396551408560876727399155465486416593373306717329870984134178812249731115752173635512862128475961766332851949893249425502709754912774028375511271348004447048466221691845031163515328032158484540747256906575650623491719568670564551591758658064883643169992325213851676692765966852490998518622307178434323049809448808798764620234074898419840702786208887284523684807564143267651128257877999506259241013716933540941013470259803717023425909970559830085817659265700507055529367289257477087615994322555139389354065868904941951572068353977119814692417597932660560201016648301213017740371552656355343727281405019855589434578904427940546485119154813853841249494337575302271477832722290975545219691774908769580564132173321080239934755279790210337078556520635427976730956051994728159776930460021115802937115295391599771565294195168780145414244571309743605006240399553521798064547857185682423550634810065023461637172528570834706295656431193814506000734857201237409447878696799178663913769603702845311184253950991655702547901598899245241519759728156003538590888974235372362302974393678074905541594456463872710504964758889629763313116845481501872172926594038156038122902679481054080043384218030626596607194978597677323315321976702137755108984445379043199008676374843382002917888000535858515752064876580489654948453513128943801995731109843724816894411447340460587438372749242557581879623433718369326300899439269263372215239905525709790795061447398205280059564051194529458278326013777662129310928366890872602851954259622814770053141093212089873868183368429849364597451571677438613556776053590285138085672272233046576670929274470243407225233493274229797765507290775531845433111435996735177917970838729787388515158322320939168987182255440171836820567432747209004415133850215622698023324592523926162950812400440144278820992383727557098294882474337249599921852407181146383937742753401001004596710122337882807392983436354699269479830955846326361773018805250306723059979098253082040510793658662826323254434481339909705714401724670130690763007531443871726575011331981169268200726604463037063565936350290774913088994626362593595142018029910132280582244779188906940076180933921943946893094551787781127536947514153653878754855854796518096258751226135715658116036399720249234769888749949832860066247060242654774831317584092219516951245286461505715324614981645670360263746213848547045884735571158689795777697181216524690962087502800314939437188634202328699968403621074422722304992662133343031188608498608384910511250430420447066071479275550967167351268165889890745389547650078732141467761027847333514953450289583062646354212209095885561333569407055808522947400730108733412820366646611976666308235352912455246072252255725993319191536147193587264283033075016354402411544450545042226226550234569077947602014821674990095280770776245448411593612519882120822787654211840399990433621684297167731333502897315699728468985390630924045983518578134960548812360701259931426822657939156007846100587060468957585533653432324350997545342168130852995658602531473697161572855558832706487925199109540785214984511276601875901822805146012486315208218069465676441286750233033570536385991756042291072452056054760055400333229695341473905560243474357324564179126273389581498644624301433635928036373816792058239561888530191581887228979616649418485171686489736476671706621728591719228951684532647255526270233143033241004420047341651584952923712556413185887795378052761076985508795077478925717493455888378722044855560195862493397874379360192409297857743303362737864917528322629529197140874187667197136696671288344348612437372292669933630609446101524448967954938756460943060804891332195327818049437288578827484662444188656611420029666408137349308301757564539083253566636066595718526257591279903472435652285157821709589964418530186360328798916578796629239093570746645285671587338749024246424218945160286239282469643187736819132928906126896374903194051268956659618756318820769507196215599189291323747061257909503888815783832359052673995542200917301535841926527254839749325449317429573065156759876076238271960046985867283003722362385355230038150937799613685634587488318033319794888599532889405630368211442029651542262292298915757405008107773799076442274349725105795575600345476650972315684163746721299282537829521580072698882510699062622423714768247114174917117168715181034752687628043657089860511531777289726924788713314110556479652165824864210543168445834537496398804669387323265752131500942272172949965845355171017883314617662476337869454724322214549836892900583144639321135286291462162134620591549600366321382883535680008279571571583668519610577817517079532461331674888442381101368872863948642314412941300982609749040185348611438126693644126716917948381351479683084231776885823254734938604449091098136889737838401459441294963449221277291015140574800104638229061545836194262733003050204014618170301118682988329045058916900428874796998606679799260015581113201898715282771486201194528217864778277030144396848279769590012820435146425290492704690302988464773812065997977305121933558241996188655497143212401064454440323427937625192173891473660297175637787752926414808356042602964818909959062521851769959571856497209300146695197678797026368613061368577361375664107605950890842401945292866807975848579209002812830506403236329923102661312760605530329977912437204514167416125027571166581567631050075712117286394294903577962519191854345725246900620015558245528319010411879490116427026759601109133657881826700733899368752473251697301832347061935265446211621103784667091356139645570197101536813521683806135749479553679928509036213980589133973208177619368612427427642660954260230152451086587885445768447417078712323568623696474848805541503098866713053547292076151666802553165697103535159263680597034900211222182464844202873005947787383794338919379918811433800747900204284981880810659077728363710634647384661781519928488456644100020566873378157937836932408355114979653113876328068043827455020782404374856627194330601880360064682274420749445236227181978024445066022156339619534996990306589874959806360695220439719070565531164110041115051666887367221209365243344092149770345085459313437272917131798765603474698631402021369707114865361937658357937142340086720873330000410276732866256338862284683568650250239148224528134415111886869316001470416820057237447434444510879718044653308958838098751629087857063677586307060044606157953509370476709712269997214890387655685550796582165339086326084284136419380102433289919022116676062485254590797890598415215783108627757662433889484994822286995783106882214295749820097743583202050067459057800391070477983638591177124166530250491697603689800031013917909279706884714944026916668589051336222002593310284141795724500812626035960524669333222788111396836963155817891765891901458184686559591972040578027416022056809453252331986727071817935584182227896534542756592162350527132689734806324465650640264799912584865369112945714199241238209819351387616409311463026314449332238247563033943013794332510060663233008697870157172112140050564483183440893471780605495877692813095622793885653084575892777646060160508987249296707031156773155360265561803931823273506262658699800057088635513511001138629675896805742910461262444781385769970638585089554854120568989191188888744615360337827284295908158768705109482118163258279589384816528847549862648466223727192173313158476582321249693168131150405537397382268708941165378081921140198091250839367959810906700899027112867736563139042360646249888154990787412518868699514272092781843118054335583358047804453889280030419222023757858981555986587237762703917973151018816295770410703284824349009941732501082313183140458417469389571078508694184066440858823922304222009283878037463074880480023247888798644989048531800185429403476331447836600650853943264344151349324726903918472055935224537035674111011811776847634759077437923134391138101434504973670793023524184325376731030697041136932318991853060501219585401842406583055554564790271573249852901642644508321104716169993489806702647329377846232459480902034013566242422068456246050761474228988332530328563466383150261369783937340413709100495496165525929777056304905329001479004515691449715889314371089252642051834555660563222776875800680587694831785628727046916690103922303328073881076374343469182528671756911982294986300665424095683249548476687984214576124297637819264693382135372552135595450771352629307065879619981254972408128007056128520240293387784006715794849105408545987970865029648526507827574836753422118340156450976031786164307707487856846486225108236679489512295315902078901977908880326193657934255343379439891758607104222172379209827852103874239080047595101166558227944541840052650649932093559178365191967256781109828137062584462305636365341362763631465481878747111958892615107833924957592062815084259936831098745736277396683584062539615022210112397742439262653379051882926190779961443981423638880744914635702470137757065757762508497258679598364903414375096275296105429376649198263596411630137221382864194726820726871429111277773366829936529165112207826157735008393173154739948188862776343448466544104957427046784838493855773457208791123190723282380444611932696209021694286262323566095474965724107275780029593904450602448511776225250155621191665121743507508757857668537603769009238423157608613123944382888046949755959238627274763296956409930032749327523379179925335245397559974090792420195070619701846481796169495181882331238200738550262809663288190187485869180810583918644185622182373371421024907828482735414180695719576158863824609967927680458621841638056808475658474484907890089440839767374737280534763799947460397275162173009624615544865903700452231390526125079764872348858526703890760449292494748805219531141667386882348271254055250578158678087014046049162499618066338849773630764033356011980086080930683390164015981545058890853163356876210408103372586312966606827968962778170344851041996402282765671500062855845163297825870349733890165210692988879521575647004669805216465817080135516501848793242347339340406838502401288937085366403850991136906277525158927057766406705097687743093433269573324590490598486104042692265313242906890743980994752733675515585211922115348994283554260115104561088691817314454518369083440901117702170740988400398455772953345978062254723094175683097887114757457359266128756702983454358092930019123514394135910107968348320918307159060059584575298463725227874203308533496982435463910132031085213323133748385438387469627173222349594365892710989233123164088936307901851210590078006498317943847622431481636931792189788767038159348633637961165170331361616815299570954814811397731113720734350587914569397950322271153182744919800891537386019584396850674901107724147328236953570757152902393266747339758303331275138515505887769957759644152479187823292311448617182174020747591644067177604922467401499907829534600804647546791751689871731873329391530250361228741159252559030164558347956392240941878536501545521756787246954927459428714503419705703587390195944936475702556626005935067689876807641384693689449541528551172711995003187691049098160939319578042778511509292853575834597928217909037286231037836318296131573552264888433649915559961053665773571128327544263686793471616920424926313134455197462063254984784066792044855135971235196399271009138820608599026355239778812490076192635355016075586172646204917951842073334753766782780292737917806614610635912563852565074635172745289419041029425598480654524220988813018171182786580748522666318042764625423007988011277983090522736539312776250741418011165481307356857972827389545097270756501318135148692129818757599313631302269037019606854439863897824518715766573103510528608424117926424995826989475729005466102872916658599452812201815934089640243514753950789185126039743983569209827890689604403215174959094384595874243806022255699428500665144106396958363103910256346081392688036314735688404246910260336924462737787099671470878719045494249023074739613039387779371820624211590021019129393553663370413619413915593313180095828753361255526615180835187246144923552846418819282268406645432480477688562875028888962325195845454102718958842356128607668625253129089709500543654171001303975819787484248488122093889591920862887184830089594777335669275587070067579909659301748958843753525643638151612120490014101839544641413683040682306726453246086203557848294005430874269455419777875285521571224040555204688628197710338939785377656901577468550660041799288056149929571164132142636603142803331635178510009957342451729551172675719039986708945993375711551902015575352946171837247788086949799684843324515405034229031620834757343655785369827200592109273601235416459143738058059194588877582617234388177821185417424310165827201018759402633911078599886735666685629336907225278188352324030838053376943114589356604463869070795668275012151382597890725340849488400684511472397979145000613661799617844773761346961428784225445660575715947825078484963713634021317581123947928809008308078485671605493456468414267538885510290475671840293362320062259496300147722771440187739773789669545636804630914915111822769282531954297416877397683810195948363744538996352717626261188396043766942686696645990466291965803287138029699009084971783452310744669043679773694555081176436212097277272919176597794992841264668467926504033679246556671707103527254751275974737605413630523362389003632200538265533535215753691921440871494888631758326319058327315804308934312801768971038815454990931327225168276051713667766812197013804255885666748792644356519779379982580839891387096255124527418175210068206499584495338504562467440365761183243399205242867309097149201134843175039372526525646887109362932889930363418533445282993339773587147901224370436313067963757495643773681276765483927478245668700435812642781449057254256748980177276687976124205995374297345372094883575953703181362195069949743435189262955335994916539675562464993830878552789817746557294036475549078025125958981343042897365767715709479723688443863323959495599925038175843262607901090014146537190846485253158000295891450457471084725178823326896838810571880401048606752597156642064825967416058623735236208776101945813265128860392491960287140323048141237883202930963510896976139282805897171794326653142361411346911322850290100671936766423031267422591767638693000717400517701418627253705110746502386425193888119296319205649977558386683143169764374575875924008817268925122123816799640171357247996035839732215573095679954075903027887968797442246785527199330922038812430391049524990464617782406039585552610589677921907868060731630203829733774887675282183878763691451104148944383287431597236424737415252540017814008296964332380996016118507771182265835547693070830450737804970529630624062546975118843224491343744348988070813585883444721544504438121841649037533666562257814746637147669477433468625317017375918711159252631558296308007263107439273990372423650943695410515753463426473276043973189929951085886872905914867688948991376999909453914771222009055881358142781638228182436352828434326830312351548082782152827987999265284393157044708833552277980742237975432979832747971032364766049867580266698830552876431824573311136852973920966569211132500888475434390778395322562237886808299505093682311496532226561576988714625777708622661850625333052599186628233120157968488405902628903982325298716502223811100081198034807969070397315517512312752592524188361198291831711468774426669030719113149937907045656674272100429358584747771213961239899500612994266322687113907971645513744669901641223042307978948160084353705216724102523982024656585241967049653153327786009609456081334332411554267956514174079973942208017892228482877534829581479662575327402621663694875520505240789390260419397577182241997334024301245149778464887992548542635580080231442076629061482105666368159383989150642014279244048669078612923084623601645728795093744416610293522020010836522395683760041911121267380236108803042049607299117067579022920727197644724836052117773901457751859104623518225770384704819409194106005931764263206501623515302120431737270169408498105522137519212791366865869116557979665109697036918905305166825484958156120031396561042399112613713898690744239925637217964161641197227447389957908878201789044793351136113247352334388135746953821553627158480497529758626117524200235105674472819594984625619831740571933797483509288162327745936575534070239850817839352862550342648258157318933851895718755303608273972705638979396133312130731694186545049156517094937614600370224224488748736035202511324009338656997821801372240339540581460564312350971054467292978654809140996402339268655311648276716334109289255080413865803392836569697263104245074547393856571849377630556087262075495407344470192380870624151783821984216315342232518611504923514908456098216883292165033017884145640790148752586792550430097046668761167486573548138367633064542009447974675028378457061962881598972488668665299695810279064699740479775575545529749389171090318573290660810202536805814102380921212073210611733462674541993228728941350976176791584913029722218721523483824631696297782359661630663740779282050652065476458276005401105147910780908337670307884074164393090383516220452181471164241120560693929868255618827702866189920522645026842329898035593072161159463357305040515343480666176781609200319310271471647303568998301240434220824498037880869608911208185644017930466813834645089773471580180422243467667112726390261105009618847166006100332631172387916637942433108037301187544520275315351428790899516206909647196073235895850145567912016118351501044923787085098463013152167708682690445233314146146921143444929152435880614417074778644809120260324053336941637731178903250989158511930102786519550637132549851637283793939562294797139528527202219476900717393489740451982373348166919896372282063276866847442650987135396570381462697115231984135684491738601066320209842490072676581140740190999178204970763180491745091908107186021001281572832786269378148679875121564343885103808556175448758453082726446863504545125280678158489708105125241823847473851489156251538158610637031161746036421517976605283851608078577164826733155706635663649133289847689202419616249326021829662931737792145244590172339558152676921989578358301270930953432969891633060576293531750558178441707761236654266082091805292158129180518210279426257932867028255309298750137020507529878752163332624859165691571091832915274545047820579398418508635228226346751134809056597322188046982840486690949940573702838302826708240806124163393551897964962645322128623779571964366386770161654660284785773950563427734128438938870106242352477101562094960979798888333896617666671583160493521650419465212803003843929476636588925578605033607552756682173331498876446660325954865103017468809464027613917605062653923852904730646207122771500290079819358881483717417242298446609142789176084015962895896310533129649794530448097768239107395139352379239132090508639813428027720002531662310736374868467592605802665656311944199664755882749997718954154599775419404245762532961694271120049145168930557624948457822454769881323038939871883226273782516849936763869000991797723838592862103850903698554386156605180191216645189215491979793001714670345341443297846499554282574173823771768173964302891573900417087040552309106031743299492321643778953426710827413894881931507064851683594515992579684595588082612507653879451899704691682814489496809124426340886182720937646163033122349049688457452893551391182107397380928962569762011933133960534194299721939005588951903746680778126833873028890226739921443241150177379770239332493463168798209304542080655692974537005191203252404752574786509612804852510104013596782164742884762809815610171346729000640330718616339544553327416120366253553276521810381821723765292643970418801625375909806417223413941273389083085780351676568998464115505572875601873279896451314652569571874846015872732763155612260449037704865121958065829688278039725028653706632102911054530647683357604268700783650542590871450846141874312684669112167861293957716397533855508081566158951565296286811669471481371416826711439644291250314716140545324048761672238144380361863665058870234621353215140561979709456631261441132267660890077500680021332406129401964613293031689094612686834109257471762235588773596380221839747410979414011778773584058321950068402622702163900221885113678676481271504887811858292358734755074580410496640969640226885447671629054430501343371868710549917896309172006090109147777398511333582023411541223284141461239911264924152094398928315215310785188116777739823715382271286955644425857938160030657418577633983043879321286840087933633140166667712875434611605733171527282719035232152234987283484847179145200354698890967281357878035409990313553681516218161131002433015157009374788378804207314207563240353658214144893336100841558270663087533343875875778934966819892093360445543970334960565312682792175715625259076630292998118800934513947317748733567579011231127274909897640744837997371336712451508592677596076628640765728819167326832657906019000503683652521177808553872697991667226478175032856429945447484116997555983686638561534850019918987533895695546252601845055593186273910600271504678192385352568231716505027962274058843750697755360379544905716417454463478978206693680562599319072645985374577345710170041687657407479604684745938545348526395248112971516591827249525009642701891557385300018977844802825431929321097065031159771885077850008726962375975514106878481120699979154840400987573394452257604700047539572530518227238289971911262299053058546762974573295457977535704440071070311607297397088561695633865994705229582200821154381926907087984615223123764390464309575449626004928831676514445354672002756010050573628848533232173527745214509527431250744640996328641383960749255272829702054067638323453966486676644195292602141041522549930204636273168418701567108272061967336867591555124547260451556952843040433532331534422767499276812335167740135687483517939139218086918181582698268772341125600393872717858045606762277207384004445601955747210313580052080256949590889331185560168958215577572554862233203753879369908690426967790294566503175314097562387222399046018944538526956081636437518915764286711374836151426153547340012600046308053767044067522368865893664336129743281062265924573009920798559205706576810602605233814644195326387227406983961692564515927340698824489992184080675498623484867224367337807167200267838729148654105624152305785093014995545200669571597868149729265704037047762718466385101696304980977357819392228722121960551966580424648426086684294622825808725322772068288991949690496859304799449357267799689259336799019777224776765186957870057865911982396579969713422276820321040376982034463849604224299665401686314155718939300408217153498092075728052320956912569659193484239510661458818498559505393818322245317098540414984432729393872672090760477866269623143597852230251531022589192845559608100606034878105310619725615548501707593769856244881217873409165841842514817186261214853170986494841091549243235272122478987940106129257707662334157126198079283909482071213051032159721003467609355876973615758934493997161432033814639935193776925048363863256782747889354180308709712000549467427818096088785661818562328234864832632157578465297095914467858155662245968197018662722579817929762644237807175139555157732137262340363407151818714582903170367875205486454036439494381349912005900116772016643865730865863265151337180881960443069462234471414502158800485432845228187909442325389718122863502664967545333143657552403323125274480959312238416791810930735888626978656270463524978130925250843732525403099837144249120401186967332755029380105827773150800068764682899048566593159232189482849691974896955230828467946746345357922841320507165865900693904831799633198529960379068347257630426454603752291888512130179803582301947441232235876150881110000657225313105976931427294334324594609652232377638273014216234437402496612663504011155398990645224854724826371870079082357997479856898314787973205060316268324094944739505416666411888338413332386808253106250085377283458965008320736923933570981246730694485837445561504521623053952007265738471904950317176249155500283057759522512970394456130047141325755614913383960479481034958807031455306149440034308125278368041382326843586248861751129835174330554631233265301132888957019491043711424409015341464264882393001919171105881831674098603309076359208376791620069011177971150926553345831514317188019330643484263196014348753999811728088527875852726775255236205354413440608338862980171603315094061116369917996182908869336164280580564534919626650890230484222736447454015206158994279029897576948040037042658991973245348425726397976761031650559915576272629984842239375393599533204050158466221520859716870704964657735451888792890183002737084770171727723810494261457012806501549585738341190907065197490338868557352373592590331377747160102023622806829520842890579259219135517150462188242968041767739140579775811392784122528114324234584525740029522928858865024375051587940550211388651992257083725631751899716913823438535209208511442782449870988230314694680391974830741663024289699401821998420972795827435515227141273728988144381442325088376007353003638911928467082732157129492776475485952549175056420496737242705400543866316457235107032827278434791652105679536608807452896773606172039113779241830870117356282783340406039653773336844259180512762824345603125321698166987686775319381172711927789856127402201882866305006344459977717616947297076037953468760214557664661839662152314100238822794547741663838605451254262132472780874658410079470161122087246473827497914058193295907657009471123268345200964985827921789926704346867504697291746763810982418929331581730021906494562127355291322235145110946711895944133332823576938116309706581410039023662746195631722042902729595387545089580691316193566383250164167593417602019350210261528922329332082416136389284193371478124556876288966189618938342976365623290371772426025744084302375737327357820035890644595701861008444370545138803461937004323575500642939754603233884436253081399723917732188589095888702972791109849842578135919847050541362475789102129635335949907639563791736459551451034981522118419722899966869321626658325502651643368554828277595944062190200606352839396545608324242230720118195120043047718927865882852436437418935802133378728313845578968026042531382967126739300622641004165208491382916884311952333253789329733339917106126763537779799750160626615152070432131244132538175097815432752365853938636555626101425355613935270844136430403953952228306360096945301139791353220705479979262962405729851964659088572995010063702504886630293744075045182801946079923929645747087714413319731154642619621963365609833042345069289643022938782120267969143787237754824070105506355099811084034769991878685698111371039702246521626205678894763666410276584518637140261889275896259793956821460711505475874406677644715532993312848894719914880908213566118184763585226189627280770654684885085275630552819306762920986271069021776893624862630887236026049405341823252642899849906527776466202006197191454773264248589685247264773703693568085884460066581363726302557644737579106346118951352123498997910951987261804443952792857403441889591817514626823321483909884943326580268587176460990264591134167921941151291219611619777496050778299568576967566554945990046461418774322846371189431251115271514526175493061398673458227140350831188338633837550152925535440315261897866634555760231976968185831118047354653187069935020181680980876903316335025078493337450308914195295067918467193714363921225119111512170367181843088338641465205894820205163821027843811290074665424908602393626386388266444465560214706491156850848554491544228694798021572748207930817910601560012540806161562782730816197183552382118415095068918884088099925789589493285620133581535842005514446551297330867348259131147086664375105722583453403681750991235202276363377325173285593666103253573005025999314708790878368780616678918921170901229588888125821634903691673407745374676009818153446704808709150615435662629597780171174409598089443917133501656891507814156970568751415580532420402945393566228964229010811284458151500439468151743493168602241645602777395900113816990936149702945230256372893773877782109147284098466460195357776765039744164181576198921432171340418203295371501595033680812386087586330475263498131798634424846490878119461433441113459936861852735681674159698666453613173867174496865753232037713761313435442654838349243311179434865067276020345813532569832785646778334238460017330896261026793702199422230243641916793638023373368157468452403604691506352202100488893041233925015565528254477820244680519156820855959667133466345100852639538316411578520501538806884826724805306419520158742545536324958359132675672596791032607776092838086255791804108402794429430026319381690261149951245703306607080165640218806445070185172388122526323229893124132498676720408202774710714451685646600662907081674051719769358112314719507663150313465440783710697163202290553187759087939583264926568198282245361882609131958883771647465615176235635687856466050528119187820667851880174919877860934001025922994740455902294130064089134687562593161152538289426132065275686203093433011523041171884746273696394074624960578135106428738875557151933395143511986326723802828515270826083464889146708296107157341762394044322274484741630618082550962870749301449208622731945877346872228883816321569878988071635892239017587315545474751938761355622732933118905179863529177597635598472084605084166577831656854684360796302617877609306173365698779209445225799274727755782972941778173435968948512635576239502469073328790549286697876371880050742915748550359962959981227044347866025993211038610158095964807445975838277788048668148434250491779348536878659119320989233686284297608626237503101005835652571244278643019970440205964420152315144716710087998156420311898580595033025960078825037128137356845325190408769474651160606775536815231912339151892928734530204649078865984905286333885960707975717704516211990025522204454776711892631502893552763621239341202583042746910550452084387660230843191086684485594096027861785942147298641677786844307881760181919893384172052191557040611020602479361166840143633289249006762589813991973383991131996265955721983097301671784447360640283657771782421141796137607328171379448084461149427703766579607788542245762476324337132475225860119464807100613431065567051929997390691885716498731647861168864035520107958590803039457792026293059539460282749252627535708422886308411348558436008805014534162293467094070896725054052073767196447460668818586378074371775954511341323265224504144923179613074149806059771468288916175752844321751860477731309097411440827365603294780135971504687278947216622141669443533475038280007625991464090635811961467949279137033737050711311409412500776627198138246833251959534573125495166135592527945363552181764978535967398224976814667049162287219370423594658197483694816377190586341042125619190414958939317736273185295518614204400692091242319730662005081334607959106969925686558356463248125948405078937646390264926061363422075438342724641460602447143006926766667875543541942328463805596462459853628091496502640489954655457487644117113377384590613984451989331244038709387283731063044339194264524999911903427756748197381743373452047004100983110392094681517081301631946629746747819846751243459863418772254695068686606424648512550849728840725060831829276656513012618123722982849486717441755927875033910294853255119353314408316106046169040948934563269516772147309515102636612952245603480350781651330964935618606117920405129634317505109731022076554705197617834671299608970398534178361861928083936437247426637239282119279852934286762320077751446432159990571774926171889023023440450942707549941195764575332187386803453714552378497506191297389594073133250835187907719544570274651356486274703640341810313736520255815234845702626434145185672302801490005518007007667205073337538997034161289601670623111163600808379809330727026160852497948226157570204032074973648514593572496509856821293578930274066270606595758525050896866754275171610654935504060003153243432656929123293413978402992055795294138739572411576625634753501968788119748462289815484022571668540456206105322166186871758843621111739677351190211682476474062118657820771967409140120514775718897329018518447383655313912369929419354573527999609788933913297558517701985854303440921884028187965457774139883603448637813820075250343287604825187810065602573939175615064655796518398317011426430675149937663080300298351173318399794651338046891920760248609042792726707338155683598449447548788233706022224475465915275403289447075635671140261394608297123154627508262426124218139088051010582787648896078876494959632699627371256434450266200968766381521376226202830779285802861769653542567081384241084788613456661850831699823640678230703638713778958672435814830854207507761409756784846390602949111839743317900187382124654042784951229836020051124964726887275360536415336049655164878128975796162396733444440256341520460758505132357963261611489740655278794347617562920871047094682547667661303816665746820450613185776382549494460271571445640188984076519631385180111871326288393997733896149860199565730406493675567164969640326955371615218902527094771432874682525154880942874452151388449009460016989261765423515909916700700961073796619178822203466351912952712751986155173909562884855731057068716178019564754938961458585360569202204876465773238325604888989320683464481753500734285932486458073489899090120674897680752308228671363559888764259923915385089266903826169326714879117564488658071221823247738417180599402464195815393642791142445613058763464891057237126074065588115056760544510536266810358438263952534622764771689281694879347250146083945515533704301605390718706130629269006975776449846538060341768815623956407669763054334185032291057213290910694071555878304390924158500120748473136694745941052476795272225903345676639529057894291683135084438317621765525897118067576931299081644249236377837525215001621621518175561761250820652663075147991767937235036161935653623068253418635141909935746775180869454206727680168737872704184587767828900950523039256299775061918176727643192800226186808809084684104461266460094869167952590283832867799253186750044377393024836181533472234349354053186273183812427692312124597598590744732238295821074899538564123699827208200164972027754515375006191289140802672648024627052725755289355197114385988136820033380201822441553894414479374004363067951293725123880001762639248326387615739303715837266780895711640627256038994673551424643016606974891191221049169343660297211139364392601595158879109745772263300509373921920782941848545559566871144656553350169980237013812820182852592691371294362213126387182768840900296330133756808653823271696142861877228820178995278880556254309059803521300221295879835328581338497962821161204564916618580712038103587632368224880163122361325806461930112605263794692031882350573918285593418178333116104936857340051697637279437533655910686425202541156631552866774006862369678994215929738890698607442508050330728164977198160901948861782474638200733768700405075787761755442337621573614308503292782138688085706819314841193498614153798558506000382384995465193884681387269040031787852738700517703972415198052654966936561126815434635567573563935850162576323536543809814982382534928676283795081779888250427643249578881482480787227593212773095672244158124012248863060137794523443088345249431102451249520474652601477591387527151823688424207571935019317167373105551837549948492332651589466589816612575661840984042575760550219306359921361740839573620081500960898152605999146055584658814344310094968533089141749306761208468024326062989368017347151405622542632988981411957112054458612290578609456845064872660897509496534080458883749369777946750180173678434846855493370225087430706558174006654510310269270529192301964640444069547314150813528814486240116383722360433665515068360306753368730499225484494045002713023086677556807381996480556672781146273264992570837715383315039581788987757163607086923093828308203987259549143299278090696302435532179329170611880662438038993170292389320726374128482115117090449268776427346664543179322623939307614219053116790764011591470686304873872635668888550719260317330928919266667641041775945465145507066271234797743544300532991026922348206617969874942812521416670533755762979980480706822956977621996053404794779460409198018362567832568301360120360984615015146592939273857481787034386781583874132509314111242012486207434466453577761470645311232453082303749573777638080987852770396969068024233560864745766670826315371765948976052648412926960992211688867883426851818373112625608619299212411256178065486219166439951678951631155950276837311413250556650239270429379627294416520416169691839299099365082256423317358134897178910163374540774663668142212842481295744118103336245693760282964793238051428613715292022224651465980876883007105408571640028797915406302694882208196526321068149435806845446176245913337113131583644489281866669081126595105610624338830677736103216442672029181041580269086546005851713615489857294531624330109623938094558973812984254109869566486246784370806114858939853520321393570526386273632639452719305211974714462080142348464455795365624970124139421784995585161956640896931493792973124462612422852566731960460698284142321297304418653645837795616215949659336305439931090107644320612394597732258115925111075806054572184143374083143242257727455981245316093316954095419738497516978220224165188610028975157275937356833767292679940093318015895731924689795744817996815584022599955338903531502003934574534848377203237918384129779779454272260212835224865792584391813416120876027918899871190936084131445595519252848322785713167211347383497744525997505051548991362052532612557565601277792256755142937576874479017079727931049927499067182534634724542987100858707398356308289739581147655810513568895511208956785338064007048937849789855444444936333101912841609120875763902506698507958072385245461651672850258396430789387340300884288941360513910113792450942759633962949552646168615325402225311047382923194335385630493855229699005447330311184356522388797404347332854006776017251889492964973964613730948477340103725500595802601123040519787576501388713265851492224228465041791978011013223994684275367831544735947806117656874415232994405120910180718207976181629210358955517000974212723277758386817790180562736934410436710352801273652431633568672742644467302143301093063065388384906727219226358012979296151507366470386013472176968364091116010910336494713440293969612163858824264441151295758838683990867837358607560045481000219664440889931804543601618116041637922408757645709481661269066220841443433633120413769988110469656795814560296677531349328685074244713286402853171310744407734535964189862471236142176583714068297653171925209986364379214716052072686469028855584281628135010224927181224729018302866014840069240497960675989451852075967664345249191761144869713246098926738305609563180602614147428065238280596379540872653331414315401781440549439657411834216450367522380136161584598599377452870634715049370280953326519124551104417826229103300868274106965452123371732697299862784550159278359665064766267546393234770993199743827681759183636566294547493923707612805921603601167021495413123520662905287639127419264974101113847308716047877735334546915406157474205647833120910078569519526103410334934440972413933059642790677958976111595060891301658453869123370667783117319286350934716277964887173707544661667994299963178265605104532388948532034314799928933660332828478169665084045649095613662020315653129072471634289103173635233721499384678564906606378852546443788129392076664651415120554696045550978407057174411453117204544559489125960870252294435217815618449309262184454713799739941454855273947538281622944907604796488039683393126308888101075334363366187322549636281311859589583502934188409964085644147047561650601649117194029909984221623768296060604995966826722687943198742115682257464497414179038999187114587329066866598153357000032955506617113226799358750861670973680449414046717402984735099504108731740215165484829651901492086312219834760209236833208724380635793368224982027289849249473111995835015248631618262814007878982974256430707690971245310369173384267853218264518192994616354855877748177930412485635519072360436020960013464720649029508174827805061015735990270263510695220461285257124841731083186743101643984812314470597611419152377769510383863599157483032785577054986265873778715742985817842895069304169787297530995946758425411054486948671562026762600718758455374013505390333742934114225395231956408238009849137581812129586060852824002216056853715262897616533426987697343509165094873793955032574160296766954674118210671419758860036397947326344988104616903169176354150263156711870030508024070871124679191753299030086347034784689328795744645397556024141148614400978868505860828175271671562288122177617936818004050358151373960114204000149972131203248372844144391596151399222811539059602423461324537338507828236301552028545332220877964079014181555891429756806808956309676883709170666494434660341501623240856223097888162670984786480207972866144024649888939952053529408928255552603146307695701706096397478647163809472902320479616409086996058786411840781610135420400855562691124485179045760975886935954952009419912194557833821897240900015668459546192321548038139387643711948413659724510289102703256733254337566097998926843411056468602531885876344525852834985584565783401699875008318861112727376385301622288038975075432478878702765739282823111504907568717206771973456029958200395707579548182108108953347433941217581678887771487638871780885264209749523965246149595880102206503861262706413817875972366553788724394538039243221526682108317915912543755754690301941489797198122494484933951556191063909694183811717073421357931446716877087877914963686961799179458993601430788534101064759779221404294190336205289722570485181586081957354428775726458250648056826662478359160732644937191102911116844681128340424853432933950976028342407987092922756570409308661424916460871790355138401345577780717129282522962801567542929507925418201394139727348526249498017462649509782627472437088922372827970408068899958242323787353226035645979678830382522329964177197015735673450468128170262087005715753227418564331493519500438206110027921791537218460531129093722176871858678191004092356503445604184361586590354130803781494282024030171539658225789816261559675548946957826682526946042795498765669462343696281774837763865293510806310528588931451901789207160412891359341354990096137838355758689746128534911997423585118978051500163870566054615437037074717734471525262404253597199347838389081135287158194543912432008058786687400405215579556812344951509813378784396525414605467361542204869266583773455842358858007474312852750000821842549509440403017731120441776008317109102590226846190505560594271343646623119808125519302389593301713567965963190975411273296433100589562287000920931801804129226013433583434033516177879763465185294856696855860867433363373315590982784726773555318598091513862713711092325473694572923769668117909038181740499229415111537355741994466754510695016615564844715530423215900828177026753901424505469606317697864176361904399705177023629450952935529859172531985182265569043155201184508694193742313027040999137723685098007907496839555092938391018399115237573641129235076487992276580100976760942653668014969114338234176820216872003539057706468016940424904804158000469473600010723970594768689693929889590470213665314219730716770607996467550002302516976408564233552255941306417454265449380473351054475145367937646863643169470771230997549079430161340782938394364783951650372457076778843165834417095917822011674746030048855356261390530304635331129904429325639841098728273016990113657926508343018355878493400205289976556886041706988481188424577144611774747149894683763247323047052581605437596838037296514850631679752673486847416666178723011264106833989675614650823031958501118889554947428418161994206372201976201815580706086621699212740632802118142486859603593366300806414343287807547533357646963106566592881763041099522528418734158745864732648822641129404793920782946337406484330903796039458242273141708061173211701122380304458966778147451309200157824333965396886582131034357856740152520892836709526565833496165998356659577119318902121131233676253551082046638652551041975542353319175138586415043213446375562428284388445196516938876249923390903887607115136269156173905200487071850111011971543157763950625803760469133935908265581843183331639228186874931622054901058508056128992166838663432242130425323619992029629565050862153932743762459249227496783612679770249726882245477678558652578162272008438516512919145688389197291891410161294925653152473701464530456333054300966448543598249553403854136623754393871238652279356189652447776779142462729463218145350952325925337135053119281680286333640225793069057361795017606520690051112823318199950294886744785132702392136085441734371386091494010076252550950724509551596449919938375332071046571913040364357343125065136505917276284376897002162228521396118189690029982801614601285680064406497997050067277193885067489041764579656666877652408683109092952653631010390065170405074469450564450773411787177377373131173136830391598734692086257239215553692107357352927271427594301442351909955917749772654976981964718386799156804105217173235784319546545453368852874690023752509663692062630148152552921697818901619874044919642250126930769965660717080347344560552546583947374086475877936485009393005348601132880127971113731273973090287513780612892558532804029798098068054957211955174398258295905156224577917004252415440441614289864628747782573466844486067937314720690490287860722101243679664041098346053078475740650312355657884075099438417688822695642378751664533015968658383388648936324035475742079264521983610883404236939589117146123457547429758071223045334850707221227283928318222671245865115351957599898969111617363005059426074268489178135132704196906003971691653180726850915133781682394064169364608787204140247396392502699570603803349993101963101230990884450635690534999075504761455278870434866587144622949388874102121763062134653911567029726839806721990672634716240898856039968359848337493247940058965387156566771131106329372783940599832008318260035366357485326934572073910832947911152819871020012751555050172586675924734118628464764085322163942175590256131278650138139895394848858900498765459762095149490160481430867913572767971968651281305990588877614927825457544507364907650354588459990180574211471531666556648882989653093383067998039772177365845568426221170953413084731331782171377951925788502542563475332082277160128713077073345267962982694274408788824155888146494168635244906374410544255731460117475200850964965699571128881217194406684023353129862473872601382856002313931487543985704515071600050463498622285288684725470048348653099004318335055856359817082867633057676916243697256240038835408206450909955492394141442489054391750831177622185375511703779050155123627905561726481146367150432864376395247752655372165434622528364425999904115497996921968446125018221519891576385922350511171550210728271883226603915532210633128781745923194921265984446341632540516612676626396701604894561587329845272912569133380395508588946607293337993270982079710933693958943566588402853329850916390023970395590506044354481516382161392960656411304435002703677215130068114084919928403281653136840933669261315365289647596968122960497523975528367453079855308250982606500366948222051661270132229205550827133638683133343657975534753498623270093135609815229722133807818839501404467891217644964404009240580546544014718907188459300815175749226029246560717378589631633808134593841246656236037239736867797234716447737909906801958204926896257682956082598420289573240106996727995198146704834640354148104598790216173665000054879628928708398534317407770106693946281767765801641664922941844726412506740776312352955763303370340989150100275052566623087541292679565829657811897728646956970498347595841641112217409427502251766441521607967626303903870664509600048453519447950544392943352275015184410709922452204996790075818390744597707447398843710833300916600576712465777183520620998789607483658636758282788995204484116700292440155033931505537627526635880549579070229493870367022732859253552314604379669333443150391558147860159989839958871318403260384887249503430680602870898795823608696988713990447811789266204858060094136925461991480290745071477983487460334589896870460416045207942209130691649371641247801412524851889995985414956538216487136074974356873742086116728422530892855941073675947744157393118871511970004998214089754359525740778130392796345981438880234716075813021427309648601371549198351515101223492445536356040514309609770424960155524980379967164684714199474588980564844988657968860766404687602905048016419156289394591553694709792343222964628141772938450158196754416091060215246068139091174027772042906888863117735082500419778082738308010754850148635344941610629979268728388762580728366018616322852030394662752405622921849120269018765425567289511219864869688991868811011705728371529201030491330380468955048930905964791425730697273128562944404465189226880866995320853153404195646658337892650720042973200133231482583965248668589788964357219889479533609112257888013370587046223675627322644620350084346776486558395304510891882485900164335750375273110855554202309939856996682596213095404661343258242326734906401784519945264078312911099282152275806036621443387556597772287036159978552907704809700269549515430527442954511792268309745575559459544692894762457636981992941366989274180317571493853242838299990375284607658478054800852960699760737451021761289347922470117714703473783811843981971943933579986796776570923107929292723648026791255517711204714511576199313239224817412065835263229868283674773624341299453882842473072099914961025053321218140561894376624950013133727493206241367885073199177484622194257953806164719233014513967222292830801674652843041332484264790258542173097787145569020076791942083922899697478238679076876374419485869059778444110496674243995559161463805955460982218097518616859831604422828730667343397749944751693490351486339141055198587956157524212758480664052353203317041589670800420169390395355358385935133088964870493426913768791827850230341554176059116252810359341281415981981489646364862371270054842212661101810313347731496409490668593316354260489116724966014965705708455814195274891566869120237126257888380956677395490542770007508033016113280109864861444443958241119711548151738251234883364306335138327493637006218484247532276212967739326520746633224916630237074485491850869265160331525279805807023370124577911917366030620105292596192049526028669466647900376672785548121836460870680669279361690098434339532329508059334265327914398658475339575406345169655548355489111343834382931990176162475947392394524086712361818276020664613701463275881567160402859387807654615944393109198937710572351888853938409336192002565251945857014404643334032314922593694624307430342862299990415212749527565195286968437899236475577691074865107834159072087496360859711801315071001567769694016463380220368174329275943423321086978432269546910744344271062049199285889349722420388073492227183232462614648462237390855866486978910040448626262025036020591568026598105425905711127563213875063761741583375528610967365041531365211582051429354980997319253127190399463249008737456152086627841667455941778403154336004914836469405243901964715513336583268328000021197883725921858652034913859120814695291362990292941278751477265127309797180385203016638860505797168764548370523564591114994431230853240203047348437111008036498387273202372833543331950425607311132471039203331054533582768492820882846615642257770275024400242918757073099025642194432353117316925451429726575930554365561881919925773135269029213615954353472378642835049892918058606642102508657593243513945047816055653904059930689786306266135716671549304560191817572494562749296789450190529502462198445528451091801562194652660164488837257409739250372275986875179425873292464851732303176889857320978187330550901070305787779487960229768331277978257331345036137589362519581191431071990164999939038238849785046793176036201038400589456514227364809577862671901529749856892775359491364005684332724925097116746971079366390968405078543946223847635384571245317796981878566061892627991601426217329008558469098076595827968230539503780924109013652240449495926274640186565582172731010710550535207710061628421871760637358287199735555406731719954618769925096446807004564846476455531356265207436131639493052625676963848250374258025369717978145355776726961433499572449371030700597479222768038377179093850846072552512830328573383440443611994502367924985330049181521857415841237429644184415989241458431109516757750302417936896365029412417490556887291774009123450868270762792828466054047106040772056391581365702893748989044922309742166375088491790487953743006460729729815589576432234786559028802094614966340318193915322038748786050339741054343373686361483011212912867102638590549960921788858119938115821747592350684192289388450284205667832604850735692855605435244511074779632632384489018490691765794963355813360006351066301652624391652486010640900899408230576603624897626920917299259521118700938938967649252505355162474683903286763267156608946422898712801069702412243761469241768296394150112662959121579847023909634725659957400120609197945042610051560812295356192412960853832287697791049601455642616483363923022077988578978810388682964763490030429636762328083645579085871328369328988082969482399457493650689548706282374854424104984150341902086470395655570010187541102818541449622169999148560227094783543743119541983086576965959699330223543446696796994890122187790649389737406802433704777593552008844501019964631264204289396312217347749584095209822563407066158674154385592660466067192765303191649906912249579844407037188221438908192061069437821421056320179053447911362017402850536751141094897316749041144815521886110972594064889425053874182585064001018252665088408395931347829057427403528588879546334780789406893560508634792933270454916075942291437134608554517662030478379868301703215995294741178606688522804524522218288468272197540684743879103190772357535689126738137332667098021611044194404250606061519140777811516165217294642335551876124285519538510356546564905447685276665247576594943252267699648661647858500026627019022689884305926243798502696876075297079769221191167148818240218620219090910784729601869532897805437054068384903098894657565161917728825362608603595698279944092478491913203464969678216294609156285326424843419874020856397534764023053507367676652994505775831480433029867981054839438962969434891222856876054496609306782319687132351647601039872678749059848906405064233989712699778599973766007221244769439196794479746645517630877782530332075441393367714881284484354758389834090659266253217996794886531698733410709425411814912599343076685213982046879498579957156442899166618157526831190665384216373317128206910700318386359844054920639661384155454129351990153077593599425721633903998856920287016656103340158431369242971145349429770567948103810358788296882065565050010695068438588289630120976895258551202309646019393822043025023048350684635032147635838494791651041741523562133743929826546800053303859698574490788206944120628038733777671456395553553524773021226817140491479333981097650737933464131227097685195400608936470405429669963611185931838133520704253357500449511124363535707252055596475168687340569539503696260574026297353356113714293788755305954670987193004090278031789489982104080273929041924601207999741607688047589261125279799271031928871860479612844041622443159111372494377730212422241953677230704414966040069989600102733223179686126047273564050370549297394253550398059410683434211750308581579789741678204441196953993874195074348276041689470208141389267577475135022674052193081799677436175383528142468688240505335531916912230627787812607490928406878087721074635606934132843497403634302351109262693224385265413119999552783352871089304828030559995010402090075958570831864353947049812962922939570331520460270896147559448742568942710131164517162245224705597519825204524649859107647627563196294974171351481335963937794980690366154285433293333401639184663118702381289394105913083901159134531786672202052305234716671648534291423092759699286493473624719395608292319751523203786678536978906900210188627400865023748883040964968817941396345440707945408223500641764102061431102580407676467726855877976532639263542511274861804117558701791626060874862967988140839213189780903714249203470904083097205015993657329387976323227361708977916004858955808797652786880515352623835767324028028128498198360430041545467154837157899098928846548608295120526525586902129285857627136370592034237578855357455879560335311769759570363797566207001640163420147211707569323323500861672604174287481028847903011891959590267215078174534537594035695585381981708478382862120748092206556476799770457492257245271962254855468696398981404143043539970381122584956338327067743379183148810654133892576933296627987845656946992010648520479283523943711936875546050369716354133046485254851297436214942534322345030798628243452170145334470596684936045789752162866802883661734341093568973706253726511778002202104282197619578840003292560956603139982493853784495047558262738285618973032401761151913727268887634061212359568243374675025554675167757173456494145154660967999897298775238079746255782178014043147430839868024004644492177146783775453977934731577240804899422001343249415885135882935952910038652677560116390553584996187674664524911975865311220833399957990063353931022865351045088574224112511261831312631127810023872839016895051751144655467696225409055570227314791920031762793989797342369485879107231949509626436950984913488566299197741614108034381500830737203545511287450595724820090054820980129195528498290230397779399901205544188915890858001089417441276943373329746117704284298544889297409332932683057551383816623662250285460132777307747618210914346051618184704159015506948102495524561647453889406847375082744088647019804120228608560762053723158572317288926476222232478211134285975120109644685308614413981108611942902035662393539186109942062556796157351204776936835577467948331542704727855235817766810184183326128413345774905213292753239155690617955458345339378508373512358722237949376673808799297927638771120901011596034027129971640844397060719642313962513410156459522787608641704379023960641353912699953124073612724110322784262616530509476963888659234959360835322595266970534075427209920794536384225304346023546977548701785618341062293383457446205060904015365808346968990771060299197082190765727378155586180857569141373257280885490263791780169630929297506028559407625843880606939394278655295034874483484622464844577975374374330438038619868077380634596038352289799334936663585563318256774263428568224852027833914739993569789997019357672907933356783051567596588242112213566538205372807844477497807567971369616351328794686927979957513886898774369838939565513752470948023547767965320447737494195608393634879592882429938382993354164855283696787129683740798784799275079915777402488669281712135730355170596209139367925504721266914278313534513518905079558397674521209821744742711923467070446834289594196962199453688968008331633795734092695876969201942752399377366222888794030770107464297168733320289476507410228265532792137397485710094565971162576503135149990014821134852380092236368818709687944743882836670158331640594904524789707319008689962418285761747860136939650852796201028259644777841922195954139698801801945859066896863239642542471769966943585996175569487695263965536446529637082598870524796824849899271210069537351022917122269466667088632346971975397154538238632222534778486843910742730973174819555535384543604779022708051998099338201692615761168893746192918482860161107513525568815046850512451616224246712398707332793397941944435295108355231964350304040567639414866168353139275275931903276606929739612367331577024283175746504925151516877278398436341839632240126817996993887935979091408376060181965635310243501065428593487408013635391332642062291379018553014227857221740695246948452516595886341588295221554256212916773503060557140382059683126571150037347481974977393656980102735037941302370346745881948312065338366333607496293818406322467028433444114199576492543437545685554144584369035097220921535773515786236050078901311302312255055053740265872316896560238188410329499033916504889975385953046304538359471019984354981810112934140822902194461781940138864758733144611522252355882552440662679605889897277352122180223380225388217192369394265122335641761811157581497065473370428581626467141587497718981135245544575239751037883385545074696604872549334433963796552280677171640676123108057372587526215308920690123106799013728653584146976850161719936247542473214330165760146367271784944364712023671327432504253565024944340511311104948971510817751772849022245068390587621025052462103276425523148497638780783625726253246716846506809980859047238991812865280423979150048933532166895539558710684449949218335848135108685435674112636649861347084254236877519678492236023494966837428327105216407642740286360152039548736803024320605649733232921198035150608037214720740476172941393150087620685568331526686686852724638066716688407236422803308422412625514894210724873331057388324129912811792036269019966044539449984034841641788068067071360411039922275725758419595253483393834064739214650431648325180247178307639113817438438807355552710314270328177564806849713789848207338022115372661866134272386280005897883250085289697980813312147693825601682126666133446827004349851473945535554396454459136894472340794596142888756027929286981179313726861203430986462671250996666833450912097601994474496976409879426395252109540178703409139484061338232083893166729716319227005850481004965878607261616088145294138985254917471905863548949015851544646540179573394926336895262215443702583048269033861419391330548726089428918713564050521147956286575944494903207646694705692673678944678028889123165766081229583100832011755350551153036193416751144108582595338876738102519567441749256718407527275431638238259655580284050502616161950212813928265527241237998919182103013458142507816699595856235633802638302816801080653806063132051424966700313526421051414023060997807731857234272194230325527504060301780682882997744353231275078836543852246457319213897994805542796042963480388632013840882549725181012955858135900471889410031153474774067048563472034386652940936673847949891363499201657096121417167810813700041940686184403109585574139935303678713019166248924853258676961245913308560988023566269474392526373565214483137942103042547208891237751248518853725082993016107446523566890058278235737176103651887130510100804721493951139503227598273407808904444248599339890114067654423617776922723138202283932631544368010831165836104520236176741882721200033357862310335697399176739724372245885139200278743297178555716689959877199498416440131090858650274220452712094804195124314028363998002835702613412041212551899638076126918712534135031735420471019759700523126481172767701684528357536036581463779281931709193078889058199007089455943211870202388973429977734999054724022371765438643794348637418882273110229294002333396992362423771930798975804595482521479525877741688261755237505162609486540800054357025683983479296228940980030821284336559399994111910867183155917046854849172089210065920033156955191832166147334508525053520632039498338900855064886033968602996844136752959109965853894138330087220679072819709894793849667261780781920377881215715517296091417227622083936713520423558217314772261500318222949618732068833535919725983933570877111291568858280310982416777704960878393893072468599292751572147645836990761520236242155675278617262093833705987458706036821002053903169234706584661452552618089326979633073438276653723967854053493472698986970650897546046316881917566689501130963032082717282364262381762136663143341014899892684876619662170739760746034836245683903962662500825829969527069235774096857607802666798917098275610984687837866172695581830647572368128108318021530123629509511176756570924201633094268675662539818829502806146451305634971255100866382664931769454782131531718309951904783864216666736420431724779982448535069286632904355827189772636206694897038487004714842965489128896036100731668251289860552041602646330571930451101763069749130372914926275089806122909996757735914288072637262411366228681497185193646237485604088542470789333707049332692631977037371983985119252901998397641762162239995659498700521261553898862846743540447747386267696884188089193392679722919023105106413641574853543151942490023316182907970493932686290029448428216863192623377335159031700395982460242549411673516942360378706892570636505535685948439597941425184286710475214091971601437520401910609342305578361158834973881379374680337648403252949318218082558819922054087784414456593291128140002780080651809796116633145581581951191157894651648832458984958983148314779067436047594360780138623894693954642898422362187692299225862077906902953674990882967855469691252273285609130297783898334436917717344111226104960337038406176576620753335081300882746915587912004392653914869942175335171866087245379803540373765833548350669615211744876086303142731300183450745042516718656641788004270059074946121753410252644235704697769005915027980833075404955066904360049741234750809677128952584537930524910150766443590701648269630638868385999952146450327243659341427045043340329153473960331797562933701161251747018823386863497817998461959199259967302187623249026789271618681888582158741605686204852834169926429699197476255273209835571302096405682537639272783677994395834035162977260094950630956368544441513048443629172920317944950990910720439720382198779714802222000078738179634217602958928121224642564975941886218042413866396541083097166160744333798195068839695117012845303410147491413979250504382823113340514595404832883720543450553331633936518388874457736122710131093050049314831013844917603878864359841720354971774348813562545617806120812312900448112448595981241326207337208611013624769420464105808207126343683114899632179824834925904641669737398866941247332096712072745529838049199155971992681072371985827257795368171540543683732888475990702380783372441486783856201475766306043823391658315686245494294008424269803314212717692745403542454072541501359546139529393656810516241042199378677681026400512445351788116820412345769379278120847390270297643804671933563725173035757715891434862001175466244490378653925794286239825409881659290266039252194230597111193606189100992932612526518268258789269702468395962281698107836183944120213861338158973579680480649863095575585130935518792678199819939092377401257242475319224889635372229605203843428151462377316178712453668090372683053575921202514201771125914846974550795702016150959258750040242673246579209366435995907093502016761789585952250659755726752881754080247661493165803460011648081085481814331654384642882683434558997222434304464295092703105117696397269932098393659048298861783495217826443287004114213860605887197933273032469870246920578728021539984376666406063487951607716233916473504590110602150842289921054709800633933104891880917169142592189282046499951368758514352283500988493072365017863377886239897845136055226244777981865156542694031114675943267514442192804827166368951704805923994491166459266998499758203786688609967543957567296224881232424096926750191772082782210534565431464577420481488856648397329873029234951922039879514742206108354331866546738139234842316416208460863028653848983123837270841703124872398964673836749998120706957370854866790107588895770504201797387305703765683650391415261023355062349415465492862557693808471058014225932370735407022265831541501922566762755769143959198778861829013516809701385325095141782733666059894492896273630588895081196186031114573766523011758049714101354600942871449406031939859227409648180718885681964090084857340193966708733391375611830781592345664943058001805873384531368862963074194914408821178708499418491407211615088576547720438993154509028183636023673204250929112393444415091348630735727145483439476696792002081269557155400160650062672352796890172676337793295555655680527120764929783980501834526377126158548252090318513380048283693065541539319184412174063008613096874809405361822996123392804464773627109145330717348617531794491024903042178955472671532769803765245667248849043738582580347148134883103634227328261607230081929130224956889675325958624868059700641533729659350367259526221390194383136518014185398071516271871233770355907177679680296042382036413790487684620362248475611745768392323199875347821838996232822051385118267538048751629791886425148819412059239543224167694226575522035907468181501790736928461484852062267843584743088155773547859279636889491025421400205925266899653554941938665900514662360089791094481062602888688979923001424241508817079511329055122026852232357875708813531447112799682216452773877990847830732065632826047970782125365754705807584246968946738474080203969920215101416251061481934047167246824019245668826441736056852044663721808639867655109245015616597550883537337918578080659620996738989151022218667910935799914032548669856407029837951303328606700328854688985538805956557528836074932266976637059468223429107658596594010184253741372442919988857079484332992325309018330325902280584536210909066748961356618269871751922419674445927540844865686279386952179592312005273409502058835718708533131301047418191312722165045986689868815564298315634271217539979987494726478826698898811013519549640869702934556459112293559769841530609683470227553467529443898215643338791387125183304346828500346107457912895265582009359511258861872937478594127713262052216630975133456694548419246231998228118247749532158886694545628022553279667624786416375302237530112551566093301460899410398393589796166639003830888788430921915620420484560736864245597450198715787798064908364012536812414876058751570982039312384222023943650612876460059708536607012834797236996343050109115053932743292817163188871335348957534132993805344088787701274577931361171857546978703089805661749572756996843879646032204281352670566056905625238104111239134526198447974689925781525403216037485486892230463838545118654051928334157559762797652672417196094274605935018595172789007415321903754810385210162219017735040507174390793412477491478617238091918362279752165916358095021047557551040838432543163912922573576606103786118748973732490012684974946183985952456385941141578384178268443377665960119432377293488148794892944127920143176044699105344605959112974318236676304472955022198305597404013464757759194036495191869396403850215425417884145800285713875063961175315992260969722784856896340315227557948987723641303104134819855667961439961419570539938620208918131681059206726228098936832934653802591597726383878882505923471735253334014082702954596471731895185278111394237303634848433375216751425963059092313737295795000995889423257355750043733336644981893217423167498200727278806840752242872231015820729349059914307992540578245815832203056929189141690646306857963703155926982188239335954370698235218977646782413790744257172025082247202476661132058744392943625500913185448228601591341608736551953775622960109438661265343286525622322679865556522002836419790403395556273094425619390169660028252817872184639252725638864417403342310674456979589547104141888042394681919653076494871085981960047620505410996825305884232376787358881413101708644598191101738827710896239576895182979206843871040422949142464676214416774990719433416000261310990976639739829120200034277744429355461962184791454907625077151742545834183514065372462592988286887348396803959961631443799869187402410594570427305549868740898798597175811280239727351406857362172765585342798646172640474755139326028841723724145447411316554438346795234502049359087589477461345643611326412560471262604425961985952222102338127652430521418978630329718489563301703249546375066843914023263993297653098110067298642624481330989707578878863580293820306291901961077859326974622572368360544262892188685181417452057483447901086370243735059321127502216702121779867978866385049000290064424019471791818330246332102867278362106376120005860167898629125887025060526214136504301467429419087267952136272213184779198806973678152312243280074424867530133619914935902029070122974698948315205182002784493227740841184308892574947769329190286395805759960661154256484713542540636284441945314099320454642620801456346061772975096824222786301148047863252406666323121476032160220180451683290047705197695303827658389970304446768270330876544598370420348028997786500206170592201424874541331196955137047262568221650102881714410589788426231936489028546237645726504231418882787566432140559333155182360217905606527370505166685407387213258613814046881690669751605036149341198713498733483621987332378589917859418616752947763526683485718797057898449220935084877540821865643081664770197151932749380710467571401910548957307060496490295050571420980052939541602350327166732668755924597373267917341838002606577918384234005808269490619840695365185717087937533671825868443395568866435834069231516423546096880383872992716514447881838625404405883169388398858408339120999473533782433060966729731527867262732979449779612186806961232260446250009857695991669681602790021701253750779249380668662558131045469417789856987722140796478618599908233358689078116681705110675268918477764663325001527163652045050963863983225360825010551639044707775918947698656108586026422130603510572026085598344083763453421291352396313626598126652763100846924487037174714602212103782224673943035887038558173495787153724470175009656318879279725182968556184567290202135420293518527817893079760095551496538476137251330062121175495608765498028130367518180673932976693680957841628394479584262388769908130280725452093173204379590238868517017486585364488456717148802254115745518987421003316492339757301902837317941387660160307998340843699002004389125784976697726438737879612924829256101141677183670343197237282232675219713549653918099996165269676482764731845376285024554576079594063721345491090552017109080903685615990627725684767726286542889496245504035919340490322024904707411068944771798004931463396318255777295232735706102878564455824638603221195719274270818509837595829002518734041449345240804516565212572934896607199398607516755102134634086220934805919761519501941303385068605609052976657042588448981767567015776208822505261869744721101239256673550694302866592363653528432304663150428400922872307289974846212059990163043031782972226286969320821556729429128649039580865125058672647141251826910453640293378031819487124331563581570859129216545973206550757536750952180153518195264657761540485228739337750243483518875359300292342278891598881340670753930498020060424906943296191153750061039431998438124561184624933009690066577842843645232772888353158914504186094608513681791327491676618350005621080823869215619750174943660973407269491261515467830091703685135992155646244750810861635474823480644195940752002739348726161306056644630483216325700611502596111585990432104516003129438665807776331833990292697377838412355705582738395664516660267478297517395648454579442568099081644361083622585947572637650283133891842831493854476450649094288077406294207459157597346067005008090715151630834192160359158296425601437359071983668065167603808857955018152481020023470096270796397984830228158924977955999435975680327830486284515850484311012342264890178521479493663091881296007898613239900953179194056533401919208038571153142943300828302991198927000204818670967249817804368289964746755078638242413325842928455740619190215013832977129868415468901533956259433899943894010197042208532930378008449233242973273817679142980980919625606074345365225508636784376134774784891080684538577634468401881175682774424561003779440557946196815278448317542404105558115960017297971909389762901729471184091734120262020817548834379938163444447925710505826195559444337015979253175120824364538993816503648039050286901314335135060880722638576400785454007572616574767897949248137807821276993820456664604795052072104760018049870054338767467691104225842711941586036983029624920150202044421890142161371157793715794280154503326926551911847972994038373503845098107934822019853781694536783650058996455114295646815418433490753209724542469900337756620082192933684940878142736172909397314296140064274339269070062162263312373270341808781469037862973255154877651868530499548563138174583962149618721541227775849331185181415808727779976978280496243160245290413906771296498811897841593776496448468306548011140422279216013518733591604386758764705075693327096443432393274095753297964666580008183646799692387348191250320820287653221571745543207089847130828563940585404384707348694345057053282676493123113718773242697516716800564218191003377705553450888643838674789244271117311568808812787948254741767436990897226679460621252593045714031121265898673160602258658463766722181248981886062344170189112811470185359322876843692905520322430628303343098036731053056753087338235712684102131735358325086759424483762208859017525502516172695836043766130417054894323247400464057953598277133248254428674762642327773161844590670262448226829808913467286083617715919667587191336799944201236710885165506855177769862327062573509300802483413152193043302677179071814012471680352503701457296437046398260137672758354255615284896223757274441156795894530296911728445869079567145726715604972104909341563015988085101477925082183345820617368586726078556490894571582998430329071597893081079896280968712649485973957449356250542512470646713189613010400092867092033929076884480770811433328040264445813043218777306007707218251170762811904797018180427390797135480884792262341733734440590767146083731479077886427167329289080818987172315936428415728183237834090184021507144327729089919392102383935859032602274988868984625613690354781617753489812523134650778537446599684267805224103797173059605689297824256399256003001014358367101895513749542589900528685108113439161110169748659459779247953099774156751652436451209282010006158064974798788119945270145866452685990277130298836099736856480636085200377005515698496586165133190724096937847371461365096304963840424984077433899530426133770820497271708157718583226335250204544991157259894635573850005741395859870105298796322493137824012180923563847829445272182021306449372203859458887976270551477388150793722508519148148683556050987723802885548600489879159119626041740683763844988609269142729034638835852405423397778332462523201774495620740403522639180611326079332053786110650839228664199313745887812472216216284415505514850127355846569955122040521939373790153975106771703763028451326968714606846856993981581282194860387770242373096588695026384663479899687861576794905382865736631613653741061010851141229636970821466463669051100063341427399340702252190783030879146034842057286838058170603372619681456190639257806647699209248596567474395990693306890972518489422204157783883305568500428924663740999353410247360998199792857885903401349648034338174969555299786029913354335500731481409615617606720023902753326749363488224768312497809547135469359581593361184246813747803074508710389130434427747603794261368248181043900354011433347472355824607162283248766468161154464815103281322051391988428349670293045883556484115654357961666394129790160707015887598112343064941643660846691342187810750494443887197401210036855300618209022449995357527689556643172952270808450720082611929038440343369123783547324791795476543323178644277534886818719181491587414052702437154762003992873500741635321143045210746478059036748897403747893598157332556875622972665415378675249495389653296811933982001189430170415057366113938019844774641094117338949481633406811190534615753631552898093206559765226191429298671996724350358157653585890111986663189978969167374669895367194686659337264277796364228050494806475244986825113704355891253714913066893894335877470937217643536616001969127943694120408397957561971104328951396597317470240502117888661482475161985741519646793296215836357272436711793614082567055019461961571017494821921727156214585777726071196711722449778251321523170700249161480336982600151639184930178090201014205281345432041295776949235960569439096716418148196999017211349670269010613816188044992502929157946403490064213346447460205917962977962731726406130059322080689774596199517080893396143875389788711956864041676427797010186964043031268099553424949058055823250403495690201348245844824677582746973050392007914249752451139481244111923309738396551268286065024783301515031476952018646078289745053490581511244022325530748149867933129785746881474999636386533981000091709373115201361098130597542268634811835940592962387665616729413453169382987902990388131239851924970745139493207556968514541938179054249109138793773128698526324697620065024497302466055757473558718321171042071197115761190979406087946755172597339705383313482720202991081180181744047875324005321888318098178058084823427037235312059771562955114285441838172166841589542002299090728944682296385539320237927832474912121192888823975657485835568977614421168333736984482792192302118117607276194793576452636056688660699348093900134026100420619841881467491308172812069961540047324618068361430777275655207304349929511101408363580967168246675446234902421219262911541066493172574693508339671925011690650205755043563173907591499828822205875819254627358460038259430801898077414645617489103215853458453871797695616060167714852028913966130597498403114710921101722601001927290817224675469123741149172349710889712592137597571070942253610963840521444334480832364968709632643730372782193213527337308092757274265592154027628087515049707585724936241565345001839439033850888172753108560267975433182108816363989591029465425974433090549868832422488811061095244084945655677012474800773448098806195589510344882367045569296363488035545567756092916578431480797352621776871001475504577747642717250443219991576036411935511777646078477642376880005543684875865333219350167685638401810478600977209018497964139140192797400498988243755469809073545804087978501117575092484449092670830638937587852081395176547942156299040133354970648525564789749261235358957514609959048657387796339043841240329651547089463730784073788652303564088127740496434192014478981731094434925631608410858649598262440193486152864718342289465535060888010877673157908897266558254679175666452803723070234599181875343592876776809040817800393838826197278678699133698840224817933840420268422785041138701593531474541942128475357591854036148636858025920231900450596074801361087813534554662976219273506580412235948333711390124691668840090119183072701516951750734762095366629543822296595800697159633738108593334103886484533222305145951939308472807428904096402135852653618515527057980512371509932532923501597099116694861781290850088424188032920368797911812379114394282599448789084226103977110245657632819455876285766213697114575556369136742442688436493884586969779325947072645400407899970306218637848281298489320439365937780631234986490824370709344348246867509902143683923502739097818270499088230318723419188682084104793857824515178454143005888838091123423065109788945514812975454914303381238493897555276126106852693069331636078186716750824415773151412472346092542827400138503655872310830058325346468246721209140556984248263042730283001603212682648938081410634033486180955596844018848035767888591352770148813361884162867223286945336552960198123769237773366711584184611178784183505971131303249133322817330911812035944253219813586930275024648006482646168803866285643816696693933997804850634396583512053657345900456133657317790227186590712199866289107999233778903636756520458355998506388323407228274028820736201890988753113602485231982543164762637716724418547883216722269603404440945972199731071257532188619816154648552206473467942511779080170214590105545222481820543084047470060760950166897282753731994734574601627299390175148386814951404782481541274757953572818893726583973141573346068269161364901414892783318243449204008585758417025176185138295095699987214120630815890006071632850376159180220789433820645851342990749706178118604574671551047003011422910493923919215896781135629130854339447501809331121892455080853777840221765969808589801018889879821289573535659517567867947234979553845980412152883104582748145766234493349397731272054445296003857615416305864569230590628497778241932618922112234092621914908839415720954318105403343947173591033254536564008305608798831193046753920649507425273996094573471767807839536835871810551341884436556251922056598185950523577926469848777708561351567531095823891846418085281639138546166288524192875390302602692028957590856565934505803792801861793898531458150640340836670452974210069159447977174861422627918531904572134722520257080491136741835931358890630694603871300630408463900619876283156077838824376162153075764557115707814359609997785565912475626322222712587518122157323847540884608277299033798768456703896091914655820347287485965689660353116093004719899939236249692405935104407601634889186719843349489370788684117711945299022075886263343483714406458619244829299696821585016549095954657088189927745260502264231198663895609678109176871400311795399612410798221842908937922838744744329621308928905917029587485023260156690949600912171692917343066133585708570337305799338443305662952304618321547608428627581702780435243815552723808286588980211234301352309363554116263175177414908293416126353872922628390158341803606515614477613326643333829188154341270344598852693853863407443374373615422377948227011372389073007159006317927984199605799207809253065969158510279974692946120193312714077788543354855345078779294558754220143470349603411164149247559152076025685130887798836502988018695771453903628109072389199608251816876166768798611068974017703654735857332424244663649557844848457463430224811990707296298238247452325067191643362407053479161071841327317961152836216322382924745114996833624628537771570921929500446455925755284732747609012366474590547570495765928504138469685350910678521406541622974648733578847620871157972485378390409961764244110812397912835748786529824643908037218828420103144540698828714664466207358721029594859629277905748354232907190363621969821686901183554002397555402022206515702146011455445310972721573469922235809059373395165035765132024655737885670671769815026108470627512986317562733692314752200321061857064950365136510250420618656014828147141683335796895012988369125506872255908709301450471685542485487211149248115049070022555856004105771302291242897160290976057875896862045902105908935163110029967478431329416557186718804423111632729851379737091968428987738102041169221480502465634145129562824888888776723453748737977330342629371522339361883453595833704650275814815628279102533594896194749272178776397754598480181377358854061473705180163449548658026313122562817871132295757109166672432642094387873951110148122725855703532071888246106544265122627270338052941110971628011216082499025030943736541690838989562043705929772493954283209305157166164057500555799739762333604185359517464693689688166233335662459215455580704219512728339658516783470637231835775024702040860503334982732723433458948199421877936122176653554357267680719303683466304173020689409888483914958474683468931179690237949674975253223887236163995756587235438063579102169521765362166029582589989077649284417218887542127768936945116666961973443797900046428475569591667692933972440037041843145602938613665048477736590803874413602800404793716579450801083238525767070080568412130317551381833156300936289945744956205026987619458703300491642572759625745548256119086186968636463850947357189276910500110607087624518988350332586982960957190422796228659543107271694384591390713468202224201716183894326526671887590901609194644880246787159567178807051132440330432566418794010140453627753653395842540128059367934463408542788202754796509390043884339747689881178797947529491326739263230756510366003544120661371825460871766088431677375482799360837007517747574493785893983859074590555097530973878808650683507752818567163432959005944887712800338086888786341224717651339145407682442292532301888002986803590928974949634939557909198784391947341809039171352238398865898289844659033414888507362758349549033158155504774574252454289138365437058643295809501298991528384150197743241691502074232471916961120375403003293145736973844147219194491812358835527253129355395548800420722937513167159997793453358437753752029137172574195212325165249377719306461451170411926933538628778559719537464796885482332612326392704597820357919813118409016298447205813814418801193101566603378625349644351026604843941119640987108940572796803659258492213501038189336117222406578927816446841538653347925792791724516865307333954516659625768887759503376330725295460866560796272494644626071549761493803094911139547557963438143468671736073261354484783172736860708141827823477478481940264509124179649308019691233146395851157271484958954457809715935673347442675178236453686016334136122621140746715629382098254473157704003105711817280284099038208780686363650169834458587613258939542302529025608461046228724273791668908511288054410486989608601494019991508535785272674051016110223713336297526810224377286440826485018132623117590124592962852283549688460465245225625692369705978266811844481097245469286098726664284411639312635199626656771811242426158132149675727166487492105089450370559448514381992219463139325866086347894592225311355701075943820074548226594572145319461238378878202195997265395704619576294691718274279171864377880895563863102406329423186605171503225399757155693711860939299064286162029616571505595742791394357223441961061460828598623939255889225467490164345960835934412713520183996828682152603300385614850458677657200681351543538800219349643810725365529978706068295188998416570154713805065043907909823049814461517033424598057186755925305816379407289493179338887091410501032275111683655286420842944462961602786301328344089742114515572724300196033430401250374479906176664873862408475586925527982869518473677747126392607690025670790799738994153465611175723446927400699673817145507503318055017978968719410072508875267091273434962525787019854593137552695578445114037778144896092362101956440339249778280776879048036658294565634986475078440281074190838768940230976295890602136991806648306213314831620209825936375016106599695214896419306957530686335306898766368493484504659338634005527767141274397943832735607147011061856404743195895376858062519957487152359576107765693754048393922228063035152979278120393480923543714265062951756784808243366048685944987565923626408717971654414701412808713132367623166131160719385530652628333898470054678815477918844269400385947091469063402214574521600900091062177268202256883244603689415352891125211435714010240479916231122744889889756633590988505152089928490485053115746336927454828149808941876848172103175010539954627854524897018434499596637245084127320870333474933513765119041804675816372607058114919371533832689765246264783168077837878773418375506727274472645787942531909796173591204007623494246741647734660768341243297789854756510978304228713247341726071861136324946355776535302453631383561707793332090767795114725978638018747507094540196870041841406114665643288101507432441995422201927471602743273923221607356338397217932192510627543134841639496895355100754294163889215431021652245079615314004347024961459943973474609832830036743160494060233197455442414409599401694685684058484535111144433699863357787363821353958933870050209786248354512031477819159636517223685630057511644445216050724721263926253252109199868924852731721664194481389028983749014832469653208412111189877538672903609514988261933274749114921862562098819794055701913685180822381514411973866634163082667737869396749717433523551490965191157384904543697497959540233219845922557594736324022571971849252807053993394689551190229762609063669673764454180015688915924482386047430407708908761773439377045698582208513024200602060211144965500327012821004971310203468806164186619517897773907289921335136311264397060638809687101816845286516471567265935250578986620918292459390132059358316252941247355466878725217125582846846128894532093434551659961151741872885506510007969954079799269336007960717512326906003429458664378780828484282124170440084739794452611014465526345382374424936039986105698976287967807713226303315099515107730672615726556102819878907530052944454462232193688104307602989680876529081827940336693036999998580875065444465706919493403829623711689248183409077780667877182279912468469453244752708905278152146037518292193435866934735333655199854438956782569980422335663634789451731507067327733494182888252389064924213522177828068858201848315790181099615210185009009361289046355135835075552875592021100466976384610716686807740975565525375504814461981630336888097644920931617312545158710084402932064942992372126126004085781830308761934397295084080011145658053878410463531471815532283163864504595273888343284981403159479849243761317457674624923346604647737238301257731918939648919758431384423195423025068004932969066660686172717863470382329840329906857264606869525380810959479786238576932172319895445148306051019737656709436560781733994079834268374775869860217763503370332324944458663527753919334817117171654649398116497787982302400972053858531486416498229867191297236844183662605971698724702046206412505371549393973776351553006556664205547262504824391458215271038002995979548911180564571707822785233413027688333960960393323988133959385071345464295584658812590098740231244807114794492362218879778700416763731186262118268004613333771397311901599068373342748115536310853467979739393026362790632637565665551612759368302690163191154559451789060099456875575331985452019604969890462624100656245541341682702336376776648504257699619316238386652810871247292983324143561456488619214320833154537922129822074024392694599374744769744862994561445645131484255392907038944409988456695525047555718987963779716828126012815008136088534413537184931247059653732880315888544179853109252116795258248817862144813968490255227433004275539665806910388283314063107508128624413297639832527584164233894506185461709662701076648233067460956675316501987312878199928071245508831899443177735648295159234636139242211999952034406859223690015647822372848293657349758022926504188061480598438559560242849552665788587167231841227160758032963076580693101347782801659667221120328808523588798875484947162985943402621575828365723848530804845841593140891537489749881487120004348899584975497634022144500621627190073813605501940804789372275125421149228419273370087405560410412412969252750789823080578372621703642404103053514074132488792301801455606412437246597817333149878067576126048164479415832886866011692746010999157208758004829381152317789650233605317673619106786558875498305067321999731576407734832774654382983373515896360655056711527058691990618967873680337058632361332948194638582488255550147655427115285254746627022213018740266395003446823549627298177751987352315341101164502075151615606351093245042331990213954033275494131888595088170404606119264436839740725881446484678501111104655870032868513976634071061952147598373245921230131320593971048699176563746742589254242988962708230009517983325233449042212361593005827257861070268015060237485915382512604391549168388274004532436935082249263879203510704518787485484370436627748746610952040010344360040845131139601535679287079133949694423083429807793669748966018466079510759919346484341402269729471367373388276137636121393904997800383583767474343706835556310085008996351867467188727910889917294339657205519971303622413420573551890335796241998333963473210365114173982735563512441515706392448309811854798825312875174816532921403355098550913256243855826290774040895545579533517354510834369503661969806237037182174900069701654034234883702697588359805651769300771058092481267385512268098138588918114864063525533745526869612575409247906029970583407413293099184313407594882853542885345187821208215115093338753170377782975128194447027064830471820524500226649614005422885983479959385675763315720251287679065271895730988771963375302740867863706335575840305334749372504438539771694512871914137089915188722631569480377376472868797723823352727801945742226012983148015105573727753018298113463276070980162386175753364627810007472103105972151786313915218104298059001662491657110340238526970893624324554121617438440868388761941319664828944178221143203833525715506870121639690774969880328712899324513368290397509650975045572097584253178983650925000884738857937464169884554223273933142623019704897643720338603190456780090666143145341772881389424262155154084102128106807816901343074455053873125269801563105755629849859544019017985726715177531419113315146209830261411201224886980084142792335910976658148077743456674706266137167296177837631493460134897130829514782299624593517728726264332236867730222747590050497211281125210692554799806646146174190613829079908990143125766660688232746155588829950116877094557295680666898231021053559135116232922980817944268267622301384305092085545522277738226246697660971571069419708781863430981866481784283859599146467980087972839420720216659143721790835620489937692303441238259829162626038888767269795999605222109181038147348606828769673371294606964379352105868536791161383485986340609883621672034674143144443423294449204527013356066585535421915480029831373735917089989242178172187696227283653601248553555016334209994590545541272324412335845150942477184588296495562508595285317596779621986186890636986446161776307075078110769246310043845764468680452328573858345058697536134344575871976912754997207165343171327811664492368211120614400283521845814855452732839724929378479619583402262956051521552710348831233714434335636833481852054778633657960573526681981601047986398577987320619979436688305234186556634257955704658850475737928453314022029740374409225505591489553428503133440980977553369273075693581883061147829976069083790163207990637987438804181579636791580291355927423371018937667944281006614738630339015323016537991007468259361753610281591087050430696165802403787008090394776687039392905782418986012284623054842121621957389099399474539034935145703604880527938349413253662224270318572685277248151142247699173124598461515218296910174723370552798846513647376816290112039693669767210434567677533195158117611965605473907475677855301553748556142774518918537142958789028230158791357819275966935028160904342727647719595123200749297653392583977789131813750626166379956629522426425134456701210159659776966286073276498180281265402761495748926296496797748861814340475480611517682238555558784333410589320075237504058138710153208700053660945948503973585252720699738651098648917596939579925512501912568183902925393364843320637952676886842679339903609846842210371474401753158123683259149863314136560191666887477885463765672914063067226181288033549951628887423809346716340441695597050431181447229698042710729914743321436609607636478825975486455727397941776030888986031589232475262185318884062413201899241569727852528419636330827921441042394496709368762997933064540001090091346015758657680395514078830227781418338880479923407274990274320554692617965974155150089087736447247792265463694171179282538219928165920920924203101471814848254979420737650468224761982502865415010154490620695044601553765822323305214516207027173595461249546217127609470497240047158579967765027815071337903087588270880623230067739248072692040244366821896731876033842339258713470092777253573203768269536326994200726482193414516724568842582910845401597454021808262844136731972171360200481040429770155968955741097368794184358831576033568968145159122172993690117571939877412254385528905100356688156990659934415028601245585585873260641476874978266364001837033168185351086678969934513848196887662002851006693035890325953315672546218711743207128220729514330563581816585872973895402264993933087666967221325997922202291983653394908731014674422003630253112472957225388158454249005832365985825793589595057412534454065002807346380331879691358632739960229596378640178654476681188456457193274753398166565305577704383333423245400244954352724600159585013474417391650106664624008886857680735365305790934799056620008173858912625378244537775281326885685134444803152244939525776605650603229022999724018927566542167856012694974842898241985145616739001707969347178319478490712755586120042624388565804965160703504994883304506653226473344089039884442829936805496888641664907491110870145901405373732054573495845806514869248400501245261035029618374575067046102457205628720952408808716348413574973808085776037103653570536986645917298543825371702530220178065813334968913983752653787022056963599961958453370793543493396340809795801369481527046756510343816893360296563574221143342883803921942791745010558988214411537786210212346803377633532787246180856195227764598099293444318936013214535657055593506224525444902241569731712285250923548759427112855763642795775041036414342225759041568701973904552216623667525815787262423928266637078127861937229905792023667839270730180742485384264352801641501077014748386994880703731887803604240418714436745869613934241410223505062075139193191715834350258408167897079801814433026506881011204318379989732929277847711361229647292864988217058412724620404939149344539214045972303301954849692882741322812697486466334770892750468446583211894120253525223655261903183346389706265201143036452186567683268791236689392509222542829648896312515111594318403840871224001090686607090147683339744735033668615733004917562442903300565986000769592842620977708124440506122683530910756373992306502694978627083078357269174252597969546919358641329242518375507018012446043721018801037597813778763197847548885863001110506564442256170028319883812962732716198880046468492300702146785087434184083294073626610367318147767336027324157558785406617687956261388103252170590726577404738413292965902139970464150116620909874060456796173362728430957659299721636636671315912012883656985985547361248845640791220938188834416206202782113711306670657609611175158873248538882771771433890358670661034807040843913476515333852984988375628304652386375451212144443543931179067540605334878526472778411076524736816279073675285994923947398756576797248903803738864805783977819110640463305902951072212421149600839038228709805690865268371957212536986375578856536763098954350709740857555098635768902939016615059413876017984990867870943390694731487634311987791357753021337044591566812491120684253883280491317287374480419000282786405268971354321598357611377199329716044599714036488051738544247732670896649500324627502582238588725497526134017884716043306394051788528238600680036721376168378574217745712802107066497977360987957521508402605903342801279146027333044352113714781957412144639571439661284621745530343839121431503680616782503773207532304439750976796436825031465830919091311243913953384020191820151357598855114381762116211287982993235420924833705567174758445917184454843149703512304575972866854378250952258030449788499418986953900739135525117783756458822587501977075577703359968419560043250730778904382874349774781604511823658228800823293876780188440826521190125144080435627615578976862199698110888534792958886715780374640727873247995839436044726830309784098846724660022475593764237584449112306204832738887813510116780576519505539038215115275918271704323052331661921725468462019003431536601372882764166214279725680430547922811438495684290277920925914865819197335419523951397520071047537030341818428862801424577520893049158072157274063946259617796449244090056599411305501237700967821766116330398688023489309712624534814740716031611475055869496964754591078452054876838582221307990269234639586828527414295119200049695976778981790845688452098301277172104487034407574399734519316025777461777251483496170581502547676679603922615370623687614275361737571803063127681751333770216246227436949286344005335846382636790753389185738562304239169230694337753009873349065605505746176959158516811410822414299554518909129192242461033076124841462153380631491107655198475173533221085634774912472242677670655260759248642589130158272693219553275453284966093045526512081611820342559869710197366680606568742422000576760659729942688396426736352720253079884069108719993599172891331454437074713623338245900644599695658749373691530143296217312599772104376425196668026821569897508128302366628914947325549604841423038002105105903698888509673896341433407051729278328300477087378062992672915918117422183354378330272743118146459545690070685244442813741463634214658098586238211999815106422654497058018024412466980890550285785318631045411435246479278004878117642444752880162220981986677408818573171276488979733068875292547460643573768169444464246598839486341236376588508307663550891135197897173517706116782934570620818451609099630991689364359453633794373314713527699148784061262895134829754424297723947985152953685249314962849279083338678750276184007424833530566060748456327338705943608661596212144524952154045155669134320255977068844610500084384985794241847412344898405324302200015644204673086381320327339149210412677595408975977823147953914615605402368995179434911567141741018631469142055335074585897179438364202878791792809222080573634149169497428121355647589141270715198261063065367251576047783561267719582583505857792460965636920396405647341908505930557258070194823343348727991357675381627931483121837024866228284343822719563916023027106113599615468409698893564663183721174180351662307948942641728602796730423049230041463564802259247263136910504283430214371220750104531236478878947189342972392715628140935488051457508671304192871135791895752718759816945754038755714006063758965744549579972676468935982072365051963941478514256577008260915337305094304036011928708831698347129882023599285833429425147868027640622620418242635330076884323991256811829866820196372689508691942033397233692174423642199368412431369009495514281062562085131828680546030031515340263619042678694748990609273994984774360998553193502637053394094538537221456004132116402894356502955281410989012125961219343706406592073570339961246950793233311676269315549249721653127218227479183157805102797738904788708324908156362095599104003676813362533695598220622397199603058194554793847822242675348584742891439250714137040796173594156806501474632580724555273517768883100916940771809231966653640351589140710547513496487095869662822456200788375027165024009166323920786749336791002739054221551884712959800285515690788411753821297825236383441219611427917222200012534935021709491326340335308113315268501564948941586146995151478281751308118646465471886839969001512525826061149822097023697955641113362423302769893426549254547723516674166591641448763801499017858258295365443388826330637773058998917990793887205673089546318774719601474187167460225920638587594951625416438697392359693783654975271771760966039986167932708073352807588424762744266461106716312212369256710804201712731395932629608530032580618876310552597362301642531999588001054719910105508857514623344692031216527499234029662377047560311906221278766015851489234492807104093619376710481877407274430218287244029380297985450555427094322128325625192957245638081527037928988218920622647255104077351179080870571783683455215966083227512539868837249341425050564263622669977576453299612641755999430333659714044520612124218167993413562576499194700614546910388582474480994872402685937853278180039501274697786185658540914023257213000825947237928889701766682048952046699571592697260447848711676910219341163688565661756114636729210078890165926148338060234571488977458805497966845009375899596493610826179449478495965100881158676969571771385667940777705564105116629819973063803554106161244605933462320373754623994737347293793692411125146841007550293666248336337326789146225545060090693291204149965863183133847753798538127772085328280522638687883552392912379726569528797035688306193855066437301957794744420718424512550064732024295743372320292166854756947409735598148185720821772265401056613832550931163489365781015532901347978204940238023908834601859110300064217280982394420032334068840657354398786468356701631264670233332206929702906217178691522253102960082980962733191672461502769441473872995475122115871118930238782006378739448497435562005985452552748558907252717908888470991471717943196406990097547023037915061437408133558656000577173682273470687865691160689038909529700100451877949538491031118410027291438193268916470122790649748164705887659880168295167766489953711728992366161286155745783418962422742759457537868641278181390755215321295315008830773565102810866446057319054112037836063060418081707992800709662014662478392000867406546554365138739755848920416832805317174638788195083778269777210814667677511443671041977866156031597382423891955762696171270181694449773912560622832119654062652639163606429505413876646564548902897837010342231216990529782266792365278742922989380188743033706715732959611137424399389925733830109270513016417263788482823299453771855711474421419638211017065257661754912554013057803161761125456394910682166842218387986117458128724443650960559121966068534025674929767305424473423489279150824067335830094560989218323570489040266719831173266254895684584670153818233240762461369668466752148573712089837544612639427423687799176640567426472496999193912424469152392604411588170596295777075065152638297469027147564610463284570704028484681695768706661882020818204198208046140620652860387578144540463870531300391454772653245761471428818074630369056559590983112411700199338614398253605739016674648308899853638421860855027801763361951088476273285205861334758296926132070773808827552348413958466450546162584072549928935489669076781385684732889074974092162125561329722942499619412477190967613719825028440146631978347894009105451732278814689547355042498992186318013581107718618940307599603115348887064594466094959079811553676063153170167007124037322627657675381909461659840582113217408362496112239655562591033411819185777836801586715685733976018334741279585608411064730622974003377618947471888713650092874806750667346692245151214902224172890164789234671591754905922470522218743984020696563098103578747163925552776967059517482298742225146427847997162498864694334089940665596781547655606718519396508187770388485318541803907215776965456050818937634083346687054457282858899920601473534548047875514609485313848632883978167468493882559105248675202457743160083465620110270954492632762921477617211588586752057732716203299421583300993606574610860774257881470262586698289877506193696710731204246728339941291812790983773581143304751145362197717459456309507776819662587170147020215886044724821465177854480714348714591797760632051399285986505101152397283924990396179602179776376228503686620440331232548450326990236577795818046620641209286443608252122411907111449321442949435232840097867663891539303356388332517387421795777050930492272344031561616561214769163503920082519323044481200476097090382128256619885436784989058693803993731205913344957434441687131864360279555264913764186339011918734690018014546626306958905468332557680647998905513262092453663952688151717303942803309150957145126805668412366998428481603299345191471523938277910971331437376047570217297439162867678999876765302104739075427953327516548951133274183746413330320400110718355392263119569419574048764777502745196406912846756842420885752732650289625751961229030870840378776722514289287770930464976095777313693028760473362223345267918277178523441379891164173907572718680241618341427915705911630836011214044538919275415763941848303427286327963320256805233014274051163694540048247029690886476551637601044646031768603789225290272267373241544013512616792587323956953002050703720188306820087224934732990677397114346975673439195125951070860123873050251377802462525232299399234902464431803428041307876218340331214273416096740882349552556965923585714903668777742376129605207584757181833325409066807023127179780021409800325375902348818876875429880542800509537928982395368713666160939537428055374961751840373867809508803162255030282965257019950386810118497551184955467541469223459683096082377166005878823474120130637114164142494064901837517175347111331738043387352813466509298764287807644947054809244441836936978044782483562484301168636580646633743864291659519857261754630890136280056712424759264862220255424544915937878503012600292624926592926635902649533634517740368332964750099348375131366273563430266034135113519464153107578388466546011057396032266784191523114435091205308636473739581221597599790877114738041255408151075977050941029841298561118953334942598339489654361073753602401443047172851919698742431809291758288469891589894220884644542417144391932956236069634215235243822125673724973231942183704500623891669747827944748422016677175904546464345388995866833029523167148650131647212398278963464405154472918752224868579558892177373517523822008882837855038303393913073893725325179547243648872108789521532043860735433569413978564938959049757845617605353751142864926968594832631066213009761870931925970091732465981962168184850680738090301144447910610072063430937847500168999488602148447520311713348615093954211526087373706191807519597754675975567174560978546731331169435678836928709073255415082185695051033724039340090243389196241710560730492651489787933093365211190098817776641582135235836910909482313768220823746322278576447635490680995517851196214068995465198038561476095964287728221835051553618050166638421702888432983992468377991238048250090311208487944844688357529693544934704554124009468863568380229961195227749525475314573396175454153717078795058669943166319710188284367260523542279271175230377900532658909062628362908934569510235054244956721887217316869581222729734619538540272691903212091056661929478883199355992869348805706831823156338215800623005800485560844741274852795131425409264731261972607378972520830745830557494251871136166237780030238587909689935250591833283687056407453291557797359572045243884804190293904881085982545263733683005207680659250668016781652050270241851828688845376029734210800211895793035165105576583735984877811491647341442296859731702317629410148242071380963627592427011766488878984918554313622800763235651413733973047711491988661420129514486104413261639028626771416845458047337386339969716041931777499491336008755657463045227234863296989272580205003839377074518831997676666309908526272161124730872210409542079835612191428491931698598267696403657456916020511965585196940035067196708602576274858704337840424490900581213748766004772538542606651278304223423748511216035989065013081078915082959117491057217274342801749630059527691271563016545233094845710632084524659728930084634448514857441221693060926937204712135792472566238389361468497599529235742769090308309928917435351201181002849866955542515601377740945198642487913804628072004776038628193012962976340713193470720216411817312439132269522000752852280514131755747429971580095303835183075463343578687275454402443885877927107257700406575989924755685306944830773649311921256548544984512383866286726254853196633939473681410613511652876954828201644067167722079967509812027296382051099283490441689918758497741055320610544972943160604927468170811923808741180755564578730301979135277985445697772012227724228924614796291531691334633613441649848518672292802920610615507895579342424208684503918783214887243530949465407891140784409320229157447512416047395529564321844319705428412345713230300083819586166613879941791235118296966824256917395382985931112645229402312355807323463840332687088690802924633743740583903787689952480270354057949448668280256165776654040072255034864577000078425760343031341245378820253460239122287770148231515159269187226195103654872043816313022677668111459850646107479208223631810388667025482287275809335519954329104391195793399076100890892001656796084057733370052328528454152060929585118143418066940390221015964976403488563899292700309713370884361085738213444447168073864760584878001343096324757456317584714491256134890271271000026037249579956082778227440521358792302115831261311266056985699727323457080506575835355514893093517107781352847501372229364607841195850760481736969400738082241145005766685183720434816353797028733001496986223539786270564688883100703204588293361353718487161493820907383565819696062687914930491419838121450578905016641514058266032840251240509130351655829011793603033089530663594068336066323415093447978018106055817500050004475063089635874605796417114159170140161450401934969316621726537702173020797760780085074227363775054983186187835355369990806742349723397772923539768576172874351968111724395301399062112062738344018179666420497546445722949272413990586118618471645174507231633042241545341011861363215684856302945807533639144397164117382667297370262565351422318085943038863359453783451620193882236257151405184483248045778805338538526823704674073183750705024201630560089932676125146486629189771158773426218900056594188234176316342892769386703392560322649269046732568464167449516268441830732907295431995829109399732729889337509399975190632405522345505550065479805024649244009514097182119276708890469143787967481011300160461103689934014867756563215967467315485662201355660151284648277640701726868670837129585253037464844491876061625297813807521331950612178145434296977317194859641629949530099564434004851364372803346088135507803126643385921009584741385647681930436433140660051996140337316593404361676049627986298809016706341241025940061431527346777743134580515458588338236760868755389502610547320982496492123736083270974563733436982084150363095862241243822745973578670084663132482873075527253406794360328843239653290918372229313825614245573287858676233475483136573903303652587867768998824973514531559954388413785611072301280246215145304689636361862286075141733570806040254897285653054689334196161081661334229113536839966091459777137621272214156226794784690370705531967007518830769387639462163618519050355010021274786206421062034564218876416276377645935501187577044912346276195050801469532747043125333961950286793648920901913907592276936662682275539223338627997034119598153418875882902878805072150033127648700991836496610027339155693424618152916049913588310452213791965842496964333931224282597150202805815298320445508271338422919651840067428278617350654453948882617762609450311342881391874249698965750501668061034768582684373992956910089845861242671174736971077657390651569747319635065973409243818663326084476374111175320547476576642826677794917806194709184646019253640899875842008082012682175234583822006583608039650298828511042165396070843845800904977877798039072461245881541650915037994396335756588111752032526561039449441645128755054307521287371664969616740485577058378377884644740598274107238842828020852130932089894283074305658436375759137535796866955347622262668463418734192982298721499472214438217762441091979606412718488384324311195180367170395038112167465658808142569178194558235857565117705265722924431439353980296199573452564958016862160050139314831061223084520147421982345636636176722391324136468557454719453832910482772646704673011252131143533716139184361939771041774887542580628239955830467563942158621867965563333686004145572823871921963598413104033330262817962641132233534047620751263593776354160070644594053123169342574482890478253683759931298414707902368157475819899549510785421320813276072480792050703569410728867306917735677290206805218952098792331187631896914919826800085119515386627724905065647149911952776164238633984990136939065788893190106566242140397866072512021447204189201638699257364419485632396513744822321664667536287149046941832509803548066459413916191946015441408582245260488305553321496103737928104094189509419763421914721749998361272931086556060302467375302610482162810759588358438592043211489822923937862209525652746911205108579101096208503043996191257623775908065412358273733037652558435673850909373093684914466070976120795278262413563279427985935971933918968476347736921863396491401426643859031332439681703674567260147546769747988074870980181181919941521450897952476462743221592654748929911193511420923096920728444636890182950460112308047884882746360099032472703471602343341637466556341667229270318864341759280024492497657146939567699255873391574519502585322846870161364238218112336143406069136253414031741627057051350930462294286439734281647826279039477071540190792189836730664235536974677016687525129819944915970101634918748080970610924984441542924096882830505858649831232434782797997906522892159296273592278817820546260793170371680710997669119910632398829008475514911705741591320734188853813603934193344812000829294546423035039435740627619480780007200290919415432326357326594019049726600654685798529044820596075855789226134822573095222520526429762566966879576164234052470228685644539950966753012815673855105671647476877838633948742664487348280926740970096540120837355354913580979955283380045989933564704410030156649669078646417029718627808689639235269704667667357130196465590841991598840413469787407542149739693592344259935276944489650639702388500675853237154476488464114247231054670296935756096138303062032873286952210628655525383049839187818647237156910807368976669097029925614498435093978965604789099585985504171381899456766511321369465129707643597255604042846543723380928402218933403431310426755167977949594039213425791123924310377994521476890175076084049816180750501598539175424706034869378642026629137210681892404033542348063311134998010149890683339055773860368648402348042452388387675817099945067496960286026434724702365489467403626043763998188639801736338092049128895067348714146395185002323683875620188587488456857735362875195869588467822335146084383750015407917542648102165615622520758085430730254616055833483968010527282055922829929326313476808393615422285896562801080213828909844249285071453239601088989794830970492695287987722253358365517975093749828642002598815010592533329570508919601045334543404166548307003568443697924689601780213101537720228696238733804726747659301050574434038669666789252456999869151402673576797508038205626382962318669515088889355916765329218641064743977865379816200984538008596985303898345429137732215811395578716538595328636154234035554006066836893928648442175986694950777041389442126570707310552845026038389256870006562855885891910369542677224712164893923386013010836040105903947294642398575101347469887237687903577381096064761873628332935399710110838893441758073728841158303505186107196388637989887224009964563507739106323363402556118101353007518212165442848071286933222726131658766399270456704811492700907820049248131763787542788722239853308450994924522322877650548609315625070512179636870467628111743123473563625063779128414223713096522646804258249201582831073271662235013336064183474852181733882123421814889434163002831723280200828242818643550990011382225166184646719523887930460171868782584782189204066325882305874374439230424867715440751065222926236991056378069675325743456794131710369963926689512941168662017553117987859940467033573645204975846876027596628121622510823098577837433166919452118995363508867929553776893303309518986165174843634375119258794686941466525303599575554809382665992881109240232634118081112842247383785464726811459520625945339153707842710501270044807254059284735177774141301513321603961898566457219381850107210143047147304715116594788136536863900965268875227722638607966062412049247142638396769460909723713026927767975769367730406899453622494563348567006464076152005579011467733799266374632980671684853692190915211039408113247712747320327211490990438111300532804715721903148623486695557274049741558705523774017682506594369503728628531949314146187967698980844608921217164597048362046898474660235322873989023645473996098709571323731770879941156432380937949210325715954189253601850063386578428665270725308207439387494951157781286090246810903438472613514806066492712446745870086035644867496107818767022354335545823911968412729793929929897902614112385067380778579794792434404344820118458327932902687115089438523424634458897480089568633343654883732224921620259587968109096877197981673446268646887088315933349617395539429758830186460602239394982922013596592495767642097343916049579250293931117823201422245536291244021434937535575991347601379743652185625950609237777416831442224331977215374150446820456989831736295220058860115140987649375971943536433804695947566258919219932209358868873549680856275997976183179152235230069726383564178275314009761268979418866820998386891995101648711247182362108283810211987099638836307593383396928076912787392870462494315961278356139793328744029635185358699831797363571148101662354854771343271477639665133503403095322055982503096748230927536571780618864059857216088000339895345463361583827296893825871774386612112519860126579133035004327528761044548882811642117650900245095920567489089127442065107237695448941792154168715356410725182389247608235477110338171556458945932163855227453143693034775481262552838106589245589942268252407446039200096268175900496699191064104963712095734795133720581608719014516672067981527580467215169139160399605782017358539505677400461587975268390521660312892401140069180700051664562931260892146910287531498287300626658464980607768642976064979447355023388214083495363510150176254721297226023471742883240398423368767527961312291293491038457183922072639247289796098190049361120061808658133239277494874953846664715935976736376114420761673703536924326352952779898852869472173377804559483753334798551990665719274331245163282247871010487009606500173446129359802412799376629321653295335766734825211056819199599587429508289997833125467290157360354803807899954720441457021352868032493526022924244887598084303579458156622190574530010432890631296061990984611357710195505623845427089913327597586010775629996962958398681722391890267417107482276256998897169538863673541660463753779378483033958549094991799539882341202767400939856111112955662014872630375957089786620618123436804917154794659743595110208197939593380716955351083828058682997811563621635218196261559138619747020562087661487640361360862432647493664412086366038763297910484724982180715503681434975123880941551405133901880929507596179679864186840673121514841359264181575274432978249742461469429196025465105240520250167753093084199694710115420441408492152588518958516555751923617959621739039842761488873826352892460306467807530147365978272640205089084138016098815560857629273611948848176441822837367636429801622892836081491704524240324732258411599839322997216125704571728971415814288738029950704579253618048998975547904985171547921813075755446995624467039870040169269339618189595376735839169000781925321707533135441486520797780537957026763225987609875135562378613586930642753135243916838326394267891689318992987784133335895699188781005792662291940988700477067897492650843184147259267649336193455218069115313519724856224962074090119644804958708827715227849328585278253137178872914736594242506543658138388626112145977005327553501240215447793600879480064131683523651380304121169439061546947399439464795833284832071085875557800528172563002771322139544627205042795857303920686052591129626082492434714485805558816596607078303153540583114095648205290905702240705030599906060828124513549414839582884084327548779428190735573706531514863244293746265941984431924759078265046422792170219207399616082773142571867346026510327810944341566276253666301057493587705470823917860809688233614384094042805742274829342444061106527768111325631307910365769538384547565655422835837438322736005187621146055508107034171296158428015598076978478926063749174130390501685162601059443402874891846446522994724538409925655011011470366782790502229196865919421097581070674420697077635012750946359000859069669635209353079840027726785332752524789826112376213317536904378823975550238612257055461233787531672171431429099642100927865618166319286939150021999578990829467942522535092463092589903128175770931859973629442829072712869816939847082737426440205349502075947463123693366584089568726942262748728952888188832127638885541374344790391908393676779460465788273352476681591796242536638009955850264047480420691714806954884176565908609843263468077648278326300330199790181031453283129908005689128697948572513352743219746858696650336244436395846979613126515180046950468981449439690842487148707777777939259769913113860371421109091045805263084822688056913999310084017193638028029278019257137252925743857732437567202611628810176492655537059835619951399884471594147028844261866438014955248773431781580677091193699348529710156422141219374203836741544466588024516488629160531757898109497690263856739176448514550763932406569122871327574225893279264394883976061080899832023367897621539853496809646616694523683937143100540989093210786567821682394749376668390730406218226390939570128341578668082184697923895062686748636324036951403525221083323336969330354241511306745416648088649233460095336211703771389333014248513000265114142472329784558215901718486990029685402623487759120634837827397467371747118216029926945769642681505723356951921051732208615186753558637566597468778943671865403113551893038638417280059924213485348625314466334659232561192849844800524908463896163252473645784266094025816714400473151463737329090963719608217631429834211054787293747730335511593701038209233341598603253361295624985585286907784270537919895763838736321103507942555034181398778837642135013287876550889134849740870043576258491416351806694050875466705885491016833027387248881843762119149247628499512784802415047025663893375495074323868036107611530236955800178048288961847694856987303026469714456306758091202995796745543745143276235043618306259750431406460928620082234997624755310574617434537707424674801665845636414564087757238720676861058593186007505250872567577853670690666664659309373314503914205710141922460089240026221696847391504816618488198658810896367802203766512844686168440174998016163035913992482906221830484734732806785762696498572775805300459651063242216394130614868971833838920878085368977223143762885124273839370406346004606834870906893143543315301820684471360156733491450059539816993205677641687164201749321300738690456999550804569200159505790715273360775421011801171971728306892396035576726158931364781357403328130760601377070657935974181891636334510458097767364574418733482838724854485753634158663230527999865664817276861643648422243841195197102394066186443481906427773363018471946610773882125726704047795655835043997207344632217755444948053152060312484497876717618109522108846563632305300535613536399138539715095233013490506990104501265952883981828099405077458878464673944541913079515328725102450911596022794273158589957112906142372946219226695773267865078470020579067656715359080247901174180391279561868028809504099208586285403959321507396845780213502271515003004414526277486623908392184029515653665856768048955774445405910174941417555782521251614683837632913761998189328500929510901396137310452460500464935710561367325462515063942738144821258959201423404766463253235025715605771585383008415400005486017171064158162689042060627079181380928847570886692727892888766253625932548616860438885173846668625715833590795767620792459662528311462224275055780007687854998606568012847097131107508023952703859780994723417920844228049360142758862502922564654055708283532899967339728599351500402813252388968359561696173212213454360947993356785518884692122722171894899586052428798639380676597247730719663701411136999142742898097895342174610789893734183634119821551782037504523955035658509557793144730301162660258953361236338849419570063392406209905154197977584694164797569956565394326263124451329490106222384141727417460240248127460996615339770656237940706618936899496268838311931997604467314996217022653471990339370289948892929793474663666766682202852470701225956282866039352367620848361217145930445792905280118474361200856718504017731453543185376801544673985835103431596825270009411244402536549631069933686724176110068203834471501011945560935361695553959946506258500329415027438388498751769291521912574669340407106256215434112171635039007411348297284165958962893572474799730565268727034688082076361270079205711221889558034341015215448319013012481918572422738482212911986955784777922216730866171545872281158585588350366865246829696938856013325064193985845913224277600870307157047474686195482863985473033950511498418641427145969593171686606817045266166138976934910834527557019062329541125434066785295971387614744671410759718067584898401835507253737093128292872057620015809346891961710614535719799803549708492016473542403299949698418338767556918439650551633723547947190387959057656762866293666199107892668607555704714625817114475659189859752907709665126400697194496733799999966079291517421270699160228465278614644254098412892670366074403516636835387389932123045273659685303138306861136487143151984455408144945294826098158932030980433050818322086052463547832969397242790984331915426416851400289009446536569247223556649658123797134942431225057531612988192681714388375134512854235453488309957679540249028376928340791431262201259310377807212361495578958037684444863521460887946321787647300198880963045699910869316644371689512441984476643795592803070420013760707327565503829575694133583890460434959246445216182446200547591477437044976190650172354198172776427010668481976927066818549172134225964320906631876798460684166121694663421541035604180021793682728012391208037365086332002962098885485293778933342663856883424816535800510606030896121233567632845196815095442852820817480826958616001169219558662751531978198980002649380338138896155312370956671070649222846516323112130846585959779344885057355649137518392467027889853916420352034792706248762923351089676949024492483004243644459002835376900361754850085721744062141355620432614343794380391724254885636356430367417616590421493796328878828293381914779322063111775798715538618650222641311157397442611686948812532459971671008086555946913260334058638728667814099638960185069817228658465845179897993193114243819419969752034917934104282442833361051210230218581233776057475242785062109879003628235516449355156748470439189193824259975472169425719062580077132739071936701215518726451528668168708630003962276046143513201650972319694086992419229766655118762248331319145211881957207740585076102990778835227645432640299525509131798413736824660288264032960121796795145173728930163273382223998402712871404290459782781260360200967292874539676840799400522967828952537357067384142039486838372591500396017213492269377695944389866553524669752322997065198650204145310217621645957009441935565421577001137096078205932867250498286776067226633001512369622554887522215124114402813804937888635825697466662031013246621457133590426119647233118347007176793966301568908271643538681005136800477405932970003989841159183851409927217208243046898379053658130161428807634354432404242983449374879967927107751453696861405902243548983776378696835323140283613039211310926397217579943806399086860509808453098541721511363247834236439936693810406359335756960252253276711104949021796105130941610989506690103952410762134899509731282958677975651216378034822184757510421018967973171227795514874772732786905120064464811905532857222843015002950030528631525887122990677260112449641803595600678544335347547005924481399904769567498045959747068702920898703352693713382308509383470824133227392234747273626316969432618593913502719451440403933805124778518742562998050430179305098476681388787031631339155169814647881210916770723883262760354593355635680844326725923975901385917188389187763765215712508507878168097985204348565195452677990387119539117822340322672698536593575208672461605902166775915935737312286063243707089057596716142326009571260511124585345166217324604904264977759936811485612593629345083832037555721720196530186497850923935947792819849566361181797642750256475047093506217196394989629630343015217504639626139895825208127755742042059421196679068855353408806591140439200154310742803946915814206424266794742560984516680870236203990706892098226772063926882544123648416879076664304235375391540518453108251666659968734473066819542288837024840495132768443826158362157771236688017841259021737712719841113512076232261688748665015413736618045305938554983685048690475210392526049519114128862412238606388423024710340653232679885087740902058546870802200078752340305440721634001479818876855846149909328750045412561587142103051012434148892057095882511716047825023978861917883157181917917280165399450035898145728319885177594685159861040545842000402839446109269490371150144360980107034609965613476715943460289222145528852507810293897052481467817169854838384077104168876660658605582122465011814656358691530568008724410720142902664994507938251252307554327020329137853387688066052921622569473743185319158549038883097417761098135347004099083003095232775021843162879292782102126412987292730464649102344078675699667563210971811355373053690029380298281474076455741957272332775586050900472043158381379993632749213171034332479376207991476994059284912755675974396204184558376767506009412144081103830223840693082850613171143361047589900896628924075794620018692250877891007401821142412826710750798119091239814200531391602044467697283391541356709777767217554840283339752960276017458518181279753335516810907333208416948861075852636473457250606597159888309168817764096918881837261315802271071712815294881880329151509608604603646572670886420989655957165640791467018498440490466395543277032890173651644969021055914372370422109188707948831533337130762403778693455564075972314016448061565992655075372725255699014936414051773351620114856245952577023297000860717604834025722774918362547371861212812684854303231549743421614497863698683920135702009962922405898718577415936573998099790745091423925627648380933954791819211966236270350905156852852041720227973631884273789074763568277453217088951724088264258056855690129763512215711021754694246993513733602992121153330040170609225973831266610745586680753804119232730225863600262645615696288487663180512478243862863408779074978760493204266553309344553981800949906145568592860512719552146210532163754534939035678367452211281927698861024713596323723540446818195168400487494062146347188347650226843420712436546789656697856691674071248568494152888876537018814304420355921935371237134426736924383289668028473228907878707203547763648675061022304141162162449512127686553191903120040262522564537702385936756245111972001362126584419623912434109475267021852039270534341403647247550585563749469581284262876609318928018009411517679304092850249304172418523507943094106313100205181716614304382420503615180799336384372588954795464952845816989597949533370677750295345253161636825583412311353322637493322978789704924607497903790447780410141451413736549994735568617041022316706092957390730726647609568385393330137722048315538987171375889970011475449795955406932763616574586358987195930306138233794899162342932447877072626578997229290365351650343222494619699244663947316619079433040023859712460739719642729389644513466401906051014925387781462693210265479440156282835870565240327481198985302027105938882742849886295565761349866174669347607903854938876576993729763463073558297794450839472509284468757274454370008948342458433505283784719711221589976788999039789877198947944634658446519851336572889154081212960709244184942609952316457338825091820487242840354899786739041518091313884711815880988086642869095729190243590294397857174745834425721610898616079115950734382653876376205610557633889267768423591408495566459860016007448208918842629813356977890389632478578090614990908833519518929870383330589644678267870917660529696914205850618729064532479918105544854417047741284066800812045311596272500923073848855971241312009709412068103662169616005702520621658572066958666625267414563912639960522831824956776269748682046308959170548990087113860723639054066614215731948328271584365414891815022170778841174832089335975085095444763616624759319176181824330103563961352991355956294968304517521867250777975240324735042779360610675514856310346016772771935795540849981839429754900741845210850759035709461554562794197108941332816850936594777812058327634158965561565114585800091301575709520423540732156303338408403520612539606445620517797651849618189183684331375735995562520935559055810725924516571667100141945855981028432939944304197583528591005766973317649323686347975665355789855790610769900284820296888058198477370075546020741699025847961465729380150185506403722446145978800771754433850686234054139697795362787668652636164011686247392253732251213750878121416702417112307708717133440339810675840766132334140464171867732999394001165640967721687627512421544357228018048542395807418827182941527630615502741093365588104834484165649175670503452459178680401959066240837864211221358217492193119775490517174582911125526281708845534233501989428761927948466198147558412240948308331992953382436616562660879592457431918995225599259947402729255898943679316813440369664149482507980964404377725887125820757721702814385116208379129787453388052279578840770498498801177532528668796159146048677062787153157113739870372637614209470172714956907678760796625119468018782685466793678627531939509322870755839729109479567259153673131558076661807577787229083172453515425283345231591699055171631648344510176853280788796625191363491234443176489919849016569611216401340466375819081015057598939300569730509024720394694690461066022205313320026668616334051646470106873377871071649341168113110951095445327524421717079240440001524009447020785436019285520322141379150193947450956214670396456111117206275794010427318437705985350418897079558748909514802523451736506005599923486820161296083281183085618500065636501250609922930143091493764853717628664530548803861680264274953484815889220903760389462050950927863033142882963524272432378755198927988615608866395910228856111573494267144347781444393297220117788168876652439077523450081659873852509827165896013762292414120687793709828095633117093561439910326257308856155110948005997085398067819587256181398424190175323595740324056574598388997918142480485662254945231584383690343408583942965906252406282095964682768881058677545536504445052051892970920122783835424421757170074040451743861623468952980916036546910421704153239100040460077502621178833583022252166277116249629216396303304325477102407733233161091044234142946425875746638997283926872530291470359647863100571994341841706423853878983129753240421068271746154838061309735965496113504110938215520089939392212455072610748338133300966058722492491438228639683383864871055289273250190720300267979253118500071959548313756498850213164950313623596418297885405905478228464697829931881177396058484354742212476803050927866973561584495440567681455141481541925627134532159227533088840288743475853361183981787937255485408717813525361843472331483310781248899269034893077150479428495424369838144057009164152202093147703860642294551449589744525353200460734179559690310078614747867533115030041253543656182946872574204239404603315583243585911810275864695593961243391614167328241888676435740788864254395710886357730374024580085618280986880423428519653747610066971411004725237644856979953035909031125083301386800057187975296714195847792090471840826507543598556508237769829656032631729286978715815807311841899175727525371223512033106944755644455878797490383921431664391969876722613378902038280835772817989692794348223655544064582098529437688621972735874768335764957633984807878337000826139896714366813954970331816537245419489734818461249946670811811561121489713979936165811709299205771492468693602390571219783578350710228720754606966560745703005218550461153149184370806084459509950309005119859499973582488475419666017024668751631287995820665491065854778692422004721726441528759084468535814059660604068556369495084692039160851669604231868274469651181230839170688186008321646039554307448718859091061177599057987399365156805477058401601203712464168037021531363927725920457967944854685160084518279237468989385911955528632851925268935621422702810690463200019211371350049833123669598470455270265756098492951842383143395067378545295621206348295613773162831622769191010524196617216764071900164025838548279365012040483560891193636995450104871868697803928701751367524556304915547327993024943201108485000168911875801457979946175376323182159839356012262960748478950438376533192497198933316550180771075034562915821636291215796608392119552127474257914731335625994970378505580487101469371913735122129044543752352718766419956497926196268233981338227053442560249899836515135183578626191072161190230284558037263389597680760022860680123634569035877984723435993011299091785555568115294835540393551622568588444677570251096300246167128756681790162856370770118484409350306115568908184608222243176591459482030363138620554509205913963611418119546404180097054948468155463036836692314435906681190923763069308534949232367517505864666765329746874265575301308039756283300517667705105434194032261486626840746618772127828142312275672137877560693266154217257948618633628818109935657776611266470354833362897362567198431759405381654069266069635669056004586083976185171975345363288434934041668862343925977290609544480250123369892037300454626398188678205901898911432069390854956991438069012205205497879826670309090728163864572588666089284831213892537812977237304733064004028185470610197082681410172119580882783693906401754468875892509612424294834488158055941498345701378930993264750395541148527534724723039724057491142007587832112385895377143072399045695598882143817231127673888729582773084549178753401490954174666391357539703521855455193087559996695959454488869352669664108922794953315531106218054825763500035006193650489493121701996675869612125948397056829339870690511028630113841501690937977236734215135107101546283247871196403413647089308612770677636663153480813286476349941094807059260205780005747867093685061565929213529106039467204759924155187424051637173632575502300306612374157233243236335888992390703665288426980885397544361049691610166268001283374950878842321476573158601670895081289850022703887756574416729876961214842322654392778357986116456833801396526712711091774167402662811578757471772308052965135748134803979270891358232074858588160510794606277309257544923531375520118257245773637689288341148564076175948100038951789762690600927391503469798836710962217585320889404507429676100187285045168945327405387825195049568436713806993405099709064400112526693826606940444988158007849949558515360435264518649189862580926010680793153722795561911588790516256779476441095345878954832272203857690079844395927734326646629095141391621348610111142531484902685784605099555435769769580411391877036144974865862838268343495538277583670784121636090652483507436431601873789007018319248611590968451309712156439266169918069087479118488033947864797435222276163837932775336684445382258330837794454539977014153215711037923854112503490481380343341254688738595545490289193115996352138827470092961732502600067567185119736574653376107119329814720938288029676453614980965937855447548469591546518304907520198539204165645534783028154132648613549667613313494361040632083401822127524162087374256492316303748126675069948229460795693284962472307407898798541000337467689137432593256037643448717307546866926632620662936252391046324903829831687650396158637496661246577051392477823179361598063375114995002356402542702021724284550752717716695270986581676117139329043171713779914490985461245987572759505326997926165986128591458052250492082052870378322104743137236371658584610950625614783198113005788423568944387111628794888095231433646307416929711450647633013406577611903965192903336324509639866765617006907933010749475448086132652793061871233074238253355108504657864627166957224062774584548478420194894978578885339683602547090633371297028807725312697863537891666921398711542895729011413627378289068858964741456074809284205694595488068187430471250631002838326094380649556349596674644559041279656526600506720891717519250770360982267379881351779793134916772701652045805255473768931800360401114496858166460693979248415759700063729428545072695664686217724719603427849282624331185085554628183281738435125137024245098108440067392542143796417947304963522572498254273466122297374428043117278759815726946425889438519163863990430752440487216441945798217082325968712283712628256724589970703539857222528296605814386985220567397331381998880934141304323823008243806415972836705845255056335300499905909828067645668261472721142905510237011475673900832603202787022779901336613951719644901399083262975792712859788339452795731768007979514124145170558760950042501005456674087819949653253466145107983699889758564383167049293532727119929122870074873524545318833107751493874839323590658189315391002383339110560489417144771135086357292156203205433760238703166592294705942533756500338552816626224515879810564357314531764052509252657687995406095980805646817275744643969451013441111685365185525780487768366663396166896871483369238558393612852818678024844493863782234631200135504155133924879117344439596487226221893191457302132131378969709097878172721612697101837067958274553460000171821482600872805573093165636681952341426421549759049996649700010918835742312685710830680512614063073854175127733788383724781444455430532588574586624478633153115198384000412698812429215031649450386920824651971086205360318524423311556205093171607055479424606374913008404149844213813127943586787831317343500362546922652210635638763516150052710436266697248131868751822495301219190615544449666525602832216394338812633208036960904142585113957920062040000601219658307834794802972777712870018776704380633739544616075515058148510070623355391437479657828557467938165969793597459477695980575847558136779874222453242474146134208409902094443832280688192301196099135700075402777614626569741672476890538855972260101763022433877493087284748906757307022771027723776105193474554671869979924777576471620520526014114948629066950952859079016820641866286171948701994527373071560918329861735798307380238673304297382212221836301061503188138685117025897822056330036960958156886090993496942347376588137874016946782996264775521509756275057514880346298386689771387954019296597429004352269991629055121341091608362500890494362409235919212698547192722211382574350592409567977693068538221982616843885661984932349520437414841807931971784419724496614185165025520926894344739573303770254773743697623603753472877709238877018455955927555932456561051523352192017230859922773820080435544514331806649727943335027004955419586592506788273769392673906786931421147113293374651543561447065117944305900689259882538676982415506328854249566830612128829275600539455924232094387751961260239594768471277317054314042459067581624440497413600166063830330546698625005889402480635951684152210241754989218835260681154062776014811427328746033432412392372796642553107646273058731983512683669089767888412276049493846780373235221307976333680395963249412309579510495965289895873137490167520783097818591478495386273174007129867447649722954270278235349725116567765876367164142727396517385021976597212502057987315203956398553830237198087877222143960817460004530282538396249153350166147914886589080389185420092029453062743069710586197317570346710784175281840276473474679311694958779685516235747293067033385881347761416092356420527636191756953606587141738679929105387846766996130888838381627525629845414431266538459900883738805955968926423465585531783484613839439671793213314387208936331809720507136818620605809746165917885894839337830171283986883299376216737737445035205766110505675015035469244315589792926275464850919331432860427163107066765585256847328298609204930851692008404440074625840810569042699752385178608840830646610587205831844326832103719431930247171295742747692168595007579772126365867961222392463606587189764867993502288499087234994540336515136426630519964993948551634985606293186964216267878373694859700680415182263720019958403989061981366515299636729938613239639731448202436618978990531032744856823930755524929395357768645513835063238844725979577258570021379821089619262546004677103767530329062128237462841906319442851254627544428895122493419359786923977936553302969304302635045007827946025980199379857560487380170292943805741173445223180695583922635353380890479988084167113333388744762588543566579812862094213884735756233289958662023529360125554984923366397725901677910315310059270058270335239144897314189249502704319341429234354496704663195121888377158473144242812920962313126013659067442242042116477984674339963443422921628784080872594333395928525204835902796806280099028405919073441371316483464227289151321593356555321135512322802118386800517051976698089146156987692510069712122141666543828465370115415670231608439973697683356704180538016659713740439814299023777464703669233391115658553541807092524390195222358157121960744533634312646385885250495603053806453593267185461228578027590443998351788381154516621293844605008456446144052303962308587028958164106807178411997866716831072654744734359893218316179158102406142095767334076605418065877737274859144055024070059275931551257658453704213808394217648665429873890671889427665373035204266274795316363134309635339374905703664665501013907576503420174873390847891876376950455847959408017934627706156327447212752647443454893779531923140673659982790925713961862681691089351875130789693460822058435939747641352141443939568428567824968474230877168173283059036483200545765089212052375283517769983352969957529763882251780596299254976250234114999549133298366305154209506644806702469905196519363344371215227485985583499656081306814729563423700185654745050612475434362986171250771351565500656483731025152726585424523299433440665226237473788824844795057587043749554023469869053918901898139650668039444516389230043050531004239497817162520509173652472029053947949799779474152585254181801973305674974193534490890793838576049445357728509175834157043129067620736270609873857682762128372386489016180920323130588549692192785869498088677717275338223871178529305232290207178652225001348864930986463560510425545634558882196270331405314418070821899468375946300948379696226834753813731844807965671009917962258682355798978239961668393326051853233213538465806118494276874070424913021664013308390489246313382199815544920653669889691642921104414196752027445093208541425949923009518078911209857799966547967080646644886370079217695989730573395937849008790522999163310275338180866298482003776893470911358119303627961966142931336492109937912685740096253462662017871963093844433816381230914687349468243792968602450537048453385734288806548040377068198115529078796240918734731865889681326923125511350150393611666406946264970407684015761718364195970781753464015443884714508111890991900303803742088094021048416286129650553244212432308931218129972476105717170874162099965488644148490563572214829601882783117374948999396780293323700279444541296838814601796886845487287391367869198435195430504751522172320070418786240007056498223432389740576876761302172343164231410532375142447811729813445885693245848590351090319700257738545444617188186373276395891660328374460800926131539365447195217656268487067475312705475605008241305412322698533850230654122643761878362113260457162747908609298321468494428567127752629817303635228916550986442672776728431690870307420474893577043333597815409950522333118191512081859007752915928037040714120649320506164128566906303728180335081329313420805130386789078187136451836409689833457401285630337100472738813140920066387921803417647397404826811824017194137377978327471641373649612174991129277670772836303061213744062921317994116314683505945030371381557469568340824718043494829195450354463888095506944211753366008015093906768248260451433461137078336709585963987684436222906224686586189742442652826927881191085236916989989851127977612586114091976605363967271497109126667083396010174252073393218061469275162186066858760479808423653367478194038280840035933995872490884457657838911633215152696015126263831586398549803111466923270011959407032203097543022424660182784829952060544783773596552141045633091108293995491598322087810926526102913560923514837739138054996085173198892052280874458283303204245777602710828791140047628091070212842814437581869618330932351208862711172511919353536356928801155553352013403338087731887135779478128521419020891755768404120553585890324498533933216035740953619616097258568891196112604889763439322838439491142605958009923337701846131307491906372690131843260537180594329572027496931787932535700430976051514288683408611890915856321851784396995948012252840153412752425477960818055755351285787848877771420811246039705274756857247526682315406191281154338297128916225354329878179262036310456362742420245633777918574360778251759945155798075514127961528917227682188592715112516485037058414303107436193740502679273353968043709469607150210661124298440885898744329553626494946574302807206267759604806667568517968619745701695290242275310976490231572573509814174971737887511464835255100485153803954225802434854987943141650883754461774419867053892478619593028764532867469037950670989684040178516271413498417690522267642280539108543844904285403067289317450251545460693942107989281636924603002974222227798781330733673559771741960042913518535130271902891891287095895914283892692850356834590046197024361228318650213125653433670558031525537368528244138713630462898970422096030444681856478531719712845983744755986926655624549789775361475584952075304358951234144108302452965380088948388526465327044900488452602897815835213289296407993085858154091983269527504574273459343786182868902713151702988397114550784308654909400584430636454223485421032561493023246016756800864684347719839964399411911900539984578980654502659212088441731096152211906999959341604399849100177163918338921264048647134967289130435905129282941867491183934901787359151451726972021181374947773656428322028692519116946037585589022911726469920359081487316461490724720444147577571527259976733694830714107507486285664680047446752638105006093893101570104986220222839057403746189624474204907219608035030868248614487000329679315215590088678163542486770295478347466398052012275135638934971489665383498595776308853522393971062359188298114805643748683239466302016222845592425473863805831221204741851221864591928574987666560208309872555730492460874600518532975202098623310650018534645437211710236151592490919428632944018576665945827343045403062541980337737874161181010511250028047700026399484027471744150045824852310337013027075598547031751202478001883922900513330196057299022024505352113099964141001955725017485086013124908463438486822411390251808701642800205756051282280222124483927338789790609837655152186784020200088671821656043890230144935798690991806945522316415301727568021675752391141603596267049705054067226767093780566649612743795536839360523839651727330005844851423147183718740267126292484744955687861165098129240392668585748539687003347431946534254043584834240266706545582587188391893143882363404075144454038063062826276962222821770430108277640510550148573405866260505933531743964393564244216309039624026300875455698482072590042731343961658923629200625270950804349437137541134657716954408970005551903438757140208701007374190472482112278064875299580274891207958264986390432033008408140135938930770214876962789006453703027837885343170262899818423171643576125505191126566253842214551939337517128877932752898056101858922186288697131490019999002534937067507502482934270587508753535706027676641050861019776541729094949210744399247454525773210009076706044460621810675390547835891953442903533322215970494244453608875148974829596043941284877268420544465133079518580216688043093933085264078088110396008389328622187260519720257315781767671923508481526642417363260104782934870529002277258370333973970747102699015022804799742157531395026333073905120966445462186195140090837266581531966753316370270561126162377402968339343655426009425075903614328061243151464122057826143093409315811926113637102834685158766713384681866555291104369402140605870995374882288536133165849509067878049680851859369640759517688907536422528014616445171475492747453275206868458149945216233841856295017211829510940543561322240399054919028374323783126573872631709487863133986785258570237269068466672495081522160528071289621119906945886569232172037765277550888691887107862720109284232143933864347304094457952534920112452710400921170742393050688064639171463348750461238827946317614003836998545495335483483272410380316789897746080868878498818665042664136002607396162289231290238508822625373698187183326214660118003550022035951164027038510979795866925980221296188991512611742353950044335079746183318278724600118741975941084759042661442691469392705848223964098476658854873153044900098544760638248688249305054199960513241475876528251321644943981387924441550931627487113803397762978327002556228995383241161368345374579556030041411915057416206463628351734631426983360768388802169311315558803828664409953736324746570359929244859310552269254659606071886404034105033673523207446890729353233004086630703704268303784722069467669568321492149359097249049119491894607778637447478303406750897000366778597866199326317350614200224865539625151095297556991972776258229359890397607381748083324702336854214582739134612379774450989875277774929068323052409640732018491561031984645978359269172806722342367756222067287884402001036204853020886346512975705215655077422389535482668967949603111797487981421403826307871360275566299002093856491056124414869403973858235453653363701062961630670333486470164222305062732120448443434011698164289915342477123469626988651002908039339135010370389267644980897571081533844578397893014659053001245205718164549056370715546493131575186732042080899971627486159336657684349295532424749250401757611229221475563380898619489217572724173483508461705285126653573494269171171771337943979012112781762168968292875600863792919188913837425912111549455708505515441707584736148413566582582122808085955486711343309416946551531306455532935848129285303848952804508673329411602816650574008618541223424057831582657327987769498085344647853712534388528022581613947506492683186425474403698967987716294021257831250262466043886943191742899918295893640013574782049361930017774218078347274949101979481121246922501092517810521928645570862189239349510650288464654927102139829350091969631497784635816470259953876465814306340038852578375758697593889821076800090058140822937623768902353693276465909661794650680197587663353119913009310274071996109464316177456937059342687387577999704842727464866531093543036581402274393942171229403314549574842549015972997970349496529850232867239785157181829142570996956998240016825675734454616435829654991274395843248770942783896121539414737361728272127778967332981180103512747401007793457401764694975463952422907162784429168245386110144091165839386203846539703634806201459166753116851823670343695113367997386017398327057018563879826014231467529063078430208266397639641659631600915393580073998425423983850703472486939182434165734309652371526014800432626009018607781705276498296504412469733139711811679476481151944544609869230656344993061526148062185249020903355469878222492606996205023870616867996630529226325090962540148398990734096067941672778191063920901062329259584848366268240166177988010270323745905008730286585348362507916764613774977805742344591164676412324278452631525209518747630584713751952784527480647291802174866442117466988498945724640251685828172267539185207751687821969067717672983149806959928566290360211131074018038484273132368188230808411768207662472352085795674524195721883071114537409298101948128928262156662845242854459318555981818219387296709708986624899587011814348794650108481319592000733711878533701328291508761202732016056582122578523859417081467926364397080859840539841697905820992764824178522046002324873098269497829601589816505550995749357992312722047941629753490244232380366085595435184082712615856973535559955935169609226802234218191182789770702110209575567118928810538022244463870726230201695741215262975856661396947772143991656851167418990756491278945052988322923531633135169031742891501276512149052433537039118561331494692752683428033272098878852736721478706506344955262696133953382600718727670857338491575711820515917357886838458670645274786835011364118508986844455964993929960937020849270246774691735428196314877006310203940858203456036560263687136506360858283848743904449592900125070232445041186155351489374265568986426103792219271180439509286213010581049184246455782855876480670635803763406835142561027375662937137330654717065960308418714805171538799426319034769708657472026435562697795364251687018884592032350525349825668238389623636440341704661504353724245903496366712161710291090418975642104551396997816196630634184156797805326509833973499172677065968038932969405800891184509612450655539174837941657505468789535971948984101683052270457038464440487712447033494841252507740133244595339584057471616440906018361112965915017113487757992169536981104436901013044385737476112212463372134783336818100227051013519571659508715069872062391346047230752146495683659536228684611046218247861065378905223894089622298287890334382897753377702200787620725180872894161226932635954526093675957666770792575395161079529146774023313138007139311522578168083908674260521010831977480929999057899208881149022795432038756530887835321852109649683160373590752333361128617429338872926930503434783966821715750357430907078085140404354444001797930918331962595679798121480112834404147226584869679053102867617883085516128614039399311478442088121387518222858086689922567836200938005701129055744458516794720655333757922795171472115631674554399463012931139420271919852086168162633313532340990016225983494391159277347860169678897745981215024491858281911473898277951837164859719103705590747234566598311172443749837359671978457823773918081749630757146836896730576341253713717882715538380328118863135567182384805511374879827651756809878309997742050281813649934653686621483910870605581117794879029398164982615210187031420190777478166121110495703126169268474132408215373756520160562592055808353599898850643261111705170871705623770759440994901494632103497483250643845550555902573528596634279381079984922453616644136371245596094610437487734420923769210927884704564281053508076659330693748070729349385534297958180980936117789008828657415756412512344280107753146699912389198570709583802919666021361004970738162371287551752750479332961850236038263933557171364543075193443623494062615509838550696610130695658652285432497927578011232413828003007051658838643837338700371481371780954189770003950361016143619065387296412395592969439791471709736770327675746398055781070720060825214304928257121651740068424939226852824984787854548900251740792230184551565486341637286379502712110649080009828474924854302223805559624991736282151997148099246142565652355557315749653984809549347974328183679285919827382826018737856906423796034052461551334982522750587793223052335335220664306853802338955839405227363398979566203622197241572896246134889575897371616213225549504658545731186471368537678254418171670864089641182396841638979827574664387216527111332333542742089674755048128738871392574573705622606528708363041514605341033669158850567401007705758469844159252067807985354561310621464644304687096385381820980705516166037075205085244960738606133263922446866201007437157278856136009410704103540346901472127990474372650819190447241362116299058948018818987685367550073810426471308581160661206556398302245983571035522365896231426381859422831692252095672535606307019675936924311586157980173059316067761636426133519972643744823976578167393612498175109557410273925895198725900446933569437040637713678416065067934657643317135772199985957680091952771303744616642387106460020515682466332535236399807175678336913117121288005266449494503155423692466242401313708985849163178139025536136292520813912746859648024350210677250058075829661092813738716275344875362626951049730485404606806212014748694558593258293942353432523386945657002777890813006466877732605368401521291665596602788908751038218034028215147059494832352332298087179224068324538390111564084333901112875039871279102184857065106173740259328151804706266668621444667483467999495105581467982689792297458587546290938416635352503752004437457184026939840737606949033863003531558206565155857376802663485647306051041696578489303422710530080192018970075374972865130011861891687115020669378387253275273940137395552242536805860949901921226561267851484829028409043354757771153961133636724538218657086973066693520480001200002400832666255437341746967728612822374334488862493111951217551014279295681726327531508424519363335503515833053759535482457804710889660578710187204845227559361870135541663891205888783145409388047081914038393271846234277952668420230001344337833099354734939870307704156962639648817607922589249811102070473241978165068678253097491516066155599279002740697155224060512877551697344332240777224857825271620273589625206541976794181091448704977804246489048973007665511484823891974962566207185352941821614694471569217006121809048364311532832843445481732474595002953834729450696757373770031719618261623881686627425260941588816866443809988702519305145810271639220921290546598659676328191540704330824955007190284091960254431056014728179823750361227222270411162378551204979580128390808016482932680614752965103378343061474582244243770776374281946971879348435867212497960987348619700128280184929890597340910041477923594453721907271068726933615700124230130647741123277935862867230130497083997878037367666346179532284004236825847156610307501631560921165849928835793810140441444044934763779512573021014604683443910709290968000012509665216256898728561473380453896956050711779582853709554936908710066642728384284559540048631509634119913229525298731457460423928377969863771529401110916469467712833303338575804321761464837882560205566800285369946109167130945394889386203108750526718153701254366840647874514461705906538838137020652446117644036381125000444018682809055998009351203941355975827323584626544578542757781769533025526847171369165337169616223225501943807495860570563104568608221390103391046064907341386391157303062873254783121192103392430276355124401670809547131517580899094406209322020534834575733734975485270576520496695694369185489882250598856787159489140269827071855921215395851474871628719214999065639091504602819329549738641402808538155244641929243714377571173799765715884756399449433074422965719860792223770519679418978853537326500522457958314761130204927136505964254734034572676773815275551395126909474126916928358589990116767300745203556726399770121339808926573504669407037765949333747008769457334910840318964438062160763663452652319393166335548657788240571009302934659251785853618864481998564057851619859574453409368460510478326967371023361235196661952464578147587570853334100126774667698068753977733508334475272108481666742160325485588500548101598037647350455209204773103041711874230757647260781249161830264154984976996370272907666464673195047252952713170253111054899258644238653988612642067930170660270589174195529682951514039800969581611875700499788224870221441668822125514561010671750011066084321769208011208188002167069686232589868635125832870906661367750957663434187497081465568309227364119196538110956747598457666339974977299274531765410619779660690549255234645079104374954337764501521256058423400196142384196533817704898116280854473440067588676350928411122703718079597416345979561915735407243798005997698493109123127978847727856870334540903181737176163040777059466801059274765070866553631326092485932161777729197860876928430330012924432259937371426517124679270561337058442818734051384501144777147994195528402209776157637150946723453676312978442719738670520490866147349450793279179011152423009588288783817750955993629399610849021383257469907672273980411162816950121811941588823001368520720338747921284445880078646692048090097905909567244418654472358384600283265875447879122629994816194245234978795974937734310331496375678021772548551191496465999346167929020988936074440168124797804252851786903975772915849207682053097347966553958705661699129319643879312286489226676410822952088004243599736428535983140096455495282856318127680602848416956490532121262562355724924493810115474552130640815424406909935521024228290816655102302139207778221070148967020884196613066861537888451033593484643578174057499437527455691257425320317394589941820023843287602285060121625131487583191729585619717065516844825243261977655501292451305250124118973708792068153970589723219539810708534155800603053355215793758859447869224961778141999517404632871867781016383972370091437806029181128872608094825680638101759406112410946597008212023343447453578574957420726737865826796392492254597473900273268959793964462754436863349867017019775336606179746208208126513004579950494147180251264279976928790143416561240059791338419760224059346325942050352748493548737076390741755194650943314455044972066704624468924062103764415860736743365195940907068945652431130118703472381007845564872435638857103206094177113084541834666247526946898452546572640152572700005624456766488501204950181126552480059837460077386433942687294011250752427348772060867431512854046280331512865300040976619826484436280083152787054025553181753721509688159577704522818777306160228212358517755077308607532218750367741144852857908961652383179562262719135729945290638951195148054337812914318789200709683334233174371740914244185808944158294698929437859803873640600672056202379401495492780234359086479235127986860364316649243132297593253642046277379302999772623352525871811536006907730716332035392829514239006228031189637942011302821126760012230185167826786532095660557752951965238875163433557671383114296622877795945715478125951864361517462356521004254622303049213953586137618040145673963979925895032754051502437130860014946798599097234725253537883992234207030206378643193879324532794131596050785803494497034327153216388247279902597093445181601841765667475310717947028721700948000658505631337619489603143825610415460782362194421091907137860697947346672319958337764666661237727236293541765178859085320846284408850689471836147716670293436473322293339860814954698537305690411587404553476751537264620695872859328501628768419534024113053270538457963156657704815574006371128669810163259640480729792169220186740219871135738896875747528924391404139568698232844071057599901460644620730801617101378524692602316657649572819551140019375003911376712642336108112583346889574638937348285873328038326842405955073155298637532224695389399111453641203379909619545477363710950750006024481410840461533912595126112552182632814871684697029526879265649200819104687253336187431615573638195220499011505475187564361616583105960281418047715003176107275017827437809018491468347984815266229580488202869618324558361041978708944923428060335527012920349714859971204692511324410946190328613303592647915409958319482425347456186187706730448920368856288705229329364452619673551140683074992715377559897420577989965282382467820251230712541667404469174165739069053197743464532264654364744219715390954271982974840054356068386669222243886538399171971078810233594250000814113406680762813499018204132388261801100817469939543637097963517846081269750685154221792238832564819584105342784054075895922725422565818315795970765255791845454797401079346787199192147206135162688055754425314100980188623207641070501919292197609395516676209514206012110516447076397699691865943958144769281157111944749480135270267771712523338252093140684410848885229390564525762521265326465777405089452947423583052289626805135786063262409514531563793268494004094523015464497581291978916988515010337499518306862305213596870745515073287151069860435322118524409921177883593522653214390009188959791816554636974565764208686175487076981135796737592992698852946617155093907153552840052856128172376574244821101970448056604008403679464602920617065580881725930003146404741950593842990324154063826631129725662208295365629299914376609291513201703135543169349733031924030558111046269352106753623585638368591282812660872275999169805363362207054173120002740616824696951391631258860172450544090609650450317458588240204068481784081998520005970396380471141610110539052752044179907847432133574987593845590003955228824570774616934511806663388760751750161388728478491787265945857802953369204008632870502688975331861419665608770918939318692663142514456385323507434395648129670146313316082438002288804039842661478700209419752522320781562556128368609217059664310008606982329114502425782816046110914427780325309065644199909110070665582257774953005419247739979323823427098100197098303567895160025254313331775608891498410541955752782752554135374656033295131775339053744602526182892839616394135047816172585060998022616788610904872761899698590434111776049605291755404833833432036485558979150272194131526890439912051252980507009433582436198203142036946918609949355313734975212111510978385763969023397531842175973797940381688603041178066936024913578470931245139897281432783884445483357080919622570847524174735750294371588065932916256154126711805276877241692701313971948127064963884895072531092006750739418557729187073111018842724672382572736041014481755397093657764145934134369663697828377027617454169002219623811238270491761505520255117966201644619522693254424445509477790390212141042870828958435653008698899341355858644456784661086787110076231073841131442371563884008589373623882741315534184270494856594182414111911311572458196091809281755817272036753387768377028342178105287936234410584623519300620967333531051558947632896957009627497834448809363094399923666217125567903748768732609596604620867760211687254728842943555161426522938437829058316614928640593740922915853912153052942085186641274612909265484245389662925984341440846067644300814950026590024420184265010596950929002065469797161135275794827204535369162744657166778622178763975415004024355599703632604389926736843165249492741863537037461482634815485262378102575897713182115558295603184895704197432948438207833960243709312278870678580407274760455274487776268613965548685364373349300032382522135915237491862008162699575829663696864177355012182502231673110866966305100456414277557751475085012222287610482240483495552220206310257270287258908101786323630926038186764267514944780580107287812423047430758428672354761409838904711998632293880387054792727328750156138844118478260497882946135797130633276352699282305615837791169816438758993040052530657921818190143407384203494244643272340391733122486232282657459756648997583914083314374597564249958347988456244351997651148114154585097345800869586709024183360609895832324956908281118547171650685101624758182096329773675967360048059196862655749101909061534973190575483464567713931824399031940420023500229357143347416193985522387439638138607307486765121323646341987113987057451249620397194018713488878858037124943146989752994307351335724882583691787932618217867168306585792038360155387408937894000529992586661453300888940858158182679259778739306270015389999220851405577766483407625696379676282348270379009814736555597128254937195522064228657799618953098665442644504009452477516001083509421520548165802787924830910809932053552285853450428531571111984352808489510434208508149272236728613512651515594499436309508842877609360486202904503538790839231826397420916720779154186102497052176883624123500419087380621451021776341075689665871074633926175760056589876313815935588240094660124549556483247258703180945646459362731825419067237096749015910486792347708079335556794934353332306914439800403084142841554887452503708959517600391837850640392477400606905751199839294723069175868476147555169537411293579487582600359805419090001194909506714315885270016996581349796013393246559570051651713488531874470143790986066132018622211060606409090974181072588650670123018827900749108300024077917826254704597025872032800366756766514258427422083651488009665265028197257871875013908204588463738588946193014214696255837501546476467794115042008616926391062958681925414941445216358974482592755976983784201390967983532679749887322332264068919712329521804532724645963482420520885876877473194915075375530777132990101845781270572546964744755322712522409774003195934904516576237702711287984687025372899565714043074856893033038459250109803107156740610348983884255742329432534709427436309723146034494153040077930298108211579759779691197148622819892507437634982210452521753179932897950917738109380877603726938753313809119927400131224103856053690650028165787398229932664007858297978805708342975019128389499215170471340676076811209373570997247035997701843036647335048359503618064455026631149219533013427550992173847869365872624697966067063101539819494989592451847520069766203563164948313565765462470581659109399380143243632752658891740968202524181028214462754841287135712332839323362681644644467246491544253171238967981549057562116101779875216413533829278156328250674764998416496453387358206613322782527236817994178945848169512565485717999669176851742294353505502258789614624314101785585694664992890108768308023956647137571102793656319151854968702781942519823349312176711245966138600369061679402487401844597264257308599388991377882041291236610899344930643042144637387336422646889260511314872921099169767419983871502729804919619248165798231097451581208964703471190836573891521836411547714025594321099292118129766395192348478408457565235682702965464842308539128829697204165888397679617027418244959605792109526830242406432776256806657743739978055314371058256969891958473981452010152861067781259276044544755065355456497189957771926071368672760144901599883420319348726322648872083386699479169393900381781223570109576302338807084168299646812146698697258105936214813923292510378483564669479537630839874722258107953199789146496058143646381755448725009325328536193138447621816724121040946038051111975034994896740738842830613426970414605844468170782630197389357056915534885031146728083850403391943333300791699413465517238741961598001503260157469971924997478032368294158667154791404259096739352608703186703099780864693527846333079295021835006261985829977195415464808300254010552029721599002440846545671393411871022941631135134723810900077640837762226506325937807243164960349092131896854006281064111096869564079856070097109600595868788290353348396280362964265672888904478339922778024290782007045008568927254373660364073591583206494937097829467178209231262028828355362601195912109142189116764000696304584988493582505229803522097874610966730643974149987502185285554022887295731953542017815682059489790367838838172758956007709322120818358342323109576399728387536230441206983651286410451396524894294013937584290793534622292844068758999896465434508064003938058249505562291200540436888797769893957949752406039948244300326881672900468363774669778574237303463063468490982408050576032287124640766266760302862249625345178889640554036532822154191317727040367058125141859545807812791478241100816269112437446515431621016997875863425816760639516112731750156892294724749041346947764189317967182595759061152216771623882716173853669040598935818693159167238009678839585989521207771952425248537280928758684123847091031800267618057668677928847258291307557255704830207209567013006383943925862360020834279784295528858053372394460623015118606765251147406257944341001059760570673967271960916898871028000535729958763009791494129582213388315622720677793814854579542193938026587545750068523079538936314132506075605149799258105635785935902474062752279889533455365426642604755216693064053354154564888636685349838200685065777284179938929758810068339600499258144088986226593485802948576968622611168674470677317256461986513507527821534390350641037370986357073306971229289658473404014028052248024768841993403294946280276302670868772656379052790124228440219649668837054039814513782675269931757368866660124725455891306201319823893691726228293815478341485619478818737984052910699758074710257120672583465076538899736958324418880261010331108308286779289999087273032294188120985167759522986503354620811129774342220076695546793537956725139436234153666836413700388871364087928900499186164941168222496573648466410449121214019870625930186764949838113016516218639537531873714904985869024889316042051801702038785607099212342217059962886962412323963712855809329602117650138038611347445853221365223681869052019515844905476896915210921118685192410748333893465185602520467565614232239241798845327641439959142452258279150837318885784328584320060519285357767677762936641873676647478505609295843965259196976251603486168722042646984877051460713855078676104102502159602426736874186063777056741201845181345506775528397473959374342000846055994140788079608828659254587943377246833579349349121105723693182565515851273155296085049126729135656824522308528427359486888806838205721456576694449381520123539062452720477774062741703560244466183889293355751804880087775549108595798793250304778546333357706312323670620861810794747082261386612059701526789814664754022375856869434481601134537986615502452958082088562388053139614858859063026498222298236923400250025149511663534586349911586849784221936581847854690225155176217522725882264636345437160034903247262946415660587400105490988806368013621812973713829369502484118469488178759023746905335800355885495113588766588096449575608962627672815021473846917922296857006528759788156014792593484569661259474572085489618522507841241200610813264609423586793825085247970560487577346670441806861551228660654912266627302412795169388965730750672628832537174871239831576521053327415758923670055503999568518748251140763952135537875677311825969025333507213012771812377566814352475197241088143555682091484286372879367390953032185440384695117908966232694570834125960111932932173434045734999029440668456245145192450925150704875991609679228951570548806768127945448646811411486284726007750759136301569837204725862625897187888438002590634055715746690487670616593505579193555286641987334807265999895041514887428916266053853089055711481397170671328863868068244744703027330038643156489639018729793643920934431491837922242591015015929985439139501302981321760480308699647586133684532263393262089037803281992101561940662822919840514690628221360931624919530690696075073907545978613760251605537659996650257307025988046087850900872541628184634319202398208622290786537052847238833824196581072294009288323492640230589145015345377421843373663122295210211505421091261121315818829933227828358268160630859364335478925665336937134255276933120600285951627786009431186687390727556547035392340698449603217891216061342156226712971555097422137073566193086999685025872504809505609130037810296226433845584347491451936180236833204873077327538867293970012153080160208570935634262668269865056287802489423096340497517406341660906638598845073202086216927481917693384016221253370401675468872765282534796018985981668961173721473911180742395619104335121267011870818102058905619017210975573756194882186539704319878152721707709451059738770270271343313927417883941544063216665257334684381788793224929080640104426044842768512531881728954951386618585387864538274169927572022778999081392524516354203934353292007510927641937387215699764004957693916852978453115134725525770582935411782050117272860654477920944178849105901626550509928899014577853907286514164636695237569583437481479475590196401809125107984367041615045187172035353516032799386912915037696529449774540136796295255623341470492178230393720507785881767256831179173083029913071801791274204942339865457732934290744792609876875791485268884712452849271353610916708300117210215256142811313027337981641959379642579449903954454936689719191719697160934091316642859124066431015523567718456057898240388431603845238276822989235634672056733325557490116343223994369354057417931755227139971008265905600019316305149118367224983901506192348389013335185873592185262674479267888793913398177735032959041601007176162517554169004546617267118106654526698449201987734227820700524184534909805763546317795120578315240510196499165150456936408884577615641827382076154793990191894064886646470560493616543667106791086371868432279787054294659845760879693454581324173375162607246274651624921749806762370710258662934944713327806488010491104464428327098601088236392565322026186195379301025811478574886223324761007933549465032552596010140870529190361108403050438788158991279698024686229646507976576723215300982473109919173974374271523588991548647189979403744272258179388874964355419532135191904479028812737890696517095670509413133678266409589704844931979536734876619498110506983760224366086458454052004072848708225897122552469573244819754468901248819762027557918303624113629476808370729067359116777399300951303073027194506873650540819836123002588605401912744815402270337533617516549902486564837840671215888936979147457417093329772390004415535493734369533532926791321658919579122473443902550297840972416660006379705240765205438059910628240220928206702496751126029739517316615402248834220656121960060751137466188934987301834994145513500482998892336928420624114714124527373886901962367279273622808506942628576356620455493311390496613041461531743119953853766054317702340723795859206776356495970535651998030761299231069204272077012653449705751164193495089517345554245349731624187403970683010303964356427825539914671979486191454928379262369109723061273888148734463250484529612429577052164266635351056026529609297922035801722955965969916241109309005854096305365879278479074582596642074692724902097153591157459933886059100634777777334413224514929530241084921528249311751956911369987245478699872871604421015584716784175345410065553879494363664067317619380988814412177026531317639956248021042368970487304944713927018220970147721826359988336900730694291674534027901128591273635451926172955308581914362996702729225306947956559896437300551647123577050205761865652968506974106596444442427159154637700996987780433254231096080393818365662719798845825690827535055133766043248816795846292576591631524934508363528647571031016889300932500095709372534227302571662936326351067103376839273292444056615181838849116846078795506507320079918570481840997021723105495213802502263492278220286609264782552791842374307445216751280806531902247668277278712876319283543651868570929652512566986039031376412279787397021248524081227073209498231880441753425521084570617319835322985457819498366946649215382487961686905954555443396487788556498406366905602254248048346766767294142297990306212243253279535817781368734394366507453157654294204772700273693315476400502699984965347153532173730658924098278487751683660230805330254552509189373403614590541434669066729259658352092149313155799209724250526822830249657898703825187935821863111669400542512769683714101636738155952584432050184169730679771477839315075106393485144342597265006112234483217986398677136445189610665928265771312129611414153440828861552388640528802687806456803202688161015154576579161996677312461649920796582300707714950298217067744281407015624683531753110556634250034513016651767450402786053344986497644773435346656470545569501814946401147644547477789780398648481325562776574983834612370289850318024696201985625529823872432221131530616566407607984389513340881599583481598972868417784895620566432990302030071900427505855604859744227623460453945317749101306407743592042773376298871015881797513252483419540375539687740838145563634002731921122446810051955190622379373646977542164771591681891902864305967519538649291949259724063101747007216951134483864526194382935946959400897300600417822782155046718171371308729706158569497211152817320439820279323380443301838968510860371190756137954328919546136582675809320944040642245908646634577613332414275152279779395353449744213135441637894315846086983617364356876335060818177414633370454713458144103751031652262233902504988611031006470177200958075387925053293673984719501370317879098314851816290611818657152131570371749091853445767887795269229401619414389742999220532086741498371860001938335999781592168655000858834486490606062966547305132130353983916449347341793140038508530996680364895997168854540523476185240929126854918884346787153740238880960933515490838839483441813418001522291395414117773724664085739075914000836842109043384814184997469380803388823277553537114838009040571580882931838743146344165179742084516065731826716775829340206766105038321879860136909324227395811181495736848586868242532395657716224260043194762203488902762950221876166211290847224336557622512497700678653954556052207382988112294349712476370240786930598165092581649997705025591420098647364392536733517980117517775681388155454247941521576400272237105871895119888412201131276075596157939708007048195709535672605945739377911384942506687257853342525736636522645447780067355691481287710145115888828194611718450649256809182644168424294018837075736694793543121343135048118573912987029840314128002530435263663116893725125184254484078379950175837667161805202208832304555113444903293944881114091202725442371643191453500486830660053423311076351053126240497564195133605562867403140320746193072380884953282985659160151941435393971810323097611250218587709674878759474263998460434876101602641554586902273196802471532484362463757578758850256246285077225393314311713105771783619752911006934899539990524291648420891517902263171090016435866186733937847810575556289359423784287574001158361065715899027078042769202418694335820794976199483729069320424702023080227733461259807581075687202475916739338080679708465747163280882062320737851366004775716506345826766519554375817032003003605849192819050419136058928737492676440078441206881755978507333620213512387269972592325008604443448552642079767714660347654335466987847014089068787361490230608216871124624683671443694994100659359696680723896470551396000485193434909946950861328454602418925506189643143351531861814546094267925374623478668962535551205230324204242937192527938387088663068157290942030026853340129220689712350908040110733076058318349199882351613333574574698071536886113659810231520831532595921851141432609421457224127857781784169960647803688423142047841629548927622189671512351717670201034610503567131082189426413731195263208621344245058148416457767665012751033899231472079430450315602891028670592638266450692897494244364654842504170948593813970235402760860795926411544116697039905065903149431113124969748132290623344019848825031915152889615857041649598024687710263314556318270499954558320550029168646781749415878636117662781010556410655849071460218760977496042638124519860305989752995152985108328098281850580008355993787187565155603401855171504322847489780467209015403182076731129602020099243306529941749721802421020817782668906773553838084038995403319707912941481951390354994917647564162614339754743885633957269623247767548840834242536662211010004642822241739500336046402755295372235417262436752457377094445907883029508706075200078138395569229494772409534432597499025710850160955124102979096461682330459779061121890952962845285276845468876891099001793949401017892834094226126966595832005180649399696133551864550738618190239227424338002733953878739585254172513039982005058494340553125997951834990109495885239299335588854684077599928891706142697787539558241553902573164179569737775863020447057869012600281029161467336069541462978190422335402195837899888984339835585702177319016029303381800693629406397146134624885565530765267230581187276099044276433641741228229334451872252550709065933859157747013773347688839653383521051149999956109045639669798667749224853596086885912006184101685054273047271395807718312843461603310645164037628461269357413602052867602480104771606471142369071872520332179675314056799293376696023883245429747682605712161375693502493330934190945404740275982426300931214762730701365097075422957266487418589130294232933326172667585288600080017630594846906051843572857794119744443639011003576018182132729294518140076264922936000843109653152536102875539991676880161040645427634285257770324508581399469863858214063358166626784882226754944468356241985325160298488620958753609733111469590047394603769278765867287661003278838079066134345211147958070961301618539033371453367614475444712475396192601040734873946196118016351381536149857648263951543763922923061213246678873119974024614275656401029928077134822432250731354286561331837020052562919239507979653637760343978518272106768213962044085428547660384834662613866251606707752204295990484786991402781144416850359762741979166954754057235364890993761428897422583939230971247774627591028930181163535311177443700043342988154834438388631541288909951139595045109942462737955570312373780781817997488427795427290287782428949436875471936247746353679709659580970880582130632040520915767444473838724986905539584738695585724306376792892388391815616803531930757654644839419404473145216492533911098878706300772150117011025149283341857682706596648262700143384463850161030294071875847746715148273362693098061302310121658198785058587246415297279516210825494233989526360412196042566230362453611263098185227542291129460064661837493063816457444159732052270142738849963285238036081922594900650789904808609576836591476139603384138191257426947580719386998443012504099739695147416197351578829212854482888110340566807695463759822922490623532920498962019964317877908560589355705369863263902861235831784456952496239161229201834109731939652418055083219929235599110527889627410361308065957242248343672301039656658282434253130314217812261557824103181899561235367768467528196118618484071978266465396137378086144000197157033394486862071148864108258008031746014547651977157084904091400230160422995233012351488397803168035652049347124823453997275862581896339685660107072548047452779782059313956702064871339081253603193566492695935786153122609506614525598648249262326575673232650897523881890913385156407647187572523492120742948203284721118959068324631079717328849723801721706722216088192021732723362494463452541134330912225812379207118833568276033724399198223663657709246963744665983149678677945417366860375666490457414255876309082288046650814942406324848002622383671548877321674048500400677661889317104015160503720238818122888263866387277246303367646762284905754632825872874294672936392501479981916088944091264280192442489123960647958991118367538786627092288220827246609440830501751621561355518572176217855795832502055352346439006353889427410265905843629690009287881893442377576259399119889987859220705707405852178388875481741542948596102962768541794068986423184968648970105533030505223560929596974220447455158801808557157505344180293295118999025593055032450370515555430107783565893418667760453293194371652686000539529779541830132147176402355631584402593030739288756982480272089158001383177062919369312710541083742715247009569615602724798825492047692723850720859772063007928083548202506625611333771586108056014706170434860381857985667392680520780705738018476947752839974452729857045236353872824612828804313321087173504450478031564415692290660592828025456390862650584714889201946182005068769826908936882835189796344182188768353206688481027305585363497662529976291744116346751202572213699949916588997212131926933486023609301033072695081539089565781649139422264556369338267988039567176472261190401917255772640821812225113333260721226119260074769009383337212177982817156281711989429864627041533477365260487941993066972164996872833437001636422587703696312215428549127803013603102074509286655899529726918661946159543120162268151400235072416244302095458698215011726029351038431142686494768028469451586080192070130883610934139231567910426020719995271540366132960239563716750383568702871834974410667214072965702555618507597930968252941275092861667070100031109878776285116731693281263557538869889846983251422065555197862669272189625269718938660511896024853240414899642667977618274841126727104940673586750628237219458364854723831874121720498861096477579349133827881901141972432075625289116244243641550098104055292456436548447581771271546833323747271494066681928971064544061904525951531207715604998032308737650682634280635755188145186080989380481643104065452834718135665745173448642956183966588924968724132582742228327280232027353780389425001603442638024988183989830152092573754888967927284636402358677297087883558761744199010005667825457630728829520174765149383662957081323852169926200635728939381819654651416579452670124737486472511516162077311469966858324131285252885159119053006059546104824026070681772394912418369884707959598805259209045088922847553676044445448809394700422512745923191062597978006832592595084968744438955244238128961229972321413417783783004901433149621271095618626936987877765062993342912626039917772860691362027942478025539028747247823099258460045332456560912105991231666685589180934982562576152368947077965937501503099266734123157125790845473330980072700184799776825564786614122667577433933759405031005915294096661431392951620491123416224291546256753289431026634823564235624271450807192729239121936492153927448897385998893357019203087026402750698513091116844886220831880973076374092964731169320929676575170419525335864391652777454389031724745750161403635153764197760740047249269001997493110712075683052995692308581085722020255870671392440485462657449107057323355201120152490760863023758597435869938600235176368643647630200499870719872238008160051630399520696675583887110741346283972113805730060704401251691641797897621667136323464521398707796866998312643778847595420046162242437754310391793939605139658415616016817546055909730424450307011854500340460182281644691444157272447795401254286642731019622795055256051984487190483006687188696617171366608156012989441876057078191878136043739891939735043490535583885116338174094823533118636621323451509820183671036085950895974976810034137454334766573481712758930543088590280277558549043133859291031989368681752486820584026216108563044843080761770180400787856272173047905001346211342891546492061834309974375811336504333364809208364193676406798216277355258776234303358704661337083567437159476422164374328495260327893151428248648494843500398926700755138177406528963548604038751110543307074158960084717939500728835617556623665384822479023926028849078510028618017873382824153273649088412161403495510852348240691218187694061635536053113344842259620628851324339242203728170187336179995689448709480470044602371579462706642950921852489455800632260941366232708183242731410120517356446172617266294732823687910299415763207946007230252085653217429944380852027965130739577821731401498237949212688137551574932029036220297831501560696801673078524498289833273041777778719810592782615650070143063099572766661717216051094250138833190563609853986634450148853709557513537131902672756895495645441023348493739705957152663563411943703058025606474962202793184130637683985288801741072296787544413452410410493668948043198423760889774235106975902176845859565983245180700425589951313432353203721365353709152554361944267252918684724148935501688233695776542098947275644840995397545232671487351901990912672222229248796051072070468360376115491920791518397006784025279914322654357085271224545767406907099256589758636385208533310054244248900595727507035649991866225913654976433440783201903705734735686343281481506726390630978763106516336419512599379877418930911868099232666206235780230910548933484383509064264160084424545400094402490468179638466842056311586715043264154369197210984560332768662122359351589303963623492336266218612905147791968180890221844926015282057578388939632764610449511724102139593905240844410952567496736848090162112662109898627800956794986343196465103197581961680126436098620891566152255627390129512159043627448135409643043895906506786442472152709207618198677029351345566483564033281800869535674765860383979076165539816864571903343401647136069498033631607089591257529950199515119640630554646650214654930649907309462317848147926886924844840081331572081502856649969193361008423022010999943161251576462280436615353696444830799093112771214503370311412268257050234624077314614066882723868683554466095137317229116859574572652686066868133567610001827711342045117100136982510040297057160250380104704526992269444109134499240535200827582370372113977613591938357881468866478521823797401381515132099338771737214023257033474363553937802988189198247544770335455981619598284999065656454144998128479900912149299358484456212418388311342275624454720153291500889815180929407362257772729443688087149236001076975344809021793138576212211248407025095528603225529424297845151698514258759836816774566931460363683733301339030771853826378323074688537431735487278453528761759018735730038671656369066097398411863839707295816951471486226202392992567985280825944294294915378011561564979429214160840819725564581528809039305608252353474248142752306386520244926256324679260313882294692093898281239998704348048619647993377897374115201367305894326133181755001278853026753297020468781071289320362247127896475845739956475199624915788891248749736655392028168665722070414974648168714925627390089499607084461822012252357229621954850273301298256388133072860638634810372001569187414500122309270795798041599858473717815713749551788223291769488631537730678402441836099543828062808246097260084505731539052978582706306921807928242839104898408314286872773669361857133593808980715074680673277004533624055600990764803176863050159369941064361070273641364479706078461601163272921538551353282067607778212282925318047064060091193107401099911971967573505851598788519274851619066550300834062506680129914008291734444696152218883520838036944816514217746042720365711478624741874138551065048194915128864191605966272729430955654268451654100775417205031941436487849461545870243725614626328753376205362893702321726413929200059125266778628836817756682050395104080725390286549367893917632558736277955381490369798434353088273599545983664725724885259728036320552336291977859131619478640413030482678150767553951616845643192553738737674090683527153463771832867270679784802551288895187288267803531053557308955079016912142980348815698068411501524446127572229150391061679216658961728835951397079405914700878344297246093099987763494384025017104461062353588105360367370543033029354089503989370959016934642546226307334701143559230320273130606394032018464349298054423918332637325088899568401350181213039356824551474433201105808180211136013302765147395633533456702386749985634604850116634873777172700602581668154457928644221705928828404534924108181724029383441586781935978132074605670000700892683378176681621753079483117511873819610144171236915855052529692098677644396531969028009124388963584781509500777594748549374125654985605530909272514732554564414478160774453235835909577160763989536535874595497016311636403180497099654391514566857026269468319477376169163506267655812943214228802523292222519645027382177093704458541963683976571776797516178198920539352418823263599918125608328311289272994984672390941722609714144537574938685271300398450132020922960286772144958344329260677194079571333263516077473477057958010301063649584196823626512312494096043573344189199615450052133643727930381714029672638158360633786331818604725005700611426700048699867949527315102390227734278567391158435733921475976523653178084996310647245727774685236692720811063103586738118952874351565927796520825815191734991966705223153671010228148439009814695667759340652124923253342485581501471073738182517672024703488066930190204202649085843989440922471220423101656022775477373510926861199140885704422209852551463314035746453435748164285551851826519442082424943087681935394945394632906925337544816994563257379984652127957181075105900005007767888701551942579660961983154728691632582357772053241362499865455243863277423400886653476535977565302748757325136583967458865412699892061796851070813880640987895775163598425759101229361555131479686002994581846043865893868921507300260172599798594381217052448816622477930528349985363195902740289641682453839718368359609351637504468378689321672170933671283761962243050467050195202865310029009399639384183668051595881186016361379815654656613169783474864538343531755086105126346637622140544695366348358500844099459266416717487218123368967286166666628451857997691298596396997512559090440539505950461648037360177269330997357167528341032096185668346683469489206208567050281693044067105961020636691184398524967999733805264328178266854083872608710181982254816876484443764163190746152365620679168109796539716892495513921594220467372945313904074586251070572044955903201656437140968692151339697059576439267835764839089441664718550845409955242323685526423121962240802310048640846965545314460178877212428552228335156290106446863506249188730934773680302330488638768272712613736742343333454963619858229800709608009554983526928267743171050650028430081459008535926466368101427926734333198056579452154891199309365346978827882995900443497880182406241409037282089026086851361095067580542639423665752780640365605159314284270769060466846587193733488475400970103747793022507407510927762659096229201997637608741578730796983554071739401654265504287162975272510557183159677549994006672551532453136313323329970436657729661154248624302595536602783279692974715257412743226822451068634441034958146065716040026220417479778851020249900678825023950812547400268753375424430289629828478453949559651001885354312412856282035779937628221628479135789857003568809841007945453638183314489779851896887112894085538962266022233779846847843144787351481739519600291429681788420104198228908999452986575787863990071197781539072162166443636844466995135705955089437218913103822951030503536152002716574193479765452507034351682221519324412417709352716073002911140080802804073365380786685414531957581325014302270858937683652841076992657855421687742893464474759899567144689059544872606145289634536815022776886346803455694901166721988953890353241597044192682339045408129009947054868410681442801450041805939242577532542465417773783329662363529506994370856182640419700570431790644241513899083717419458500988392574912557763954933970232601187679846451872349061888127622494931800918228907976491240586240708666400019513770789773704089409826488063799074252809518415621272103682351834541377890981276143478096149922507147605516995993462286358606996920056976700590548418045678598903109683058966515595762574645825382319110211703520708470220908780886417620539872131987823282833841129433751868395886073591794328027194537770321244758818969968389895349427020103001731694253214696299066176458276960077538562621184421214475501049661343127409190343949934537756332929514166378842129749460629442255000978934223915406334718497835827692555625994993925875288488928801880038829100152045570216741902939269650147997144283468578196702069606412953938728061805280582152463857003944847195089618361639302633883695845424951372694839533470170750508436318070370987629641099535874434782036553799159744217664336595010013007943469913986087708008875367695571928216847142017542022394044492435147180640139884130173628919163571946698312703328683173740618147903382628795292489797822939260305481126228864171744120826359433400235768168722933289910293587531921729095053625574877291188341890439610910779214879205252981903505667491375922600406807081600609300684825081374668719985688659560496276517282421234086534170888193958111379254250199082882789047559201369036323333593076131384985221013095145473506321496575947879856463344576464764151062722307363900750396194361607389697569177871873898295808312777612436323137072536491672515828851413111857537074040271589978563858417035422046144274944815887532337817679781631376529345644999289701375743928235744297456916680803677538599436108691362674259829642336852013845378598967125387109515000048500345586806467900761195077968104574740312383807616856500482284418647201416549122344153059642882438820630781752960192924120809327046672578470476371291185394435011497949899957977414217049243568309856678671377235521147744526099859569384909940485680531259610011939046380907309091751388274001197135872824473148709979208312477018068496393598464262381617470896048331192727557338534032277219801746218921248917406343772287557023266854814225208943567250440734997594721520552888751678352170716041358901877013993005948464079789800895502083858989809044317876237334523056879375717852805352978321567844824137131620585585931296676032287726547677174244746654780797513884008230893651771675833252796435535249143754663957933705702782337129471830754371402455429833686610368430758992250669719328027438325411996769053396278320296622603123011528026867204537063688080946043629341539159414242302524881791804363666344774955073338698799135344877928316946274877304043555942279761291334406361096039527096810786476885730517602427719072502330434670679866335295754036895061725872054682385416240539048211269768023423054125727059825926727487177926909948879450595832047381202097191305084776710254437042851941923291902532246644177651506958567376743380377891255279154102165745192245327262069649386836834359653239070044413138600096768728465043906628368380527308537527563476630162784393699386904543766963042624944319047086968175978219734518658900651878877819373052087430534328778454088213928383994127579684376550352796982368789387505884974658309378212642096677625249414421866394270711861240030761539447976684703973853892485948759515048539557889366875206564482907022858036797974532311183083005830401432067296755038490356450913949688535451801745338528669514917287488422297586823433125393414033253025667728314748878770558487618735498320055321978630497625624879573931628672906637944170175370630989382740130400426854835118797720175261034194289628878199467187484690637792126645310558482984315036325242558449621187259888198224492896656324530716840278310363637964240872893836841891127472908978189442452059912251067997021401831547227526375004476854304849087736368602406818090043119858955924122190148949272618247471198335676923135326007081064052010001614210934533562251388152832014107765951996565464574416554863221000168611073099180423883151772186142273788693517934768235655132260645797648078155968040877636365928046034746530721745109985430895334157337064803613420652205805570550453465535168459345946278552379782820330173650141185432079609438415744888964921783513536709573769164886936541215832687920833531140209960105940280366692846401158975919161293684195644234885062131645662585749041771410640480924866483587491510501917549467083709843721048729242504669343296982319580613247583560908822183752893315839488756254546243923524361580006279970101832079474133267805358176921017697638661765669750572723299673496004401168841275625621989562767991373258369981489534589473091367983409936389512977774832262697597396916457170510809811391990736937354066113214990228309193026963248300754936395239138233968540338106995539036779857468486684164872554600254726309946646435550532856348704711948479046091122140759168773519458086130601738729273658552488354719265797881611960942305684791918787654108341314488594312963989179488543766993828402385119220204369942055112722828681785817541303698701529873464020171661971188636916419935842439353087724954857163713740519647127549633586986018696326140634275057609534318519744336232510084224641199347344245617543429265048371736533668721721781525023666870949738487943777892544603666474552358573286589646991940746390058181943275444560421621962746064273470494424511249728982487437479039993359317211982806977996951318340820768956225063681977565864504165522185392637770570620870594896904841330394657720654023076749127410322882929953397241550522614819171518644707424133570787824763026741793008448600771407910714436365336940630391951326924288488850912392271953681323918735660651170911706749151629013677973262958429530172187611362092417657525038189020628169054469054648789437826844870159545095686231529614813808997203052806783583540389845066658556266180848156965546760795791536322930758148984523541965393671818921863618807505944179237713286648010065858329721881439560224925353283894761059356661201019202663137855748390016682128750271147103921640020224889846711268803627988611196813183020289380968197737032909312853988224916672052679864168592883328695275998879980091764896564438578405795335768196755899972686638185971386732073083799402614137985351472122392294175636553015265693656290826026728562862206559619428497984211102568101966510037287362348765104082623066898863171180542844428344530192543333083426903672327878780074270568941462522484974673268210805801484327777950966597943786280422855092403748484141108479623609278622181194328812282220314364417394980463888989283586879864860397858751204328773053323679616170700474494555304874518285913429764448854523649236180910245032480192547381825239310624534829827675405063517738474417595173365830829455015759861877040497532325000939322094922827463954196231148671250245190163772574100365499444384115699665777475094067352934797123436772317109037928619762834743797531934149973084934622014984074462299311079562882128871598248574333712937950978336741568962236362566946724637329225193644855518592844679612181045670779824166360150939332544334133481814642421056076729373984358677404340890620656504366729803965302219112934532095192729764998300195888489341984027870163038585667241963736083176366830954755780719097006406386458248999340181283027467445864893581100919689443024787641230078628586283849471975105775044360124877863820403215612532427281297505207289899541139108311152229821736810340295931830837897043056649305315256394675119638217124861908816625300851709175876998209362296220884958166250074553578679184559555661927687037128582200276904808757488521128249039726633230056023276543657129056331338807433404139450928367354149252688647571429569802076316804672475372564728591403572773698095196150084010487504184491178286106538507763148639768396231179358790093723132453493540108110542597547662942992730623851386695373124297251948660592536947962476022802468563561336825177310726715482337232225827135191553756319382013665112563130625885008338416635866851826899722207267876454379922101888108247832720138657128384054806980577705203073596382721918195105663166378287164011368659758606656789251618829815285683151863314552392050096050752463730859574465993093638736386878049540177082327409563046053147648867581190292102436063846128720529848643323304765791999161408255493713134535524699828140150310696447861309867326968334669161155897720500532512933285289508071524254156613680753406949021126662010239437801664753536521580928487839463867842191810123176362898590203111262553466469595854932954135892271051026190757974188703013321739048275356329144299229239363931737332379097868349488398372288308792121713783467315708060796440820590611266681089238652165957725800106326044053096381513414903320682356838196726631722588442112789591111955230938661306909004081349289258267688867920008978776457489541266966202594334494048515013002270267263369950272048714254810269891958975714674456750818344709958783470251855871627369290237476062469538872695426863737947609619323478940350470362333176834848167994272419974870568573036550991299024615961227809331346711606237232135732496401766335570034213178851436969862321470988214145147197151179067764299379934685058044935144942541559987076132018081750178359137361092159260978770627979072851493279986114010524715924048539431442315033829610448479271796802866732952852010795416611917399332863742887338509055916456186393121322173570388596893171031204928167810036757400414159088247618398054056262067031421946722991911875051160749629095369630131689084615581284821043246309904987851316729989581716247463696401929739682866351298280967997161277793969216877315031643843623934965861349410454583036805564361408012120289400904658230596224173087885870464790028395355235983259080862650206903316522424770424103764265960943265605602203990667922737273433353566241380706079504562561346710838656739445361136825357496411740411339899582016528020506761759747317763064147154074152291392404013309397842092846351228374834913993623366077056951622552336467712279185310161484800285725373416341883600747326959213067182317387449408225855636105449151723557339463388349846492585914832613842750028855395956672017083725854764050304237576778392228656105624291489440653824195763007181093638446967764539108644451138590586958917415431054979067244018741625655591692067097917721715729996526235303667839228474847133459022411763837241626392677507053423799581691326972086896632768308200670040351289661006804203315468619858617677402806371924072148323482998892459318843349027447517284666687918755504947023607773461692047693234849009943147222223953781070942713200443803392729956697424694580613787930010029105772425534289078607710604533133811661442041194576776010614441071398909817265922675917739734566471200308409940386122128494424581110326737768950738719811010225456128474384570242452298775554816616841052808859150815114425483086185038684581603759692481142320224995179341652097831323304307754522303844705814112133192717916320543174094257413576892128915520078284429321352814653554627447524893161409319313299228653546983867335919772521112102042363943132214567406620587354008144235189114967541848092263989200258540485234711407066006288265117327494015269593327308174574262785909291576264107334897044495269850016261380227323031383638995806685448290876064809959015881935467704766535953647778214031318962811337587766784299936517186624069384453663630971631655072570383304933449621275272089992912216959636363030100267810974930215319847222348238664631114162329100752098812957582646176536641928492283331206133588477418911245617558925161278261907199132578853146282136547713499707087922282615492132744552704472878950667218727655687825729849392495661124088256146318161558165329903686089188652834848566254825750598594832596199593375704097686068547005619612268848102374354347170262173584908234684029570683699577176989180677147284470873910996767794684969195041772632654194932600098147353019872590703289162584753302681315329915307623085395710023370718341715346837011852102856152404012361631408525407423641972484502074557476619446387081030715967368708513193155037904980924596232199547638149737012213827943939637797008979905627246686800902002196242074865729636973794895120527335104205973820840922657119433108369482068450105471757807076979151179721620285997098941390992954354160341264937753582877799303355547353011524379829405638269632052923112196873256193124937439105842381435646229541930132783888165001097878286541594989777477517672785425711740010879247262049990079886248638129231143419478050528424477021987260067405196804510192752504680659917245171966467196457550429730008628563969304658372509677675947498755408367163553519417085669974883224408773900331047086908339793421322561874154490605214520232588013834270051722423181000296011445741818804187005363187923373261622188217175010746329860797473206782464034631633942105581223109617347599392560099273563027218622158973860809438880585147266597749636888959731700774952233184359826866270294084150790197063245805059795326104021657083073094445189433950247616003973382449481708017682127840999721045191476277123029091592652295381064918405701455669027062949148290018298641091802584989136423274871238118260319859841182757573152719602452564963633607741822726052916061403252165741091366497141576459455666847497397383714681974022195176340745116749503132712857212809374340496085180175715924350255961679555211679250274832935974544867281084072605785983351776559704123690637934152345264897881898513258760457125732639620766638797986354230438037246097507845877156204607653252015751346043971900765330720083673951806852733649971268471061502665809561160361321712790339016569401738915317184237906314496304703293650314218085608050151806562259771659081940808663026619435832678443270267897666395379048757639129212973980375574134660725510660861742513451718640249788064521783455988564416500956027123081574379070873558494342015006677739077779703246738548671051434861682396688431354010774254981737651968252602229007852881489818019006173360042552075673571843059230401180020795126847425830755005340172072225478898687420826802799390828547788348770428630013554310454562625045120394767730503285434948618839018972086023964003783813122207371588640932614053924200322789802798930426990119583278631117258743669076754573159890753308944160148664601783857640614289119187048350221449662777225837647130224791291645861560473046347535331656074394064678637566970589141117474248438418415339444559857944340987954796150269621426787168252448416822879835937941207998388075480818677436758691082716649119161976733758672567429032888342148570656295316901819109464681645498039866472498327844500632319865181590184924666832547963177654450769628449756839216612043720964179949548572965729911037514935086592405448682028566269002052436924139339899900361475682656476455488089157978673606140966530577760592420539451943924033082880739787678022853741689462510073166331763511815983111989342450696573892178914607678588772081140329303754154445561570533863027730689271394613659359788711819616439199402660820099031935307634747571855402969839644616649133169434750796887069185543738730733908538946637085302856737922904002792817559260693641867717184827964904907092633179747419343670152730527801557414411443629484909762331482988117870248871095022075792093887809393048033611657825588424853599911676801848246282880594780380499433798815179120435943499229487381525958886328322481948111353053862551746128028123814067332710426043501499000326141081722305720903570770752008806747916445740360717531511909954594058531620194887432545104625729152159639289493340296994011161801364135505536497458823815952356967146593259452375915340262167636721333025409483989244259384949207548398793754068993308890626954227777355104856123594504608277950427521294259757615149930660994214051899694111466227934770210238173771886667685405196221542108774612117275857256259799158360128002645409641591799635927942067438998109819681185263149696061837215551929929590617760110758657557807363951453211524068678449398151819481860304820233156768582360355522182399860614129414435509640024753103580486458084679047746425600386791217900972433902699983424758092236346615368828441217466609665197990248527435475539026955470607830852715725907933640576030544016247381800636995779247250406730434006326582229101683605645083237009133953081135651583490362080875162054497744677683325617108048533062415733857104616419876422284261562512055652547240399815189419791458833280650474278810647682612372724042313248500355942787648217975344824482388281998509464838676355669536436439420663419889621845498901118128540745773633933336610155717818946901671265427302264695310427631167663140638664434202455243238037865544492602823820158262351631698026454258036654094395733076479484166416111139950341376203841734000693880345741237942164905271488112585347514033350462628723708015997859654471614549306740041081733102653939559966767629122001588765122542738882078763593394528750375555353438692549996418556150164243171987272871022693729470391626689842372586159591980866340779412621644974607336790323969945388143410414751658508608039231297857116590023438176776227699346008496920203063199421569951262538390209737557136145067527481572582885606214239045036369048448581392593643805601196131861775693681415514567995051182174027542641838232209226115294526877039452391750779753682530810801233817413074606153720183321822702443259649155330993117931788528250330494380512086279761609138665498139497579479148718646920728848232814907119812512444869396568435598030118672134309244557369044347067092477498340678631017765893850221749174121792999614306278917920566306708548253235022658613798352886852703473309232337803941769996529672319451146305194800581341650174091401346831613626951353379238804328606462696241213553544934834140648197740703165002770410644427998572334298728161691797089952497452768525564304210675702202650027763900533713456251127723983862372156752259399532151296631678761683763786527044370966801788413259491540228714035506656256857474170189288181698846273347439149232759856348429408495696313326241835679774398631523444553655152011092151523818547740814659012777468799451095017704008559712725221978793008588395062304332405061828425473373340602193281464749005875402833653575096832291384538826416091517518659166728607602585610170076659339930206686834128631389451669867762743087043821238318117091666976504903276309761584464604311222686600028443771581034191533255234635664452704013186270192668681442384288267853529703503997618035242500891379387363522011462885886135197632929086475284404433796958193183466979452234953945680189236894711708011702066576754744422344578020840089773575103603649734258130481630816714373671308567636634951238677814334060468871437933058733967474530805541186711919480826551453011629542182047411048444791166899781772068005215659280003500164396311464759261938392501989125189771842781961542238280429442900099249396285237358970120096478577229459929695330725287582163377443518381138197474053748661472386185479583649610350115375085445815605144690209511363290062542164480451020195941116329349352660850597178107590462493771292290316376298258134548201334949706740026158934607841560762014293988527412313924172759667153561131751033783030463912301114240090091863435671051126170680214881792600749532497264055431039889741244483370072598160537986794494694343211620495430931309757164697554301088710462757696964904256943978502049038819189181243056461110483233474790689806718744009327218295944104282465350800205022711176231849092585371892003726284023734350693408208501428096267512284353955049460708440278801821198144259313059681928251025003198906603336019366126926985848321870572027164913857298134411962270763295196680652697728601094323454813336535023226394992754034881132643484812355564322912249304459357933454188077736157911750748482753435568096170189066909426384786070135635976080581716160577826035360907150975135198791457094076598718976744938730508445529703391784111258267518704204979998718336869274600827910863644871872690897062812718559332264957829137379100027307719823111138305798570176302925051085530643027881155460140263461941695809872289330876269018769758316067066683584819422985602248517092890208136905628326483394300187795411738523994293439926204932673970111279121747738661142734101279132904677126290295508176589444553241128589365412046066840962023576426750110564403369108534035709305684956490682627898366630302186565458807477708853098715808700327937694245692318314120756577717838809248603742429692544878600688933866730504351466769160024189543634024732557280585555022544787387623411145827821218821286230737775953553679463499638968437234534411754693826838975682324383493573016098095162781860800060810068751177708580587004854973161804883525494341767911995713422536664015941915321076529566889060412861710601690364427817852959441361505063636152560144078783209180582017455892288518832308051838123089755888796284089505595410322732738757219418641537979950974458395854509848382548428232143077034611270556593705966780014820717469227080860744141522928638484793256152230425743513448985403241673820535229779045695620421577699395572138002228535338001429275259898298764510182641146353485115473056598157952080292817212536487351902654466224693070698775147978706180239587673819611109562386856184739707458743426983285769482435202745886815375507841196869714847501472526454541453228655336330784451860396997734659721559992646430026778881620821692733470077085919361792079918986825819606054123338573747746692971094608087645039875042213099411050393307983768184254259005773246049922503601681371942800035339088601846507308635229825655232951090343933566024572510471547294518168342260384937924431214194808098368387947498138740860090914094520520907547186224053880231340276479957711105268231270577603827692462904186373269143232449641713085441052891258208032387579714223819898998023702452465973298042425795755196220724679280426832343252659001578931870047718191265161947162465541528481498675160783079646312804719309638854420199665703654786304035074768377453466160276307919160226582543424523009063535434665633321354660284261992142026004643437092398378619274455156329834097748703751573729093484618388137453974442422144938171330622457567838205690529351102881242270156112475935150540413285883175464101982528867974537676903049988900896611233397494514649447389622795070890127264048269551406283857798288834020950268299618890824818423753738761960048663569968455554461086493822603131653797847754013741686812480673061056670705517825847575535326450351688435448627782481308107546921685855024716002475556140034564225759113232802829174044144351291418034823212210326473804022331142170960516820849521753103126536503871651345675464724508165856355884470528677656047663618027341164803459787958109398555484893561382542716215518601158688452328647452657053546784360768608034896081769558205663127867098745578924932957455682820625711562735276454706133275068557960038185725761449025877903479611585128989714442464602530115482706673427703164770884598633580576042074156380572390511884169126602196687808123719350666867544262429023333733086358874539541659803710784972485408905085492709997380756050056986013182756910487929301826764706467124512371518577148293230217293695535850542916763818651946217041477030167735963421464134834838213188305466843155923576663795616240920718825056978700438616857988036484286924339364511993842207971281961338409883599570325003902826924179761032775529111898677338258599038280441625030155700948604364599898581571336757886898409897151526366074883204114151494111752747103897031428620833400512401231612417511786836909028438024208474251001124604507944590484523714824566900455394598397465840382666805812204263415793312019771386059127748916988805749710785499854897118307834124894846715544689056302321101777292044806821489767257370126563686487168928236600465935335143090808884955596428358006334214752342404754360715693707002151555413085345388769567674465176068711685687209384485434370450600592186178430181246734477622933188531933058326747329051553464380216438236022559248863551988895037568472886106365093695637225491623505414846376545801642262908609833760786512058999606384901328477017512492923946153006498432719293981289537099634530754532433750565387029988005184174873602664152017898255423965968183947164639838086012295518088918342300969775221261158778496199329260042620506990492276288372029109897203238860030825330595230474493611030514159239095994558506631836784750756983166899828529047181137932733553963696809908507863916235319431638524973089858053430909033364323729773227164951044592454978598070144346306331589097397810479824082618393302200457442703676886705058794952178812609379031667795951651002864883831075473354954283201374532851024773343422479853366237749901753995356326769262721353664301036823195430141473704129206712742025149807784594852656033689083142156253471395535956300084569654025991135890386446867121955194734347760800008453304200537994512955552201762266782305815485860867389687097453680933927246717622890249547032896983343822686605331026037122703751533162101193220162094514092656303168164599465373326233824707961423990362545015123968791472047436581361007890172542688317152198428607261199048928544367739189925991929290596951560979481366932097733662329537456143505146323067875495062429115998267171907729448570475216486822029180404981418792653659681769822298154246736241779711496529535054028319881345251199932874417024196902306438827299247419918999046049430095464553425595229345087726527425035948089794508102071123925807328463068842235885075966586897873817299902444108396031952263766310009412304385778229968118792961652572755958376815917687361073787253141117925514322415217158423114607824901153471636206416315044073869338083730746476060603241364134476039406129116278909875301709205957188837119138089938373355138094448174641019500617278994983215876585621470967142939023499826050489768478943669236716316251442824549761516002207207859282502288552426271997128480238044513043425219449750840393120421392758385193151209767385735686421333473328836042213256048586428454102305128402818165622924828640863129108089635236477048826578215320089170262995674088949453858579945900749611048424396488997858485787915654116720616473750487480554945136826111997596998656218596482852489942225890975074296825290012256486115086401498117678739019840386577342714297800769428076294130531223049031567166285042542018985218331067117281988001394782646514066728366863127137754029337976968857755663905924360565589862225261048594304090342373941707036559606135006906153049633283688203946082711084307309186356278946731750879621240159615671602046000544798769930252244079009726553059558378232535272135896150291560456522001694370220821629691003529406998736412309419473174153424173711719196645575858336099697598158356863004013112491804258688019105577051759142034066782183903016842699918187131592918635868373920140430186421782348920557767180606578148855308759011475399130188139041756318632125931949661461940251078554683376958103352492950033618240513539638147471856533895543280830568961323230314971398221549161293281456157170709415724123126892744062071379150197158816193956239747522661609410640087348413382819220072279638169996633868294011028478308009444775365462229589846230723574157920442283931781265670193039597849215166588004984233273101197224133963765828005915766729528916768871618924582822712372476573924153127610598672374094899603204982543950870036880792542718321774297077488955403097374519458039452289163070119200038245757048043248209191096573780748728284638219373701206848495706024183201823822943440537874382465649863815833473886504572389329211770463407943457516053166172198989220897119916847375500397763013524720974379740413231904274908634811110503858652382734402881469630547410019581854282234281824777672030602857186593018481759735201165542256049972613960020741891318352883046639150096581955571338036258508430013223464312996950640608841774729098570335647943578743283781554387065076688467187330603462546240186871464484577594412908671855387051363833264328836239135536866920965592148652384612160233929353812328750680557169693033543505140384047901970006967275103646600687641587298737418003799311280877735005620726588115948761969909848795475825423504994009298116738241007462693903651199275135452325932588961584422347955782381782341404931337027186112794826559477577211228300397668606655123100152948292566875175794725452138995931647297610982003683104543500562588058362911775420458842506319648917262483343153346533413607230555955519174925638726560580035213678568012058024721184876404241776994498295880292210183083876921250732498386968978871905837822309840602615005872755983628484809650467954461423255636691494721201759082562998791267642720047602188587716538613691803106914035888522039975082704061988017335085615752951499552322215942124029041886179904022007508464845022631688036137333978336325084483502886637269704393738691555790514564173235143762748768040747395838048030961005714500860513173361145695417649351399090632988064195932375252634843277455550496861702157896836910245876107641716564421991724166296725716116956905284850259531515989975640120859622350544407953345480282529444372228058510742561749308179922962010902100857326736116142433929080910007019500931772438300697897295601885603197701157150659496230886397587001884381451263144652425572969688924169040671538661268014175054167827733724506336214330827937700655951652997387479791945365395250597328173251791558485727842868641614609842714615630445410102951976465507903703309894006554750739813124067297601310796095833762132681018025024292937525189642900981830038311382360756763088205698652559367613038763522684243270494623586748454773893707931024879628486855284092817515912622021043079917161077521391722359887908100671362683594653277918231846827185827490718461484048973549848021392913656532869621352127134203844202229424120451930007990920279135764522237147889561280186685081346211066302639818586290421759595804927658523524167773935347006686989593006986274636511543723060433037983242283944858694862876710818578712152844625728152118601869259230017276913947814726313945421587371149111940481478122399240839059683082548792645586034283352470427805817281497456350317119301973778516966249732087536433241146904799596179047500319769216802607210492133339351188743228597997798004370794861788989487719186921896933519950544854188504314922498171119104972900340831761989521015971678075509504845122205044626844174931755801697367879491915116048778832634716393007940727441651136398821070073647763733426086769848370942665166653423741254447506203039031781569007433184935039704144112950067499964507177669192435104735403112501271871812192004421085084415029635964709470672604316025496360150382107862424339873639430031708226473869198930972687626228893130524032704722669610737786639030596841726690118533074678637363238318723373217889587696266101459243480563259224199359977876396692432026007588233402571475972099967372001070139015847376603234556925559630927506675679023647727904766993855301194936026491397945193872189120194175839388857279235959263338078183047806795296207824690742520080980021708698518396853794301930679040722381546639983709162044038528595455584889795130739320370673376398730628972862520142921816731321966735576082815938624077966666407891593345931463263941065696075990672035116841258695788746067295877747650400296259309262233768887201419781980422429322745811265127028273168732883044949360012066445647698789952191561473201762699175920708274806364268956340269833271396253002213428925020126840705082797524522438114940857317601216886546879915907912114990427887664513738220401625535818083890831669524118519241269912917622802437538226442210835292234834398081580387324571163991942246635261793876123100780045653572678793849915097306886609583690913402977230716621068532894742665822288364301894980600233771931165730075311794182080943953741875384343934027971449276567838985753190156373940071026931732792933949873586980209837793639856014759349359765453061459339699589078479423468467804207849429260465360777378429968318364769538203042119048334956917960564280615766328544826159678550102856464194808616478445621908134414944557121804332209739710026289774679795124298839211087489748446370381743565261210181881555609261575315789775192598657178463775978663854566426028540288931323191102300781714571947046802098556105187703075128241576757993948310509075473665689706394281770762379776629542794403133253586570414505783249661223728520537647879665492474896261876556115791826492892893114024315006769448097534750857753771815208960776486238205883012571702858929139651114880830281588428104335005630901124938652602272978224028162558987912173713270793208663723688923786698077882999157728024995058594938575866152211848516318131051457018357684721050955060159541729601494069201986546393380385937855345303238219345248401864630512672590151025720641526545409489643461315989442055710266540338756178072998100074723924893911447763516642284750724676496285645986968684914844054493810536653172978375576883563692778022955549283100987833301925329365703356511221555581189472742204672847944966888614844198092311484685956464111865922783765844388142696768399441902072366583253244209134305192993524959348883609938203013272360772737994703878826757899803815933758272619371390981994115240336685689173486284411725909245549406190532809264908460437144067639499238814010982977845322096374083129403704811075815625201260219738754512387951754353781215002752533434575391581923481644089770756388373087332805297847303755280528430591822280343325301098130296572368434460314135062812581297144650708333553398458948934192675599792460376426758149752066783361862358667966550620569182380013540692861149987112085826921506314348412000207912168762852385048078137761211485721714394920361523915289595784507977211452494387235095370131800333614119372340492808293270152841934868486408604878743602577300406517231013944220427752332964319926477712388497939088847919949231743824442439891784808626729956014064238242286547392675768849178035685366118059936212977124713794258154097276281186100326365898188004737148856552193711306639309544598420075875015135846328662409092414684270156277539065975786009781994770076646154531208159829436914474260223337393716484976394395094389515423806659158459231392858504342699395285473580364895252755590582900610679307253569851705603157071598272456072643214578508580541909654481832458448866854301120824215775327609719105862416193854136322871525656984663779680406877779377644063893184774266516508004586525363846088182565962692289636265356677063165596781332475682646582752398798112254772197873094941903475862296385697226671343686389952305214803493885283065367958178055545723551265107437212092266674021572361722695391078850345027790297145227389680524450635746330883226947237521274879425097533507702161153088978939388158978678275811511710224573157871490974314324130155994605147073515185641323769144276047479432684025298081715281496508806786210448871938559430619584655920257533607713195158304301693780750465154446504359418096986481302477805962698017085547596187646285889552922816681113750222973946576323071508009737989090122293107490745029073213958698719484957690892704288790263783222441768614279115419340286960103289638616782714251539141966265420379886259122188143399576026287029566622531271707587988681087633483420809328082755695532684583178196707234882183021968069770130526278509186820197234822542995447236243758475182421397961847236295071826783942018663830325470296549442233903080551803850098622032089926364560406732075337025984334511615115898697524723332670095890373046065246336858577884688860805659616525648666998841526293192646965353827783228696554443793771100344862089641233286790013863405230095176304568929277784174925052912426784156584847726093132552401020603178138775529327427590661375677485393791038833207997954926472959491413053650999500988631650511339671519521244181116714219762377226020857615564609953157035817580550679745337330408317194203552217864107005439022192359062273222543596778939104581959570980331853681055054827613007640996227329664712118748683182436486636625532044496903483566996750089560082389721040505876336720499180362340498094694503045419168244959316749457941765537725502774333977136586168910603619401390621314469596280546962975495077527734702417078981932173899436944300851488217462007540970341110261207214152877978921141657137314698705044774649941965842787586721169167035059066635529154453521359497163368703810832276899337399405346658029929511519890634118147970018788345703032979421256761458599130740863184408196407352653823320689164135145674862573593907619804868775347672918915680270591435201064550558374956414832859887538890192978855242546069058551842113842500020868414004019899536804671334835486241486114822833934539841448971169622571034420470795755637579782301526691834445640461406402059602599354999136694642132509306345341413956456033792120497986413810320296835781713238220357808366194609670022452089589709494748841742299378173815601462055542104320059521490139242882307405855807284750452102438216562770696258748052200588378653938441494006933787695578293879384221156547850847544620740665997499975380578867434001906821510237231262251920541626753914909008527735335434478358517392857522366498946225178053463119021403744285001731480309705753095578681256611094401774253688154563838624232103882576673767977551716859858562410426137835179797245793666990943500186414484843853891127830338453683171586754216231649399100013084892490528880855826857627750252972653203132387069337310827541919482367080353578376389829771976196335410515484368952311804085768786162290671177883085207851841584251024282066633894917496155750782859454955209809861135992068425323949127761712734757900823027558608650271128719641581919576960904508156593754078783972811229685505927332141636457703067599208216949287225192963818480044121888516215561572589446286244077423123382424779368539769891615843614062729422988777481889643531894156909772849299030487918990720348027737504752665334390755302694502924695451824036877324644807381297733396123296314152676532151306247451422546744980745060316911755042847909136418494696731376120650242260549933903249718170251298689221321197694458162955562206328222939223650069977502076160726866604071102140523331077701986870096155168612057401340734582942507282517200513902783544887236172235109020243796518783322742576273870660408547811968572469112719631575873036208002058641219384961765854769905776929343653997383038937778995910755591745404793889848107183525148926697824000064321540076911337225536127556576599012912518613337992143104959784856844590189905579676277446261092281863383980404399921140101066676242017208548859384320559980171624996102955107581811846942702378580735120735435777587292098444861575845375760508293068639243468808221128498177577514196173478421974447158901119554081384083628845206170288083228225402136336959034243230833021996649774980842950865822143071649356196451744943290448537294120616980749428102618713643633934416912506018850478000588820440314353626997651397463898868154883936591597923290542957020881775365995031909229604003568246353113809543997296800235100822817926418424166545951719963341646097655451248520267394524835629165754609498293880518157538873261361186528097418560215728557917271681726839940034506337240318068255373694971454234994680499898823580998650036086920504049982573377588059364570114318147960157554717411307685819471243556880575523289387199934741662495856109980887985691320396686042358479586272559733223697236694967331817304336609898715229663000871508123490792922481378547212593396165594208845777376195116128914595526212663006306410972429360027919890970673425842108542511384869965151127947383631536640845949060593752837025772171542940437901102386219212552152925159581413432632271988776375155961386837180810922746473319506294354438002141181328284530734457121368939268634509492480485540071736654043396046729910769390192443305479171586520670783086505090383218293024557338455248439591762315076713958614119152312342888183660972040122287588830462576165986006933669303503245682087098527929855937319982586273938200304959159007607796476557912505145604342425797718993123076803947345338085071244602361016408149644217518585754751686686920363231805962209718459270544901087654085032993786268945161074256054990817414561791076312522718687834078969164694222633495666275080817883569858566330582703686931823410386009402467588569199327018409181836787098460911010677225379618895044479343652734651926053234855796532418018705769742479992575181493156135303719373069774977358268826923821134322920967478441055493521242402836755140083114133185500321342253662050642986600589703949969010505989289508430173830689118381048489960308956822938359520490154693416918209396452584830060884770647007536346684159498814459907587919438272480809131139027500437113391337847915705167705556015533445144594331625920609222173709886071740209439442350760337686434022036681905235448973061386930309730060889274668420465099913421236218575346798555163213447453503949783947513714714862589374750526034764512993251316250636270192248692011852888868475036171588072063297598927075024111080047772263814453233762048715850852793344545546575893353977491932937094950973605077558742359293083180133722242390409793798853931370385576503747839798747457990020344575097637123905374055745273197256830209796525792619298554355915464135011472352772204092550592212352100252009959184133623397373466999899418845823790699576649233567866903991018246741262561940553138845090159065285846595946520178314702764175516761593276341842200850671699664715894908629490925475338265686053162232263898227753860215867141814605055015544136391761978457738422503279114509556250719963329353628152825486280744073882667568756544722919459829064451049590296433183322760668315638177687358695221333863266104961814164643336449220584794241407298070940855279423572561450372752005209898586055361399069000630650438826844378987597380158265571925479756437527890609369912055604598791418814064523311698514996661378694194225971713463063194796746884341901431725524669328936227191528218879370440365186218639077444370524234516947184204961731741201023214573036696212154252766683381454990437250917750340224123572853321437388017273422093073954745265945197380167494729862838251694935462853849997710748701148305631130494840382100250174014755949925577469852413006225897543013360189728426895601903242424487385366230551250615131645804849788960538302004003484799623155082419899584079150404958200749356692649454106378954268249653227099128000234995278303270283831835902764038370195753787536647482633757967881085848700509852042986017633029408396106476208819279429875506918291835927167005700279492680685378272009511886283003499025430083798625298181261421245264444379221161988481759447213734948942403875058923372630353003332898288850710793519345013855747900433458901461980498544032694557994551667233460087296660185113476302910957795098944193297640830463500833217274637993307196955963345839304954695663660214956108549634465026081892565620948380144091312561756479388325132078322583499131225191911167540682805146401480361257374584366523503745964779435136985296012364221121369991469333850321046627147598900181457445095550113385666465405127056183161460602341901162830826007588091137080786853759640483735727494750881049233344177592949030013230066814666962863577516917946345754272480201757576190294530214973991316975880237779710037621202728146282017281791725038524463759017059863934536532391315428770668059257798114312478916019518476055191195508552570857541199734475719468317590106499025630703099729295819105301050965647027005990888010290845224828497918532875264306041638310539125429262772707318715200603805085498500009880377665856022624344713641760912496198309508586810316530881019596400194346314620603208055895851546942410311738478080285809772434908667588083192124836135333280756905173943142618970874380081078725868222955376851378031784045624594812606438526358104487057849502055745301266848669225991407117349857209117009710987616458915022973865347650860061511966268222304704628102799356121095168638210770477752132981400763608200937295260765913471984650573565590216317695862434409226901141854490179413579253555464708013091082607766670363128140019015683118767738030824618906200555834252887832944023100870064799901368026155693452761078331776829297810931808631401112224547927466241679064824264467522555941751980107977519580918947647919470455224581446539357134332444319342004345314940307339733909349896823217063477726078699979861843073158060180823149629180921928727190278421356338475537594941522117843139576994837747005742247038907987160660806796701984064616266179297227503703556249325253971385210244830849819004761677383011158879426741519464200319473319507293877583441276777844402952320144264968626902582693068453725475922685019646228814786421932809468765298939854758839018828946336664166645207056670626284044163094226651112653359913169747492737561929633872484952946878005153732161935570812416421268934887606759542759160776582968360060081109551686498797578608869779295200726684083646900419514817528629121570513022976381432395017539453005997630111603213351862173963782222976778464696296250913075310658012539053951213088206687735951326647167074062317636446316615888626584242902111247498669361112462945028599605553529690247957364315420908781700191824392602100621338632803138638493998425698411651487369207551281674345678746363536977179338667790134615435588633888313033231379797090766921400863200529692962790886254711192742530263771043864126869028842529375088913185421136510474822258759751304822662904764258922665547326903783688962029562023460534290692175713492031387926160050259856151679622269573268527403050287849821424556629136274644014703830508519794569140480801711839755174784953890366683436693509465270968092721257304816052566411479784372199755034516531154063460275687126756655771955122672232697726193576912317977371884062505449901085178061623288988986096231100623580633092698930091807900701386425922427156886227216759412218459201688745871908803799775709847834643840466279060152736217436101734153230598844842106642734047728817428179744929206158816667510080824961474561393013466886033732377111780036064442535025965274264500950619242367905998333884514773608036252579657308093353084585313772277235057792020779600837522152947420422411642615572455386994316441822127406123836084902277613426301144345703722320321301388391623864711583842265513010006960741100891147054487105632847255656492832879120247478626881356355706045863791008239306736243667541318230112990636268986860249578018806777493221205804454179304905524409317698895785038923840334287314944882956958301990590941349939015018456136192108904384608724593347473231288897448022567568465208760807926117233697628034853202264102237209358577655663542411928204237637102149271449346975903629832250155905636484783194923611312551520912639447881820202501419369843652029844303355605838187984932452337063540040241250152901652629905330375871834094494668266609222763272497684519534765873314629680354650271270406443481404115241852875724385457020110079839498244970363260087206915200368674777761852633606268501789523218922499896743042239415229325324620284966926072551302104610437040916466775065913200731591346771822695554901518353600491057720436155997069488047994580038270119806551636369803257370516221773405820571826939347047184079363746821127638205619105780461492323489589975166890572420316823689208412168816888655852810422347531831659271041647274159583288930332068223559603295912397378930520875411227968255277143054691427552939673394779425713906763803453976107333598782313491690685177120138573268176641749891343037739683749124109333204933586010617539293146008960587312341780034074056319725495206666053946497959203831446148213314714367545278641960227395762769763275787620984081875579295342924945562084379996021503119854901900632387934206563792832915804191968914545073995021160292389637542315748901374447228068776517840940063370635219729244940614680479321861776974864525848168476273043052918701087385303569345970577345314287186556309783927138413221255298102478379656067008968517704447159623729326421511585045280828016245587843878603595313970382145592009003118630421476697128796421240501329465288509773981400748125852638351901950700755787301705711211514822951139417830614755365293512171927566090360132758162127957382400898322420754902753872394139850377928003956628617432512087310028913446396262191048275298414032087467511447909548754425443252444280721056294195608406641428714295145286138689835275181713588071981228010451539091168634176081406761017245458946025589690736017314750028860440963885837555436836742116998320928199271922568895527727203876410009768740138916005381837869840582253024274224711998345636480703928926146542501789885860642977433555820323313603267226363452127438703550437658334910647558646253539977005541608432449480964745144580163719665607577556021621827324361798829736596861309486122926080684968343625720177884389493163545443902913216189126430433709463269347663815587808634113921582602142861688375129012787226386157824295934905880190624942168066605780655630520475107292769437060827540323845707510060768125351631667687384102102209394910806850123725852082778200283253464325537232123208516992086242577751603882747794470495428402773904132450342417676123007409065826160460387950896128373114221434888841193186831543574348226260955477955966314071361578636653856443370100030264536510754378678764840109317052572868352346966582416741959392656945668416979920115659011410053230592865159209853332700441113251774596211984156727297306560127770443538941321080204060427105631940169436655040869631698513485475378731865213036978550290680208216471851922073803939705307625875864760021431720165540782704153035681647399917106017440184952306437588702790025044231245195427147575264134221551987452581840826656948303504694664689992094675157656999725000057339819609896585359148573709906639226211743295034236800505643522264667665157906745080834464547770817993156408909618643464794858328041688930933901512447182536144864351978983157166339027096641835450076488511227037588777091179597551987386832891695994374036264536193863398635660319189798992246508519293081909718372675756500296745962775304546912682831058727085239930395449993412942526369656625954098172668211988366956516068570687388453644810426751777186174315116460707053152990535635999314835226009717336258089218863733830255775800914076877452769579256348104537650335394503679983045220407342068954708923485116695192703791116400485970980710260091136280181541630294798009654646701330638762105630076827834893099850333564451538049820353005288544126324264193190893871611140309107632202456451755851747190122694850408941513036030084871281130087534515715335052001521935629614975238882998222424457542834925446379364540693644557530958359153356686991456530998615204591810142253299528484076319779088604865520215351404375570616607072499329247925806225897826997233651911234125213714113496996970450316631860552567744271518218756662783599061355838526044742446642406620466375587620398101417462881303974203906701204118329211329021475359859039121980742977947001172364827576352204573047629911381023113569162426341997250501289071983396090904441930557435751311885100585018298024299707225689026901972631219792765264162859780167126819453664344413383081704779630808227444118495101328737301382521857035713040400822653436413196396441323390902583085641202284937669454988892570500934643823298951334120652662945827394473903551794786558627720126330221912439728336586364369268915738155656713573437976585319497751656436862081654396577280429912982141461608934503744214259421515738707478074291925869585465262933733387383342900625541696882913224017916137216497792892669725178969039601434043223818694696487929260642690644873936666865375496636679638185048389876000675669902887433725686402963579820860427502922859509927421793502622119053630082379090378130852232715548984193588829276423329754405098252139788255169019099958895181645076485273267109609448842497087946728798760222585522012762373746539468347450079791685041362054530958747338648414299168069981444068235377189487182693018178817089955647615025753770042323939176438876331633459257242651069329586090989578294151564538110706867524637149718091278188864872919748569369265167729016206155824490970748725310859123830105471124534419956369669422734780708483727669140741908517593641150170301364049255337731654960823192382420311735727999175225370258234553233929462976547495382688950758397082828640737816230358209140235249032888667015977934145978513972486909528509698441526925107750875311206482996637195174630429157607448234729875240657355200839183377533471536088337488020281350852408560537026083044679216675238836956231038691992709724714862716855234417351982126683436806836326621738932736181054958915739446656582659957198158608712467292452345929100302450343285922256447830419215537981908371771995323410569646547776409939322802450857738487564273556915907618476114177273021906637867770820542874531594683552270803765505133784288256330158646930812597765475757459908677698690893595776647276975114507626794843053128356646238185152173426672347759560581822878964477207284505122455247851772430230046628117216637385957741093473517013588357468839037984789005128859318511791205605345001552602070725701654942886714674836796400935885936050870517281769938128443677672463574109833233510285577034714548426319570872454627381384280657032805194572158086173425973811606682156891280439326167224250739992150045055870949038390796783673352992001211883715154400236755499015682423645099682772526587533164547087022614274901037326281558341748555200172146355874318580083200136383788075520530966150359187485715096474383598171519658957558022330750794327906983715282619781562583899856590987407098571102975276870390506232956143465797716192055767506769836833935041129949021342428089106790588626310024888844440595308344941822115012712322678774028186965665421559764111964631617664297841974232615115377637245239192148694608443288205031654013991352785652110226173395054773939310092895240745105260092293250471546569197259044653620784787758214377156309686879466817595969603337534916060492443859371044400629737817632430970305033329715231133890820283007103674255288718732042855551844983406212628237185067034803700527816059658925854450795555900377807170418831138894275269994017477221023550755537934105851899848929114054017216849167856396806852629011005861344491253188814861021701266964215024278501377746801101500554049912287612796450918520707996661874260406900361191694804446499727885296328952877370492619577183699547660662151676771862716542938319050999255480090087665944730960045921065261418854291156332636325394129139117338783298722829103200439228383360108306392900352746591809452238127823721490811442049418179628001585110573329412233821476300633498821567782856573282370713529536719198202975561667227915468507235213272415159574196887668015608640143989357610698406712454096104192441679680702884884731239842345897419786456578493650912432655600684589263227841168079884340028084031480008468717694220208932985086274195070850494484375359100724866815837762941903286879266592324119913628378757042518170377942032315499759520722954735931096755414624284628783915048454562801598804801812251715950578319467098406019693803494363764388952800796739402169763937870758156573694182388597352007605197374595120462908229923097447520451875717361923576327867270634941195854187279399134600823203840302456174083784820572608914379375176933743128456351781202285825486037663232391746094298037890966340944071853272867410855700906183926719267917797408696714422034229723533876340985065527928025891647047462276769822607451632519599312783722968646553488914982849975436892157756222585847044484085359987163012329806854064244733240178281088932933237138708617004560736090810660955671069173106933830931845619671731813334411925580602402059498795466382571251443473814507348004667842935797813985628571873906097559612690422470833615741243890057237860298529622753083280118440193693232604692994930000139730937221490292511390212648789010613789773839634695957441975480657129867738026849833550749869410869796191301209232600326171410661119174224717490511141886536831456403179815298136375980832627407506481560877142582328800382684965365775503960303605648587885041028410245388105234711448565704684447080570825248244034649657420540874945337599333806374568789100481649393335074004268259198616470116332886537461835682841411661400021990467837033688428846029410780043153700424851174614855993591492760120277972284436158907357266019998685915988207616262784816674782362484407115506092544466872369146460682560761688558086420078470942448391338761519898472991816654622830052213370934987470426688429418291105277923282310239995820924826774422187643774670664074098757614280212773158436939347598312672260460380408284825102331150556254147778264875618858057638815924740193022767569369450654785347730976583529218146769230249189896766779896779347441513891273229341745599358512994281526062750062314049958938163716375139868930642071253241734017542749861765797044565430496898528095832982313096731515066581732940576827906506116029378653442959383201186302855519542367962470990952764448876216903902992477118202277630642602108242211984820688518320690991447921662872344014667987379162475350110097039645477507529807821747129192201464209728381856850539097511703320394743485347165246697658188791655009355878795182533597054213209533622382093919391041052599079189204147249858305400234725679161333787866408184134759771676403870648048316619852984939326278960212044464780882497434919339341710547351258934737783434984251791145511796701011217855474422878330746981696675923414282619050484516101287558547913090388982910116807558858134919807754653239879216830825192092828877612177391058944274592491009216812952898461241817338320219051384342088757202082860064824951390248929227170749901244495226403392515572493928067264349257289359872168575874799091685605382006202110378619960146987499926840455699315520354328926652211688010047847974236147882864725329135199164734040525810663705116540378896413149465084937637350326011883122270268533368074935880383260880730048070584314787259128830851991198572830751070973382732788983293374063355125110784686342022184787755206188856509523921111977554999169411298933552941439930273125903558419952670012871363933541816928941861441550740541985200933999165681559965250966207470246081667979673652306216752771993279951727311347978090673325476815393380719861512302253461794471201310210964242407326891897238386558094160089992764100591933623297659585633428912354961960419620361320992405829183940602243568453344751019471546229917376110388837865043200481032560583417311747361752059269069964648014158257048434434987302463787860921008903274481200123930573132418811031060106384068168435681324815452374385021926519919358981267065069895375370423235782808676360722091926488324176877768856508681156194740804321071747229514428508858574867021876238582313238958612444964954285122401806150911775119058764682960455190736168706719219385105007294007065402993939422866731220272056845710398376026213900725538258782249409876746147869878192814383095599602227576464236771299845241694562238249750466203417713731908928537414986235809496055016164921099163044425673679642130419329981924508355539185593262298693232111198049099283056984992233390617888146111124774774921837373512185308259461529514616835877496889117665316084668521300450763402318393519011528693899466252207643278572741919710347093879097712834799866614341536853324135574123527095069758258705760844258922643200201386298086219871105612341333970312603537493808018350014586172573200180738948529405550385151677093951980869602376485459502433014997599694033096431830222314360398207692345239492558998124797287293277767709775963179114869002537931600966536880111014030237444223030043926344036600149492680765903189257773124677460197593001712725559379294112009776628652510419007734733116294018205028513817272504868643006172977992964550623594666752979167094320154125931312119774524239629727401734720488430864799922759890143998032818682870682590866839864930744473742557700886670178403844762725263276618046566445131322846410050137800851180451014427665699118377922932168980763520280423024940519111052003941588557086337181968083464203383135924344822679766911338694603173436674603033894943765609068808979080626082515975001246999977148649604288471518142852029143796649031832112958097321588824012822858656738845471884243650625038656998812604255378806133505855507408568268946012744438427191662934123620831474163514405853730165988504360515096959379852849036575883438296918501157513917964543670667888720751971532747125251214373444594082350938287582158659531485606022976347324817339156184673661636952796120042040340055651150823249504712806977869965068647584379562293865691860967411331906356069196452217601597442579690763832175412877696503025437437496897919001537258641236836613395557211740979879059823579344488439654810711725958610717534106368094183624343131140888784074587175818485538532988761657507800699293050591021907962695084364999123312737045909955350059841409017808196015378837069927249967289256357528181627088676727302617762928956663491230230164942097372364263549235810079781573672281479090740145546122738852270603361933538188030852877945973122097180635924454725314475219708342087523038675964647609460961388045677805785378468706905821396557846492783947196331141787268945675401752552248105417889984570538563891887324491730581744311978292741150673736773740407588667126334957435691190629585782465671502599392411313602821430017737122329980315286698908109901671966526982311888732054354728479646215405965783693475360569239285992877431079249969461589119467098021471331142137720707398792913022846759354587120337776929002021810640850534522976568864113969558943327187906064163235522288277430814050938498212527949560207209809149221352216239407319885390215153732263914135048529184888403528800053487719837875505479231434591781258433683800348888638165962936511736495131898919732013761944330009531055883206256009897720322700725602708318944289534972109298641039158047469814369521396623806574432132028950949174193709542213926090455400740409762846929254037130204688965941312341710207256558620248052747572735419466629518483452473611965680688960253750450908783313587294122994855892765750436120904607760250742143725600282630116122347173365165921560193421315930665678464927175842063206771981590855278102224751421616344586420405325121634418925359916991729883976325247297779857238572850307739030351134846485711352349755878580765459292253918969617060220147980174057301706363587035309316151524507819666594672476042662194108691501114185320608062519517282941332879007116604380983025106851330876417450667329789366365844606693123493627942769380007231698477383174405126248623328093609983575064172917529322009296281175568714633173157107930447597267068540312797127438682588858340219580451729224442228361255451499619249071291899992113087599960046156293586263123986456371813932611566405299557024105545563612477996985371498075075661155253547579398001195506264966276986193566382375032960577412890288250879126136176373230863514240540121560103556311726319088333515152225674479737177360224793266150128220574779679088273394906021626468320751577903662377079875923738435164195506716944575241427905390938400730787853894260399422782719110078277348352661725924096002497490121462675458894184549716302623763557819178610552821587792343550650643634643943990890363381616698357018675183838607762772244066564028683336777471672180564702688752340619737448152560058632257906845523666781618018679555607081073762147954203544485894589675647205767841797418721379763967181633985743291882011879397358593651195011044353937735181676987066745349694083460166649436950173092248485842253712710603863514835294662570015047999212871846469441566578082913395728429421046477135013720696360732712341424727668180361456205416269083702798989901987274824205741569209105964887068081995542279280560503211006346060396999226374060398157608539416008759980642027623326961793111257668320985343613537551433919885538061943008640315224966161657821495890552656626211871074761475011180252760203934613701365507258042604816254105560061976575741270035557859333167975670564110328119223686988569267541864246437035910428116156944724548101616900642431142900167856955717220457443795541459692381577912889073844008363860098853971789898545712972479081470302504535320233390201586060344838018304198253060251514079218173157593657833506826689106105617662804654286693411206962638168041110401127645658926177014054093415078964427402939539153291108977367858720607538420812172813733557062410784320865498054400153464048206370835518873447669555453035354063669420179615345910794277081919236815048786219573533207100832535830009063661948916940673381034623031731494377083281421130340443676555968611143207432803659169900639861724525873893254796309158850671469641331517433350929476462043224640940659134610219536873125807613362643475439667379475052186451039696416262171777995009332361841270154529978816684948027542944482645125678193784590082016197350710207689309539130799417244352160584665982799668860194695340091752608581635114723809662776141986945668492589523129457413228790094179976589449824854756202325791107263027344315385174529925233591662978524753395447474542176275756842244764561364244835370996041130879671148889731805460956953107135155141180122920024976224772018168210168195717982120782883624174516108336103514833581182014832676778444208441302854370809807682010722507379599266316241505133357615472044330585235090504109809853439236680926980493549344873910243921635402277802955098782007141068077076194476992139162775986007672991899498600810479757414434597206866398452426222250207547456416574368116940472636072231598100556732149212702723299559972718761598011273895138026271909547889064824284233955947856471565799665187342047955588136687987399309531982511884763713064485796161864718181593796943590670050540531461961597872326199406378638649539757888006993144391930171478617800179729270212505299923681245061255137814474488525005715213739025342031277554762711589498253355174591119467860559189474242014311797143089954197849731820085756573016701164189733219785373197907849423418523771268273522019504525204601508566758454883445092782254294044422099733076451482733449896329243498104937826677711270120555396707849521651265089048704095808551283121627524654825909102547724964999081668326326402153984092056738176276947950702970470803379023634117432056047082066021616694550819037062853907740237944178139069156866608805847244375400587095328392114088717440926567082501979994222936377518389980452710870149133458894886938956352599660740888496684243451684945167888832549854903831933276783710789748023711487602343491305976532384195718162101332497555177826388311525374558751184496091142249305895016429874426640447456732781382279116827004133932641112396050821351012613678730930348969389533917184783345191181157646051086610898541832642616656630439577745127153335916377625132682896271365064422850302739738753495657567503260871415834141925390903839197454523160320832143281427092292799963435096269678256108805942606248723388078506158319992083949458497780716142361038102645228248466367234526704048901260661485079422478202186059696134061921170831008583690600114206087699084155210775448887305522355731486567329941583191792185990703544381546381774639431004798779436256888984550399024812190920368888092818017685095596981873669379945957785946466035048691507176082871119579278308596723021346223400763670605862824996098032576296825243426733389144908527513048216630731237241161940780832149008090631933024604434236107010180095718371682164023195281238368657807288603602517583601436175035202094035418313791157367174747532400073297969560733285610628871430706792696080328879309721862024934933751829355785531594248530398039937275780578780218945098957228352417823763039147306351838600278688173445457085456574318387507286021527603755812088013764637176702959406566066884727504322552351033937856644207668344574389075092323039076734919207896219007777218490212315015870430613648234327232225731163446222744777845906985656675113494898006228408163794597834165937254220941910601026433498095088761980415301057675982551876818019506803871771484359968858589762211515291329542813607391751338059337606026601576820051934526354544569345487543690022390518423919739118570697302405457040445376950967140490702183169258078533411683427412006133014661776117281397878528361628241886832147385552228941295481507218899608949945351741637736760288394385488596283147556999465326180214839435785788988230644113508739107912058459667583842428799541048052309165281839245816399317141421695724290244801372422196243229290325263657638309309781464681425810270154383173615877444269511453293360503290853460785893291530871155857478578664184904886936929058018962654343270263987475341765985248713670780739584052377804970272115090408387626267882999359786621324447027721812188511900181688129006825477947222844237164493587933451070944687983545109325654155278633927795312725544613823367149928929341660008047119625588665780937265181729566911029732433806924857295950089566253385688521741180696304630040009855081724410756679031834241222297129612031695980223561226355589116573563726001342982902693850745095826591034379069493226540284461030082111634956020575542812308711411390077153214916599932716045056589121748305018903507196103508732164693397760931048652260647180774360502926045441242845192968691755390852671836985743425851327836145674716421784310326435887275206101336552908274074133717153302204038730658106311949069078868400066195483678788478401164765710533073845603832591831878661692171378251347118756581942165124923635696678035601392391389949154179363874211966390638917188924177572073758168086164266221370265751935689683866507664102938939042055890346301778546845302810230295012996613100098420900893988613263381220195005544810606048138013788943094004136588766479061637297903643992573770008585225142809263388335334671242548924066738342209562099151310431159235081728318231723976285008199685043879824147965029131820643038082629040514570871872442047766727604048654652246259008177744020886294592010473689255853639278712476957329121578362397504679665003467684004206429482866350301238589281734637226193325299292502676571187227226861666947283919915186224510134380250512216364207200964744867817327864234762363435540076781365759727120986679045538647982866981584459314509730939811232929919029199039557839243591976444266280161876300125832132154235136387961282719027238299657610701593269181828625828016409458998352218153431631890711168766330139656841191551571717826979868063145714010666088126745708790513428222112439198364469686191629993491404695689710198345264932232237995945442460691070576572601398913720179602647892860514780418916434806732612695723094969370424685940363311477334313294618848238991469886966506416538539118512131039002733900623211773815508122318712751127627026774149236486638297751413949727552643757966882910376558354616627043743423252094946251010795480961504901173380530821862561982323168320898928300845668795861890300421398658547966941445121235531223103114275115685520689445785520856699267972100957266275453652106947520339765852581550427783542129919263195587792898656754152079042149493955979633822824654727888935395959012136472936927577382316160519885256969028732201828939493775960657571793858890224078035653398181232564455230822501882168157321034464390167770727391934058863906410474262800540494515297456023781307701258276355923371565992975665321688893229633178284181332747807074382170170153303731592833021387033651611944717755362992448107616727823127012593876483342774196678602954219446840813081151970864487677873214981147540891276488426115053338657973612836172793594525591180772698365605104850836040052248269969459659084802268845895601436146473971214952755746818019469876696719082896165090228905787134395870139457632400273003354691878883493098945652604720255813779853128743020365971974456605024138615716474831099376596542925889301493896510372530356798262638090304325152766466038084373004642813418748848217681163269459112062307495052466556692330913189337318517944625345748913048868386617249422108735144682521368082984065912723252998114827570261172439700265769141531502834353024946831730642489036526496664378896891754530671289629329144690163750201524280285231690848738796272760519061122430257734488504738130816285364837161794266322270352586266857327372702152442521203197586112822025090908183546060190718713351250737745178493620520845761724166728106887285330600966227282257310102635851059015452265054761583513829420634822228362303172794950325398678611618940955968405302141632214915975088386400457883210812687295552801479344173920997726300532046386505027116885363201211876099029840699939449970641704181864929081879398845004574192478300342740887756995883580837671488019292330419472660634998724733301891120162472771752202016844166261830739927022494611566632143138392893752776915215583501656180879569920466380499833800979299822238661387761951883695676969310365388118770409903677639575583170252919382354702581171968673058986579084573431403751789582489419282993126688864967307266108405770193982961176607840117873505547930012741056854690997029906242015999723732535591485656242986412471142157083025485383798543178340843563567770903960190853810675963473886454903545949575059325550607611525736347401315648521752946268272025001737494728337571689348289568196002912070877750947494495185778398491276154335250204606459987818301123050694950714881611715232280343717934198921661496762642120711763689623832259091897665222576229959203985076084631972420260731687247068566431568057176568178499304988493337952270628062710782995389544347155339591059626582398127536534631790927724503814837786777339705359793278521159410942875827405677324378938399473130042033752555462132449993200308036442662889673191351608169916986033121445917715711892935693318673064885331708691714008564138765403940717429826749362752470010094519633021593272531285528278634106229199820985610048422142456575856256923208162433637815915073512676918424006615286915311182283308634334349517617738202018656808842140800686757660506534596787222333307073626918401062387115248834781893507178843964835009945946122782054806164169784973237690869076603449639125962568363493444006524785452706142048929975921010221836723339476372761900763073749467579064047446094823931082020182645181143133078634973875155295238118679013018535305313447142349484611313535663707635546667949547974960609093259797830467510130776880736869805115375391483003513389829826757348252501389746269932131574490519467284931004499312867490835995427136493960825008234524234257412909550324187278334539144140382933353709544355503078466787863780743922635093124454524421150328864433811350267026547247442716281968552973701658213148939349415944930082597648470455152735921443848869405337434428652868787849879897207784375577313903207691552634059071265723649563723754028997201437123087577314636488442804128712313527886822465022032122556587317394967153401718360375501070930457404459615121261298944361645112854341675705284928471360836369981719994955451868748729881077450318990109470851680727742909634317362623357349655569658814084259668076594785534117614480955857351675323524081456876000178656101002503097752304575064110928770402166072839300930105085963433120855984661448713099110203766870098887738808056777880661593893469088236579685549870635577326395706303016108313619174039476261316775908645547988613685880026185681848354809510030725394808292571654533869613453005585938703795177793234564099220142102901980871436962643997741072424379844027585300031245106929435221220352158997714803508853966239658070754859452176982708336685991062765001386122439466353852911998480996016344422788697312303614048877952075808801604707295070649281754379797255093279803851088433709945831026264876889315232834738556496134553660605149913829884828424833183102441349244605668829907192491814295901468229545849418121644262950296807309760377966257143880312736980164809923103730711420415263763309231051918557799209145911299251406138883631288961188122421146753528127149525069685804632836648495555433650811117387788724643900354554768268342773050748843400706356776273329690212382447559766040747083161706598022858915504282467890657346269053748901231844019503594791920999197267357092011335554876140535501291130502203252471468642998514052544410791160161458694597272034597290683170787912147393311041658336079850488200419915182423746792312078836407019624321007240863667075498861723519166703358231610418463256198218547789774201701914767205427761114827188920411807744129370557369557062979981580092690093593646414191089462989690962489931185870765591491700730020260856914906662694437422339591499245377674635808751850179457726325315407538183247999309862712684571004309916817545439056379841068358841146970431526933602770333448179556570209758431112253652484897743413224090952255977319773109649595379516492522571929296377097082071406776998353383902837040037528784070273569014499262238631197596021722062441271071540933811452258622114772465265390571864106412651508127006760004211130702512900529652630618993735782444537675611654793291504357310181207441730044391746638742888650984656125160035340548936204531708545040498864445157338961822960202742291316436551444295890830549502174828221969456894930969857107972116562395603901604806890530225909478622770104906435464656066489153637673667171804760960220168935897862077022789646091582583726109083949366150778931378255267240080302509101926793972854165871667926430441900613721019984426485400363875485167073137640713840547173228075339964217292245626468370459252776580869209323470486828839814254490237541822354933876228444854785532910422298298610546899269425260975057871885001037826997364616448132059368020110313675672819280205212172576316654891481245643307274247762377145780834588546718076013179691154648012227861217677166526256607438272201487413530106832601743831704054909905546592846522367713650211746660930521907663943550620801916183749966373829794397187860922110980632351024253204163990579309643733189057450781116682134366832837870326937814977090696674792623158574688320141702671422489318175668177196796442090461621867578901459552400753748404918760919806584421969635931958239265723126560849160840937952023052121252898544858945143978044717550455703502939571932600471914051756752607950140612498076574410463765471358375023907951274086908178083391956628663423758254612380088331158333512911070379928965519555795633201056936534129574626850971070865924035731123116138627230553724350607988898949841874877828741587494682259845303368900182591637844590500328357135311880093076694564502147031162710448883587341234766480289995143460807256856283644797516452098370958002489795909855256711346440984086920327394382853162833579980155555753305301952660460866135307977921598025116882478241776170304718177875188505556654799213749259964269724859151184256017713885167395655058967903398451613236808161629973702128212828056994160435258985725676038895082051293564349900740020319076525240522738646028919634254867216180876834619871755571536873600396560100031252692414328164085660105349338050759115609995612781506957608983407331506367381498838176679570413786515252702815269511554448413976076539263459408536341035090596151384487908881420629082007994956343727257538488728832821120294237447080463391966002904562852868624001473812224138249639891031731831810541791071207723984319233400610407314682890014741207300530645923965210921502630675554894557607874109382321667635461308460086695066157108891928956780481984045460383554518955728600562183381162007088448850353148124815031981558916925541794892627901781196708745260148987847398924932211301381060995119376589485310454354760118083992626485589308175248751803572640369999311040197488768888878052255109806307824197198092470683582319731724121539115482939364016598831340621224083394258647184629602630478741910610478418125069849960935349622178612149762428940192494978122901415643189244118258961923960960980826396845669429874561320425991703262950855357980141842641674560444620847692982059633188926153420128895381765400794561132254767071280021547349686703425121665101470312908770742229258075426861902019614473788376882744176394824328538595730351750381574290378018766802609079018783489840645964340616669909676812514837602783143313576405313180253868480283294485417860460524919460896552366680640953370478521442703589011866974515822515927372013204195665669684539709520498199991569881409059464646809650345263663148987779065463283543643293892994821506044965915874914209874172584003610743051105820554818273669172599690371022346177348021882780811078939407477557705027231072650112172941952513013429533791540597005505003168869683994362192525535195750350738000221642395584008199526590751117501784947988676040013604702548618782993807772276850585171271623015708396742278809008549728500890637749799487089771419953545306887714850923252279738670853601753604302859608061579178304353284523405408432735311710232474961936421418618844331384397585182644917232677510768313527404091778291506593757653875205012489153320509704742575666257021223803763624163206123438797805046998261076510114534188720441416424199400405978566554042359040871034378912035227158461199142353896538368479463745062896753289574887963730483557982832465836560998573261823435125257889935439131344033679411579566361200840897189076713820453679124711369448972552767413807771901236040297405114555624639907500469672036993333402578056582336059677900362994455159022275630531318300160907483286337990769691569070435899944628036260983327916423229251156741560314785605832597246611327010431941397869880272512862401769368369217579120122253996903909870654721046540990841718925478822970023989456006755075572992277644518837814549306237931643721009614523177227957089161910226020381801645291175890678699407381843356676854917824157253324323187519767255335786057090589489985092551163300395648501045383480636546607431493326661215880427036660324576120187381044316350064134723454423490548902164281391974480915161133785884130185524797339495610745042778486206025916796088012541418166357587398706240016439240883759327229862372092375674586861730295608462314843952986685951149896597213726814682624513362390524496965485203360281975694579487170018300688799983777673570692900610199597039331784148613019630835607232292288221013129380763848021475715050093913095171944016502898233981512018012141562385052237138248975714844573408243370174420297558428059919293704893206693203397143894265122937351065547040379657002011229570380765779861514222781991709785387279567697532705327667039612284782558486367794557324083216521033683156281963872244230305671414779757722626293454692898272670662702296207640017165058141346523268866506944393205831610977324937734465460095688789735973298173069386347322065689021633741515913820096469940839296944027535725571016171173586295441936035054792083754175747004010035663322854823695608769862676173414878384685558475967642872066746006743008619819434649230887135448849599244434551180798671514352817198061028767563773638620727480964155026017389032235690603179759684080822601362392918377542809845298005913626271749040071090858190499857751289699798719551374995593700276941365310785876361505386093657243365468953948104554022183431639377221075398380290429314101681695996211668354921898568999022428314465032586428741406545362040781481359383708337943677660945296128770358171995337852699412538543848993941721264972498081352127181461096795464937595182635292732693188723708730047604791345008782451978000538615989661227257396980132860085300378771117220984071890329272387408045288643242729280799922319158290859876051682302722222945290409907174536082254258216207353456182070115648321887662599969102121752181309458404078735059827507433344540471976505397427896334999696282404600324786432910868187273117340256589523842644222842403797292547347450405491321488369971016716739492786441869453971746606385126590457813114093469748125191009658172457972089773751373429248689138508474595512274671238227346578711328342480674851664993359204926275209375202768869459157757489156388285004565724028762682883335476769313129953934331788971293259264093021113231080579244147384473033532443762988072137710341645520839732486515559470116759407423322111812841857706955158162761148258530841592636853256425641034121208677064326974694759632173738402895398992832853557813145236416187188468950684345166856552720173367924570384096702269502924353085676719497394318001853172513653595532018702466437348646048523757141134660512403214999712308995659609649548021252069968343509995423521784051467890476568373827444041195782184873963712612749074743316606312678007096987439190881343888192846642198257775895012101686964873780613657292469487318244871200590836894613955168666564807203314482522948358641581241072181146981992309801581855768270331112090043360884785071062689867931051563741595124137623982691773369122626424362736561426376454399910505905811340549325466379408355549074617177976880949463274815703864135734161705646399341676260854936812522723598488354976119087809662194965490160886896412654906853574990997357384231975821911155459115092035878125883095318768297784555650011813804157228684381529008206724945372621832857915503162313742024332895838302521939903782181282399179450531081330654861439145549583081744207064111730689714756687864485861361573825552016590082600036009399585033198528346648904588129102229509847320700885081261864210327516063291396228408646337910441344380947086995242810668835882686097393760438147663512999340241041306393041698809045143220971973419780063828321126216124181266556451068241639674215335156258282168304514089644383604542180338946097956891394273992026363310609093360955084417076800672174244868205530955346886700117876335141403332194130989861309840320770507717255493177901074685487193321604656022766657028341493568756659505836719586080194251705640285401739168967715967849626652941414815177885742872216731013486613206093226033037208448219325047483471991969495450579972811252627997858397319402992877606559423250628292782982561101774123706592263168463916346837625287865933702452191640909495830366900055990240602572042326860262757454339494556317636566203783895198581918172390067887968430938750867846886985170682910306748430589343380350452410018594376161066513317623884902521999129256227790014638696594315945303267656818381266185431571259363372792361969538790484683151972459141513300101147348456510795206793471593833189158825378294592780432912583980771831147012066360710243136018598542351863556173945118770295570060007932736583905007140938788518819312547078257961781162323411089288739448653509940787530805456320923031751380783671744799922761861007860973270043299463808093243629945186640716252546745411822815406482230243801347340194636155820182540203351083898487946149278637422740772669130441626346333548846295812743616094452739943067931280811719170428275514583092289088005098982014679718642802380846322385461679862358439159699425595966020118622060252646823632298676705067307599274353661687477649841246549292120487350750512709531677550178025801822592457789721133334128632590080729514056879522032550447843575571096769201297671480766113793820888097924713652330127336523932110659013805425390554384337651001213129205558989666057673403278096738697102634821262610797200248595269388108708387648340258234688968271846724723305792695647858042488348426996105423944389360173415339212778729780890838033401834909532915024709712686417962107798690738207400223837459166626789205068462116004135059713079823944369148042496499653820118937740857316910347424208077083961043870514569593862897015784359767282445197370422324790745570633484122575164738758290784108943538684316089760858724462512615488747412889113200357947143106942052375717442068136348813430436915165089290009078233689038404338213374340971638676889053799538736404745877243784002434439856960246976229764589438672910693587906282361749304963837605803570614488840923383555586301356350205468378172477348777557180270079423146998346270704274272429154599759493648591280134965726653214572763363448916027956058722461851199730356995244220135071001453352045592768657053350022189024814340969573962359460381492409865530710014426523041051797566482339138435380030859671599586595575761280542169932413225393183350061071366497291578652917888961326301132937751469425829352405094519357006190385223672855821477601748355927695887375630181549911729720003546684515959368121412239334800964689812801445136626425533762593611746522495191314486085772212853767263808436960262904241658954547109917849614892255407992360333050472467203425710033959092954381226801896033336357730107283224916359677996503114390506784400910283131655025225345634720957019888713483585688018355019917949475961887179501867706896274354128096204531819614169656027936487200640611249971627717743193177548055221887534733464415968523229570646989165973260493320359053183533848038867068409232298683352989038282682171248406138682619191044256107082658805146953189697879945830892014221987307096761409383048991961744019954228221897261934269613475022616781217240995853998850957510281260158669650521414992285683700243323740276783648253454750848039627743874460667413573954740342836512542649579898107149916126638658180920675376051554576468469915959286490235809564290418590555032348637972769736243341632235715343156293326038251336311930784793185758599487798393189933805542078546564923445506341042672136387232282193758194419279038206431216393671624140708033458810266798418978524638133854241126461274694164906534580879828075349048165979130914715840566841028271733621252413465807608674344177258202881103842806935061700211799719535184932070547499671600967264181697243709217735683155503084379106197504985637242254865097957566621871087222875543254270159674389432830255482086272686148365419036446776096683635088944989386558390295283238637524101013095681171642201204943783979444563210954325822619347638936612044033498479841679803669994671676104453181534567624784022550953713551274363352924048688791446418999882018407773653583356343124768223473767175818031250072061025848544722878507636625082023603392633281599866772839123559408274542252697486910736086401528817811986426136662558440532743386070062850325415830143300683736362410045573814060706146306060748644024727233274261322305119132283429319075955431840197687480954889537701718107627695106536589352960289131298891623523646089040768371810975504242120865105837622694747729209239771032733209829607244469524075814257843534645181948833578339925669726431518089762088229517390372509506448655256828047329860902488481867971089532491696751639945271011857707118026432767826329067391598219183214798883616988101503839557327336643812793642499233111500633309902972034273010902564802737273287630612688156359836988409328274670565433158599282474437759901152310468019285319324507066558603396507790514457559991788922609144328550341085330123137344939073546353346028931847649297371193358666367362544877520162048665362021119335268974014240207662988970336779982644588758558210975607694346879145280586601371409513992186789677686369896653690141033156960165232286583590771791599940495510932606696644553352591153790725854022223939975726605712330350815052458408095682680106396066200457378298198715619390420068242016697490988119417321490089969044309631899223662846436336938904304247167771174343499310882756858276624219936473361898838577771028894099254259103997552088682126335818836362464674393555331835320793280260847214488898032329601065145582757438472166493434279402278578058359543519830959038340724262992909856817883297980085585529968467690794952549585802961557498334837187330639303647052458584202191966021594355530995926926223004713966550639943545724214057523529531568758584944915001020634039696278927998035864648216863791570965687013147178000088736169394577463432134726112980529266846563622413010635178998412420256845593275906481458347671783308367862393004514769749447120672426295954456985896594883091429295834610095115593465364497759680003585253123235988733509912053754045835159413997000732881610906825772730532473265833178533164854793569426003870183530524632273244946752712141621975370579138828901068606531195469503051706452653731029029975999748822912541610870956274109729270433543266573825846942648898889751482765722100811426126679869393151788054688648875921582271161297092404679339528918362261878339309639886358082767863027046071242411171556825694617978940234826790379139227824809621742176599767830136813322577544178050470978062897162054776350838420312835649135063018391488404007943119215881612025136764499307832192390318082559520861025308749049867346694122806675957295353269782878455589385900674379899288828866181878799734616943088285894400606196513249889313708511617990209909494459587009219219930714135866893150763642195470129639492117549912407215846047619916360845534539737664884409751952932033377246124127548876920454235075596584738924091850323932399323850146079939481315386298708028146263145427045049818555254609748519301098743268722492998422130919271114498932052275015169368138821498181965587529748960213779338242404420978818589526955621847219490437283147223062781406785812286519170766167733022423175699629492113672091907727986036592523027700381163693076908105746267850850213539331927415385014701013520960292318985609352156130506360584617263989150405202450247923120643207111348908168020146970535984546192524764764719619473469368683399499051978821607135177930316185167913446049055313144612104684112628875031814595356379732076189344063653608883587863163827570167921598436976749758071422325008999839409366547093402829276640777533684462949097458206427946171803514205135484390968826094691801429258441444662326747737925166262256551400317985315568042284556586141197442218489802082067240495198113953694711198828394400249085895548812092585306102839120649140318739721734756013141553847057949776635286940965992596214294827955434886552084774255188860470703671154952427965884654634220594020878218564977494901803597537525363248635033741427466376653766186091742430148713337967658036615516818814892126571507756897924623119492932423309682074508701621189295991031350773655807620387270857424608910435506669051755171726363697522770826223876000332286784994032767194163908073253108922163402968796412349040834103089765112956357112944361409594309998062227552827179498330849741649637385890319811505472093102797234406917384113454554204880761450178980960091164647930544249618073639709468358799862739429217852817701275500980963807038567764537145953251528466193260640255596529836957959036416511763453550092741124489048736150442338195128326346931904317908856712537452948594156458036838685446607487774798763397853343536194014008303807122065248464463766598310395306569499554366269004388090776798586152227997089580724791464420664625215378521090136830976807240984267793944743081543385108107902498969796136095244444786270834998223658210162588037641555247960064317954677608438100895080126817020235486972803781645032334532374020647659950548904435016807345172169650916656521632376906767891481320140813473061154992846059102610521114784778652940550553281319399355603690675172326295848247832256084045920750776620243104485958108062130555447270004173136024729884575600972752936619694127573396267726870852788307333519102155074173622519402197567915478865272715303793219601028866735131479742944265133621586943707903244625181361170391997088638572464611313967622049101071050470103464452554669137262613340618544263713647087227151925624942541652842354510916493244268213960674981533697323039918701552214703901361219567647485304157996971525068233350634643406438397735340579720087011604222227589723373662492063017432829663158980601038711276059671328874073538782489938140458391292418934617085132965486749701436888981093514741162971902915481378010123670301083808832195257353602142038868194511926210784743669910939749498097073817467846316522151902047601575965297940869610710657073602012925369751731224521667149717722736311995656118196616464417543554546102235374300971883427105396133293128200779746916646372666868813375215631281488315929238203522338262461607532550326228366949630277288061650086542552556937865752130786200299563611861562642752118623139351816596659618541037643269775484335642780819398652573714520893607561294186769653109282896205609130519921139586562187315245905947594533284537908556262036858811373418714100079516280573124861481212899374423391255000886356158268395686201966025207274713895970955289320478271229307344585088360410416694466748187255780192821116699312345520439384211375728810510655671461779072258648392866050582716396996660831832097943938494055907022119949368397388692424657790615999124073635012227211339928025758094676710683947617139606866917443252833464229320014581764146189264083953054466005348884270285509115566038035578517441245472021070339525680211250221733354129468532094946038743394575414812583552486349342721071424173302572158329485810926591812941607514511161947320774783861626057069038900435964154845276406171118979781416967289969374217338177305703508597493755879298723553657813745804666260158160541123769791636717992673085591501255089385483578016960678197335568100476892216471082919723347392085208357654675481898821219145445646162219563430135047899491465192958745554325804390911027993132592676985508519863700414381782644589097530938422133862242592494187403598456120414256088304401999683118213740789046835179555555543594521546270263988906371306412428973029362010054279267022975164885452366405900283598779320025357193488560497719648296035851295875725343683408958076259335870236061137234176870281349540913079375614736632409854810281477644974013897796478126640242744048686917668553446947128519773222351481463251931376350361918746871517388286869757231492235288544679997176549390852803460452041765846608995923136876113899920013507842560465426312726126574889528063770360263824190221513462323523406395475902673006037267947110277959128345347224548629717960500192246053018585257560006644580091733184068707541961645518858064266667901559426290894183689846597543467555192341200381029466609367806971458349122038978075274789701138474866995503383697446060496523485492173045757078399988359308304633388774692507855776506262578668793986499141360561570214544632125708915610280904174131754080334702611005018347867241046756514662562381967658012998766569397013324457887960498053845394470390033823215166061128717504842838727569182081553663472510659150892964085737391606840253547476821498623427935474036635712686918738042191056767208332123566624540148571625453769797939312373410674202647580238344905458751484677535503415111046024266202710182103416901480815339202217067551775800783029186357770448605058930797917018385064373941769808458446605381000037692304965074110647286222335039272224405185217911174564837295259695919387331523235116205701032186335470505606238668712838410734383746391388744938671654734505177016475504521207203866025238288558601036482122016768354857972719584880990655263794851643521749596261871437701198649277229028936044553107978125917020355578136988208630244896308583446245718218754094495572576589913282405281372020539324621570830962533396723929315664420101304643174144653759531940598762845055349095894674943322984138962844517296300728016277905767673206894632367424490471097898812508299562671455362425421779722220007398127577136355160425762260441763540613716804860969775687877300628582609687093708766127959402233906920803215642348361619912649368961683592342366086854866017594121247908015205915919775939981472322291889764989835771954044674093142296545976939470388072599724118792881922835932383277137232342296291679097975931921548797776935266379015015705002110673270683146441329285529493656940002706892495271777589726586653116764781161280505567181911641879605260527294147101729011099857585380900350886953395353698147242846240958855692027206495475652741802221253763113482879105809869035746795018054791956452887090469382119389975977320659688924314537110352758397447818132473740711328828720325062725976176034549310976600378380846272163118935811826421064222292766563449263905729205439863428490335114712296018356592928626113868327970192298265763462916322757231674363984519724148919979149901197237302421261877528934991467351899021103853537178003920846984349610880378843173420713835164184117264311911154730792624436030056702782779345019704915801540342987214328563525209734755029933865147343485805476706160918067723325729104053729439170509073365788560851797857333086783775748474443508778969071467837894966125039877661474799809386487761254004607761013981103816929120548525684436755815318565478528933736006871677841606256031944508130324172571110091379638789737065960106030489294249289908101752903209302561807027610516339082691374787413739724115855357964391721905873646836385354333835252160254043649019615121072237448725056295044656052350864380226273145517687134976525051853755615844902307149799607775696639328395594266641524515985143713913238929254984181821618096975118780250673340675572399031436484043737499300864257808027225668349416157368575259636817714372945471043338574410228342784250151896355850107937923604018166612292433170039403012212214383281739325636052816747360678768411910191760672180557416440508984191991282820083060834370375720928958818137569015548369935213467757689398122329279663901599440468305644792933998013058938507812832036864176521684258222338795226690839602510867175912080473422012679304432451636243476860887384214311406842022811678547775648223298976625868841527608760589737626139898718577322348392577001762764343022041538043495478083056671303270433766169285290573902791760193399984834844516121289500341101877347870324942117234107078477404819754878653449028645945861207304644152827372490374652223961941555049254683207758450023982477919897879409494329171144808315329252771874162711715546611080535715252514358324539164667293195829631835417934543102197859302672136940172332322948823661690504389525808311204680506323349093103934445542609608891806533393766798793589888160102213419603794949332384389288454860059617913037435406587885099732045358016879117147814697942261909052957997203003770303613068105421877113832832556532510863131650147922873513428938367354677112062295884033777759620672312926589993691129868231379771493437483325590831952009355185585991405562358161559106326809180135285564548592630093688136415449378556256280003205044701625259288211829026590906026457604756709218328101665788780176541328010156864770513554093561178116396669323599207786169554185661174529308504843867921287985735149221418256575536701223712143222043216670497197652208202247381126636979792755504247197576442000361600177503334976523507324482445898838139075502665481544126329673652823530571444342985377189343108245025679161620083095572273286635055679287533996151033500722618796257542057221335012526133349520952530720527814005601308350628563811788702534912781866328761867447170386587576048298580341273250408948737941352441344310924585901835296917715922938351836951234967691505289547164490304677963262611116192358378790487565613660867771191691768721694742583110580160766578988363561628500873681963435415153343036236429045953386640274362887926903828885399455710288640017204578039143725658455918137139097937278819800149879756219421035104019751049174741817445169672052054043092820452956244333624529496899056727213724184576656677081418786893348594223663794277838213987898742619773883180017217590906205641246646284725627874130774258495250370568529405420147967637671153046227154874967415493595725550850741053162997986621907215513484924425678131285500274702923995199151627973974854894709608178478857678276697956058212529573355339027059128785279085535736142231701015918660649167597653820280837755365942924553623188386012377785167763458657591713528212182074959007662185680544975429426638395020093402703423139738142763644351569524229923279940294141663829484443486168167249708648181815792214663036688870831953754551773442844913568575241215953060223076777747981592858647920631677215586893228909749880549961582128521138209536128712398741528292397920414653654730426222857285527043365556843376898547621589979462806600017653485682365804240520850314357012032780335582562829949577937033290068716736716457330925968878337116064548979416015766643753334956420001481678614002602922563668234037603216106859435753654268574952104336731906147117553663027819161144798142122426587900887265204090707348000504737996409735783262711179525867670321444788667352163343076343490855721718570893442954446533186752837937949099073775071634315823064687533120515585473276733943454586873697370734104106223178113935782455342087284430953724196590834567801685545450722301482368339972809672568049052187962259688541690378718818815707157530733453052012521481979118837857728519917653723090627253215579843179885126896615639712531152821474843605128758854215415415506033899994348018457484695399521904778037333948473194698285161411222770854888298978393409399852928140531556896115956915835234720993523709536247908710613187386507897108227704846387619338892709111358580573725290936157962272725687606114262340999065915626311543052073365027623173076843460892982628039309728492317773506569829844735643031622168917086943252195644268967714626094342691572339211362731860211000338400044337945764381803658969477694519609600677064002073349034850589776135500551579531578183081390502881762906542113282829265882137707755029890410188206280928001049584431050725325162839131415240997819538671153342298390838792580021502235583223016187395751104366421956942749806660785139774003608391410839211337228831183700699680145231830087090794550422973294500615456746776825652834156679921525586866062296057794989772202806184180027529692181269299871852708764011953884927891276763499178622994982707621073015757160581490818991932385103553061137846038718194668014162413306835649152788358701641288329556850202891591176605701280009840992569698285650709929123508007572608609894039442947032342169182725636848801301473711996813319402232091647585080706204982707948536484387708556382643319963796127336956784654358611675252960648225390947962807771193641014830103736924471969558375268398667691400322494750821998077881937420568231650311449387437170138177826163157297923506439231454155662410686875657961991641806686761262890052077617698992852808549999842238846514172402525206846579302324802923115980765116120136208050499968079843809571510515232994511432084878054012591053395546525324233168108585474844215758492672823067822700205588010152871605771243204327524576826513531636096078173366963492112648168459913974110578652196073162536341906123123090062814414250072915169976145749864955640534126658415190029503152537841468161696404979286377402471866136903389091238300801407891848271846778465556429339195137070833369770370287657232853810151508264157699304756789915225909729066523964031517458112707601056137629114807308195012527486287320015183607822598130521441454868843302549983893615709171546837433011318580843718622069566283960853711405879425869283536784086491100348049291170219122193995990885670925818627316684981858801644373353998327679596927782785644364775493801449113240056846148678653742607683722572574179360858358803659904868431277767972393084713288344940837968059036603473204321212393522303198617849107114162656752710161716931782460617012469534910917004023952557811577064082766561474469118585668551494127163957988234339797636948468627876168990847045908986367887535772973554045352063432442633336800519688863446954616281288161650584151656435211237861801952723233545982555975977200394360907761299057297301566036273314500204436718413674563437824788546752479392818112335543007233603169145940014096103046496841815436574224343748208584305641564748255717022641170443766025393434419013391265952129067674533950420363202210662446606775699658923984007742614916354214680325663537783053850062292096019302232622755923821154668887014843415699556286097675879020579635709607207138887023040285582263843273022886448569865771966140587486422027609072972585102678517823994144144105790606394597903388647447917506600124783087989684976761790719989902420341772898143634300411614517303457077133841952415485964644232146000430521958587667776778088050100116781708418968244719896114714672742299407944159935113219772885835870938595695752946423964192825579855350886582790130730301576751279993251172779550162033719852920191787756740977553488638838935713326483449764162576463123889320555253665543508988615250792437421193114969763650521209852738049618897622849723700437966155676020023613778667244570214274449295606295460116698303582232249807603484386624774825452373342322237993025936865329911203452921017635059703949824001381808256657451692593346763366861328727726482744686164872997497120437347394516469287852285724662708315384687050334370609987071343649489495758163757351834739895883870512233556699380807481577700397303988568629699169758656078704746298718761615502165112540564922768611215921846980097498278952058925796315638253393237761461578222840591766588908845054346408662103877204888587120085273788694113936202611387000494291007461903597719716021605100595340102216427696368912027448341239781876896861389730776903501277840466340559544829118421661675714087785621223206274193204239237215645913024380926281898601901865303382513864048740783061819247374316120385342760690726473516832725283128676086282059218607041938861822481682090679635308921972429241173012802443144355404390884223583806340891342019622804027196459029986923379160244743392940410622841104216070417391461859418967399678717940185833728477966563418048833911543807352457758529929712892604782506659551680358311814652644637376633776446949901928361633528274772637227324167228364910227173960976344080839580351230227525091502515159305524653139587000208057396892389919063241842511052660145860484179405421272101467708711768691407300658866009873634720349098033954039573252033375075515277213591440989153614981366958694169549800373488424855002117728382405450873938772976469968030771582761741448205936524262793712461289646400567466072761429418641753261785756100725130799132920284682655688096540335598517474805543693412388336614242162284055000040469216961336447351275812881110173160159266394660853205923361416397942942452154643237158640290916886562903322385887787963464073000064304856315987716596391326013845736709087421127500432723242116578549996250803232490220027822882484241736130159387002350860966252328827339795431519007335800491275954014839772947435736498530205759736514745121642423966695447159670612320933849353869027021482468670829193765091493235954646960453722383681293652677282224242751413094447031834622260268442867756022698641873669431872453095729432672159301811011245359506554057516683740107525414606116612991723660203026189629481950681402589399069574760209063131577934662229971303721051501194900037797220522634831304572669672240449473772688926142078226988520015945565989188992025725901297403490576795979753726285620084082205484116632282848952229830693933511028702635095823442916513755040020181133233078889433129044933864734866667146949188382482840382847078351545574101298015535047970956667733678879647297043871262693322419907748932859265513903726778254071563729063849728343233883663275850851525369349272739061770681036481533820151710046160738115308433392521138111958570205823062183704955826757220721959533436869781153017361000337434301174327587715338525258545594410690772974559083190200962666808327136608926846348606395575866518855087391546123757639466570949450388319632509952314414221569663216963961512788366460025571888975295524957581450971299704806664526557413406585183029457391657359126867910930218461112062256723008770397298685992652088316312316604444612442214127178615236756885490673641927754709010642864464847083938060744321895567563911126276907528831940938320810210196182274516381266352347498509817509502817366898348234266852482744550746675599091670474675462042599747855441470344079910179112656972986411619023091605219670247533653004696096532409991938669262627578977896911492177953971638451707989570589284017588808945492220291294948244075359768711226652161731167378043544380370954415297350767662343709740921372210732660360030187141286096165590696069599059787674665603732129362489438372434493541911325005477065853244441778829226462030225446187306485951142054716767598421601495389413599430957306178859333386610389122957204234636920247995363985693877835052911410769054459224019424830030749775927236102355328557812406878736056067916046113114720858455417431106995087571867603925060831128693034208159411941662777133579812468489216629505683761886363001778302695323282646239571432153309507825312354940268531343544206260640430221648974158073400074225816628783633840362594147913889210610179342544586352351827766599166223686367208875433031204521101280043923408831155679099733646787235225759641511792285493188882612362249945306302849502881626524167373251353275427601423127825548517941623304561219673041713820149438923003465412502774403405868201609670371839123640110207522560395575968826248173767552906971875590968969929429250153358389425257227957325357373643892693352569679926003761088258881614367588318176551578859613262068163502972859830349705455754530051050570369855996925151291602347016830847506915848834841255352595097521144690546928933266351889107431207845926417619570408665967268279382575697891076320242248916555162303977324621262739261405457505228389079175676162574025813258733326815628573564456660672047576656468218694306233309167032149065712320888276752228157954561506765969874611696152581275101472414491457891179359634857206729468336037104860146264071709634529987501109087199073653262159990327178149422264761492261706253396438632591437741767275591736172064489133519927289928858193190228618756233793548379341247224686651005960755778820592166500544578307230792309188279992752893590137286519473318453877931569989877507272822273746109317352621680305910327135639606144284061571163727827220392926889280408634130741766185628072762144761325348705710638371953155458610544243052335008209600748200935120872085689290653641902896308134341293525468405533808654119263538385474027367117720757215635654111529350864952336041357725741912262182705417263901280109195558046249140830213459459042615695716484767618891584778527835022363843352494261672626685950616524849247961492280784438998375075846746887864150795659007357427664145230836403861453173494703199702494163893326157742292184812478254180016554278226258101300472136076178838393809249975251655393388388322004889029659326078980397009101064690848316500079378238711320879809763221079121825596794431684088415163730984917938649563374379118865321489884069317989913900632475859758879057768685455521080104465656709650809173008554195136973673937889032470495582299259959500472746218982306984046819433307379694964297416370217151336363655446639519983462013496491299335237891486536749708834277984543126491468543088920247589799395344325360342960466646806497584171248613199638890246531863755920089539330240679681928448858526875120113079192676124661060880930529644075911520178225651726676752005229590340649123137799337386129021368046907188882464035740948078327766640116217807475023351010251670545706318415172133387071325263163253328062801814697666028415370451882520163420994770811054857531110026211394163070218244187329103103769745992526933914283852593807602324209735093888158231669859475504932265719436037049237468657191292925921012527808003745762058844705437302134561457618930519344151034866294409411992474054380418127599179451450394903320282434650950150394485389479456627282800731849862630239083868360256150453670812002150623599328617994969375927731869761452742143251750102147182797375071030977266347455389832655277211153216935089073122865921955342891151775726909755079062278331306367317842116824403581023707000339271318663229325270061361197567755279641721165401900277287288433293264616372780514532711953167451341464771990795965322181400554513882125803853753452295957479513710640831046130747340549044342881082942747482447985635287581847551852599267287019449031868900705578962566078052406550134508664593813749400644308277519553453333560241256382707606613083555756235904902652958367897450670838861649669270736857658535836280142775208249994521318774529368849535556511088556066618954396502312891668125947491574898980733341183465452743402319081315048911487338952910289963086860277622844024431637647901241814891226822129506852043906644866372484055273304785561686396123290902246884100605240565304275764316262631789341502856202835785230491767483071048352886423059621279270569593698040046580195638729157005846835486992034509073113839988335417865543147425346611861383168764094918135884321767236163131358561805633003567802183545501192567630271316701148253282958562453573014291315136310423331798804244517150214586682167666016538508598160073349194248069421825603302826236400825671315883921761527394520695962307926833911353390664562949492628708301137277840166554044963654019782256465793878730096042421057534119201013597024817284159600421540301129276601233679115800139751289426012487019129919174036413094973017302412423610978952780347762514144271898789525949087955923622463380318484212030217637356778182778707177451575993737416965842146889076880609231179131009531187508858600785624782541405480386035414088804963447369789807446331349143105257162939592305865711374828411545917612607912059853379993482854041539635664808803113710669260475074763045234130350655805773783860195429616020622872400302167155509180373223450638561994924182799524343531169539894612501754441592391425510467892465562541963329939681141850476504387488555630661830571635727122616157899458586995605723080810817747177309725505175626177530935190502409769787100538978762628018878201199527567959723551731168201128279169359936722157317483188758326527645811080464839635198588679353274189926130833825960502897942725961748368184348340789530823893746640402462336277587501764687222070025194503352621554904051530603141467671507410718860445986969730248106896559066044174272456087943725182658024827187112734569834656488271483132905189283183936629145306910813657962949948377095238416531339190127836776519821466723938976763777675746609761034778547400200054071589881872536623980828447601743763412111981677028845675477065192213023185289196485086410908372758915889370403411769117698943784693302153610405820997452138492409750756531145891300616215858665157711429749185430349463095773633156464923227482935607869667139178740922317191257506184685979525687059714851119820925450141973752712843042012848953580591318059803586661916510891090950211140399745174530666337901327369243030261009691704355801856315993500015765415393852157460016764484249906251129163885417155475754546113275671533344551700981146451179585396767148597786621197772695242996775029070210985004323222425471644898062246957807559284568223551447953307648232020909135641864158717914606202173871039538628343911305690248074068170547449858073268429354299937185699173903206022614640482269015378604428479803125009720410788461946775151753576124733424710825959835559422812708718217773916341933602478984074635568116136523699121517822374492745114613427520036652293593958331161617161434164537782979354244842589035461434071558571805458478328951058229040138219644617191006361569477059004495764521304618371216623073752274566103620735585618789730034121495614177205594783896677269606459863726776057096163387718839360371945605807665586461944142292022283432068324774801854125419893127640818758229342111443484744468191438776224825609383635750905347692222877983111132955442937526361373485840833328254043308487728634850602121178207796817502978804549821607630479756648748399808661130433264256823501489446629544968592177867778346060105951028380997555962598866020703757958378142171502778344818026585221783154052271428469370670898670836858891495514997282259356903754760897498775024787260256863051669559424931814881788992242160164136600531723596998939008702941229493977623026805412673407888735239489556404745206532698601211133909372760328134126037515448738799633763846696257152909190755595999092862816216411001109622981406700797327371755470240713450619316740023845373429567357058635398241238369995679476847255200369490767365849949756537025983571143008811884385524876545580776774625567638604650033291795130567321650139868712685791099414329564831614673053970116465152627380665495317467967082795809823860604271924995955353464815376642955788372710684424609498189616121342992305490879180127638406453982839880969293601135619416958277326482435580193704438420863907081601199080274087563914831526507122655638977276380114333214865406109353766994433491280993415673410368278722957344087850390690498664843643831940144532759843223347759835517412955558103003399024626240311977617890975278826781098562522892770581724997301450965404826191324865664164146620462227654858819748838770251301106978230406205652545148741241375940598420440349013328119921566141756407532599014314354262233651897589539219389097843341134446476254261532128217133380599001459161623054257936294047420328490627546505861074029009185925131370948768545492049675054788735793134930440414996837410898089177912694907253740786888286899123896068133693344891571872749356789604534113034782876564697857838056117870440774612549636529365374292312348760740209566336000806794812626422321860026976739841167290887123684752945973256914996354518528717233222801331044691286727558996321070235318541923197940455181745261605142854208416016579269861009893168939246473005368891635190684183971658265191438263874905418598406668378459153011417963077071680504787980360502844839505381737271310035825191064888452835908231633878854781800586193280178922441851654107306341393072731361362450109348590827366638770989678955988322481532015617959092877592847196288566937591516557106812921415269620499350783981526859033557007221274525432335470532287933574311534051252449173091703900358890834651821144784031405164130374505476947892061450744983949860356678123186015677626293501684470575299384808851190618906742727779997235597129699022743438499406890201486685422484147061798655081218580561624326045045135365261739466110124512525968356566216044510469444044485053919217860532285055504526514024770495116082632148642008613101020332419910499495628849403351026380996397298565053240970967929282187853015914389600414688747667860787474835330007523719453201282986090630877541490305045700079505977250557090173248392239428041472886497827750667572340095436453729396465420128805392713919967195985017842572627072290021186364438397073992791748068437208505512485115035806820323343747367285624797758361635732742617601724556221609978366362191212088893409776386374231009060026427582152076288228675650014927880109349380895520250587611436980603363095683220704231227890141824333070833423423534597954101935554812136909837486828339063968783190626637121894647773946220462293126928554683121431038415770270548277398741321941014828053217606027859654047940397077615399931456170713883154487069974520177339441246019915746797273433580496422406760307840133523517637327259155838467755690497363351246997611639823250607321872274870868188277533674292039665954181621915050795666641640147050470076413852085231114922496701382010644845227214436654213008363224441391439868150135611985477021175492654379672445379252307129253911868604880644404285446854996572356470510892839397431019517538084170443470707525737262081525322771382250716107402307154147294581690266722702553629293669439402691005535594708708726302161940379916336727240792941323772373990088051038261710469377190171573397193186494841684897414876023246741702640592884820704748811435012658293856731847964620491657787258431295060659980164394300391613322568446965024582233189045509786876791315238518980883389448219583291864095422373756385782427133475689099020983300349229505054228549920608852925318443305091007222675864453436102395232827355545684435003199644224797279938204193210902811080563201355907941870555757500425532994307627457568940275111607915260690799841924637212935323893238031817584064176754066490601786812878920218438981701430758932390217907969662458760575373226289630325254500061348647480524684995131183766800874749007034752664193296020257491332688567211078017762952424496055857342144186402333208774463570328601397744403384877704783345636302602407605603729561410766728225488299046246613479424095494357468007122718575643300992939569228390802408136460102526057403360446846039884152552034282081884267241003068740027108083032617571600292374394557156493168818457630369405790458826760785151892552186248222967620052040619052634762088115038107849249672078446915261926869724665752921956318866410296457355768446865941358199711456238081332387747426739843572821314228505779636992530751160583911243219698114307989216397639921223273553735664217442262881155803018610766060926585751669594778135300300420093246868413754018870476789160749371213589310822344699019835770643373481896012507203344984439713874161520470386658747219873489325790470486546053018388483986030447647799229581104190436422276692114532104966442206036544499704176381643938660774273420903939783601487263909876651721642857601631666850643439470505021593085390480744217647933372565980296259415794145379667193876136923136139281947594448407547438655137106130483794919085648405326307442549153252692542485865009220184560944888584681704167830179671641152133447643715359882270731833693428856284885069956194147387044065765105399243503517675821874848344108450287436116746283462240112385531740773029519856120635708977699339996052054146591421921007400047722006670296806696427161366796169311308065595563618502533646556834427883782152774000422652101328342862018401850000821328064229951553633848457552440278701030640596932908116585793489205774456454831274399748758280766899272085716013175365608229660613245896546775385424544646707382832117212754939455367467434975380879378524357908372430053710292306038818679710756712407153434834286487734694103142503091898760697717371463112165237030349034837203089582942463570377622448061018727839123574402346926442283119964323069176799733211450036331420421445508071384828151940848096607496759908576116654164943578840624662538259871447853949617226035806379464467052241059392959476033526895263836870158676883049682341642995247650587263195956180587053699613345569424731432333778893535377716566073199031550244751042478117948873469174500853268685756888969678388994659100095369017104488292049429384368933123458939623816353490012063435723725983197055094470925721021340765290678844142009774743869447547635449366183080850320390327233187355978570441091691370426149016267906271234849828082473994469480013123048591833709969682378524272855193825318498888797928423786173237581877553333710438200978282751549427752591845256107099641685989193972818136378847261979686704680698813430941399093342155408481674196651053379277816037049669857475251074947704362440900464242233585749867166611330723824145255764214652549345967251846205358851798374379876122947696027771689675406475628762674006270980120660634773762061582700417405552089162003504689565252206972555583540633779102288378009076049691280410962010417188946943429591824770179567926128974547853235064847923244722985043547998963081061041173611975871413007291303841003449190204721020520946627190756947962613113559669049871466837643264085700822855833831046249710066769273985154392541254088755248445628505608986735657171093153790795002673700122624035405026992356679395870778851954156690000340629969230716071255809471811804515615196256832153866774110696743239849517603988480166464618319378953650663620023087642316146091439021413133703455054495162183821937193372915723696959306113883188970949702331457282785961779933913605710078604284698380431957185144927826698395662192443780037591664967589186467790486926939290994841804856335457983785499319256397374027230798293148328976482041366733858946962775868037953662301053024456961675291582152930413860934842804838530561328394460998441583245454284784568413705745661302795479155695142458651763271912904741075723004051275311537612310878060398954237813549103655843233723853712322427684267040002282565766109000856593297904240131188238863253819226910084842122168133744180991676095045472785583038244718211255972263318915303242780923721107922501827395557668650566037085186187540794496940535077177670692917836834433176810171335176022312748318211962514086302484325240902142210041977784561682162757581127040657351537173299513364772167962965336237889910657255390391420947440555952376499894175300076700762884272125492333793584557928738899516484743734017766048590500821988111318539572364150077313592542953142733312696716211177703076469924560796375595464163432944444994849020982826891783533785307463084571873577930028414362027603276494295757249624616617050853533396164644162391516540154122550665106725193563901097093961091917715845024454073479649419568118257691730593799785906523970795750851946577498973074861953561403949600676426047473447917149959621967230985909035707667254707353746735564621180432111251325956908952293493820049607226077181121089138697102771718650681223106482864926820369165652467805999143052275916834955141099834662550370504807063967320281400999340278886584733534224113190925693484139085069061227924562280403152689715469003000450938991390830961827467876527161160613470605773692596141258863191173373371558634372352897024412639873773093863708741735262054915100012075680489916649668646786662746948419127230477327181880769796315428880385914776180492620588027415324714198808374984535805322629296376806744218031283547897870248641905294588091147263875911489578893729793799955339962872822297097070907521034773527906325711717610433436694170203582319966359278664486089532937517678776121942487721172867698493793079126613059864991951082262005973387607978676779404665554179605838592301532499235327015395432054557866407955721656123402025119300451920784901792538629099160557113797022613413156239429697112955774921401157750825053534147482332390342779976667026573208712746929189978000116767913018081630414360909571164697180366775766044393953004785632136887597973574637288719991944619347320598761816128361180545466546822749392431256882361622050918550660547928588058861195424729596518237576419802783275489644297801474908051587054023341605266913124342724643752320698959238200017631652514326803055866060103266380882017160697963621606304355998193816861390639611625698648023919817582507728647425647267783730106828808596261293159480449767008503028079513061836321126038429781114309103211788723853342281249289747522314496448896434304489273343540088724895180572938868675090650616126743231791363354144857237694991107419779038984850124167846709162087169044273836549923034343861012594764854984577953100935497843884009758233258057734951328699633579871067083625024703196425539785943727012713012020044050169054771664785562392981145720852570091564897002729442910142453769026035109688772687351191686436991493001086783253372506312080558450820441645199054152393615161362730211346334928835061920613250549296468170462616341545739831353812251008541264901820744146901618125310115183534001200605790555074961327931651527642989315133602139796510698167997565666034138193583405617106421201631022840660694608546619008575733188628574043416519521223130205454223800175730805808338879404512594583852116731977853588841113813511728327196873576373267450384293527386937155634270417254020290238939859988771206021311453208089385388338336240722829696020818142646359773078218691133504661544658731775608813503845086943047948436833862930638621381523832157562626392004613146251807573418373075138088536539501998506037720168899472477741500233229451416248115727586875518187739834145774276435537168795897800175953661467494738868013751433392249264098791461929169696857210586292252959509451843889143695514810165810295047794483268000982507189812850261156257023656474194707848971505914495507985073876538718801913040745747557005524284666600478269783300961890478795208733565669205435320291191561460339595023089049721171730024385889242876312388544484374194836756364336076322586182091169983424094570260018952582382723651963927339761310310111415696256791867774396311613529566298363980954095325098853327032735577566966497851476398482005425527804710384401846142632960692280630112058815844504898593369961011431396541527778469020546543073581593242475874287485775341960668174085069587427141810470139760691203185245598513873795755155051806179860095058652210933947062248025465748396783592710956748409231929624627688527742552421542532750762600809363275487263632686179763152218670271521124223588865633967161712361556062241030406736028970294500059576056605311337602002922672160154516372433596868658500107763531335203029446189774381173021349977565847508310220655725908500865094887735867029630964196872631629203295071363683914493271271721455328389918822041453656170460870868877703497425790383065869600245550618359517987904920256837914054922308332588219787639538277415654240481125543718501601624453745498704726230233344945243785888437196844724597216731887646612559262295849770751362965937467389169765856853690123157721083333999410824186171655701086191247681899807491837372876510205668493789592638040298064967997772550020990216185972429479647739898400373415248372653108193124928966146520119379817198236437616312562617903965249320056538169582306046142068666211670164477019092479921584719569329436798953031675140885087839698669929217113446369192256772085901343248200731118821409407900016997476496895260761724827357084836878574354196893823066144793664865476404601048850618838419270127047037884948516493374812735207792389422953611210549961108129923837398945697714724731949552762247070020123077158631917418998087535544673788786168569976105129353407709985160106323542794075553141049865954706175456620948485156395938689080948570290624338694875536902611044975715965100481154664957497623307372553099943056004891616211561790752674312255781348707275315919292424455293423684677031044371317410163491592514576882701523142379991697481699158377998609625632875313046478982113197152898275165890278697569244255674294116047854182852554246528462239004113897432779452953200948131329030702271852679516366180730071055611884113083516052230468238634545465444465828394769904464739605322044722111913219509680980154182453181111942362589816057752858626490738784388259996777478689000068637110523138125688618751282029273357230760549014833067289608029440655287095884634607196151805364742375105360204987518517521392376434736573625382202742395015896268687568398130692340441247545472453845629181631458720235100590466754505596698192022525547798519444653805799980266689560359047426697752005915116792554662066881923453909125627521512809673743779663555418477696187210681320753611201955322626767563631067927329614663137688562934847469902471778603674839786604777532984786176844578739073235445413882562784428840344497054653944745985350190009858748119985719048334587208601687822658233024012532467850619107885881109401900899920707577674640090646476178133402843208658963831047679044662476050277538178334972049025158912708016767311725025231766300019283120685635177159404619544137619979010381839415460518827962176322166409577580202446540656069973390224942105194896603775601037021134489730085028405898195659549202903044204888843726147486923699088609714374062815238765285579431936364241180032399373533686062867639626398268208169939004918680214472978813176172044510591554783701547591535504271161349334399775348309079087009969355174636770311181777664236975008013362341592269913251999408537203515854786175430776229845961869583107947601119111391894480595807855645374626389858999234070299831856818842350179937456706461252623418840151465249866286099186312824632286483535824449230002157447092382998866717243026231517606730063540748047458372157638159942869644420944198103971732719912769366665780260869887826782644637796437235741026756576923440746333402376405874511860949960785908734039393444725416720286410263659569865957934025371906699323694020571955542711578591945145606867149368756545616706311116296143514488437445385116132487459948550112557947036196807057681098633482774450649364409684640729499941449751972644428933504822310082720383398772056512849140331689261502877328204828980349996406794693286894184250200054818925473963921029257628621293728738476464233787050670977725144939743880089534382791866236873745609051445361319306625161249792276032658913685937794782234095165885338927296358098189317536129402148156056518427040405098730999317428464710019131144087489900109188937991902860661512273560642827193288012688293274384228908475913190862147526237840628784649323578109358206780841893563776465786668015833666533470574298148240012119702330470863862258560243091145289916274085179916493471710186841831778304107423085552327515012671575432210075394064876524434452734410413612269954774332376029100643823660457010711688121723467692621347088608016084603074539961042364204680853514669840308395547472293612379003414052672849649959433372461054191167373269960558027803054376002491598558314061528369449192029721491341780478696662747973015301822755256185598639562875971950615230275943192448161358317779058503968169794800532851617892365049614866121236847778338921212251840587445640607187390642669435854214745567476098995896501733568540622176069178678621969980287212895660567970216192470408894855784024555465997297926122961513418127391024510386975431596046198618005449258481398891029528173581786072923125788334826617407221217462074494484507736124275231214294226935946943493996431748305965651423288270865442178683203797940368220007113983117400104127336602014090802702342200994757607314842047761558829903164874821691070077036312905728188574580085456541140113940504420523539698200827902080896338703501171616910213169871877576881993996446760212621253808502467731834913535423793743745246470897189268645760754729159523629678269605112023819482127724712790919094748892221836299733883576510464714845177215351786082782337557306189582689583572998531720152904076591827018927722401765166016859089449273652429731734511917068927093880185992884754951903114443047565073336480589997618686451846844979947348425656656798640785265345493608276245546635861500161778754695784394416163113589968725268958317717928803190095226043812532156688156618716037848240279202371070615635100840890043564623291004168702799218242080863670163524081393649742944729750357594987476261390801604106745043907002323943170535874273428533411885852071282769209161428832820715882763276433684522622673158003457588826582216967721418491234034467219449603433635379347124681922559240534805139150175492449909989951685503857635926120660322300801701674976981532775706330419887431364930558109978458834804221749072227932383506214805890998760540050046938476990577852801592931121504311659408802941132393301074921143628537425612130679196644196390536399838985250258253355913582343644195496596933504795947262590671751630773206428765059085429102605178178131994241458948393614160667840590223582293369173903770043734088287340546742024196668430621516006173175117382307342691568836109100587869707943666821097431030420190044550413839455252354172594005642465316251194112216518113023456936382950366187478589452399401308503358711110974615502650118872200481496490372510587627458042564936604284394169517066490891011702506464545078785507263528055528661056949913985987927633780078462111743225430267337908053926563767428376425029243879557234307229049226087558545484151791920825913869806788458991982249092895107422692797078556554615842432399966589697103916151664298106513864587149177271208196916693809823945424923001455471187572701986104164864500474661776436497400337048978330858702035350491100892339322869116056791934064893916948632705685261068425627289641228234801106711474122408694748239168227120843995542822267455400292960013894240341682328566819923687691038919818846301680559787625108386105267816098907559789973865283519716441368287256206414596687038078029656679780471413597664525447821306041376224434897440322610595224285058094641140468663617828114198679876242279561409135918430187220970562322202205608222657810944899907871563326157999048431616122566514269571628829085490088810656128329447249958296318816301783899358428599311277659614398203116295499537106780387810044795273276096375074291156382634762970319208198731079689292616277872495094126138773688883656836367010067114263171485452399627159770924471540745124493321398516005726216382478055457107806642341361926189921529748875565597126210213204413450032963711021707546654618025738809532208991080265126808736167469427932117303713823626142663218843364920525456737183987676798251205565769621029672530345831066059734753818305358756583648795610360875454880715779225284338384053316101428827723787336258061386833108726375716411546816512210360503068289207854094874020321395321861197670466778120153491117289848414380677165424776186774569975749236452232479935144710446132600652161138437872034178290525099941790749182608979428104634828165069933175983101139550011020031191310400201143998940070947255756035606045736453707476452028916219059604229720091939372726354814732762376185094558857590707901475121727595155513632801626315502060364745870687305436769327110198380211300530734949914290078561644601391676557505708232060088600262067912715118430761679738519859829648875750272867167400311735456613404625372979518612967955478718834089259330814601158245202727881139655557674534398673975998525335951393968913793812841088128958043086518495562136920075326594566358479248824801945130124367604648718645587226353828467180084259178092941806993065013328639976613594352101017125205662511419993226513429466632227094764667896236930864686694028490834447421690483399458762079949663897138378526422129983242954733166577310433391191590094912623516725187583583307410635448340507641802983580696580196303972530370974880569706264640963060182225820449053074671815750527618048930056354077081261999438123703315571335748287932124152988803035138826143244305049141438844872175674291531684363144452723484847487891219544573405325801838935280266760944417202094912731408582382059794390140035625189061011449129026150902547919659587049905757660886155459940696806632971048187833028134815224839273870663712234610671478232539017088031081931562199475418228609293595751464392914266357364921268743353677449604748186678740198960118080788535760969519562568759768451624077222334630231246968387657979074697537787076802473575977352859332762662096851280612032608285907348603559175851918213878826349859013922915725862248578620623579336450215998868181343865927590245762593283388749546198524152898876744074472581172878321146083243945854538507939083103735159080844431131310413580451193626208115991549666383464217242796963874005826404388514548288505787097190683412429767037061563961454194237378282007062531829844388166880527017489015538293008907126317302423226686678661787890946819707040385620726861210151977893615001872166383996680242258046722230961391814034161767354665826311513111610568713238835733399545205988871713007478749857487573872348164927542393756551612515604453340560135049890842759055600598122765847911308306213780455723459483556776686712464922287808682023321075439037612117126588143311693033609000236620277494081194859544866002308910780038972161915440081628362062925789103356220893657323178205224756551699202758259566040738346117569873204400695338537099686639306755662309271097037300150316731380769979863701098075796035586463325399886356272842768038613436320103559325524890574388546408404410166208072533348458477106231137767208305286904273713483140923658043769252330465807692357083613503508978695455392146358608694489296675691938330079178676875604638042967778157129829457322955150052844215457296088408226591356359605817792481828163293759473601714558597049418288994913817639480072605439000893445137167297078355604839638246110994561956963228457304989950107006876102316012993142199543918462189823986944733705726693205756255495746664012006092451210722735054280436946065261082010457722136707813262038188791610288970506279698387984858029680779661520945081295904528938692287867056428180189847626007766889580747333408170846122754888844172789054843649389762678978609704743746325310496576961079493520223282210710776177866835245660413609153705057062409533226368570300197811776525329905784810942630790191392368039645123331043363395761378957284105996521235687134765982242016662557824128855952923812465421835451070484190346973605998307889181821945688469439958633923688553464811504955710343454193626393088617289857867737625210294713896669432017428352470169542253255792282002181165206399982957861023340107522577765940585298713373778122850667009005486491930432911657378937744479583166372121332410092559836390338053976342160885611604369062142276296864285902823905338540098480918871686737146827544334788974335016182919195941249681508728657845509367798829726216107898606084581611640682353884891437253666663046263050597573176210755075885910891447770805612927684641114594841642917301466370583764162647751399065393231350513041368890544435861710581496152706000325257151075756109683024058715029497278279400955377122046621239705967548248427267311134169333935651654518609401368614654236269466139054598691458376620612361548950022462648909727210832208944391828549528861404195259307890562672660846390104378319827409656368875025892631981784739204212245173683805817883991522177169517790666559012646736964474541818690426100091939015752523743459765883304372745384224606608433367310164516337040227261412749583072725543081108546016450436274911976592082748765078514061004857893503970299366080683424340026104191677279493296615019540299818213356028713389215845428376035120006310430313925001215334606704636338964298340628047393184428147150212650985931525723384060121099284017871603845378711428311394699985615241194891279128431140190188426884980761086139661948052283679179622210607198654681756619678363201233042126443995091196989064243780399876308994490766027617379788656146313769748643339323188058530296568219538319875848015783964585022284718696295662039812433332753949413219624147656286343215637590078616277468299587879863533940074589090465851978449396646895761448162875988190084932299974583093435469994140343678241948761607932395636797254717105568095633372403925117545369065377509062117931273629639133750021684876216818049134198334181475614051598841277392162372382279721105274036486283937341824354446891845689450681187063402277224088811987166225096230228786850248669401844987808865038831795214893368424643870573816407726136296963226385745628796005788592865746624206086652226853468826769705297068738171359514609550392699056248838434884761455494710209641559257283020907056217352874692194491359763564448054479771156641693691622614617439839345854479295607089691381303638363952926126163833592023094241402779385839210258478268676584391222546466497111068335901992154790519969500940204915368244507244424131717646938002941101771588126341791012754888175291996780971361872940186283554883601902603382518911948649831556217679342536961271333069372457568757075308173677607804422025969651513918882756101624237120785699163563606605172119849947948367252862831306462310673221873738061795749770458349690004011494488288514140272723065253155254906492675683139959158602095647962024623746048809997511393623816492744064836311566123857075600361183614467139314563396110129675136509920855645640917381018156380410069932790352041106255018996867673941345891640806867734305123147297450474437353882331706631444610772976597545441702540552044875627347696205724723806116201280589029468807821844588550449713908692075081121450622244444550272206710748041539037604628575761697522408469631645160888816961103326453996948089400514348969099416567310391841434082744305366492102328879268586769374058281721806674246931258194488050194724270915704397673495129838485585707858649986770634629953129661681574924608846139543964314368188278954833287833956708217066360692821703734068876546062654249690616864696399595283427521644688734691518125962290499700315728392354553897197723545036459662817391282238389736882358792178839369997757749994041564224876271768560854157889161052960802415093366317561163276802854397497886387949153771634461667428989551671975628692177432067047644480702636638211019517761633693694192706665328854051670824719804243988750991123107891949773313351925635428620402465639315190373594811297354983258574480294581521048246838470675196548957363717795632339043295461029893760408692611781599435435088983236429597688174874627665850868835606641580464361452803435602074850150493969546220817198588382035379951568960099791884967292311774968580364600714052593181264523482476553351025348162458419478661202489685719534283355982308784787368979290129053787483457882712725378016705974366739207062106047365801945141244341520698498570307492410021302635467777114433059973706922150257828123207741144176487448668573502590885330153288073486627400033546111715957495536717915953653553535589331411852637731838387601240779592556927519880324716241403391217487868493608450590177014916557336135667651647430435933323647058712644600185594022923332299031182738888553805180416125101272026155478067830836280463400302045788118749163137706082825775340668178187519511499124487151051047477790231825428067049113758927322105015809518953594143287315927120307932849672744040687107598752132588170255477205013028514368641510708045931670407594630327580895791498620693458752825804230306077368678787869505380560475268038672176560968030207688312295471932325081568467681241160223688601322933764561268984307162643596110852808609785507426884264620779948390116528847165797146282126851687237915528653057837313948293641725550447091535063964021839746126611290200863330549568464757485132551111903144287578817876024425128349435262470880958434449710308791233209127144305776725656918356149915971419493688656998382144967122961573297624135672329159833941025455802772107833704749856467272407950259181600934359672430259900639386290991025639050784562818970009167131426738711613423625384294679522163473942259624764887743287865523067591626006441932000648188134468072641921292760016775070298161454789460518037732446798587257165314462434998236941026141059178337985195554639368069516496406346997363323314495845375605516816128786570245481816974824396469990463231559430971336874152173563413723574869503907937943128118369356280776214908311680742492439633443320763806009692370404766061323275889948520691069865638469023954882989653782980734105189772582911159034547434534651177874504194839545348159797959054071144317649017921653796490243660262887574025316632848579700199312792581617551222158203078770068607798879252544700629893149337827769826760107173556614768687879062400727961570404527492254123873375631031026474725395630411647554669974391897531407842172324880529980716660530693278209401719356794649730621117692994955457864105946129742072266397537180034925597625851309947066671717400992679779484103729847166491365191562284646257836522503638378721569275226677721153596031156736896179940115118535588190927196128655433790303424129455438706556920682608770860182545837917528392100336448013476828196177984196189476978995499158748975252502121751028759539893686061348486230836578474047484700753913564704455561280113964554203815338534783219538823337593713219921612075912911052611615378229595015998444677557221550256811169203977325371295856905085643344362636384559151016662639424567927320145040528386344541906299558222730730569938209764532447068266495949692059413266865726631143732488717035493836378974568363869142612390124525411433423657998907925650433552847108925514241990486391857277739396657357433682714115043558832591898779311298866627305044082443457147141288421672276443059137571423686092482780191465257546433829523323403683623187370205301760060344623500171937465286209913414207697655807828521462666394573528956004760449042861447065198895723757028283316440703152656040389868519481124819792504981482718450526905133181153333215408014437806655656641473081255404693347046858784801956252495801224194270875194455846323602644729998938181605026659331462500029949973778650318838771774025792027888663162516934945316253934575168621372151245869063616354467730681189792595406759026437847386370124215958521806929579258618031362085557476028344834215180179669200533126078271184983822364323644053875971852234571794690432555791427572289354137005399303288346518997773641395225539607876333197678049906399331415678613853818757870326139242127865211480284150539099065235819163705879445306115905677277255840469094559810048444520323183879251380158776641461637516674666359839274554328562021975669326134233300031120218430889144848051889481682231403413983546689541650820964632429786047993241326565627252566036533939552725503809087428571260616738184928947481411615438283879477459906831461825493969248484131099459099385121906719583027688292102018241245213536155637221161757100378567909048302911741707239571991959437872194666714592407111948744474678466366931999023522298868268936078022450821599391500503057194598302202765704348851235548855588517876924594642762332524754800184430830421816433043412543400137769562941277961009838938403089984803465685092701069769267536923958779447341418119699193602829076867893086033506030399150752400377250207221653070904426825592193665835331871530840149095091470016853138880938655775771716250273235289945854287562496804607647090288253934218109916208353225573691128959295437937702946900563287617270822508845163922690471323026396757049404601272491346457228523620464852924733662243133220671206734326991275355648182125792755128937251538708427695679264070975080141911883206370795230012544427516228180259530238388000742612824258846826205307512503893992458855080183894146660389209905545414421258172132974844159328531115413482065991418173017763106698734281411158018675376343806771607400707048866004221439661675877203703184372047240510949597328911928501140845807830601726051526663614790637792871743362543006593514626629849545516056767175340634813601403209702075184878706179875380310249144082525429433685660865606251329512891512832147898046931080924749553624322543260687373348233715744449683028036553551915790666098094296054296869427438316376185180055952969572404608975871220618030807253211363652927455317523027221316231793110965008555444738052232944221512468625778584125337907303815893982318559929583472230316386205531149224950617231436811174133671322126729318508389816828149370039926792193246294428498232525007144907162151578576652068051584729396431763226654010296235097716935373449318669779569065707548386510601651655694639660377765385016126807687369733912288148558077159440160440811064554557104330737658694369269952474913566926433805011378849538637517087742024133722697013257965275615743319904938681945428670223509003367927573821124469867011068562621564249341728781719460255167370746364713097640732985473491994678087016579412502444079759726629336482183055446735516961659469058555341926445943939145380015324981762583394289808524446872990971396250529397269660667853408494102996017286701576837622047743139764195226141986215708110286346882009628682712901155008730638697548116635366181072794466953434139412528841593173157780206510046971441487802003838118442126047753970589997178830569238075788431791391551369079312827561816018535554615968667449137869506255797597455043112041042707603451722867806451531920373266795749756726377396409840013042969765111418529217580793453955187406388577870512747704303421928571083098450219393872461973871543066906330897748087911288724344485342058064272441883490180988993652872079275048318308427239583992273860034595195253611667681920613772402836290252438313035880245461925551137302864004224818439533603980304699667850874899549310673754300803782610669655828044341678034592632085410934361328416004906144070824654335089919027448946610078862778355391955839316050106700120396386144286519149362904315255821529119135034845507254830086010769765366865370912069391079111487718600661947548348493929319944367220069543815558363238917228551140184528264169168778791316434973040214450892790836245737380204866148362565163760546695898911206233133073442898253336821194257788106955676994696562325987849934599006758071429820712207442237837150168139802204755980126650237605736179731427936591758526247138681402293163197181196581376711648523668080508274240753554950517192214520896874618588511260731949022772464729453569809666325544065026987287261833294510560028870904728883222855916952498716333881960446349261673814687959247959816961599576985317796745009396800885358692060148516069798259746979778481704807195421682068932471918160110928431106892070438981083048586488577322223685241589670746471774838804373591493663258110917017564489643865344212066355244437511040170366316785229661800610379228204032029394908895226896892337805723766781626146212403789370349836433583581807601315833405105064685130207172914335759833085088726209600498231568320139663617461673853427704072376963786914729365756100509463575983450263640555600384986581202780516874311649633059403814231540796667126611817410467732612153323262443900694950566257479956667496909663882406082094641588690078044408590667971682991007759436639844357356343271837020789245816033510194395880465995806078058647044965957308816629262136267953800040096907145177995073302432728380871233496529851250583492247949161667312670237283135102412445772495637268533744722724294295672306075601186530978986643906168665712430305470729040899530280857943589337923471079451586317851346977248244626010075313295185175303099011180996945031847195050942923459343447027551703927128852350116328056618222232380205295905919092088494884562713410400128441524790310909867854802629942975953595224169635864607578676321220434904245297647961808390608411580002510228240443663057531632830358764682238491770971922949742281547109624214416335061002056158905616176932483235730859851511473861216199352314800820638690009756489209378887082374413721154516180195719538567102765918120926383670079877876482069079742636256550227887175104185539221314721961218758715997326097543502840084089128326090341174630910098127343302904199412432515011588773016056385307116001488907570809914207270377110392842436494459793872473785337893427490514933351004105131196784529055980432192599361406530520405329347539394993088537896724186260929129824210613743194983705956688303677815779615421176336030560766387083922435202408056766006563871320399043045620845748515450635405778129873676907292649340786282670893081091814243153205692173320632878405254840009072172820718186225616775008410900820854808804433741266821265762077284809729329255153068745448793525537781606236120977200675245942701998893574789495624640834873463432464419792512887272329380652678441438044792672206572889656683063501095544465102808873105510080001988344058872355396254724089593924512200824295434819523182567570435757777456594850384926351353107242797131812970301114878499182473032890839643326680076846084827955644977548986286407968802515837751290149713520283852572680656194953590754119325159047108677189382467924060207995657422113151956595993608660328924110796329710840302687199010206093662533630285131354504559560184114712168929292350621989215870078580246869770831541903002072280141958893597768903280661652770199222973790150990638563533676944200089600628838858597798625992305914972827023301274907744729547776700612975938973646078063133550465903361752622335710822455466740846727089777601456294915751755507932522086615751751146999198342620427706167921253516161056102716485160566385752721647138670066535210557790553213723936006389931721679194086063519493292740809948182767956378945053286752862413716134240385721412326339795126918442482648484395341632887173160549592946796293231601548794854275945075311921990838573550293340965322112977354397927007599830562892875878933054217235084605519025756309208562779073550480171387808131558125779613952092740998310971402808109812867385444708921550747149342714738873669213040313306133504049615835176549473776292476415172082923574154767680047798656699570167747779229877561951710712827688748011264121549278500141763675752975643165019186245733642148368535530010765302521791091486660593570020790076037930412657056903576507106389473297018818829266956421844264211249372882616050108730105202674222779038381423029902446464804634968584114570078276529113855298562755033119767586693940010096825028045151255361623293200238715889789671173826511041499314405848096249432057072962084317554448510333462774887947911406115275076160240663966382522809014478530422398450171361844418751287672085961395445987775909241745005967438300432544391616995576222546884128789703240244125833738330436395705878194304977889171266754277869461873673629785817209941219871980802232005565509405424563472381159033248976342053641233648292756930468125082422132267767611367993205368163719944476637471230029343033638197449696556042373611389296206713177755930567706772605228917764203053828886825814530000409202746812504249147892959253051685483979364707034839296084408656780884217702474211805733559498935989987859882365312078262405261896731792219871406866311593220475165956431287120810595287377365359268249093375637035878255977462085743535621318520168424460173525328541343892939840315546345885897148048904693161204468243178346771215739974873014420190875205674261620182785614471201563580520792479593998734027845251488699361949667651277905656974112006917589975665177173247596550480179089138090004365597776847258643755257304128838793478031569520610761227175402613810361478012035144381866989721906335086880875786287251486303104090965128958788945914706348542056309236898322357474092150950199795866392197058041820299964301175231751782570320929805383108324101179969684441410827675214163365351327729913210324628929136222343006108607109615924648920615134268664873099970748381076917211798880187627435942885314713516369313551514824458757666406849731963957629400190173769714068244678129864258233672675948816821787652204478183538745722096642195046865216342080728982252347661767116542553747376618790701555490179179929460077972548384771040440637286978351693555343071478992236513955382605498094700887060607853903991102459024335426741508108185939939250158304638069921933755184466148476162888458295659730921436020827935048992206813423819181011424265051694262347951381347873694463129222949055540130269697830213230945399761544897882324538704580320485163513176492244016515167027353377011691918263748383777756142730890174056924283690893975508081133461483937156881672021103032597905487692185612716703887121593600559358036117832749296896173300545576975816859165873994527287568126910676811685350546994240377246363852853635395597246654466983714664771666552584257634697440396602887464866954436319753784514416925859342863314740731932349724700149754214369661823671215467848529365800470068719362940781389382351668564558885155210967832966943289739538126630227369770451595702199067472871086278367986924905277658324429113258038110446472645359597549498564631062759213394688709403887686105543877124554224472045226135561992528445559659537527935775712476058052693693656650439454879502499707585614226614525194722741128183954443798529785474711292151576133459701239477232590066632893413665286851942994605377667367324859970259715760957816544732872788279790055011692895275949520975823686622025783028961392185655065283405185416736572766641472690858084685251599300169016895716959548978234053908158134322818742038613894722237546200560359203327493679483657431310513791545243182269550033671015884387010342732668013896907292858953620587067194862212959594413539330388302728198130020436167440885734544064839625531857381635783074440790100343888242778562587457388013416069800007834954249410264439906604446766962594922073433901223255638867048879114009827773483730761368140944979045009867261981254864664996859763693598193167104457330989527693007950910611538140484666979231067077493902372293966225743731627130735076813741333820232352478343770580992684280589687288902860535592398797655673295480419714828161937351082193969080694838027125506262306643849507054319893404183177231413633506972472639525887702676403197193437067118518473735899070540808582406069329514793874087629349271062960563571096817435633925257625707719071544446618988347399947331438959970621570992114289385020709946036502906014439331194745215059558748787218752595521024947828141065694897680354685229684065640398320294124103200223141661078776405547558312188757302317263307217875230072956895956836456182948266173753265747793778901399171755755659587560350330816649787409685494614233803255069715811328188858122134206151272860601396851322365294622555860044745498271937185443413924093955042549713631795349836663887493600052365911644388171625537857376480041319796066795849179778446981370349033735717057479396001762169977874131246086879484829229752919511391168843870866783696778061954983325727892826167734503379348295148762374095961095461185060668323500694353178486045366249619145187249961179832770943456998726313902198290021452397866241455258635482071757347913005295999151822806390043630061905056471868479303221551898277134572459297146111207033369328854162891135613014348016845115722614391729529258189392197886097453716733513210510471921180490936283525468156505249655628860375721072275569166026093056542810605586850640476304361862654213671669291464577468099476819097901624036066571723100476657217602317644848018572606380359529052882371461822109247950750775384805308718169995516404183112203583765285560077721903870485623007974358144502095455384125323622104440421642311322466964106843996518292322426599536219759717150476956187264109144019077314263438226613333276380184227563275926262174782078390893392290369069405516475126361691942991116239228583848461779157088726867425042235563610656127994163153583663604051364607392590459873420508110825474801135988410051954529244586628161053998336933882212974920221009989705467824821878741104711851677502345835315277156494830079269864194887109464395312280755910078581367959827425881254527857955578818752122556769025953759190391736268834454328579329902159398406262939108139768343020843051422143741289409170960770912272593649247212167373379193593508063559323404468026050596428832246556034396955782759343139716150255707222104911164186809193382471276989484216551166389822237216723748347054937045718324172477488839512882293130132417885558974163511988592673140267646051236200135175753878149459864281405727339463359947821586941305233988527081612702370884313782630522043208212038250147382527693292249060831220164568551916774277178729521169935318099723146171633141758587198130157921242019664525744382561877805488086758776122401978065406755480440627572289702871022790552190905773489406062593179615533521363873984764968081258294045127632061693238437836377888891818127155976924609585736532154308810377481202541593753050658200526736160239261561836083819312726375610198866900985093692634323467728845108433508389675564364753681122741966278025140113186436302158149341666565808557895365375117608981998016941768907353792509174268609433780198301705447298267672452563654864707153835908315469066134620561279666466671465671469557629598775407670223963433349651653161958891774368059185815903576730163660485218269745127907784535343000382163400818074319996423908366134509149899256556027324852778174420809317166254218904722302074522688205339053740474751057254571071349822857129143305796305037696432470358618892721940239056076950787727990890506893494350736258889199156573839132597596592927861167245964889268433774578003169720274113198209423414172372782682751962829112935554061073883518227350880970641166997555332796973706354913104559700832526556292083199968482253352773511361306482068094757992882290895855134038252717699183570863418100984705519956135281998176641249502161080222890727111243647842290130719825774798599624515840286926640145790751182244025070757037930793833104099307897845368575658283858010831380627558209808280574921987041448829497958079074628057923430503408289185888648196905264567058265870924293954809202996609635623019902738259645658924357499476143673799890214471792195816928258856617436564805156699217989783910537863827101901425927298573500013018633262452060246907707072031292449073133072087307562363289059647856985610228089212288225757131598672410950712417501746568121312735909244418717952465296251545854147075006966814742522463081619969942945386630957357599151726383546626577649555991585317389311100365915634561884845595882545081206244338364228851005939374540601764258091489011781691655805066142169994794944686683233625251208596548467473413596850422956479850896902634475485909881688386339714428915852011867482044894956093848788851920880739711119619384154446555808985327058987483467191717876995877502697864084525167599726891182738423466605405830173265448681380298371602117496798161716300247021025283735320696237802956322089480348399962456591781218386822692248459171272676219124474493612572513449159111061068353435154236377129064968808202874952122433264255740548281748348373567242899908019389966646572371597699973735228833365289730666435558944430026805273883252111521645367836475828523886605739063816458325056260503231233825349932829717925527056218662271490218757732389868054008064706080107650424412449071843944467241146072350134194422747831147535358313823298693246883475682941807095826809719390016636685484547507602542041687805756301521951801198970481822321782784921094590507735213826935954057458152378917397375221270481436732880228868902311787814880876115963874065706325964838730787016657920849243818893029185910097069958946865831623903454381212578077680441501706450472050086288703373070139859962017547182259327044531080800875374696761059988472588299497177838061213702873925540835288401321822943771301689697028499440012919376744317341208415198372654943983922906349976346773913570321479913972748775833665695655767088015853810526790109788990999016972277316320845188217861649931993338951694331326693958585203889728314504750178171315226489875731957590080044959179649307999071725614736355035704105265236977786823471978843875317857572144655919636654806387769662847403825896460458722512695600425845828046973040149475306260809016954877973049274627632181024785609366077798452802945736219292537088101621244137019381711601523294806489844823318045375226353861676276976522671816080413607362271143547480875230680084590929368403093821719331862847321481818764351515874181285300771593647496960933104731638554097113914259629852708750034201015136128797874832235947767487585704141972039750568281994677331612578082870088168474932847370789765945676918378725706722398623879097765121541352253332059673547334481265457466344006182460996368235958899793060948917838296394632941333603204098177973055363531297370064257551024580291976349476023337591945117785945482031074441337287960988290155696646881145459355116874855342825098550068731401505017505806975503256356091859318254481144632567037217505322164477550070900834631007008280645598752537556505498469160179987219223780056301816234408470928682028267020734691628406331231941711388109278557624555804431010778048789729060461792084302098268878685444831059701629764635523873727616449893497889809545075350568181761030844519181825108140443481369770649357273000998960995353991503943445674996926004242802758554505855421436733370719462737225661111170536317502472227985930026667136638492167387923741178561589901520457632704773254425214393865278912789101930724679150649652203442065999690868275332530273374924956115420957728923592466175034329912162645332350681745136081260207660987846272634167731859111658173225661816919421921949889186693135713295383218349048720852335680375646834956337015492999003373434094508561228912092201391444225977437204963074111978654196215569177646987267778125698454045911840547906143183295721058560122766023118086633358318883559350840978646914065827916913285326490056823867956441045546478430566581840548658184735797895677582545891021353034406794243372723501299516547497190160901023775821464420252790527527051892561183295732905575155913222289727952556182538415270566547957018503309890131190552080863363870088201530193144479963414247538194510650317912076941036254196176282706074584252380018074620413358272165689779053203078933852186054349459767811807402207675608568743371878177079923336920010637185762719352511296088001248700905985946887253498971655985741963552266578162422118267431288475457328738773276702346722218094653832502787503492504950893793173277127049169862308844131055315789117204654597378368693650195556196612255295797131404996852774008829709326347473783463563801865296982461320011772817120024185061758304978251057072348336980688435011851905904378552801835210478745568050073521669130577234730346575788970441337067532390718169113061106457798979498960713633791201506242392814240018032648587871299680362580248402502348621983563574112103962829803798847209736319569053728687765821829784076345295710288015628149942477065574816292165655583508169644146046557717793832748608203093181351617720270459008218429238086336511366973322398484896351481628429927155513302374909041154802685879687301955237945137410620736279451332255681444072824485798000478177825500524884736076137050653111652516284776804871490196758560038824128354984643102477598365620183707117606386267684595063001244886797155024480796263452347386952810803370693469614286971306170320415841426329556612885990800873246521627949310917151509982356179708344002525530736698746028537988328313558623392134759084883575488990375796140036676520909646828555655303366422302906589595459666264284819542916372219349833354087063087908632198712044977254940388815950010496172891653579952113837880932156968378228298579906176391503480848690926783585994760429691519635679522091102638024139390478815320733089175610496924847195353656380763458964199636759779128706159328037397409598943014179377631536881056663225680158680209822799150649527335670894221216720850685826410860754220582255335059424025816210432742626665083429109883889903561810269820127510953277423214288882709292815537592131492065776152389638125101748108512012957198474353445070649265808961472370720811205956950783167911433285506581211755502641590661403868702036997325488374792127003302894142185153037893852124911307023415084459729837785937896040449213391651632596911736030731781846966691068896940334655298933116754251593357679504958184055768106190421625005353488713291335859489813318000915373540992945029960114719448863717580996164632489475631978277690779809397454668849769569982195185425919962302647548520161142786078726931936470773978788375855806866957814599272118875063083609623753243292984376229002814085091606717757019159070924659161992314544743961347811640454864231713595042524754656237177580830920576489837591505681977929428028137375217225484097422676850934954418561642579945638452162995869581243274619460293897764510479640838817451594248351782579868385419974012363877768743584002825817172710784937658418440593600263861256928312293366433276052170476337065896729619402044198365842988238642883395806326812479052891368657383746910460664948053840698754788338624243912449242193193369621064377892468283021562544713284855633895572883188717712688844461240390142006316110986594966043079074964541636159359732603967098890547218240159888811467869988191054455508885038625795090011792343727316911840572962343641190519370338671710810440992933179037688824152431089868157039541989012700644513589829953104998647830881239172697391015926041169871145871187035787277331966895645429413132115733685906867663960785796317924425932961935638882693151916546899015824945600994287270110919715386376969972362687224644006632090860678205357745633684793840372594980337087702724462595572322837357072519897184384172691414338506872836145071769513346935484149348427004718965930767856998387806540883515629594691865282169312608196267919858586586679459093178838280848278125122303766793934382412040258929838373933511073488542354784294033537561695467199493988234577551849906522428532981844394057846532592071678513758184503694724680303133087210246646135570090285800736763264880544349528525181821884342830408006272160816345783464875005101594597976897149973451491456493580527001192633896156074521500062770721562623498304210759349772542465405525349224499178154371437445808538191136604841927034602746908891018952713837171641967583914342388016687914732542548132488313566981018770706569938881266758694137627851292443404380850112242843717804468500981715290659573176919301213080985481840763665799390933516386362480306116419248812183092790557460989545250397725060013556668758854527991754481205953716479771743901476874582301514355906426198205073742350522368921199939171979068111275113110949463886176180920833588821711534731416970257151722250488718734636068698769149372254020034098721382435266570600053915116204490544598539203655762497684432250076051346535221188360651773731348866236692532714311404544871812227760198018300359607834744600795152952171211881923513038849860967659741259284186594379766637540045174371551760751333888274965974768170509325427621031801565156867124566914518349209125620810220348289714716504462890551270490224564195531956471838360835505403914993878707039637848483248592757819163072702186628378376818066005559189323418902599296706808721278995187481525126569624428215280305919989077656304054371609822750204475313383268198033756273108316796255136159935788221460095343730688901382137893317842792222274151118902376302765567193842992017430208898527956005907375687653882546815307235667750011453492699699477702403687537246471212254966337076764822245678397662095761716902055261176634279498113833939708210462259196171853299478137250468005904305333676459133125019115809225179048998153368349306968042115950237620964788742620831862396357600811833214495793958004739711544609269372516593734968966696108597653860116546183054555862164057445731940880657066329233220813558021453419236805295575175442632967959808010017217999763445122952405556243913799534878886086455503671815044688510349987723533919753421077587156613803578126639031525591853114912237076563171643363153162646463355190042828893900445890507031740404755709291228645485727632702597812100044148680631275445142007979609212372361813460250500362536960218299482836006480548016507012939639674374680677360713483267763412659266137336093618352203130565221546200628264265106653430617879694204772368777352828111320560008062053814145971083863200028749233475618996650634056200685039554459154502069972701871366358066788203997286188804841543596762632643035028576097061082798334034005604944125417133844385228438939697069599515575131019925363354108043643113385183694425205100623694750077220148875776088657303752664363442857586706654782140284701056001391130048829864613172231562378757755546879679891377838259005060576343579227498575071140655242797163871637747548100815006188816737416583477794000089026150914491512710889575712754576785582257623712904312387744185826388972908856390443610820495527703702349196592572458085366278611446859095794968666866739668063259083226614463802045996121606293723221853296613351391019976256923289191552575372593211758857161562536473139843880271602472082185188171571715798984016747347711755335585238585359520288568043114322657660352894711712404754203743178768210079051708407639725064842876317836239810498514976836068427757334840635653387073922868278464666251788058801078187664752421408816095521368634146308477918187207257806750357068270846412817905355167661351229891567020723775047233270819391814447861331069879459058013049383181385534635077801434290463710590106845921659213546546182247759338005123376115753380399293663820307959447419757163209588445956880035971918754763023952872174628329431964167233314686075555027626578154078105524317017392550564560343988376583474780226342100241870184578718485660111088443488359207113097321724235322204900863558681214525289920976450087013378473304346853144791365429854878067558327576433777668061841432099943544807068589458270908106145696305079732748660987643873427895717185124835715303402877938547463927581134011568038234042377186468351116119453759903221454403948893487881078197734499197162151393841477809742113019885735279621919483066816398335355540024450411262700692276145390740939369417810185025367760787686657109107766942895944835090087666775334662100297847931864777685655395609540447675396685352095881940495430853108608934138655299950334691284023061439628519195761404913782361865376495822828284398016355054537166010650931240643729382290375686307140382799169452986902322515172045375704475133830187998775600446641469162231469393022728313147509840752800778269468946331345794119545280138642785264559624070758751116314467682927943404648875629232352305366181366205110509436349558462187356465514404810394024599519562868740741288306193662056148893842480615459243232066304276848067814636612061657165787863876087732754879232511033255701199270047812980484954837031604097831067105327852333118892736609467220222112787991139889153922615301716437047713920978267893860699837722449191662171642298327198317949399433151179778886983355969498268285861522744181166372007052292645990278038387724151500240007103916142884793027873501953930302832939004659326739604747738869113100282289637919497574231091576893487623599301350927416552655731427433257919965978811547133163584795392517276841358181869832613711068802126861458393151205942114496004884135001620276181342122207164236795236156324030144498948008744684132584754027422896538790353245275141283985290068630561746192156317477577016487638286033744741635669636377660031450223209013692376640691665971626969413826690440521213543775876606199979897998305909332455620885546444694906477671075314136890339838208867450115962586027615992497301832161618303354273031565022109228222235780900915980882751811609487282628578324462574202557681204455982664565073843041065489182378432321257857483539662303769439678634933319691201436631328801188394321594863562493035967649558435969087460379344944092399428091708718602901062328043013334404421886496732473423900457129800102275731639924418375092857707771492818297701948561710125622112397045770873636913735159037225752096945054463207272422920684911396172742416992420880669001453774875350665916736962221119206968984225902114585902464821301966342876535473038826911794154737701203239342398803154386544210678360353081509031168948534110277639885767827523549459658326664922425158398031246924356320766172953116659803175084871663177502991518770486998926934647310717271225802754630966670710908450352215693151534515655499074893975670080363744908876889649204317201765690652428847796697493414469079000848455681373316322928509575859111039121883361501486153311364199710614292135882920871121810967064373163076256788654697233504711381065789987812786097203753511792239951637030368406363598371577730195629091923872242529893647185829346420762694573009286048735023731930105706787731249286868102634961404303068786443619867457410389235838361736861166035549740695751121310556852430234609247347975365818308006992829589566625945467793262306651164993174816242906752105846559428029465110733657722489087727079588242491578029425686095180425839333588767367093074659861790234042807298882641709206484115829804524744320794732566726325710538886658732101954993795601732492368742889543313616350572242250044768268084805742500205722380449819532984473815342008088479349726426992860804746823608541167992753760057186838917593307750162860115887247039993388898076511256702085008518522264552240570661714779376958135276990821019420709973476355824024454464664819716776398643194522877525593658557778903806510737799312720530648269091748753683827279516101181295041268805768173508240860558927041069224679623402721211730606640877549501259199778894141879595683384852229653699213936718178635903778205590268849335076527316055488833077401926395194640728405329051396737899607840672604059421398754934630439593088186272078461539140489951783726703051389900739798106886306270708341602216036145483014242165457674447919124531063613720989867658333339083032581014018309975327573046475068513870225024817256117668508203978913922233308138904870778704020422865938070449281436546121941547199176527520288568849375576975701523170200879449295783478435905656779921050692398131373109735834143248590783646293113820496982930317072643514849541355453458172002062936357700765999760580633711058824399942459939559970872342025725846539643229457942591580943148893935731161602709506359842057807106990741638156386398636132967871558419925593887615350565141020762698586589366707530659439133975456876526239923252527425904185570586304602092730101752920582434971074968251142431798446023359108524422840602828916648419845069784349883695652628099394569179703968707725176298961893239394209496972809923009421791107514574692918373014256062738686624520510052621226995258495015685069195455863522294968867192751768700492399368967786771391067813465574768225590293248990706146861779123898537112563808010581525440723176189863062056926851378285689193770497081399063195055708620117164840189986323561710266432639342936722075428452899982303169394100205616886446973467844576320667411309571398643864199720515745213451867658730154351139737606784008772904406441000701290512810429262174676345794583190630888744167183275703504464364828934154509851705734967995294082868687591081115324899906903424210508415673290633476808587141977239609285011153934837899538008096708837665884401155460467402734145035267435218499439533251795302397994449284943547730158623611641978141091063976548536391116040549676813962942819924013470454374556605210340294547948824703948689411729604493309374334407259713032676608440465465855235915123207363270299459833887950281089612714236289755314627279932286320888689612605920231440199043603983629793952665843913170906203831388600840469847100215464750140346796586357613828549442240411269137734651268675871375883222941549971642786971493490251834414469127984994731165409690904953917066596120857521732875090481392396962663694676848623736213808340584167263561586688727540189001504730550680828105644591474675088067900631577253993329203814182842912879389214071705260020371461957444267060634880887227132849373424118965645734381869003866694129565867803588723439812932906537133941617951231562380925476321061789409338061435178669802506156056000965604925805100455527329943293685711756612398600386896627628950378246317293941762072703271227331041513442148000513692160443603433241346125865996019900689606361081316535401164272755364614060445135657863871143886396970910756359694290718728284505172672388550514511975051199125305378839112079875840534858755464196078027253566429256544240421873845034627781286441297694750219067266775882482811996054074349479631929471655481078334704625103090883110015389781694784692957057452430600464571795432914261675869646444167915191505388167830521163307260812725872141716836795544488231971350233015009501284111611140888444699818962913721229269704550670290222342348610161246496935233315812272252601193198706475559847940892459188203080831255791604364579436427856421056677894151434967757929036857003777415675553934858813593249756663668488666514034462484285321671812631510411732197672844864975095858741523170791267107767702873999504124964306055391036180839316644284931950346608161981061266356874268807469685930286530267715032385543948523265687357033821725883473756599798069642036554662204830896408580848823015068015489519797667041630566417502756827126230778125566153538822460844198275677967771788445673141076034517175391585736334712805118969675940401614690946015145834819872002231090581506664905434838552099937433563829551444076091656446116657818914759717619445284943497383648727428049730921774049730001275779062404229594382212387155461307178269271509904445730697450178647025936381381748708427318709114114883174222129525846052134435471923292436156299460887229662678044623535193260709843213528452349521638138439237069354666237420746528028025531500889220360123157705119622375854059907280600315093301932721928818972498021327640667517142122687994578503574548123791958822029585160280444568049678282472037094587337936952657419747087950804384605276915037119441568403824058165427472212065700611863309755646197967276905051129018029490369282465649117309872740359872448906667786633170002069148284736882065680456577351746040177170118896056539260005512434924547954352619901904593158223387047695308338187364664893553475488732501893716004952075434750169717097411998681836763728799905936422614476518904489699464475026200000750644948887282704349845350285872749213083721091016928768500272150603762042953878138005920415276514387514757958280024935193162190854017104140482213081029727937716834296986951608375837548655928395205029890741330289343441210997628755148380692723915779459972020238479002190047040197446955301796561542770523840033205274264439934238709770954482621930127352418974446886443006975652032031115131182878433692039705380309477336340307211341552218469831634521218370850885161484877189676168071539587918790542398528774852395119103360412157352643524910598601549775872997047541633137914574169558608698558017733348259340953659534407534359874047657815696663789244856185532923211844725894839348794827858479714371804734418410006197918398155111800080272372651177494405860653075934549828283383032517367059544060288416171656519385385982817071388548244800375244123485480468273352281055072441708326418231774536199253634267139353827082954056044819138451994096844195506262711717265046545994380253968431134716888542366690296324005582342409856677375107824249622463079429283114064494290810109722234247820184214174036673073091539432596817625523826794726579083058888371827779002095725132070352613585130569721547071739395409567402607100005979966018507353840684852753418899808631028636354649780924355237288262075541071153717689545163866664451854117190545870754635065129212567105484375158515044490107557091745805179234010660635732830291179906202978834353179678092310057494539681671539112530695309966972605078142707657685464560242984245832710171113400125193290991678977086857300767393338999889376214483825501409157963467259538172899908755105460821994451187043468260750720629703281868579686479946933017149652843572058573476099626618944148331279265151214154150273572237398895608672815987182299854286150475415840710361622444673216324193429730081755697081566366888462791576170483135313659482750113871815438171740761054193056631288855059541331084090186118704073725662942548182753629337292384210118208919664784302153892589396051229815390156966377745511003687299451703677950112172597165179700504096305187236218754135919153068709236860743288062751653376856077305603230443284478105543833554412776528365568309034551476984512259450422215196449200708694514656924874527860781141992154970317469459380345119593040652815958593368687796363219289167410972462241242117347483307941950831073843720705762442777054523988924227823136178059103022279180243113820620958776140521219867818586808105134789767148000039022480055825516940225632747622130837868565106428013678959879361702632893557935694885173419267408749463443095232831644331820897681888421470336771266445918950728493705020917273551342397077613553962811020967884906345882263000448280480313852342017959277550585911224771303506302452326871947943380282996542109423880232119362767765441217668223822344409373766068909792793271882820010893647258224755372749944589876122202796982866876134635492114481274262763456976953467570268006416505653148218821046280192460887623636055097847635442517632872092959426579247367460080208066031202687988048340466977864988446558876585063601342112362339461024643905685247041842417547824194329983389622151682537617343434462645316290392010121389977681138162083239516081306366106566613871013177434263321266357490663280230759421264469143514395122338350267901536799727783067290886781029547079356637515836025415232300770730424475829476319406659964149827379957933746858336427320465720323927333960542818970739491015182789475668133547601565728929306873566135820315317089175234361158378409510460421237420827612553386749264183961312590272232413765893959701616109054540372181021654922584087218155944852458396056113238304474658767273207899944888236409041395017698917321724245289427886046839903074564266686626407170923333506803747324768906982095023798755613103055525831010813586874426874789550425275350098496608868285998968697341182832636361582689523451865764735019422638355983265068236465978455824044214283755143030139955005639171556014082671402324374480675578628545705899773985890959586591543359368755118034764672790849299321267417076077704448620805337454276828703844364559191651516774803706354427656615608430929518967827926654081998802601011600506075467691078057171747347010311408831242348282041655227691527142556715642428899573661082733517216469816856459652702847993829468480409479560688440052597969054660588741336711690082310829406853758456816277599591323049648713318228751042602743792071622973304875118320153836684120892036371591796192629152636476700331273863984356693065051185387161377466945062015591262241815828821413315124862240124324896646955423484854865733890565203212339021373624512805904310180908062406512202028813220910467898078464111674892866038416997423008910907225056912405177591930411359089021986175374444096630921311665190313166603221826196479083101419151526022581210406154274723703157308532562195315249347029622149343710079950175464979304189731994307604745364616611057291153947748902114958653540419025446685843542976399993820416224188474643797845882107539057270888215196905187580193391109523420569895435445629981934588383707036119878049545350142210107413817227837717167424299078064000474630330879588278919615994769477420020462863339741580553096803626149716170435894357509096513927825869158975873880802662569748845144518410820893603650390601228119345068659217062762271367545744217833567174334270263639839471806045737363327533033384813624369593895721979683743232996053599936941297992716348540301614199791309976838805542550592985169789202447365972504409248209354012634623822934835360513116932821287541997767493609149291097197905840146347163617402460913508918886719217743503346200431114564631758218222743148214291538982680424705997051129819092753812384112973757560574448549337550498856723858809077981801134697997299333596979312767018341944628714919095138183742516768925205114343983940372050050735065313770857802355471009789373401477596544476381306461154172560368614152830740002014620941704753714093936929006455949713347338772136159581342695019016444852561907087163304686177905485462051420183066955487805324075194882668944690332692716724839039549587961116883347689725592422304715494799410566209646351494285384682878688980211998379179223664941648595070467140096533647464689763907697766434169693007390994608456077308355562831520235983003238780965136857770934876997828728671234525854618104714412332389081167385658005006644523828969229241864257429178772513712380627271096211418939820011029195919202358826991946496458677787299568923816892180041247159794099719850904708939032174235211516590127158465060904777180843572627738406768315580642879542287341436070278996897348877105360265041487821752630881442272904575166008943650767211575647702386008734908640846477708221304154967707506707836726103804840267559189249402329938652352378913636348709973250091435137249705847492216666093111211948620594008472516419244641325337528198634393068676540313655378398128539258999327842450713651245910242900255564248554032815507633361121357525403093730015258057201978501795415879331603705750667812275573855964519860271991428382702998693014185730293162295558716301875543785064349681111810696784357405624774921432629658264009537938518821318252062842782772832173124963136710667253695556314053164611887037315677415152178704639872394826874172858454303028409039999032018865610163529416299680920056040744452039083858685761580412442911439128159360612307841596370718747172210665869980996512261939381815010340433998431157925280358735841676768743169599223643988414582206910815061338758355728565529338371215459657471419980215463812656088607976158083387593275233025053282521134184756225960741515450620623936738587328809012942613655923200319809792227857618133113882958429384515064918643255723844986683185909977368348651125853905597058746445252085090021621300914063410443548215069258687656847494186702919008297617019531835276601050662806422166485035037651455803738206081093185229104479606022477334056108614316727487880877887945785612904010623454010808372723912121954006164605125503801608425532472487632379539458733194065297147531189153097035546873809877838984385535220999313689331267923394873550900466902936288993654165117830228464587297744487372216020737295341291462191325101880630010513356995879178905376795587945007028112824334294022744645133880402461437125263327120708823759532823943315399468199653192091730543992040369022020692232187024767043280892585174997046469690371913744080838082067382666259445639138005292719854995136936407545201055334212856900618829937158728540443374359433781947266352958131639508920029379101397066493767487959846775800554549988173566522399101361408004741040504846186231723741291432265848637702138821558417062089508845526999578325749634128594861169129323536391046745615128546229541555574658252704415297495886111693544373210449923352060032828570089292016096583152905666086661680120808971525978170937517838010928520328188735715989563298312020248758293197433664035047047916490103740866211633938336180489428680165347235464909132367203813159177445237798945198577208023009424915129740162527673490086466210068171151469157537059810389344720800473074793543911246488250612786445335006146293173822963739624009824009819424963238287102860520360324507005168370448579165420341221935223509922722107059113849821841495685259016613780909660287858775928165691369711871183652885025001437461821339337866142757710060569759859459787206520220789548408843135301190585814017089567512597231411245922098171804521369025893486228890116102972735882850054676394408962721725794174740983951859497440974684311164981661535656321963895265659477022826901382712583931760229445951282125992872904627113042768371583495355284263203914550388688477638537552416950320027458941248346597292538890344474965784387632410690011302613700567790947000529802611094791578183956646645192384013166229342735826261444684239362676329682174140980391000039679589816062536071008393821689164994608023987622456531523097816256462479599448644007594717318641558975589345287720688298489638520594120685842467499345768745956168292197650338332134570514384823002342900063437788445245975761353272413598820820952285828166562253376228512286522504776368204806071604400663077829164650927352667075649621312946165685418845734565476253851964824847303516688476626338589635317209341110515488953481006241689179291808149391881736627169626870706748412735577647326922960868039628463374259145595325367295694868592375220079101139548260975500101819851358339123059101127754243876462242597928202007067857171943473807621173581096083209629018207327351498167969806985571765939964291923939854737802873720589063374922769497400661749273494656518943219779505864189103155057383085200731158264594216972213795591711013038834176464999332052103509889626393177903620325203696627525885945492450853207571545104854154833413996826995723824116339460439033554848533534440803848775459903541460205053912690008130172206451782959435786897068591104451963884900696338350771257379616155823146601877005706023158627584835878599876530304498238896051641380306799704939796750451574378075794791196348982446002495616977344516573873282240461662567391532996234032144244763580749922966982426306756319482490847624749002272742719356640735927163743481291243677535149748605392330512830763145670927658122302913392677247199081103681444574111156613410560122461972631280694625560293937150561924477868581420224482415492335651917945182575215137357950257863326813854244761584642753677077132391914609640550707001652436402547602846652015557102360907155036546499874260292301682338721189353920683694347744169461798837521253386381786961295227124857593638820220210573119632386828180489345352012541063000323925647241977358286379764037984780368419721541453980730065400324720254816061391937653636400859375082429605114417511572432177352621843686679934523213974177930591930962127554209070079265634052902484037611382473430558389776155244797565970390239021484033917646798815115579838342155720112647393455764424517140276804209167978948011240904118859826252936767407155225975049110560883853194767485895505092442139408282529998389263845051405252826565481803754164916062957400373649095739932932677060035398342623016542142940719337012125239293176835388563710808667581931119036356409260706356250047761503295519708791878608402188307683053352734209729477597826561924144027680497748649516663046241456603917305764030516930730162511748880924239202029701872830435623697524652225069700011729950614701707457859420646383897213674481304714930817716896020895796446942344423745959157155017504570916915817604673790370008216158651414881567781521437394024953675169575541530768619137750724087173330052520352816063683008821472415069648626620720452817294953189585394103436880540435138676612053917378147011558489602013622826671590459655972993246674355756181759579659499910915401020226097149778964389296010848105795368034758645135281252459104164050398812247830166002413413292798913425338845468842858609085178487877236872922924659314064158430846082910654156340054699547806686167502196397212965549490938458401607230303013148324572876241971804145932381850110450243086182584870867340908497085587053748157758362282546939885911394054796287862681392396445611909124568446813091171051520553828857731528141883748141332485124260247215568624376793490488985491163335568505154112036464112646875733986307709422203472655089352852596682835889907992820549357272820819953286967463739195774999510031502087008595631375100130509680831178690682829327303936799905257209562392826560844964634875428012169073383462440674053671531282089801268706743906403076254328091964643439180482964812644845750301892232462105199288150904703815398194557799810278364254746483289243538195114013244296924247546795578144142859478624251659796838935328103299919460646957155491285247356135822859486292279073677948791519968803068525295244985000940627441608113471657980139668351987222187115504193178943414567624997337039502797429450211281914894246848098826859619526118495988472387673221127362820044767381006346056678207199639719074131046670025756908631471046883568349582794818797018953488423429613380472800540113772146342843354265361761014041075578076536081376610859349367918442125160035754544085310001966402309611975920817349440417235071894894341714365227753655201905025286969498952422330025272533683130961360924816968292942271768956010072725072076322307408726582292661878184607164141541894219359560288729590624822931219593267299470185928626915985003217692832997924687273049358790273890131951297795493788076932008047417896188950794654655512184706766646745361406681109516531310539198975989229117584341882034954945781933681128509328713427227987952967095026289674036589330408962873154146246165323736187745371287289246537239217673349598766942091644359898470957827550729959998657356744213223340546464421516633120445107693403963469288823397868234362708986934013417800922279501685935753245631334805751778645027668824162625283072476372682999473110186546272371017965673501151425610997290462928761983790262710104698650343823506750857963506798037067194029850699414535689158735216090812050408987525047311794550375017653920489875046913787658578931087134983671302936183400788613210483157902552294097932129385559930993862695848674029920975358134621202787445528954125649023280796125902667543529824535149469065993979033175602207860251550298970478483627103377335777621305502439463522929360645056983308982364950815499203133750615391648231731852314839452489790677465664185545940154424006351256952934004127659184737841858386745889555004745183541972630839846174887051966956659806562141355561247397458319001380087427488605136869409222821865655495759049452019569094132797610113158559675459072691255287046897524690511667217866114360950796353855202955731117952692573703818802603529576797726889780406691245537019583161960344317026975064569132723867977167632574189079320947751474692702184165026037768538206145942458131281581765028556400619216963934837836806359348617516058024946170924878043945863758691927823761109586814194992774555476543821116238446504557366792834034215667000124245443221380159582820122399650020470890688028473640087664146290700432683774841250282643182291692786145658807752081506757348785531451108363879214926290657559541028624099312580354409569603427267879948436474233752673125213791239431884175270108782896613259358124187164714402214714731390855426743699024001691419002159765007732776297436255239016265097813543116211357500431206683620575946207033986615743466030979807466180444408023287986564646901978181467876951539155501618824407092391282235347257680300992220439501213014384324472573965688482609610580166457184905326388048272757003650505289591515313271563566166585512456417366664159951799300398098515493413140197444160860034943183165210703061699634851386613495101299706550926287297444336090065612996087392338896422221747930546589506951723257172683454137395131235846485104016798515248115499657107331969366923210715473986366927103652865664636659744629723500686976450313452226421461172002547319204868082197890291863887513455121134621532226803207741261793095765975286127077062703229169612585922528380113736410507722746146182340885114173415644855860363010644051616284533706699213224394356071296261089541173449225601717864584849571439155898230262798731756496667202923658707736941778855018713769457963242477565121982688149567985852686450537669081306947677361160849993671644750835464858935797155542476730661106874680506445867813027518732785110267555332819464889249439102528269186457184491201328113212042101315779217803393418861071822984264366688309798518177920512827146132318650978577900489346267337132171504688595570448632570039022485302031051529123608010082739228982900183430669271929725196869129680674628996484471057565549490395397302273248727973137479476776417934789953746115705939702522619424594794957971938209859975865861683891545389441862998199078489789388970458408266644336055201891073713838827480471102982135841520789395958824522049484628255646000438347445459453289393545463744613331965146253885757890493298479676022765218446342870333478783898863998587203050694360679096267260684614235296087782219289130317693297655320144873757020768694091825415999530748103208121967060006927110804031414092340443012048589133275711800399340524305253183195625723344124875961880188087553511675708030036484716431752475704630475409935706755694713641842936942335253775775682424250272544012527205965066570336038116237265187909045333445623677088137243728281367083006493806395722175442835778530935230066026835219518074104928335407180567977691696756916706403950541396143513734662104689705253403235644290356530596310580101451275328621177958549154718228017114398527762661653525782209637740679837653113112568362937031531196341010441934951527175109587401435166865723998714957302146257702263039113765294891332782850694872830424752950616662606754678973006576619858583400861767019940006913789689625387514590031471500416542142355352363166834026700358635971675193312280279008595812460476455791818039510539992358829038961433566251030238405962869804767145287263913437729453745528947441120200640735223051132530438937763896157770948029287714064649529874224825449699946320650064504380711927493308434571055317908227030374897286047999556486278840879364507124045190899732621750717399051644728569784961864512374548833762741704393930300107614435201455083760355669019586680555650468414590883610839161659137787382108956044696440396071576360086896167227632810268462912658596395275801987908141173939616865306186175675354916698569384165818690292092807926346467236077242690449017284722246558004311958080599295319201037392491373583800927362905632373276021078178976000524871824490498932843446405776618607758148479512059766633076826550766919287395070398890751062792071268503571003449411885582691152298347624378428334127432565287978345513271149207920463390501272537316257174166728843428074440357204553537369655877940777219757367599968805806418929765834583431974665201352906759855478634576369593593244803781200379202591739669140048113768139554576983743004778666098271117168310047270275645792851255543422977089525653501212538512372920451821471228909573802484918680759242667978799746317937958368177772352778095206846888364436533540144311199431995268690951179045052481759341261827374209409447435938468296631890434625573358116920433309555997136900678110688308326562085008922611068122231405835829956321638503189553115063408425522679567166853054300009717609047286143193732357816646643941563986685331814305135988431682096942100918493434451596531244119345940750807382039818466674817228037174806715185270160387940138367090597704681213410615145976151318678761815342201222207613701975745520606530854737605604015794830390152221927348038233808493006334400735979758793340544056632099233664587221456576191288448144520065650437755997951736782812906308373842754052776199108606249358601860774279083514691494927965478107797965326559861631276974730030018747444784912930987886469560360186411429986350479105560657961399502868370987146486920028951064841414684961838667236316675508778285389602226932725516397121889183749137581201437538951548790092284330459054351656059015206182209090047909651811236053612295240361905026081153519352821715685185887159856337005601514986160330454683505098810932691998840124153221950079767418691410223279042804373555151068074043115462020573800375291290999295401169191620986407153183757939021565125869696974567589237384703066453076291662059767413056819545095509063758386370814496555430351355191868634870913911668320939388600185398394721410140774041898137727646463441841732586805475614021115979427679582787723587234741661461765124684723988366180427539534732912818052799184024010380107889650533894716957374436925121557418289590727324202880076581077845407295747593377761115855838545419049045530222005538430163481918801975848439011209204782295534294064129465402787559175794369567560772686252859706055064096615279233653792679580084274771982856827026741204803543081893325984549979360073917450420834569374513379800840744627915246020943030802735121383553735443047160386422724471434035095132587483004696636445199848918330419922765182798482868533753519153797353933454235383249499896548480354671404258060039532590674473847562673543713956401359460922818231869623796952341701380410575325326452227325643539296073852267095109160617826826731832354189324573655341281568441069444791983342869063134653809279800733524241293662286579246850184891801439852383129636808146051709573057215675755040842299736088764138663780074684742337531483660257510692402367683305819981698027406860254448925618894842936431694391857732350349517969779437633416220254020853697486695528162073657373854799827256707217208787045689620204756446914317924823388397015701391302982816284576231392494806745801826682317225712964091510598161269694639524733338530371818055090903601671971119315765973709194715867207202646257381295223277638739325721465059322661350759849595694779671634563093174822575112409170573778485199185144377916629537707143951735805010627128067941006245635789566868553346884001879047934735733470416162312259857812087844927433587841431978558012054459681359765400029408775742537108644581672987535534886915493626544573613252464914616014871865621636375141056870848842649010695510027232759571470349664166065436078709006935799155361536486984085756442290706774423674881596463935816549871797538836186128291088056573830743622434265601487153989643279939857117703565998773336511632604895741361138146393200178089350593128426127650563695377826376668466150775768489863169433616277355052040182668625024067800629910508385275727179468006167785893291686620818603104487637455773479964736841312924418976165027481597156318178122648126403035564598057783170770954038450560702165535099932483585728117337475250349284354648497826044931642853912572443675080113385406264009595356192200540795762114163046128084407476428637874825853763936105033609460905358800307036564562239844135456363626699719593416230448117436789756690050819777535858382497838696613360690339352666152708379324692285245159688549181803670969471814372404246721488988159030838738642590843122514434513842736247912402023195265872504209151903244933351794079864114175561393004550641281292432415278609554050349106973767766883701965376493991344485365186376613179571446904392242944071178704429830920194816334846080738992515547932998612046428815249651336033941780948605086887883280343309258717428299509160751204906359543544044477814023677571983907950845051193237859738359030285881631971311871411772611585973395237095249337199113391332614660014930139407344873949244837574743172220222973137499914786188214683956064324880827394124372963423417785969133250605110831148458083206022121553425262927797605566313866177942615858106348132743124288533429901000538285037219482367347511798148771297208921454996951166851502170048040938734082661452944385813372321088182981118010591562963198948202584416604897145610175812738376245644014815343102483531464446278833826451477972984168612072295831344886694646872414120670343902148008849319548143169348524156909649908825899881558102214070983973507564567931007228110656932098983609183617360259115071901116613000558836804715862282891370593486580021371389444246796664588467614142069373355680780117012994449264918136445496462224606969054677457510717654168217585552449896149461543961679298921527852110159830580742096425062383039486709430878196786446039152393622754802486621179108081985429914285811380307806740159389961067651249024330609445263099687488072433796699940036695138467328958204133495588012302184758017211247197935836691396880378694203403689184972906561286672358815130833762060578418623813777803367717133457328849323975347445203763398142742393689844058014225006075775857317275006007523558393492549090498806819751487971213822816885711057383983027126812730246389927792250102721331083898054774411582659587525475062540651567286456236110690150206201285158147972087169582667203271178834671385126726401153345381367059144264608748252388997989132385960742967547595622463539679565835851156244434833880826959423439024896173141604149027775766193451694495742562951488626500874924654334742649045650360211507157180999955765331957257259537314473050566145698789243804013347729468001110706499457498509597803607352516555490406114944582580539946573679955085961232718371340208574660750595453844848873573648309908431005619652789537718911937496614267471815601113358491324663862074238441618208618692637990139569143483032743714958934114220183486319297986272338725909823326200666905007596350589100251765439977699607929132260091047561242276427044752665017774309225992431803707253770703613424236788997053383902358706537350157716810471739064937186539971456085651202680206764547343496214530968009378977029917520316874057427252364208664837506924243991824758347110862999282177546990452895775917321016557944113740276681654196651848102505921833121264988696283058756746408111930508545075209033133888977868797179946627508516360063035561611711856834846799402085219489297787116273496024815426678569559535898426349816649958443994648640230363495348317491194676311560256423708054054296146382874106019804147343136804972787764633498097337566583176430178100148384435676230549054139397548315735144584382393856717202426487611548132564568465282855798995443106911941300655399508781039349537540563154007581634119807852553824488335514937487677965908771206130162738681846826953668098730630686340303017365398405339390138819382555208911237624897907576434480962614221551113362045334288958161756960062306123495195610321187369710913086146436244075521299671448525026810070646708399162595456405627845664939094811812566122024474611198592043622044558184984806882968794392712005118372689209816291247475140898460107317888169506756485895259192666315104084410120086310528531148535552123962813089401125245674377374780708303737761025715616447658739727494212646656517593967695845265327029511056020894618369374523004560179630059312693391457046125593661217924816686566057599627697761114852641652676769983691271327614838220537450068905263553568044421727745541331695799546196977689943926147725163618355437691322425601870370899615071143960044927413127920848871806522647032061123962562099821892987612780442412497040134653431442014106332125441528872474038978154484379321280720964052670459001816580105187769028200542725333050400095455616575339942166512401094621378801493429434919739159513311670435063232380095516953515742412016137809596574976634726994294746825657974862265511064510063835525441696944220116826645413837236375919836970231075891216276486587869425011928712932256397249202589394465881228107011311320809628072812204630938948071869856037319560094575349787189556423199758325492970318845224489587515088168493122579887618972521564040986363634259328758062308012026604179323993746864025772010462516682170556136406140544745277376953110347268479401110945896101949986175587102505261932373802678484253997596883984419675007026095630256343378190575649274855172757189092294693496156612021786982903196964247036386242557021486232800544252539700291709028981264043923572094606319517198249595547480746793279368341636340061038511637793027428125964569479086732993556321724465005590623820989101950376997494040630475787260982290391919163956564156566791240700176200610088504005603084164052169129030225474535431374089240933837258503078881263700631333415179113353743052886555072099388291058554186657404683911236723784153707296725669710865865189217797218951787475181726307753792162274043372310001330511792650960221380868870822289414576535900519277694176734752574374423228859160772841916641782832613972349523282626930031958653397027027008021737099935396948485356504202555786980616701404358785767039465376500923844936202921032772808535799118101852672960937758580864510089359799261775447579935707163861597566488857324228011425776748930809903087140067966434656700061673377639786483495313253720514029957615724994933156409808637098398390063574153689817302515407179099269366529782199617295328438243960086240852452154334809063867085089507324723236929664559143039009596287284515972258041186863093366684640161916322456816626609258898271682344009406984037439252283571033420135157945797062563066819092674001720663298036084669947899017862573991840925963364464760176882395438485061330895924274133326111414776017989391259302259463678748514983725489012717283509086644360587164366325301846264935853396499276761036719332611447971490441909917309548052037116088149386777886978143360854237260274728633992360477125492069330391421418703774687910370645004929290142687624873527935992147249762661303677725057808506362306563078046841656449237471351226308008919267027275918834051310869196076700576021505417382275723188161652123228073223719527195655334292051760674117422453423883090193625480880545423005532294503220767898676109816376863349964180438033839176689993140537770661215426870815764660182772082840107309692793363560644047114278178670883054213043855431634924192786240240312122556244395756589340228273117161359679883227149533193628462423631175264997813184518660419496909132558814502591118320116812921621970590783113740785663232242233530553164315105629646826624661933323938344496727041334756411116761945954656780218713539088420727334438244892310973455335734405776483026241314435716178080679852606042858112372672851171620300983347230032670961471706712089502418038936354871056834768162508738311786247883436502209097453352420912187963277587285433603707302766319824979901042039024834196584708325548678760572224810868939574461670568744064794283011111750154550587113479064851811216908998486915303245474500587828333015427623025654537561443348568240226514678331083243486486320706554618471694674427190068796659633934324049382250964042336384671603822002892646748485981049012260837155716951093726130747025528716561396455058442263420232809318575565724861901063511136595650883076312658482314011928633738358126688893347937880442590978439963192888433200409976022514526284022300243655843745293879959766151449495206357450724479219827629286779904141675290397575393038791571883596188038511378539109566448729499214968284783316700439445687216763524654922346373971511598056570013517385778895816081110462725847328694273898187316440866516624584652419074388702525667335707572374586087897387886519808586396936642152471115591400636582705005331832149728004401006711905806794992851810573636990297585534574007864455883837410813915004096368610317553923372350264885888939533661145773134087520072851441257202201266530122993248096660922856342036435627856288321289882690461088599555325585154219060918650705742663400247242699087120203229513672426167253856187834127985310322392662513331718422419870348985636443649911822291605340448462502399684572679407192948427423712151404869368997599622045256221672141844543733637773039833528437695968153939989663846800892701836958985265038986724439238589520331019770806105228817474903700202544684344485492354418996380815535366513631065998777012206425621251380670813256300944638460745570701872567805338754294401697537038342028312491705578553813399474347723986824691040996095731421755911386867645300850078541883612500643987660270633836387378184619067777258354440051583776680862671583382383047039064391314466246667980841603773292353980768203313684561947268402642861588188935365929305051810406859555457252358628056650204209944983159496454716772627264710482537872558536506016873716268870723529140581803059308394537058044730892596072038758503537615436153643571893390632414900326263208178816667500724760970216202611637456371145613488402383137506353647653777825907413174716355949206344873371066654488474330969550937510208261990541798771537897482920152741216284720672881860120494414622728095128853175550588403633999222203284159155245975229274399399553996818709371155394945077833374017330499762567511610167313028666536374097441052692442933151827245593363002447855479129971569262983208100630440253970954216256689926728922226280015338433678439335804728133226963491746054651687534165819860962232267463659541425358025619175909807163760657138275713222398361039611991293860977212899048493054774496983480063770225412368011105717125797621649914603571646080864658894143510868423918055281476569840935215736014805790052130973088733733529048914632055639272120848386551802265958968184190500133582727248719005297214582126469775588549032867836705623960332539265239575830383161257586248835973255257076098453902802238984127134781466377449370237118047797377041412624535425130681988013422714689120838182205373769079150671221503751709018351923860971336568629674728284937808165303167081941819065455249082256877034174283684315410234226771045579563314241451328725671924768305628690856846543386284308786730010184000263593469151274063452678911745126100530534768535548906323429758260426365744355539762285319050546533926263859149094355103179452280021811637756167108204648119808425862058603182762197889139342686656532236054057447401343792918227828151124133545095231176826647718703948198215940133887603621173223891541212909916043928269891371875994711213365151929894499977914930494216320572308167563534582767940344331679186420136407420656930697932047544529056666462507719354175145639152019816976745945697928126033199968519516885641480378094499423533374377665861280735420349818805672211409903704847920350882848219471608625696573653066209870506195018935687507987974659486151100709664869119687162625912167529102558259647302810309959574707421107881993913286345075768104697156924492705507580863773334212923047449349541167032460591238561174024046948976813096291105940843880176067888632412651714024748316347255442198308142360264141735693064898285441394777359001264913047112671503637432465760452645604085621185781753171231429379304575150923226777032055887495118154107941445860162770251229451558774313203785460406390324465953066895930372342859057376013278277048389950086924035806454460343358389297096351833233023068174872355350636813489323871446891950325420659654887377561508752197222074983082458044367238919891917214162856376895535141062943968286518227179918833138158519914242881649056960567508506640071767222952883761481929972724199939273915372441619055358532428738867801000616049410977072293401087914981952810091827503896023971344662544739976761666199355935260669043096075135700630728780893858169829248537548130908525931972060076918593670585824158006257814938164967241958021415353615604510374616447872454099611254723401358380513148548718824136497379166383986995774169968100518753786945485427401497739055437898995220329660091731699440078269159567745029269164410351713178452843084873102537284737378750098989948668530029582732445641288229614147266908947200060544341759099742619804577398909973889053987659811003427456113048436698077285215555402777880006916166578874076490139975256899088535542191942479213328477531802668300339236570738931578542126521718753101055247356888575175768782474885248879235948841927715961154866542060339236056364771940371499110460792530979015019245180458240471498356024697729953844795858733936867596765502016978182410397901330567273531209457519040864214310881274439342351754443449807371002283801202180197441182038099147409016469032019285398973602553602427404533300764536339510315654535040494224292472434688493175710000774979052672483644420970219765808007946010815616701565373053147242345401384693528990424978848167005084538737161503435871524788684081013856437950551402618528211456110832512157383880346102793591606536566586876807525533949030149838498274706902329397124716620433006186128684726115720520116442143200325294350383121845616554514774025050457386241765138046183826794767077849150738103025345945597259811848649751914899375512041239474157903599816746989997869586188844512284316682058579047492010272688567788548476151948511169827715849700252674646509235649220224221549401884582025452339260649171544074752696122047180860825987251760189769560393479378098935892598755921265822800614226671779713062712353165223903845395486914203508972567414366341039616665536373578529474425133407659048101726804981549284460314480408098415346788815361240720073376996786490880531095214551456095190884117145282690517083962163269038113152580726086033198036408802685056766947320769917690510222860749701803398576766053614029909177648342270915018213401018116295389956599187568087956866024439915605026855459957411826687212134333850758735437915190806893455413288044751317168852654733260880503050718195344569159592530655931692903650683475727381672612327115109906383900800642425435970833573955882157774324040473717382122055155446668101228823774765250156312033415549495941321739665148313771967345990403165778710484309809547688535683720216218282679054552992699107999205996715066422269424113780013558715993778895675823718471577378134970432293655062815251171069791829956497392717717771531016827101626431399503692122847115537101821501100852976150443399950682254002192127459202012089027278401129476569279090139568769089087261365861844306930604986535257702647767828747644913680867873214511892388660163251717586330612696363825881707276433294345926828719714278458304964925028377788803939786457452219148329846495086658806100273239323537614400233658250964701030462148205938440537730687465624872571175344795532571510999859392444387596267058478235693984793237061827104450372630285418860526713322906632033955508027347566309661090440774372408037940555372424915902064987518541565672590653708082927135633956257965691253519903081422912117934579207074461355161311706958772859938102991648473160537368853748628934204132743402380709768344155414708171133305306496383174407892043899887141688906263773743390698739352023983249835005526922384257329227413429591283386117226906190863239464871523092500913474465785316062230934341058265297941162892253035246278212677122727867283601110252025349377238288316329833963094680520427272867260295505457943660159015074119533540646614463704108570302941802503600282304172479510490075863425589840191709569091862796385722375898161208673281555476723225991819583803837495561424706872684052639607415352257808014834497541378742082148956297461068240514527349026248248315742315743358231306679859272685368100093894004332978686691083896104807062757482839348729981213713075748247633406824660579866587169381042502505115450810085742708186612567776769294258570832178460772103445824115446001009024790146684772090743469102393032946033832609828532310752399717785232393075718427823307097220649814011078046359423570265704945945598013608093112314126842137597879216816885158364608628847093570262215765194763665210872266604279666740197448414529625176923037311460728190358870525979942308634651842284292684933473967831585853396902638892055947252978025674360866764925110621977707281400929806247690089550406452847817427218876286066914274757227278983206762688436368594094293178437064050637864774997445248990029428415425901637570642747460539094039512337194104582662672427896862541480974160143797234967691297020605992606904397321362766816972914870744868219524262571865764353208885727098292178434667288781371280872663658449547042570809949018711691109786118650012498065270615647370603887720004164196295485385613215334403759313482610209596998765038677764638870132040209996791774879111618394992363573625706653962235285982918147471608144627174938760189127178974023173308999746354357423163409244687116054062489461158778906641617486125522881320147939805374635775906286497644022851202467540610427958933769006083904854294712028826082893301021432217456457117018770726202299557444134011698704674634165939974249490117639230211439728625366754971754922670948013736083206280082098435106528966303361653075495968100959781782066403000760084980217647861313805989708253200493373609367510327835481947193063171424151830819484231147298514353486170976497054914798691170813391333869593482366155744578668678544585760006695136894655573617319959558864169779633673511791216131062405110879916934753096690585525473331831510490551962208444635481188995960207439284772879743868845045630636880031944072167301399237483910823715279650724226115860819844584370274153116597431853840109390631631907644543648510887457663647077117253476722409599781723520013831506030815498238282026712560320876733403059727207612663094993417877556902125402308577594036557181629634754290514113954785019824561962424893479814781079664045774939720972506018019893688129785477165203300204422457026732580456747530663348508521704419049336389638008934280346350670821770278926158372576140803588209261270058231326910996143173231647501879646215692131406149124963001770288249132991493166929782418937623592886418505742204530552790483820576296149157404537983765647987317380719903202732991997438056098613353266131277838404228373266652867401029506736960231498789274596721611902274277670198185317558820378476525860258260506684457885508646246084537815476755491461056974353114971270698168711610285931249424129866215822349800929539672662848778782118744547914063761759917706844707354720273953639220150472263706277042605877197740171121950510039258491290911357080741280671546843975082609628512217832598674720328103024299029167428185003388148791860191447822651645651299864274135169121742131585849760589333694747315475664753097260015152561484910539670924909814757098767326388277999746255995275439048830773043859589039441655614444341623765677365877009964801624484137852394420137101598566530695384149786144303889319681707919296599512005439752307852200737683398705465141727689036186093877920128673760942310654887392156594345604070237127292623714778339750767983237484528287488959735597602214266582400651032535525451398332008143229698146355801182213122760698226911423491677746552500299451685840437493566999053014524940515513144133944862247422211409778462490818819470024848328235004660489296623041369680504460052205265593394838147351573209369392099969376448686568209158781611025862885116173446536911755466557425426195925429626954613678658410888688492473649832516429755144067200779442194855974332525555843390877472394130902511445531063849108127575683792171566948840160809437568087597749907381758648768708702507597797420512512175563745995775152246965803647412183389943158859966550019156762478314039346182431531695848382268332464666352877732786232416077314224108217870431127184526158779328070724845904393718317158556295737858820523655684352386809208891998219484634486544624950352404157460959575278232892713364204076048578803346392536031713222299985022806815482974912974129727354691848663803074422706452274623264482232879454869194074878394280511298657280150365545671540795082046327816110145100635866063841009413796138996205542201189568398617850421237767094412638191810263256797997537893459858808252242902096462018803435787903220172564453351377819919197107539975335283431059141622767410781145861839145053336337491933856114027307279794373462224608242503423444397293546812673559672498671203586366522623389553105462259489081057024791515641309633275144802457077165522847633752768384077999190111054178664645756362203359356083412349648155592884293675138199620424338485945008750996566624317286729239747054701487887776298617402430667930703053252882510476731824593751431163305834137506928771449828406895037959074855965598865113695895681418221161720508730529754941645456932119194510669230932455340770610579685396452412973792025956621444521442804918464895578643819079313017560964284977912703556444730368130493737808834119847474005217309307401161285262011389791231023650695385620198157479251203487672992730441076163012509376080617831478633007890536368646409313614915140618879824646140273030151150038843028343426890568929615470915441882806644768690023879737280350611413555304918750060061816596768134771599748978184657144174459114753324317315479140271090769585476395165742557363189306770421808086837111424810514944308862074933827926708079070323178208621053970085832934346635866236375038549960646984444819528558275361259592991833462993432589512722715566028931420997584250202174690946026432948339392990182065773702208684477610582864373630342165174410226696303563558622452742844151098121952092297869187833806195910106924047767947543337981506981912694761145876511808494379623920234379086689032218361940731422764183334501623359667108899173976059168773644045846361971813445693958028662508072392129685562442112649542660537916372567237906005077874230285262312128350513260343587858558605712673662902822775780054582687423614364109832815835146529888460868737959660058166740536817095117725615197204968111949665526930111639254539833791817826136876247031914718429836462639191818450380979986808981429522973692374038870309247494322222301179419329343346562317110932985043532935615223338661854504260783094194735523944777498513082527808452384818609326836879857754966706375244841156879709046907362697723069692052627902622286563043178436778268657222580807117038382754966959806171580685983890573760245674573197442747596845050177417331191311113703517800265937275575179180362368775499750994200092214769567086406444066274598555060448883849956748425102772168707360187633047291413985029601378285468263879773586126731072608566020853908752760172134462914032683120526250746174984141577656049096877775188576632399084107340632678461655232666178942109505188361149425837297585462867197592821306546631330970242252074290851522806449003311418603593828756532017779661905689910414967067968036538718765317653442903041909126207106851368653596548497493602852707545311835922028437011210381785765073064568179031936471654948627229085560595196023540861942900195644318905913716233418210423301543520620299600786170590523209594310514211674906092502796346546505090080541496307549600076813533709266718118270591095479275151271101820241685822238896755904470501371613889572867062150752971328812458966459651199579006607103849028223208861177099698407886936347145165571910949343879824072498644857466516147778869412210176455722074481765515211714387673443693051976935162612205810554004962639995124251820274571087028031108683094433276061801874339543836625073479034270112469932181583506861216429940811833479130818025343789758317796002920970529023522630393314361091076061510273791215770713217917573384998843732377184234526542542675367317201767111223708981471503831662448474490712901769146156539109643946006329395811732291393195527999807566899272160265034147181652462443466177179192554403630330725521531014385704941716945271459972374776285479041093863321397884681063517500967821875626179160279025539762055397247853288077806411393862295679508346141992891373585297950502495293841896899891976412426285107940434360385017214164174175065492625545689218539081758460425731473297409758568507239333086268624528840676844731687091286000264834629915597331565555160863049783055388981992274227669609647565531670121636727748362029498665775325120679740863023048258371870871187471366367948371508193048632639410154064696266582416945383292228166992828103763481055562609674918404962126560662506657258922877048985651381836222948134956396396787664491110789338318880744201973086356232991246688795144113674848364719405161494388237543793754704418174673291464232280575964324517717563356337373066932075635750289039771723809731097404889899788295640634928888567332677744308086961919809785735648486590529929600331399899725708448671889454749148458341125527447073985660712306002653386523837080377769984751145610152497140605642895537906756306120676639805310540609950852560345020540572931081383151959957038144631634590326684878127315686626375017719972717721443587037897415123063178821431492623808419010907362234130295628397298992393556806165790889991352077217119432410568560436932494954549729653338996200866254452186627957214515532251924118326510798638522892645507918418322555605764801735464338757695628537603105940011273207450329160955413266455991976607498580768352826555419604600145368530028799966346963322828642268888559881839032493951836063474508796504181364961849505081354983259365781777370663950690027730646779091334806418582597694728564817481430545631593173350753252438639240553762293464934793052446724732705079894350663244948993029275629429587946477159962713268195078910731565095323099469388672047230418467735659738600243323263906462700310719911847697449789996954377361768120299906679828412336956407461496087662737716418814625730866824078289952076140631730768489459338822623635278711690365882494695618953729920261976774521726811644765064545672101585744334011316876740675105032149569359814346486678652496537262509079383719462853574618963183314381333012563974615236168669937221462534237319443949986033044290612555777713531838213847136491436229574932447150317809567631723320013151774725405822413198419349485082907717283277683329774030860009084592895822401153913744532436963029376851525546206432086609580432204190326726371738634955759511533308276653065456606416875656593898327832699717777546262802035301997662392936570725476383413086366954644096256356225294916542055026109000434230503550452721993194646342908627537104088391819473060558415587881049868908395480628510764922987038195058323158546157761909070801816799264525271468833903908636152257978072527816163925844660925229612962632321375904783875428934719414299350052545057151837558312923792907328342429279817896277479860692572792150472858765093381552393975326696062566121113673689811333785006764990231214532085211482860116834303599757245073235226369913329852699915276352898686080099119979876485267366741009394210962064513700919163213382595325917394653108437346765846445333791882738330406233187236335481042466857969721913072022548051841409934353332830991063423137692228496008606554882693899307945518848670484738726280731236438948302049048886158032580929695754304960996418125712449820252028525550894571431757814727331857041276251174579903132002521063990155682728600373486646991979517078805350979479183778993915683811944048042520854249081224492807565711061320411106149868232892206666552626355356897353965271866650726562972263168336083015068283288693282861592914113000683848861612051455594572347533666699913385893823638282781442853813041661019748277977338237349054440452297237104518565705510635303822060670934185904607532605373279771496126535066917752911959061595496895207050666324462469133439659322015764049042969903019357910885264458566898946083288626029996598831390286069156490032155014948300819583445992083290076188368904796808228000402428511596202538951092837525685418958889738719317337969233713345788384374455057540099174906353191565825531946753982335144653516258024558009257004542333423461662516829199735254456665300491818199659258511203284683316906164089836149869253091285834298099156777112638698383228565935103189652103059138614396221293646769752654206959947298028122378394408038297786075933043095529030558847398376225038999596392828084672987315464522354728360500840477223544772832218361501400056308912145169903519534337668758246755270378825913936850206127217548737586908128137612527990308087784793697149260501601798093022269754356308978567278884268259336695243615502066576292337588835732495352162571603337365357402804492729505830920542266284330803245387048954372508805223431112615654421577681831603367281445877915649591740144960203860254627651814768687519004068009945184652230406824175181649316952287217502444710302454284839835214524408418511639763699327650615950878224411294540395347740812850899407636984375398123062428419821877655447074248961842307250868529826836655917714430702222804072834687310696466761757994374782625565255135947476795788410500419424676902988743435820786076018512479320631698119640874150518622069611336235680561653720189217289547656251872094217695069379083623350918802951300672186227950146200403479461974540995190468619230456034076745019086160758549621806477924481539034389023107904807277924759886557008853881273520350958953518496485882346546414952043151407514130493738667180882635735170138862631295074208898394400377250004049347288283966272289929601745002830641692951555758628678022865642223285482971600607988383543129126558654481727403090850813526950598199046118097621317329792005925299546269414150305524306029487011827714135175621636430234403284111763807563055115595947541929779099077159186282327674168422598096547492690341226888689130930252625757929704604316638492740524263225077549808832728489309781125246270203340818796079071651181433493336992544377982870956465837071433430895626221128578756694911510916095106606842593027097687321813791102315902365526363340209637513059408497362455944096450245178363487883359422085773404837967461247219057061744886030312950742940738741201307767811208372309353190725680476150885698231660176095360800667457212533089331977833473104320859846907423550683195079734953650317779783770551302525772176590819234795783028946255892129932721603932165069056535631705225544636505791299902659516981119220315505109361201051977137987659104243793225211408377655680365523020031292390611733399468662165518500354838125084170333505189354387661100895520576189652209568816445311879232804841616051199336806293518591389951209931407013239699409721147131837309823690623500952535325710889182494226897968300585596148944444168960416190382327049910570769338326946669010483873082526328714769505953025562415342778402338306564805457197196019645022831647584482953911185980460324427595214169975321285370312405778797407206644288423291536853251774359511965778859808895097674015069799158385222169484022692867689528778996263296563206548125454705222769872729419559229728093650162485967338883012761978777929229233173819748270369478504087777311005704949077863507024872111187715351881149912250241337210179290697080288539409954025192565057478036914036165906558808379411247111172622499333760692911489509342228698713329308917059423906291602061435040808416092692038769968833914872436798235989914602807236606076601975775501389255143783768728507291482743979184278364184740548992121247903111379230599492190250945845948139897488315677570094835457193352807049369394907095598850953252508758381775621181090152570255875699828654470685399097737736275749746896221256782650544216660653505084732439871521438525324965228590762104978875590712849091825683674919289962393391691046317931197652277916995150278034187647623991209345536747611360051059751001736137149739642603702186205020547661930022520174092612842444960308924750182377095664925372434412838494268590484983123441763682016932501339053369587364403888117898403053675300118543871193309783229702246913762272140892302007095457617342152554045121731224341552037621182844384226889157160586034230881354864756160229597966549677682042231461669665531272852134545620435333981351983996286270716612737605531038059602308428851333001662909764007731608009659343685900356072147303223818668345167518631296605221917320707157501999348076648559245636128072903458289215937047481383198285117002559529019802012006000844490640600995675299199250429856449149323462130927396793492198348155811047725382116456225543748335947225536592117584923604930451050363085076441108313664491286451530970415826511017984813920943772229592238531530731320087191472899401213929248645526912358412242481776619621303617175658214780838639658686623532979800340246619897066944401466577649344689128708672946363835895724559031144883143559505694826272430840446663274085907199820696027836059115242328702944416533411009896805981734890819993546526398306470235082808229752286279589934568717279943087040419168787736236164036582423314142513170496674411588339989675851472438008650017401974911801898648318339553175232715807019691854602201481768574919411387694283530186027940982948923808053537920590807915767723473908590834370770236505561351902586638808222164890272407459372010407462209292463059201371545079037743144624708091190431596927861983617561523624775785295821058016143003528764010757227531284341636984208081028163697085306770460228503062945521399044245523753616735529163062523093890072312357073302985261684648305600339033191597224540133605791533564277176482773778538337625668850961477605405084208404648459056112506933614378704494480418323262608238897299249389931766382753888584293286005981265628774948895474328674114734590216548546621265400926916882030154640233318606582486604462229529730754960973206652530633257485909270729089358627552780865228681620402737332746435292857032434779256555387156512007493108311699085062564165625804091093688901291675069567418072854681859739685907220656742692055636944123106437074921266780998931242713828211897670084595005378609299531227352850641451622617967074478288612771812078188462282453862147388643412887085535929602298888687760529449868831306009670457433181859552929263252008192292439683773030191036789136947860719115543059395061053078145245415082266387011761493512643615783085005372734250795549212502006405748953951769839909165685179962816070384789151896224914426935230910129726902269496586284402784700420186976988108750774529760424866461606192903689165437285132901340649433622593062454233263860313515527070377887048670542038663029139483730922914725009866708578494822062244270658969685365636708564943384228425129161780982838027427341455075606577237050964597936980445991665580924379003650103599670158118809586611661503132580937803796710037698963274655215878171110076950349960962017931554587333180859020352349557952004085799636456990425585412353621282831773178279118891909433857648488221528891927742803156363704961993837823733179238286917323157201514019677588421668017664115345225079703761884655934076625246416235063761588555549407354923873268264820831218900646887099878568154263584819307495474995354512234769435080956401071647032124597655080078163760992510553479529149447184027706845604518886489904058534028094021072693706291020845780196689327246739279387842644987409791009847431186089679697013482127051385648284434475121328063879977153906992464377452923663141732189993010511984977981369819944673867380829281603334200275249925308099358377377965560832732927140002220547403393633225112149438018676134672125982862905597487675769281791958434766230030462904940534430208680849745703944898162549256054596185031473778555776250930969381908941032300999505649948507053230672388900884429199590252843959175877206223400414480786527807751314995530531113914390933492199180547463454976388867172779910754965865326343981764170650563362455372048807732513565436867078407322528989113759757230824540236240138553772409583437286236806188024510336337423264897663361514520771822328490775794748650425747224312545881152214541836461919378126213477923876419829258487145009934606806497810099179436432844811324284329077607261714431738501342761173676940066826774456833106679972696187673704168150381300779168412597427340547093151774971162215256517831566283476842828758138551464498709528256470066711183206690178315507072901693207076832970354837762584456821484560510656364890171619560829707755983699500254662400268942662836222812035471200667238818640586570759876577380932890276605116212787420205263236104152179392489819987645961961006424993632861305398825342817251049157425205341761107950094205600448383393449822760798071321620401193801191754963843510774536366079604378190636166030689437928385241726181116243106602776575544203281885026310647482449296382166063904664268429254114706119381537786254491494174672604084935990521464082539981656557097085752534626853950979594760101074426662286073448577734385529516853816707752865344376799178792478866152920532561919997460703048805004174864285893745174723038109717115152170733341948159502731307967167745260632270075312074199359528954688010441434483841523204416565809293554606263433231340004077819613126711623194697748557076818133188757270549351803813622128007796059716177758146768055723479810691416437350142207352059815310403178055482835610391641388465222632580166101460943244985647105131229746552331754754473440374145917924659098884753959917526054768104490420938359396749859792725348491724578184787019760891855395830943587179465452286613421432309346832129046326590239377752508980191459314530700270990939009464413510413096025917870773901417540811963105701535645392252441682355684072634293434014324126142728646287848304816308640574355094251233599932773818855137573685657313925098044548522957744535238825295021067347481929842049519852945653428168372343080242834385329187053309922185148910628288358887180892661883285413598409328935028747089176891175114162012842054717884355167824368703243281204336106682839090951291951146707688011153523997156942122784318048594853711734515061687223852138018595441280464951028925328191971130634995656092471985275018427978944851813693296927686040159250713023856059355392646711026429296558096883277066212004501298286136172661168875640360079151920064091942080405495754064658789596249083656356570231386044203715371880755189404950942343482259738178007231113278680301082432689683394147630483199966604585737359123577076492186736229252618130892061525701639589598865113283727173261994072679758096960870312072167308794943238929860531479284114916765705670437397431587781857206363488679996780441596657549931817876090889192846631607183573936399395373985962921529182788920078068514546546714467901950172941424377644183335337822398968404238162724290565770904519070320802440194502531104769919896686429035299575552924027743914034480943472734668454916125377068493986709862929801908654807564017178506809849611442106292055077223791503629709137442793370143060550027032021834897373478746741047371408561117540017179439721608981415178201831250569246465162114938160970362781247166297746202287299136963479144246940378308510523298955289072718477197985577649545851121215713956725658392439072228277084372191787293196709627635265541387145682654640045090584570073645992019994121180600346964292688150290246203275469541833259978296539523070221476325175838636258963780349673901116280422862975076383637371044304964947992765605413635244730395186448680278234539051680140716392086327749868939748237680768670664432792921279602574495584813176700777659883678646513983816259276150687873276913103243805600427303123810470537179652311054157575197568009274341221739848288839581625202072298365379300322987952817129348216063812813624626436426304892567748440700609928614482908428766313548000754958653899440241418138665546260718294703925846989511195348092771685232508047735885589031023688251604115423062985349902032441805300437931915431636800738103370012193033309589118517572223893936205660618388904235702787933682900338322185432603555230805132025933541841602388850079465578340029548375004554107385493259404924344971424854251164433518418015045422479645180926986824777456039511039450225108251798879597022500748378054692067687186071993947549867968045301472820895800156678245530799774760206642066838929728580810918649182479838867049135162335713489694061936524858836750928367377069332821303829181087042759906190477964227367268578277193493056454128949497928786984933983427305314243839906524117399400859213385025153038872301641745986575579358862747801798522419340812892203935979721036390244784547157368628494698454992031763498281881910006882644208070310814184852691277763743591931877715950948357111385121494732820254337829004982132668053908992579166086763442940836394361382606942660653370556767765132986549523668576796741564161868258879746763826683841931217437323127266240016233469260513158473334268428664804802550588817992349018170252964891756506022382483503003218312305759437167311208031087809538361866607255557130901491634941872611926942480472181583129458097513159023125344527537573177576989641122693661627713316909673407105047461360912144437400860806383339236604536339832901624089363818193381242890070318688221515166310366685106446821452609345061837878064832862197368296409131844060115147622639990065295168970710228268798806993650810236066564083719997076806361726926200629067120630082102166521526354586671602239739432634336493849747552713469034407935431288859815421135082639002877493727043226807739398387887401555645074317616657322141183824485595821469911186382051410231710756710117070636638988861763904005149355308638395027213549636504587798473264085172453292790273130572492712718979532031890098338591405959513216109468854050086685171541599883427819970762473259358266730151874923473851742891852380884513285119171581846318274203344996167335362284969215532685505521000114615651010895441784326328141616939161583985072906619141715952746996124195420629965253856763663781642779144801637244922728219579852410092555223840778654750082118590663372314557467409256139838126978544534775543813162994776766801115979570601303302434391024874617123889041912058957438889405280800782702154659577956008083883628754385998848080200375383766042549103727320990766405328926685028961892543623097408092503196977932170914330438059648401945806106046739578415670503064278919126136233428518607212542165367865556367354259381034838324817809107845066845937479023936552977018093420442438344789127500537323229890134812078652415366870395081966281535984896882591728658902382770390328925770191543322659026196088834087152172294584496879616016189271436542678639566139442191911589104955258194196531401150761976594395647418448961346076774509276225264023637872600383627206825942521206902316304200076017654711800060041388401102785332056306274457005696080920714012439428462818220880423072714221885845911774446392791147970272055094782914822770033421737851343292297336508508486157974654603765074584301297639285641035251378720333208829302965649033626244524322362686960101288097924157722585891992335505388337734828637037676989559552171001277523074236098184644635747442213867987128528462827914923326481116977778146869362944965112457086088863559308779894742164867047494883074223211726611824174435787837781768092116982267990939173245910808549183635915363453133166586432860768834839096728079064254364737151641072441331370356034771967958356231057115683275597357341200477850089060599765668810339221064070144281174568310282025795216481809786406768335817917566472817039397591797774329650651297805355632703783147031610807351068275048291439150549599852544082739657823435384659913398817086951030366773884869997346814367335003852571520414022673595741537001439845986385961218692245231403111583755329406235030852164760776670421270282545267084846304761087732898634868276036759993116734921882844330279821432157533438565280425515672678546325765065476214844082237738032761266270524130508148810670797522548732568348704860190386915701069769522006155711204453585684070329607599245913796277029193749093673149383617602749021925060334082188713785690510231592554937158201434555705488684078758663336441372751728140540688222254518649629343211407020495249446960462032418753573954284201615938467152847380196264051388747462470402703521761492994429380003328155115931254582942050976621015635472427552233974802841558447326996025211332188681602901798548353978716021780317508688090305242454000830896652385127429808791245488007161989107777179879990135975267450880411896911876267854730519894227315775956347375417468010552200385739787697813685753058219789079905787284439376423278837986087179244750153890459857225333020489627058825136222999638609639756860471098734048921471838692261594788506661773774066994472421519799371696865168289792963800255405359708544611544392504267843214274192186393638393447804388719274073712648145592194766338365675914196421920958738463143675549333489129546797853167488767104643673334202703103587319013652860364135264089190027473247232977536781742198423837668233555486780691784673872405481520460841568492576799558343535593318396917722204526866321979960986457311931818104194362752712566628927472855211800566411484434559723158612673157030590325567129111935822515118652098612639463182635692238953604485803909269780403099460681637950199413913787750961434272640148850862536551542123561625456413530635489003355827988021003048415657328242185150575119997788372492032917736509648689113736076568024600063856973348924879035293099165661992773267908117320158463506297431666824105831602727789393963508194243395510060578344097092599617831602755354173323006670900351233372017624910610666720421923726520995266259885830740837119632731951002419906168465955290252950587983763295398665717709064512505760779632211537384301865096792325401062216888282293228606787053914325991627677092002555472598911530769815257156109749217085351707399782454047325474475371421200480405866015673072726362953808846624435260596029439319742836739066679975896710809941973044369700047202138821966451128921298580479899795260974255254393131896759466877636337872521803614753866236281921776825879666763962184229766010438367331719463657847723085529076577521281170983411557681461168305873611417145899836447472920665708463164370186874914906287909699841774566050521867754929996138811170687690953374799082729982946499074769240572510653177312440950645320172585280101368080004476376112807116896930246339298607821354996970453192542704051701105209022151153680875525254197606312381203719019296666010445807350841921763311082393353890153517774023873595963419527546987609797582206626580409292370145532744046675190769486378366751604852951747433100118705398146323759009454155862081073556367866459005589349291270512480871057698149656336701045618385673359980778382450835625198665916372475191346385609893504394645562463911549768762088303327116944421848286710822407035835642819915762742202496896900149283616549890849656141340503381188413366771964619353155509247636751076068537275191965808228401984440002699591104895614795741228935180880731671167659130100101361713608696646520855474681735376149502130232167417077789054969082169808447271725237158917821067254683873473457089417213316344152334014863260924437462704394817572885070657411665514008458408991282869536529499378539912388402817078894825220921200765041049333175034352510349736615681607431903694471591139890738979947343909207007192049685931770966056618165378555959015352837564033954612112755023048150898999036254762596288307225491445467966449084802338946434637063234188737856913585672194613829678741638010739299718490099325941574530812502661529553724004020283266955336905179076620070035423525694074492138508248134065137636910546680383493563900463429489134648231454096807633438594244933887612254257668401898489801722874329306362934867242460475225467899144014193071168132855621455178641266961193003334422499662628312162861198846803522562982537829752754613884701382726358573591945326642701443443415944191707407488169173480281795052347813747535977439832696420668417587665698025203046425753775198210480821788243073634863219364606360618822842221423609306821111607632616251414356306076657476548972112875465948468591299156721811220544036568868666532281484183307693671734843259139671446439535023640142696642173837947438133502218316907512645761875860511757037962413059277355699808405537169712117234459388159600065273767111422699053488102256450559505428239474846176493243764187093460691400718879788030931558160750798696729510358063553125758216325919131744893634815098710395343951627435366180339480878990612896618417223920452550397636271321772037907289783501901654271780269233660221422397301958886256610363407112839472703754701346259716589597190623844189386642214229548469241464097151772434683838650393369408552278932467643418089503538454591673654354446509689970570934413461734864056916819453746963817941036922326057084982814002769988818690219395998410388020939441693900803237873884129248018539555898804145672337223881004857043825386859286436671835810715451172962138046841939512135449506645373244074468104559495846725919864370912175377212710391342618472178552502450961548289869431241432969411402155439450462203458338139785731863087131768046564057783419729430182121201067416715306036752107282594842068771481037905839568720053507897643417232726853153746866728895649004970416539754132168446108999528849135584777884515813545264454988760613708564431115927295095173910078191698247173322271394263641758490200081079064617268618741044878326138524683026559253819578081255183633949676231500001530493764753890136964067222855910451206683013301439973734504363962299581804447328864482253927256951969526548091210006651612603167725648010307654640562100195810410953304969822875006317805495134167492944244937038005483234592647325308851831279145551396648284793331481347150599491322709252072111634272148364480672336486931319892516399609426061864564662054766769248175757731561293432129966625630881963067199821348124445164186989135394163233986307792976312354843568272123986458158473271875990935345208377862926855033831970222492484092099153718216782742443462030441559922427425817832421055387560166677445347442740459324521226302356896041811152126477323747057752714800687183483209855300197809614467806985269426506784968941875438296669118501285868981229840441888597234134754084379040503099193931721945923842883325781049154911361174254004771640315201747212386236884449538836814224671594849626997964167667484733755319608933744062482814544520229714605569252819903146433128317711068497515452477134636959146028053697007046806377903164650266150568131122192267556611993253448920499958034143375971498036669211384967680970362685709970318160236397381433873300058362308839487268883874817567286121872779001704849129153999732157359187433614201214189843955266468894767414820429948463512956190377124948093038429680938974059163753587643946187173690001201819588392766571418691660996490956668090960591402532252477154257484592999481280823088786636397891929107221925814600001483158116772779146200451050227658252811335338919546972465633350466451442161551258112425321346828027580203055235035849985055933432350965581602035876290583327453199414917841908138450112769944428283692718483047398087640136522355335982618966794213445019556185023637785825304094223250672242033367700710759920009358330728242559694273545709689302016062956942216529352219960757567263663193507118540935311271116492103573228446795094608523617834140842020769229737027048795333395969622191021717465122426915816347426065510828247973247860894497737964897912408207162950948151322118934495633735761150462981730351261683405509998703811412483384596924595517385179885977660392832212100534705585626782811556501090348938159268137993643081451190046872760952519386720520233610419894391704867401831356899822007709081669600296334245154863550926790104834215061079880121454345878115606907090484033478088390307960486614818601799729557443701627092536628836154450871827809518066871545815166270050917557967384501669200305524185685945907504911070501304099644692576259757203108680513397594058783320339814075043627678760044245587070604854920799530166946431239881347936515810721835813661276213255913780450766220609034781407731521205414240746534003673492152751641037250622132376172174605274563357081993065414650295218251354426983834257903878281147026910689613062739220248722060451976449033112527217766135374395670372736390535405456206781052010794885162765445483059043957327546800466487030397252996078044743775810163319779626143376165836001495028189393690300323523357461057125224465261810582798945949450120279146521806786952272532959304180818072665869054349485925942518290232330529176194634041288007321307005418932398905265330761180348378879105272748571639738546272808963173785065622312148229894564735365236116331125932623418270131961097722850749519640015403962900167076048761406114714205149210979239595307766062155556799356123250273038349299477185355809189187670004322929970943884703751577360513649014269171952241931698478900488213440588950461961279730556139467300310203429159419431759610566779809611298457100413138832182397851730562474488873283889148338985080890616250411312518738132042324643066856246553595830561114305360690440307498628762649073395819574853405682374857123552889307928648229523458963649134719937779750419135062421856665324037726708750680550735056843740412394220990699580696111903900283462447842953855457845218577221334300350738464106112342291600057609975291109836820772355094769031551816085024274417282469072573569478475556350537739474888110658679732238923529241520087869858943362777891501341641553211296523640303935756289925067112727632196648885927764080482619179301013004877428117562063945487473288964250192180452364211950239335741142159870293398188387449979984292247597356578217794705137844471829754763956601303437256928880852271238699950839913214164072788633889597776978529287374865803469430164079393577388733283419238168382608837484328514947646917007554731368593495411160066884044446838790952469484949971284827576489347727005896904497582746119005624399256915606708842047383490664649891947420784961677822941037684882704395652884980672897246969155604578561906029485204338437776231339221758579086824153309778039111816564876237236333590196650253525694482989342519910476590759085358972187838436878897038607177858701774362203615609780431482006471947253510540995799137974832618718912516787905003551916831459534186652397555391476772769703847059230774499782659038655704968973808608778626822346810066880393537416751438572588334075195785711254360899751427957512946095424418499322079467926833457503126839995189637778159839301344585948627180746614755447056485021407904953626039080969466084344298050663368683965022013541241462082053170245561201128908125654328193222232568139922725370837630696744678221800498118123367657606848241513140166272940536167806819442199789025467374546576397551234136945414760026743924896019817104874682884231988857577159185605103779675639106312065446112516105879246544484333493472968868299807649198433851478739022451290682938129764212407026538525538481305714915662657948763189915687519363119229898980261859662996229071372609263132867837763472234645421791849937000685748128628943332059648058886377309812896715047200087081687600710285099865825824467907777363431622635211278061673265082814074778438291630357728494547243355235937494151502528382934350473289785894572056365532818825130195355461854675707787519090076621518982043580692438929235326304806175789756029763872382516315560640777188616887884221656630159292606627551042604912293726530096329926105778534191250868292005108568584405675449922825221065192006502895500341718841203884713843933154254145191531680907361740956030881414488891798141953517496919708723985853529745233654013349727771230001604823792433210639909178324075831616275221651265454303576434739589392711239051623370125644399766663744902317209877281764877979472609071986423432328518434116236753451144368579150415616028520692688612791882143110374675114715661561963818687203805906494271261738250263746977010017582394503349839776187064048721746777149949776543060438860884013969646949539678781718971136763767484308079852940036782189348811876884816649832339023155730999006259285829032012293616288574804499098054151362756906037589567525641646363664554580457340362342304495347107867919998830693395205784023837540244611264867500323642042202571832687268866492692092942258345836435121822037812768872472248792946870433636382710674317245499198138647282376346898967767756331602427134006103874357591837444349997110003428521330356164729991402835579690990358951582314604959753692456398626139225868777732043977239781808541488903993201200573923497647142201813160155139180625836164786987753764709529589761020521366514288155029087252210707484242578833570774262874912178379063371940161921397876889846881768012074653541510465363537151082081475716632362481979710929304849495012569833551535329042151929815842529760509415364357243153156909387284291896276859689143342356876946025454852758123349818116738701664467336913273117450432083814855006925068623788705975579205567799859233987874445645770501333132848888866914162636276106436620516434780950802645019073828551897034394836933873366442145229754602812200839364072682522450249258602763043591252443245646514655306468661986742238901411381808008792584705101297816464335493566575217362471362563198723929863465900202518292495823545300411655517579180111930021787010294467705420852840492982547707185024920463095700535845387836264291059341526935923946813779553671494269921516278919388538286855631592544448611521566835382679494197116501458293918368903970559288195244209253267150524112944479589083549720145130567089940353088562900129552962424726157090751360700587340672476308413331095843989533427079621600375633149544256962681818166807366413835266546248004669822992548407583321370737109425400455658894968141272973095226693255546362985957993736666722198380616128253126689250447840355269078243929862961696622224319490196265789115222839828215151313480195760008873728722578453873937467558786721440987219183604192032233212703990832272492125470197175500549661635283211537402602489906707870373716701857169461664086011347312479170384061522519853211257741050148536821992555694283784084741589125222134137452157308447908904075929686483165304872381179691395504322126994743872574858818268490033658892472370068839370608450340316223919162672222842574245788036732917446407510753378233440101527328160673010438945003586267957855413025010310274473560009755639147700603832864360501203027814858381623622291721197390748562316975881000964665803248601400500941109667601780975412670027061795069867448909203538971857418823844010543993894479737553193490392056299523233329078205885378775125945770900326801850280973028665322319610491000704867748973337036179932277104151504358859668386946462912541324809887450329671074395324633691558639788041290042453568025333387292194783999626762431792820433324072105379539759432731632328393488021619247078213104917867988835755689787715603330750397405153825398409632959978003979351449504259234250069344884821116721320459146541592441492680045806014709312144027949186695179186680583361233938734269894751175261017214356323239282127654818845672765354639744875443756011379219118121940861277043774885610199282961625829540247799326767590168695469566501873508042978318369808988531820307681299818195892964468174853227182778351080099910920499998830448391141797937763476915328667743239218435798042534827469944614151220565288344423089868030042620796354955722404211119051410477855827457095636406571087730978591587932287695470225525428681665863146704252150688484735175160779293726458469749409767171518496511160003145684441976398313433838834879164245304491951159544464727976719132423777915299399648263708554184352470516082467798940247335017767470554369577962038064333610398035993678207098080570714010845638349552209222878427684060217054522334788896959948413895262273124036891999662573605084129071072920192955448536229255444940523872464227499719012389326284823516318774723460019911987221862706629054391094585739519117325257432244954331187145540822607726341996521798455327430537721404930707438267296902974534746069329164732301328288028233308432022726337807420068783951005655891314862128208870817820267742729753222395207704834086007569783383008360818541642035434945779872053395930393663519213793091434235219069939327955729637619989795357313586542717271607195188144814400054878977185519561761532249355405420912302519899138486003354647527512506125221164382408645293913404944878611902911207051558203196478594374305263944183724352166898610798322589664230914512481043894196942935968991028295967302668336649087101132638274908415982020270139269381200364709755710504453526479617972437552887980028938314702679132992098548417303326431191444740641733701435267429311707875376325345226581250918305667114071462632807527776011030548120572034051539884951030564338860056581098602654906975453705918572722208273104054933915964706847847653965267904055319342481410277154171570805635662590214939124985404126480615919841905905163977318412300330349978351273998039773887080510747911433303120431697324870421545964485632278496349943633795727970606816193644672948128220327007587403110349349800243666889237670576624665997676856660192693693199021995476198674886771374628468246483066864147781213321227923183660990897774124573928438314777477209482350416123534198120282872713216273570445818648183575862011077423171945981341785303119940394401409781329904461581166477322904793275925211929171382797110038559130653618573943672115094722019188124798406992975885332104879009690723247518897684239453836293602118993937957662959849281996944870799411999660745106815441764193549444470018010356421951472754892383205842774730622336471571088194984504376811826584633351684676459663376687066416624414143244445216296223366975066647124528563277774846950824069481146864163071862640900140909966742741586806700489769296602960382039793943132704127256003018203732455579873756619595551592853499324715612443420438023137097422015370358166509631079089303363338315589851726664514906844792212972364134998689895386068964363873771881080472672081268364124811666243600316709514942512165759580700150134800968221141735424032287444411389453605093544813414741761990707143567647842188500629631981673410388710981183965932340488769312992752598625839289079474391284454496124919228449603305643895117673623989358121934054327555194666357326544183805043446957315458463480092639355740055241546183139933694778810270931805762689165901182160837860149925509193179315605270327821668082495440291165359138358612159101462746446554444557536953177716789872392496182164968745001665237990853483450837746485556006179200318307911037642475227761272454003914157073774621883926965558473598121393335446707499327026177890060599788849787583077221892151717201857494062388654824130162796577280084927167474987030226778504150488941374691173755392735537223895559218686890668009031233540674974867309063643180654903055985755434612120644360021331033473109268203111885698636716445448122746606055515937450524616074846935492834593585786016468434240623035590622681331478974010906007084779473248167293730409499557954130807833389460820557739430951140350331073794456291441107413064066115501023357092854814039501682177941016005228736981560376343299862346275655021566888312591476688557130848109118565013632247666798551634484046324793202821003779805124770749081731787021670276084588448010149310163090784260219560758717614067277697408623075383062925409762026128733249569386551795703579632915797435455555759240633529127120437891193222060245475878092678207302602290191527749817483633976911581842515248167206806463869797722412023371444733116243380779459919721574923007666020900747907214923934093326426765568654103940232587603548865770973007212913672170070353081583561120329752270022819112902999275663974045765023205759360415801173304013514504165334575577564105596910614162818171114775671459563412156779386424927485145957940602296426724241920110023409980845156741360543721298589195450292334706017958990233572559446824504844483420800629743395871661175177598038760272484032524470014305141577463119378318758636433713658897504519980344627659070794811550161808809354603856753804790903399557595530837717197941527286147312651327232124443124250727779247523269132715676323750957363151506233630208105038658950750346738304097276248101810558917822872168424272576397168603174398153802215248756327978875347612364494206037386804948027713380076163309253146400404439875027565939389562343376032228221755120940875325589434115602758876487824461688383386969896700084009083526040256621406965739640034580461913494885178487764422428174068145913006868908909309457906912737854512594849182470134090436407059942547120450872967765469692582223261130294697268422064536632308143169924613598016935946679335935706657591943054414846640292270522027692142719838911216157228574636101338119258063961147973763384797724139625843382215218789984841793089833273453858788102957056507589525910055322310260873543879276094195775613305915663994483553521122873080994628513836132313143091819003392545787754863443625668827006139781623091578684454100830305455663106828954178326383052754036496316779479033255912556820445677929347750229751645413765498524938023736560947912068336901268197282596015352358265601299203854792383245967591053403411543492907943067773039976521945770016848896201956702839334164355084780769752271455505315429057451953045579804017387525863427642176930894697575754426506934329174562557639679550155294373991425181825011560009479622790937768479455720850295815632541927865824545131935924009644454248737991155167412287827426873216201753476446645004868127831122429992624247530496489041626954120526191230123230783163315858200657518261042193939098915881878456155932739090512357412232893770741159216528444196708531288599377389807361008600319582525885355335560962780612547139040525440572024674141660169991334927959012989843263402730391667285993244839294112617458541308821671238172639683216906200744749727733404822651719070499065197655911020513272953554072675155813936797044335718067964137551915598768767352180582431994370270040102950756764770585450068286162247406131001056574202367156757228139538466279589110061161919999715781811991280788214097499671359061168645047808183972512188062877197425276108579298643865984359528378317741846642217563626064231197381498785714487300881100087397200812981396744927997436213992666372741618097052944576670526700107400932730541629190608860229646574853327699491532263190963880878694683735516570185015175878344480646168378673088841244774290539890472789236901981469396428610222552375695366602992736824402784044676313692947092716927730749930245244804555074653857332736291784939702106957738520241916936507449644180118389723551284203252868277094414880880413464900431921436932643314691910194126524431151546109748285691659146071322476440679240265925877437182927194310326007371795455833880025904570435748342565277416951858661334133445373025053102708291514514627990649861786656556884061523315240949197939880917892622449036518439136960687846223770866631819687049166244285277055965040154168585911909339811219656700935945228924504679616306430887998299397576141209985693131256436462308799096636408326971576173437798718785608614334899596469755419807765317099471517033232578101428047216266404662128888737322831645015400861882186609416087759225609376902550515819998657076121714400500427791354397937953165738060125731279115706329115602723271899786266647781936725206509498030112589691800922059613596137469775333883542736341819742847956139080424034524338578804992311459655222246655058344566275220093520784743196927718032500564566418660631140661284690630162366471310444557814344169794295279781992997193459018042377466782616895908127443381019289351350533892814790889883115176131871640771740742156183956576926711475729460408186167766212491012957442094975229894161486822538332980383766300442660000321668189955741384174780958282712331907239901904749168539593283805820329704883851188535707979294812205704403080116816344408409388249475971515839059024558201492180676546614542363343046313954633511511556879452035465896776220713275329325247531258946699669568527562905464678926000428256596571897427833069069613616355542247313808318065909489306264744746572850622114271166348382400958922635503929684598679074724751138530079149969320694883066583054776302812263147774197475808063909452013963121309278417561794095523340063953607585144469883929260840930324584797297683526868234088723389330510922970946256647122164727756265022167138709710746972605952433878735590044629075359875079727600687423913055875095210665793966068394029194040883167991754635084966784899254499209367474773742794407453250878933129342851041564993448708142773023473096437402971105590727033149553600810446781744705346938861103039632110065018510265654735610936133919859399637989572830660404785031727598210444751609846684473026822267471212147197848308397737955378054792645227335305972885096913119898204098618476347713640392782197735664199916885284541456832565327795481984398487480126794145861434475476273442267117578166791105570106059323503357274001608813545652312977379923947346485773379810233250097306561195222490126530985966000830303795384446144148782605811601165828655020724428836800610773294055305912997608541070957113917094251922830640857414099863044985838671631291607354727204573142610045570725430955752352357063871039200648196878346844741656309991963098929228688037446218919599870419025464341025084719301378197411080393423327095892292238281823518259221598060393766300287169222987844255054613992309471591968458720687082068658495803175206658934842237925027917743038255982290785415719246238682461138558342338165450518957836917951260281517651383008496814723331685325387061283386881334440949669526764421249871056699757322880302341408608401574177986115401269272953219920109881269920961640374142628966163504801429192771124802043025240024609658039667208806270878682169141972738180413978868924433683179039258797989763184995344767703554434339017959111311617114497547603565944013400871257932690920318469595628715505715458053126052442869155297883234067840134313034965729322378113958538176058904101685703015987024641925042115803918393891640829260622518818676736659237730972066716124781665851523977527661297811836866109348286023184385664933699880602023894213875590735516146415206930741534588659637675597822845770517149553597290751215160053923199846345385142349036415099319825739121865545661235430551821534436906788112192293515999352532350676549456124685747738509429745960738137842794395801978698358761429320707468141088397952937951590193219402577982993200940543964133197119328275262334579282835952789921372573935271713141235222490448285876224494423580883301655267683399963215674062778096945312369600910862773061403267838062132296198477505350000713618464682491910146471263919150574922064227112111842480112910938213824273516263088226136132184861563087155964905233518160533108968840134629946438992620664347012349651632252094878605128920841423945251355913867596531397384981617916873653253920889552670759608871621572876034623187034617152129683625923897564680204048949154538185319987740344036166983524267919250317036313622547738502005835935424748753628197609831966084631445876312012996623792574617887526628926542203189884810942235683530624407198031217353919846103190654742442207206773407587217382157641284167514443867346638865279919124636281957340800581722047283858761800203015679715518321071659532308357739494428172732716662325690983317123078471831593663237224443777544052133488852247043490818998999300732513200428559593466164244648686376994853125183155375542849153594257295768686081139780615475763464518223611136301939134208992133284843992425008296427491071565821025292315545995865780269837083170225703154993236928415986623833437248184264573219209563554854162474025714366461775692691866800705783108917544780740972801888868847059864003819445205913654399130613677623615959986682685386443737996096610686955747921901854929823750557364797971667370310374355792409922618462290361888043048146398698435442975429137326205626179586088699470621583417444361113655921477564754843917242526961979552210164535775533919593651491746035865738608696697310667979112268904489922726856286732164080637718531314476389714842669396879007844926584329930997279475603854225225055481712887036339709732111081919323128696108956269020310101537871655013905797244205059506800676018175816222261782262479951499519235502782601175844636184381694539581065262993199385640832651271014270292922019859980838583585341987889316955006992675799997861005163288454209225338423309641636499405352749744543943237906840541478751102921262133769008233700190386114866308843511289478186493614080318506260223960573366130830012760818674076651610440368683673876017830110682769938253082092425568833013219425891149383622960393633181378491275563856760300933262932115415879604960937687843340612424901569696706021179351419037045938781019947861966205163479957099948659316665143699030862180972825261275957153049315078827373083111739088460226219229058013802849765087093960330522268376062141329264390793636932479203338249293526124576918404717935459732818715249556353703296932700922820986202941205221670274424713945974767466546638208549301265685990291652071496455185416856525465726172800226012468779607692941815727581452899124840610218703637848427014365763671069801720231064157727222464168092759102522249499427736696968034006439217409340736761209858610778997574038977678729634512152605314444977680369291756267523914199833574695371099906398966692875771333616191171975102494578227733644112201816245116005053612784491897048256605062956364382691375615910195994137293875693307782694560653088966285151196598270076678480120739319774676154858406276373936454915845034340974387699088283557454547947929647688702061885056944363997581731450971480209028158774267747599667920913610649959317250023007857972286762170357216367434053556883949030138069465320114986819547603336239318049203489257762398098624333922731378641645011929768618273956915963318574322668116937586861656777789767082073248046714555137486330921882223287777603415059557018202010459331049786672281775477653635050903313754419237066504745206032845087896121204470042800487913771958455163741343084993499836330296514021315842632513494216331170572877337494890661879567135406536081572046302806159864585276977711942791059781520672352035032834074945108346014753169028384904621139953203698196499698506789505051963114046987058944030002728072843713985962551607002780163420320576489268842784324178022387240304988203093348090878827140947212136632973401734021754159213841364145430634490102791185416385738535333379076416636190801556117644740902111693255089302633239975525119792952257125691749564332318225410614377153811531515530736628858946924330336587347702325868682983925191067486323745726060741368747092316863027578160712064885883424366754910911386707412428722028295580681163263977322935989484047340247920553146844192803243430853819574765190706289023429268992718623524292516010965697767493491360972099228033401952240559825827206714029805950532266393812708078551682156758063738860827666159546091891795209590506902009158093815292231256625988898588457929649878427205813402117232042677868078496330157023456429708314239566242194883872709754482987342500522643158524897729192608103117350052410466190837814018029117092869759978486132606000161704926209943991396396459464147586356828968638879299839354916537325770481215336885389995931318174716152186056128550971301464606859261255706873623731672490428389916753290113297224833933427081047795164238885063785059035658504487855174246892760328074200944867528033178144288441080085294596984500611761521860553743830450788075225917572628073101080109564667101619751578585967916481582666085497496908941620011786716129477201321024046899934845598175845733884068589611806929350664189195942843931468450884300063354746840223490768784734669672603906005562858522134267025977054909049009675784943751768114042978316102580228047015875999649142954232397749431513060221311597909114999195724644413707841837392230598197342596420734986016076019155964583626350747910254113320637982152955214003081345721876540523506382382814449156507228911872170031980453784694992437574661933795448131015160273489595992030743888326470481180317735896556606188969192523646778137103148928615605152005980787780200078524401258491988912651332857168390004256885737259007968245810442108647352937126237175544719475529964141640616131801687120131162661548409542140547284327100332206824687492499387471699079504473814368738683488455612225295281267091502358987929360699750661376537307453251090551191164821137296924113066769182680059130024974627713323792917323277213151332419022228714645563808962440364319329626601919390102911227796907321260522304497578477839986887259956976922715064936444828816515869183883334801689334406329274033375511239253861399874701849913535894828265862673763326000733690156895032338809415948644949684131160686110167132093044652953290668433234909043562440126747723034753058631679783243156460153295173418123938252669917074416219796566545983595723850465452005268857965287140648632613982913943062800753072318098556280242930460006708339568990553783053909753212770739350741634735695159191983034602162986575088608902794546267451181170127534750469209869570423139581575098326761113276959557384915269712418674861680485051966607736301886235346574620474519429563759645890156316567575477239190973566206626412082868506077392444304547029389914088549546668232072317675579993206213920877283067388835856548480277555680037828046818286679856344849814504442250554554498103584963706836943829293098714428071801414267754487375373105869443547874199540262015256316850394178491251671702096060641446995775223340477094020797038616218048551356937704867231682922085236040462817199304728676587271448128594409349847881519330189989500217052290403131180442194272553267193730979585388547700245482679478423147672502039864261597206825922186388242293323327535610507125211240838847136951860029130524741324097749747205145732165805086284609524173782355510007613784180398716854857391162745790789188843062188014363585685932750846057873760987411586826542561869940797060785361482342384125053918506980226247402159013883805293363002874233173002591861847324301593171289910212331560144448301870969110700238349005398532194728429085237484405709724406482559900123721544528449743134040022973226540507370954568772165530651083503720055883501595313182457099574678662540918871405449517869371031136028510637361349572128595419573777601343893606799656789821219568081948760847381839924371261595524580072970479005083806937146789183301194914558949260923933243381443611560672836187138724382038148603761621667720575266675414686679627941561856532316274415544074925045197593153722831637223123069936684675456236462328113478725895273854488631170058423097705469563334110859944641893579777555148022298550761494891220032293302561485045016401330877582160110314824547158969672031988291226918159360916620708056504384728376025141416293174722289031494805262884659712141332589464312520742659690502159575721880415352882015251899442486782489156984449241550447995219521197462906699100070994880737094239681749419899203394979245024317641853239816793628805361557743667463194987953608904589247936619537241444594766332996360154513126481956978748905452986603996219091666010431781395471615032060194414716418060295852181943950989737426426760295183881696171866894417091806559054048623723789346226279384644864951411868214739165931643346464616652927053762424581266344139452655643850519964531562009015035509036997411885488618640589071419957460193917309582090181710412203122837945415295977484013730246361192049934208512298754698218912559470237950328949935589479485325312543891853038166633176707923839444953953000193216198043246066049537653976579075306488907464130483264589344295553524007201565770501980845399889924199203129288512087809378031870056233321593152241608203440906355401777684271159269263614397882078930427524874453055071441715663045665966064665263040667658071789500182966783405076994873929701897861598116833171266797350517716073828548701351088067803122634214847238174344049409071508533698203110727395438745988147940512134827879804378920178615438873962517948871027876365500854248000625232811054099574186344471726770238179311048658159933450658111869594390088938558388809988810107142086936712941714665708939033325307300088054164893658903666531855609109258738872735276830517354358535259905999935667510323557815999400565987026720407576750094899862439419634429511796550367936011279536152116871918144944913505028382392595385412830357796727636651833306297614914067216319126902357800598381312006989390426178692084969436561804622408332267498872032337390136465145010556439997261516380469797182370556807044928132910695347419533291456685124781742804834442218546638569025242115550968881106977723330340625859070315568507456511323333471939522736066033303133080660187579279965337283699113762654712677980661674884510070797688117589818309756894558493871885093705055220570211237144788832810847453937459045176757804906143844264244885594222797254015168533372752339470784287323044896563851821750093993780210896445617501020455662309669317977548346762681258644993377786443888495809323349461401698051646058576323326881897457832488235628514475125861238510148322183145583966957814892129243361611705679874542222208625480117806390683503893895995274903582395214222216999004890492185169743778504614524243440068279863009611814665318546715111435568043022207741028076477032328533338796149525789658460064059898703045358589031388430110823544338509266941825717600224763934552114920229159604439974908939820713596468192250571635631218381724341593972720819649027978513316574042449705001474280386861045297663814298474433424018716688035561264775755408254750332953403154252460789174074785866677048434695325519543401687105463219069966828564196146810547886570261623684669373665027577045193908698865526704268467869478552282146914332961734616915673123265776525484576665006408250276122446032967381324936627902068921877961732081065270668729399094280107221864262491231946754923616318020767600322353927726796654222740361365596451626094690062672459580425599139999519644238560867266833800782002122383540115955382487042274479636366992621525931936184591765143349090909896734840641552510746997119882281822864310177376627185985910288950461583607394552229818497757188557245079785128113512779689887668555411753077308369825389393486512393473018784236287561037072106796466841385790933468898825447947923848195542519353693524168240177174374870989330639222154788266103434360020587810085620438300979473978800916413486415328077425239824101115005746199046307355006065613930770737231872855198233438375340856220507133321953477278512457780598314477655734577776504217788135760360427433242296203400245107331787370827312350074624335413449859112369877479280342268747017807045025009041069360047420465698535429493915769785893644444698506779816616284287558122252237697489452982712334577659974172229770693444994334920736544093811801627583447960676995366288252034899283161077736638639662394926689271555292779457542398530202040750807346984503822315567193476467624483758846839317924984128914189775772791858467282359848488657370251906707836965473311354607231043605880150540890624504443329453629428800667018153090194906480483197831227415875598835796872777882096084687862200574564692863229110833879682749195274880217051463029988218721991458018250522765951238559239003326693953561990704023055628038574166288112538405493140109518270046046981800845701530559372055778445236789928200673065882494693496537967739997686365733374869833922104247440838287568937521110909734354871426747112210980820702204900340158868919742381426497544541499054122370453993833835699361594148528727648295215038530997124838229142130234865767776803713914963577443938972221041161979690087875000202604238169630197627693887779296262757893754174471032603344400118814196735797564854595055518925215034577473902001309376806179024819536949761904015340224321936315601240557750885924424499527640525361344354692092823577997883918416449168522436678592705772583766897328878532636766366519980279394333461299378288265082194778283023798132704365759194273356358142073658369943043745366458819962446689518770869162163801443680607894976096746643710394495761667844775111354156327871833242346852174246869160375611479390134474501266911594699596279920539985096126243326117968085361530622898246470112199664811809890982469881922206801396869398056192164177304459712534473718954492589801400187295520525610077588090469638371424419200334790303570791461519838334650380607915381861282731459861355048898492145808299135825756699702792069020491923005594316578360728259064151219633415864618136134815973675911921000268569314161988436587593945848898129717715268729236537558749710881451707619184219936103766261365805296266309798885543752600117082517604006867854515480975993255628021413766847840152848295984420870946024985843437347235302360493162203344706814869504424578956477322157982786583355699553223350738192965997569999407406673539534704984133394087195384693245543671613192819058379316264321964956016960495523406781124209924222599686084303574835972793447735100790483684056005566602651363641651591755161636364667829225420040707661092456293356873123195284924606123184663876727815446040593882253628316295625214380270901900316216225028034417301211212812715989864574507877693332257301756746132802170248642377100820092339992032469128814745548196225970067261093748014475566149741199031324694568309947372313598529939618745223777025362275486369968781829684076581770195658766327067800119286950843803077083014964529024792448568087521394024272982452356000480310657308204994859396896733977150278240884320888536943238582057502090603023595167934428705095021311492961363766273918463589501705474499683281734627876764853509422091471822757852605350019678831820906162850997894836046926900524198778856193887342409989896684109507040078192036975163471719336031163757385804734003959275076699323836531704266719279706189177860023693851771918538244552422217887380638612010689709453468814840264348789180050183713218984429325084701459116983984931582309443623265319310945484680943500012534210813526228945911224011028940081358894745839853637254968425285157858458626626418260311025179014459451822965837593105019014240846977246368180502570309896527481939308153059813582751407760678355858398583502994786950269050712684509140779538613917850915599520118868523464673263782801418750445328903763517010988363885823106448143800647111763209174376898839497369281392498199199967067365425192024457014477490831325450704318803940838228043383883511510167529805200541705215891598296190143200493299175514423848734066226530762538481477707679876577952265998327556994650251944820941021489806579900958830590243861540113449356142555904741699218750961203534874596355703705938493179158310328026196093214503040085228716240467201523377577524792086383653771869951391732870773854459775558929984696714096257968545501852584388518115611518868033296288342551719396709196440104793485632124361507586395846685119970469917893674254393658420974760486543782904679124214244257187574055603127948449505696513693355830685713319068854226869232891915473714235684135833053335255783238617833404111848245148073618023201366344243419307429152816534756557650106740402995265564595930810849855897262827312051417340517672006141992983823701007184281174729059293095140599142794392852405796939216386802329560903794946494717032028536750581332043503516214153151418166262392886941693566223869480533961503423066880000115476249399794624310658255694228655239114524935365549738884534366174784340056106613143347263963924298913965070097109390870910192683943359012400587638682312921950825014516025475797709779279759579077120050588543812909667558698105181131220652952919542224454422779355462084690023569587998863808930009766155365572827200639366626378483202780447190814901658019064943021781048534830519624214169715415138126832614519370338506690511398490646413581825756514180016682178933191975593226471095325672779067645725467235536237648202400595950598860274720345501672468816867612888501532970457479809078718764798230936320427936821772311552746931061817055668778542923743772880481377427414668451473725417557108182977424138876150201490575523016136259759221915133118635057893874854952106820161565976868226628966274516844783516619985274389183448343520844511422121115885813814080352537036970397977318032945586366212464698815167832450947790810581085373250957834349455098117162237340566848717697417804357512538029589069849727595029655556627248605421678143686869416103269458286249861041762053981744163070962320037083177923443384572274242618809520507456554395537598468113443930569746465218724085632424902484005374053977863346338776647800128842111976144707016854005052231108790788833142589506394779831168406231899674633117199464164324689474740903975993764687136188958551641521060307526604037495392843310038294343960267571849390241570005056832384247521522821095315284055408613386383553773424881838424779867803068157325654901120724466549994295539158411760565592647444976735693906604667417011553519945288799685667062206627123485723701764040545612852697186661178904918120894779616430490631581334474291412319291994215012500089450861360783499375614997986458921870669399614705924117081146008227623165149689842752367864921411577357522037700765037849304868092369588740307656497439215321767642048377662107795869062378331723012893886709313870727043986955429316733977789206059829748955189890556275392455156876176353403581034026200879215298724457292681489881356955018952090293733705459101991099626782544500757141871171396934054534243790372615617464241250371268010024067367321246969364232270204294454778787688183876975197168624131127942053404393305999382969815035157521880692469143696932204198581408605392125008944609504661494367184914774364067959790817031448145758024885031181441090196336451906256730163937670817281315839541196811142664923153227587475546196546518888408308477676685334909471865052439319409968733808992327598389418556280723762291153752998037341988801809846790625029853552848514507943256370136276676859729513089396384984146089594197613447223622754923664366175278938840481240724914871256386297948402828176412695718518213587190243183894268683153586123766030773027357004452284947546880991197717748881837093506633887513936421423969285185655257192730828751010771822436118547278714017091816313571824330312451858122285383345302513133421656611396166055182183115667468098042765839001189377373062830508673136164381473468948706616486344462741500724972946991001956514162228344063741059644270497283983816470827531195911221484368717243098913036470236339137128968846807080932043307157890125112544459462165599115704012694335824127869732381752546326107910589871357004698151267061069496231999491908399040219838897790828353989357272483437914499115467190697571033039329862171840381617979216143528848688323396961660180686945992303639108517773976111718122727635275632828531754607165777178296356950792286941944381813243924889532178931391713413221355765023160773676666765726687220649866297742095865213210665912256339772411445230962335983995401720739824804245358054019009987891668481962797846876861970367072919135810575619316147709636269031098946181983171293313660102872741617486573023415933731775811035340073379061239504765710096755477786846176037103344703105504260592743232239011465452513131821775433281391937200199085441945493252848090952571608625478957486517938603879989407205409371621576096639603180258812313350788957393914486017901606945420012659234629029199328215107847446510629327940834571118874986846824439339817905891255301353333760893691500452392595046003723756255912780645706930483610958743716048705622235137783674486133087205073910515756549000677862251832166164831906893666488996335853326908593837190967922027693051869254962233670762715199107771819232780456528838730287260970784246138052193605355018659158786697310585460746266142242965639168728286445892124185924252358272077878122353085686064445970568805931256176856694961543559150150212001555463965144804677810891388063652411943896087171086919115642833532430317705912181792372505345548783421736703729640755810269737519258644894615434855513862433290255264666120190256169814323144556192204177409625444546573931802876846326485074835154276330712587041317088954944013444138727855142633384411191241909568286336456170054866108405163780801272678687671433714437410411023275537280443835695514361470835931581172509399223240695991494499195494265173186887148336625590116852667520719097045500862603738829969072572930563202931625537754014659551597516942122504796019034520666525639592116309747253572492148709659188012160064038918963075696531519944197725974701325405884540491113608370773320639842769716502030502832345052931633068799250542593848389849093198285900349343496147879237502711242736661869527290380465864920559713186233709389197095763588920741664434470074765598496868347321136119407279116514692914886246663603361008219135915179114544305978648306111416870137558368281694530360609254771158221690662677461083292433591568109618602065138066860165696002926960002417242997377316544442552450034588314962877401044168820055859077173042110125901016460356358316423415891704525355778271495506601206388037905189107751843861967281782685749097920489878965631183335217956581783211981940588849073982541216137978074710702341392647850212142282436862392245404019320274651324777545499535226650650528645007655800858551077502834519411086072398564251629254283926380495246408775778632254067601031707094223197788940350163663423766513813267984378956386963648465315406253973303788980394398688564933378258446528691744297870419226449419273629643805599000922135645354899259052296484937355636379969516051646309336646586737946948522046597618936070950404360385319712649647096623592000641159613415583548161556802727788119629003462843720900236741297851384618978838059767834579165428844038076878985288226314466247442199869936425735996662286299943206182899360903567764076495215766432974514382803303407747867149709820067013291554144832266692222670766362739601053361256141445875890184247179561119067470336369499649621828289506295089898659368788421469665803888252950039526378620498806068991630686899011685174014768411037653174292985886130867200013029043649134743334038745085258732907915594068378413298003495054174760141391775604278942958003695575282060323190071914639092187499746333265999159374435955414435975093712538447524879631760654183534151022001448256822388046722323031774831461560458558664876884532496783922878396491092322826605785614327371248461874921839871187911063473126976155929782619741926747280147530263021395038534289047095299687783711027282820955113671177452847692974433781330717253773223916779204165537957571307831872629942186764338365898961950214926901289832437168122328670981450340682057193813227477805175477090799085552827892496966073389754049873206031538933874666898867883099659335327697785273463075767085337510263593560880904922635651516870888332814371884816757723622724411508371504008169923337212282808430094958470626353865478234760324027546734563076016184940292487434414875888073154321792160729138558461825576855459339193953912515134090333551210686951655297825249759219878361128971759870387942246910594409320300788855196188939938260248581344424232657411198785670214516669217863619247535425627190641442079587116005899582852947435838475066327669795615478604496951057968409740666525748633108999725918878720006403388084858915721527318472898898408329019573734190476343183533689152815995415728631158699082045489750838573471209627299878679153466070517623706747627400215392668559750768400690920335713577406206275831022252217294464609356723308187101727604591587934297882004767208668810385679313982183817323897584290852580901766468860301471550211162897282275487185896586095483904281946227130521612445352726347671006193779395640934755456281000425462195898436177323441276166389547441995352560677999989198795963260248663219386146190669967650677784621340900398211054199794177771558341018184412435749668077775642917755823251995901407782965716655645541730630882432706486812406075656953430949501161373769929929093479213600195568072101416634712044633367343210533788417025056152338028110394128600979203838825275095124566969104616841267925469959048182162548424537107486848483688111969927496474595738821112963195791803143234013140532127879853282990163933804090000529741410686996272885735177463653063223582063151333507016998709650245457096641939332102424685451709415138094177019014681666341429491229930439892996765927623181495959458406536185887481854044956598023777724016905965042767311266468803490139399091093511947032585888713825021586377869773892987102767841164044503070404479351918551075012125056737942916207107951083015969462174201413191282284320519640419901750762787928860468244709730517334275281536620298992866634674789917448682579263541297170340921545087352129173596870721005804055877871675387377887158892777494089852581565228789738340582761962292677596548550897837053316071536176487250303263118572482950433867836222023492895418265128221512896058474502353638961699217548762865166525735028992087761023682513284956540176030494351067805842652624032481669421423585026927696230746418729782988738061978555664257501377022832702302474298208393866398852574078868278499804960370135909840367756591636494499683891660268871602995660979944309024515904277536342477295816336785765055097927137704767436630203562157856070933490830853861308310743511960019204581514696905771633792013331897774907321945269159743691721360895375427106243150440428318231839764746812939176863751279360327156826485895341991088000980603705373801119282323963223396939513744777403591024256290025125980440544941839890034428443701574250005145480020988243710482168745675755129867020965756495073581757986809161412938028590047104122551168012988515401724128002667938659280318457089659247442651800199087114150433494925662419818303882644307342635395710349079835547478663094296532539043871145485374029910972929919051572204852160125587295092241387606980829465966061123551738163223683909457489303300729276872950294854966410815634046906839060753362121410631301235442399469334675331368340439349652679232923068254376906847568649793074430631262742314301881157494699332657564636065882420886976003892777879361278341002753787544193899293516338168427987591748471705509469755678261424877062749505387993095493648362883419540857753759675628090483188007889531511209632418906760873068941953526425063109584672894434743872669487385563973390117962095588784303372119190972153452071535399733234935855720152473650998504214145007881346060869467497017597811080120000254415521043048971996509817626115761280391861776898280966256329289870665787785617700869328227328537956341258272823501994501350222468349122607919094901796370299387206572324253054087147358151813515459794981443771977514885049747555194198970549498417050207377467826357656618981108550437086868335647409115146352465463800756181709021799087661093940824162910348398672229059746278145561556756644188457198044273064189847586381245037127977381436843126606379249712696177010782157554083369822272002643545273533209151880724130130128822923132629317656143521054414695227979021545876379439332486515886717556189461822524636848222543060163863760213241847970184947621244027524753636608923205410260677590699438236197391804787022455170855174464230296990048093831429864493853578808114498816249172844227973841324780843061753305022422100108878710659680334708183438867169928686199992753716970352341286527380563589056256543698041656033673455345749000148850587527970343916306907591397791494793657939107146913293748323621935941815614030356513114568566825622641020970261653583657129269254066168655943131973133827579823419907572603966236961581721880859877127541383377680290303351884259412130668384575127504918253944570153911809643414494759480153447018489001773978451610192105165123727643181562252654457744078751469055356957404066538691162180816577980621208074125346082262078313048752658410335215537699895228307491555638858956440971036507121805395791053279046196591933022329928689149576292198465815281162498185359138346792497272369064355689768563571424631345359844265721286151521739004263171733253814184292539769209654445165864138713566023682253083271615219427159302670236809612053844083022241600328061085183169890458947244015892282355953804537162312462250317255219803684138540681135321161442325562940758030316924394835578885300231602311021413541389305861644701821565349757384446011244812394900386475770258624557362507446379376227965566303087201391998553333989162069251712849696275432327797296655492343115402917920846396178899585951565746356922861802629012090257665460010704573429705289773965917745724700499645081949493552902854030092949451810725493430183975936925956537885327413976348321840155742918023030342231100855837607295078065087148820861262290333053546675832575021885664963240722002158973373732859916749083855102375932861561807480502012338268425462959008248815303102448754876650726748229684598626397956191731846220808175116633281266869216968557810984469215433104990919734394455530277111021687062674744881087891643288236868631261387770597631539741785293578009208282658844450361145108820521390902084257264081958599252472855110379104762343604262850579109161998072672591496506667933423335728126940858307617182353825030462003918508483121243190953125404333298036738830590502455003347116266565625077432863856395107946290941807742732039702993350819272947515229229310473123713600566573119908032548504228878799988770807522095539611085771888628534348715861619075312364972297932170664713974832706238202173686431699156580282334258914604302120368178816226634208334925031556430502418086310898053684256946952712240719190716161689821177055832655356134432288542890109161830676352725830810163740223044371950648542540847717660256404438448286378529855177293594010822835152373346622723903809819582895426212227195046330857256871407503490403601005865472653091739746955304735103859609637829331663593468164074836180760497954584088601370331703613444967524201685900057763977181020685096593054211073222161336570209016416472365681923034535258218723737476210646839430226791187742474603881571910027373472406069114904551370625403001852654654527060244488174290176539433100581195631975027614926668731900032780135404725059152168627514490436909006198352185789455003009598760624217816090485860602827759585372427633405559370862694392101892241132498976358936929981671162661983141526469098193781556988723954814554913848912135068839827682162928282273711484051469160746097880726695462459191574870707023048688302751059524135849226030416651984526615398222887508566982077826993721509732023912617355129119438680189956196034651799059838031215241985446349372445539581438206821177946903962712710555465854150257897647461645969101421918141532001010360854332054350943081561573655954970651399101032600059859760555358600034928505799902520397114505527193227500708114936814401401954184989186257396113456121819532656082933956363010268743166361351530356197329812868421443507802767566351677902270778628857525287439845683997902169370597832922030219407912279955499391760032921519618443278452280460082429872720095798340009150255685140334651170792688373747073804576883599527932267787894184034255291468953708079692738739725532691875070217361763506277160143708016844884999224986995006288443099710819492632070937290535526443210618537499064279154077555914727414980994168297566877753563311767215548469748368982565324464462312215974959957350723199644812847138589747199111091154294831822663822007331630095247781272202966501760050599270121393412825427020303039170275000003724512747027562489864170228884537357543091958008141074920515603233283637720974924680895121600110607728128259017705247588950412786284310703653032368830814603693588894890523729273919503603090173081498696221462176935090205849848126181685045063185640771428643114172099180155083465406045794460260362874971979047805296132547411965998274174080562520341841449282972232689161445607089149358856878298108365184302937335535407265546891531104384069394582715723746546695767318895845510740483617474033743837856900462077879192018009970609858923557997701183891134200630894092741596614231664650948733528953754899254536306994900601471576517811479425601473731210237181167632829583291419446797140181924867495861395935523996354905171324842521991306746359779125029042906831687200700865166003911931159985818600593454607530250155470462571336465056934466456215460510215459140258815590576132592354722627134665261766671701336541396689716865727859234705197856505904068524370892932249189853530968572879303882332660258301275764701823210178833838613277242386276462003159181351072043341296742855212487787854231504874632550383127013235192746928742550379380097337411460352777658000832170563366216219891490174462422858633133763343229760326544992711191437370800129911016039876294713780292811097713288194913814359032072779585815556443769113924163466166909529580186382426050269475373668596244816684104465219448798463979098639361736178328345792209290201248790788951393055464349277670132341290878019125159018904036783283820607113457693742697692213440173944239203682276736685467071030139668984288899188812483893552259253608632047070304336023743119055648298494986625631838203079092921910464177880522630898140407864537079295054832741758777997587178040726399926490123214129391470915583533754503375174106505024395160308348247405929278969975117133375574565863643186727325148649486055965132180891754649923085080652265156894588763222298373997998292052889451332406074755046293836285014086159563321171239555969424678435054400577935807407913614144492358240912911402759831521851105879599989324894960177762185502878825639848945072399319861528576111606282755393112224100667609100271509961481716063041825978150461680955734869336375449072161276314613058168508826119019549551949246006795296003294969518824649780845431615731852707301518322676941818351171451496202353648944540208234637502910289540523526425417782774361281860876106229805545752995195544489028472121615318371475222638482142098680049201730734027464346302908043139195700904613847503935255226405247544795866236669078353487384104709509634760384033659903767056151820954176038582948859846699273049336338069291170210452915638370561683972175888107569637025980270881145297544086012522737745670325757931901904779803267172868699353435987300184099357203819521438203393751442117609864853719171481897439976877989254660881392581484752788974697580196262603633707308563453970151613954477312735063204520205006093286839397692706468634751416426340316294860160310386304248561840854307866500337261112497853418416176944717727928804430351026616360781580819284175259205150717335126297898935617736459974388116127201372209806278066959182184220456720968241726964131317775503730634369841535374960739754199570275503473072712898608534280656135987206200338647965903117044172043237703690475456605813943720020358491913854289555559315701817644966084265534115293696293685648538680764820221556139456156615438987742150224033377198862135766532530294938708350398268304341725604315118356614596096111262563067384247343176181315651014029648445580073999016511956845539027766679348473696184222316358943247668616250655007169243145131612381643932250446585554979290239367183403386990594062973753690617672025369335742951374048705515051069581340191488282626274998531017556297498382103943597691630368047669904965437544136985119021850906414231765660328692926217244575653770761555106541442250326696371862280895124715303000449891200798953768773435888122128457293520911606225850764046504368926815677456824302268040762149961576055582859626547450591002693133742810791945134096928839069784506754266052723162542970369366200123613972297401465262907210172209348829204936768880541495143113184774955591983613490677424430094321358570243533854495801488459141259932151053479117180992576433951791693942868304414073663881178560756509193434403887297750742883246057074276212310033377112462947393260802684263510638237511277710816152260389503322000242785108899344459710885070097693877379621461933425040164292566317681801614458223353194804010843977953956118909781866877926758996000242857379828190403260021625013983377790881729910634833934389905218994600274417462175898533378766559149645976983008105591543429094091276122215100061263915406423372384436203372483737699031457444148108258603297525033851192935687427947676962846684538184320304885061029293139783420293732297910679619026182805455850646627521553181668372553479418950868549492531686697111762507958273043294841110201065715973115647602245665255190731743104553522644013914577910320224720211974626658906671122156628897083731404385763442190921316009455744737049147708722326326997307595398984900084489992519869798310265219354927071940351600491924658057872894574437390356457905327313558100976233462531436586764704406884109107776241567464899587817353285776520218454564886923645607044903820417708724522832225902068006262238760153390097482665303861187361954608083737671312878849044829903400418156581362593399950649270775692538813154507706765962670880666677900056447280982882385401820194819634367209581911581992086529741624056411746395091916068643995223502961518407541033385172261427156804460381176705547606179122454170150553736526570981257056039573930872698569381403218704845145324563920682823614123905806217585515040983379122644396505817786466195499318885602273802265210822607471951833678442027317456748919046158168244905019154979559870252819095268824984083113401144817057580139767298849882153813854241803936067804977335681057119275179185256216460142120649616779694417521330321491946562089283974196255631081370214945103582398793787871161597377830292965848819468048977625633548603113213838810159494198271795768471090380697971705999494991337377973233421711326889732734790790807373514055080142622317214192382333343465929455322670936411657341653455716901326007873942783254692878477985946902558561222239719096755563655816992944923392882025022991339346286424616483265875067462257617410986998336646898460051903365003444622572097098019915035376696259648178913195469685205151601376485918415391711859216683816309648697296321250230198052200679389511711091573691715828255500653622508187263673703564587439358637215520225738688586520719676574666893348411304961598217557984081013080440207116255708494556974484484081502127202928430730926276401342941358011464474934427904889201027326092137770925753720810150496166548733962851837829090858477299909786884993588669131549801515862277166230378955004952311808954760206666985307789377995784516887132730179922752397208054717074930943088214481268706829790477082171127881035830932103468624102590202170050680423777166789301806620168935216927198721365748456120483606291367526608691066842569578073833335319483454975052111552222770703751379099181366489229636640757342067434168215388083593767692107128497954129374238808198437418676228849372642077012250069005959579877600827749686467251521985227831594541297676839580773388969316873386572798275870013420539843179900467616976318972062553333980326142017308795933867201870488366789909467562686844131411271825783155639647899972475867020800475223268890804017553582892111597237789119398700567688463964635757553371409187495368550028335853941628252437141217449518095536736411301156344641853107375057895642501011347985503111497494737168611880381942691883602739772804426212558874546339604068191274649912067785380371915339395267192210334069617958298533850247372991640582642417767764916052853444996697541111566114079222366922164709153000157654302212355759730604611684377348950356046089053309981523760807319001182031933820766554150742230708903138458456632841013158424312806282931419201278689021528091608080150316188470593892190386012792594593369371207203241198122370513318556691624591139238263134138505203563944176211036637700938329885627766832137763693294734435762083198414024040432503139464174975908458025316891263876182868254422957795561240716029929271872018651144373248358762965973071245657722944065686688120304816809397558372989188843144899757309531168797422404537821191499593927679294967171808773331610479861483989450609929490756659370152889672733873521242305077752140768651418073100416692301696440208904832481618841744615341774562236421191975260027326498548007532862213756104218454663422634584392177385752006452574060995731114259539568604160415104715937591948297591159008404659380794125343977609597719942412286712451614657617522889216495636638123532019088528979273048629974186019163323244104021096425662363852365999790702600652448260379490229769223040732055776853006853271262138698108165321865952015577229276360904867150092834655393743461117766841312607337793029765292569445610284120350931053361943937265323102382759278010064336330555737472159569909179728689498239484379969788620124387149376481580276303074371168472597429746395800447633355433428086066338926589004982900552915319011914859344902407616647285384225701937437010171041569209324832031439597901681020897681570777389043528353195352796537491496203570189697301101635985141555774519937720713165990462642077142695275792564670987208129842185997992096468695021385851341983480280592923474855525209373761547906332603557858657907076625038883963791296027741623677729494901292494028890658854976504455381187347554654208153029354828261010889143056120573819908335683259413677548009564067128938081217500952564763396480397648989626468311983134834406363274041451422844218601392565928157049384883060507453132063433468035801886539268789603952647673021021159222807143080269929818645731771227044169123498619460582269193542368903353445144792068727106818974507290299801930415556681865617892161298312638154711998784109558892404494751528651750088417558485602399039512629445754152210701499485664846949239729955074587063450626011332308890067819174993814600278422854913686614147372834495715902000954031268666693077505638160099771822916056614854278292674849225975856727774580807525976092783054212030175911258858176837252091524661578678411860091371538170876957438930697462764124631083321788069734411387523094664088950803122392615351274487827737438329221090268053468003826350747691551092921479282159649265481890608328426366954689617076409195181722204621455371265879614597622324548294253988724731581520984294406494516626451323033617156078932312053994150205051967878713164229376515105976545007852579653375332187605669599073815703776442313643227781903335809706487642682650636223291860052589483851601947889789846619169039220238475494711844583545959647630041230123542351911387552337329632205126771993208120712688930272407032885317106151456685284837476188387929323117869420262724478434444449573657846899743895266363021257668440175421076685498493909593706856210767480829989919870109335867431102658800913620778825461044096799913941688653460856183103471123654995533954317348351178318364869309439815047704716815613863462060891530277729248041988721642000011119360437440364799136038058697908570709067710696125806220405678780515496567810871297163840547241015180873817442710685646507570675453562832690545339602124287872961617931322944430024568330114388848416537939296968938858287330824324379953627117897750087317824089934106322347744727969135754519122783587933700656838382695386592901772381386538325066541866453053718863218488904769706786064116517434083136993250058238011842688286680679500237753167455785303370230485906951621347746683782698384192619303132318311090511413841723771457902473453088915467187480514720587390490217466776930455565976238088182865998484189752090633360504622276691686181707153645470349160990595035009794810697307054172959784678446407175179288657872748493126386387752883720959760271810449500402574302222451237480066467224480121951704603834177651148960578253139329341636736035709949903037874755989324990148884285173774986454930048308953953440535739055730643787880237748376322405006856336159789484761548940849066767587458903677452437381703012372284355980166433292801129359981336815010471516788602284461770253853859676527757793513636584700779896054678892270864631300247256823114531921415602997885716211177815043997994671658503738305887477335624432000154529380078486367784173151374246732577836664276028067859965150803002994326128292733599095636728853042736825646767587861584718390884781779290225949689311898864769686427372630174363584014176151619370974893947535807721072259619679612776633735979830228078028975201370244401077398049471464678270710971698431164473643090326189317466507008835249305471180836195836129705243067067304528030355178710147083203345909494230750954235289314769506246258265208581419650247428357429505024587853674443558974573644274840029251682673798515097982575962812220085257579947309412716834032404392568221138031703747640314430191219599896223523399299068383102272948475929037797948645982964837792052606925627477370882061754410405878111073500177880083033566627971307856785752733365380578966376237985849173565195128392797809738192000673553401782096924486469618989412413936092804329164243815405775275483792793540007062851829791386019432188658248837633090636855722953019639124401649022598826149625242073428978066654356120117096297172013021367303913005306603019882474134235277052938297639983292024967624952396556932829657546256099952693152491144173827779120622945349437823428955197891170738235608141454071379507823110973766680528650257645074413852084704264748485631850197366827722761149547966536884402240381116539888625226280878040840633572110357423588427700991370486752586674043276394196904278689024643250721308520801154981533876955239943197149456003962495735035965197050125643634667994400879491698712351519031862784085191265917309564221991453049087041737947629588615663304878708067980767369189458871197595553853528197042253436752398925955401756510013446487847792226541316193182444648879111807994045340875271627173764090638929618633006402410609643905400631234884378650304225229022033684900506251366105527559006783103247354078905136959188143732457767077836497787256797138368427873589465407042663433263469593222820290578746339143090570332830273908276217246123731502115796550246200191806771176908776364688108081785813937784457732828320456766028648607771644302744472728850931865583241626734348566616118373134876453406267990580948915969480345499438719294080067476177629686889746881677549266758533953463327140292843019656293055062008921132123615858744591399201407168654637022931745887997016448986757274566672440897380869517076741871166251100544065494050736693857007956946097846707969684007279226620473452961959584387731167521652224448072708898148591539625958284217572103468244292307721795045158432252952542016286458152442647336380925941549876508794584895952302577423993910427215084184083809517173175962592076292234691977791467766595428112291646716912787071554168317668713886261269801594616974254364039555605641297890520640551075320534803160066323773818270487712520813415525684203429945226595424037369884270538867926647333660094717638665166097392229194880578195953174956963477200432059698152649717971762795397117407989064415394093534058179417546629314391183538013313444150203068614208940480754786794719875608216268332930961065754851980300923414535359002529833918485069530981575030880820861872221854287085935664957439457778580005755224389741008643107803874368052923639860601198502520919144334880937562169730787172749148582874858564136041411296593735170818549270150949518612601050980171744159592101984998125569157907662964750759102088137742691527767052470187689088833351316995904015003520590056563497416663973687760632847696378897208605971011080075992405857350848544697713692968330484111596517145573489990423899350420089087730463868788395180498349061525067220268312135211158508447103696266735684241864859069973940673508451401544766555809296421869302881205236967227705373365441025917970993916970573222463692935176139448576007784346612231122681057950852490756037331040650196573306720504638904356206473013923526891997947315946790915635112101654554570088771336555630366135735348881758705211646289724063005790018555999087989066111440820284467148791346941779484076822084754996825833130391679632506445093824954687743475242658246694897159946011535638140158697573988417251302985193523798595924012108322256728528190982548538181751154082320627871633035322359048664622605822003092514777895367566436345736076071101185888586022993972264516536541136564553374465202267006623965419830347442666049969412271003307796963216346282571977414403134508294109661638530392944543600407300783142831753492438784111056533696759733319799532685228454359758000227703600059760539334495405980970926329332113565095981466585291222862869299766043131921607554643176480326591636132646157446581970744108459451998158588517729575439779803153394646046628956132458314913634626850445914234311165014336829936519844319791037990515788927767081357647846441913784431740767723002692805633121866391983351199286508140778767029612124308720339364017533619167417947261231640986285581866703000032978742970756088096773648521408829410074104856761631723162166076025033276298272359096063040006547287797539416741004236711018376651498030181323449705166511461624186001736302739079553754256237325190921708658890459562399393046215096644022166398002309076462030323687209541858302994339761095643702212044172649387044055689487871998595829337083602827792675435823124990033634735826538732733079910874501401337604587375810034160568012377842646894289159824342182552996048100501281043847168952290250366356047609788349794841801600478707674614654216976918709948721818335185900632187690864269800801841597166082667772935558768987666681057881678143885883501622441673199173338139957326348097159374732850428403002318694308979024845316631452643102282471581591263722387891889028995351465237553056439535419904190334389952153583983325906588820902015141552009223828125831399811280865504814702191726402441912873136385394341766295525070210065647804746801325563279135395144892348891091107806236164489829702822992986169445379387477506467079621356815982027382138886438821571665078236186132311945086874979589844590827993798733373615711589414602409216979107112621757108138130853181158414019838481282881318397413668404596885235284090951125625949773218124982358522575284895098008967046788810731000768337691083381356485232385852350923235212204257023155066604883447718792838119441777236066217578920453926836408586143065161450438563990965419426490208824434097809704237340961687304010350481778267066682558722330490120217429239488001779798958458158049659058397155963368040778453071886974919182342102555471240379916308307902043040260262689083967287766798800156807427160568370526840690698466428975588318181278508138811041213108915082924514140841043120599719098115457010395133229372420864596911948920163558735725873299568425089533339795516302260993941897193380580467212069284191637087153419577393272219701687081910385606330773506569624635710876790740129969785933411861503687127287210117533269317260024861907969386760256361381880786132138399394993410943494634357663855853258892626253798928495478289792137234346549278760763769617874324338646973368557543320972407035199946714635860902691658743705543458715924843119433237848923068767672222508536404888708689688705592984695814360132515001795613898034008053333347479015765379905113939790950611610676888740084559840203939659813128133128336918569621514372714986112148263003346701962391808883470513155885072793704710925617688963036703493464086100046172085838741331740428019444420403663997257690927039288238444169158944894154451518080607801421607978130688957516145547105123306325493856088330597450552522132816295029222912867132828086124050711530174463963055496264044691742084454052042654382904760655075707640307177417285364452877679566828333016918424604397345661996693871879434100481247638239516280486559488391977890459617832068502145057854292823752499584091035321208578471805756287887527868296887180439925345098245906794546322277133167767918585258886991664904819374328164325969851167312369451140154901252365313718852671073338951546704332546868371742094984203968670882891901385594277883551865774881775394693388398268431448463546860352488485753032463622548843773482681941973919115573025978134045032687829660592252904047828032882985747405022560774690415927642097768139494360371291378392729836768915857430652584952241168108153537616285414770636866590688639448935387354214120303055975125234645174756169891367955673920082128584717912611416374700360018742173721847942673734406609313161374636272239705874016351516998162931874440575736537234637753778870979091812922630781334828277580871491851310145776539011284001908334338926228485360849252667645297153949577809133186876737995955156330637557336833636841500919486442298350344792408276845805127187953805437217915654551831020655627312957690535512010523053497818931704975060744938008619596615002110176028747094701708293115886879993191324102475960713397475665113427606422913942775873438155373042300546953684511381149816316188469223943335129780547435674136841658114111217551049010299593771594781534113799225593838649406559206211375651099722366702524790374217561270228189138068781291754956445594930961067414016344871137677367687963011731736015386032317327932412324597570079198114319377477274455439195853028487720913798781696278660869470417484176177908912111859789271922668884766208469403599935446995730871233384620085580487670444352811399670308361676666222309783681884722146312013715807660794715953446153401181818199579784098209274785121791455974260070237915874658407286999379827002585821388806627106143517914011830949822901856836241401078068918359097715986519149596588022585891217638169661084844266223446849691148850168596863095806307685082224200337023543085557538852339714056740910233568586052335407569503056961411312322349711861083080231588179551894745634644140438989097729424982005112833598285341801785427520282132823415949121373811624214324133635264288495910313252341048552934362129068142830165081617071091561509235744724523532796388073669821792114219793807030455895517110785291182477169319727935702586683121404355199000769252749401351001528109783925791762619950963540529999673622114807250427677422058402935672302175925834892652299471083499398546221151629179277669362701554702443043140372742613683413696871875991442701657020947521411364830477757674584561076040494548851389402070885523831945040957266650831189984072413842899785360771974297720505487763282379135916720577703148442643824095099356267752655674912428072622645586576192813854312566300838299674224125214522732519757369145218922518683971939457007261466370306816439489983654316874206218217103725396783064763966993689912607818646629023465637516319260527143122500657644728751698377798021052448723823264456212228694113508743489709477412418159405863715536545174494401562148984293313679171551627035709913666665403963724209901578317958766203496269294089058361818111500584397864836355276034797653560723203928898566558127572287815846996101024565749896910732051486383582965678691459746334015473742442764510260536412404131902992351161373128516713001236907199244742958458670197768220784946540623732310032343301664134395449050082133007782297315574404750225400435234559821489547419173183094031365681291891388379419508944725278935086892825198483405711860474089371335538290432656738254079460730610802951227205162880432469785363071261865401092296314321146028240283066015796894692915002977837738764300337970253714258202187295594980045611018140599421792610188875415059695747736179977328786392724159117116413624560914400350496124450989199501645969995187570504675212252996256101967984714982832086687203449583944976424454409570929198159798098121871737916413156620253352761592717466344402174784873127740161054020025966232702674315797399183936166059404253917562009543614491015911895080057164691922566589123753003311236657120416622933849337873944322266416000907553547138965237837428611275711714664860307187755204195932746804657777800628659693344226385700361821678960199480118201990656081945458511586068142606356095790280983759552107181631289793539328462459109768785335740439498499152944536659982955946467859793960455204646764207460085455113703658238356109245244665621506623489209000391220535650815727024537078761492798853027441525878380835109579289880389740208796092849130634484357960444347475777323545998881447643078656312542573043621249688941227072662929675462203966571216732654273524784399776606531704960377575563489901718104484075770423860807718387353676443159388951511704660334533855309195555059087573182574549880888162633210424868312108978104371707239335094831723694588384857766014359586706286364719937797848472601778001255790940431531214161407322868149944680900844457210810535324643284984767933797153049793723739571778868380710966080855688476153583617400064163908074944145476190668337062156290172336464621337100088234771268803476471582516342214682242802694858983926155165672961744583913548377778959905337309407173871760754537185236672465644798012300355046934791236524775543680499726233764168312855808649785070905749931656125920845599840446432731394956762509517639878019251008859588696024657627794720719657582777898169707743312391617355899630897910410791098914893672626403882321277164367092051620182813328162109191561332243059354839258524613592743037187757299160057217287727329618006939061335692869168823529454316182269661980145514096035512889564619415003014007968569575788347769048285000448571988930707359601670150235697411150182271244193661341335367988283157506600899588138239215264542105298585069021177888944314354954672528435059454821602776763738215038252780893035441353718358059073452210944877995674217583927134425440630844619725390443363263067350304177319653707424465322334138776707335969186709043384237159725535243505267733514933601558256294836656279333122613137939059487335520798103574084701485985285260894536922363281619653951517169746489481830551623574033998506407945337516664629605796651895285495348039973501615754900630201267850461492573671341269805781091867483535316863857922001643072292316010365852026590171191952870935237042961528941799427972707439775156841422688724530632590483607187841058214857036470155271172547099714003525602226044387675574377598381585127232595216895096717560103805890472962501183698713824595115139555419478640130662414319961762325930660724954881252504387370311841326088038216851932795107094084331954006441742915350008119421062355127129812141537449062136190791890766018312580798250828273859290278157379767274251934148032519808666895176279838160965570098153335399285497752727341084570760024493806166627316153913787631648845605208876995633113689116806091356130128825719335192480656018873729941946992838584242025518570539915802761556147127076230288830507230775516514376947960076109951189569121640223598709575444192410795643428436507905423567199766400041194489899441128873703449341182144732435518085671012684595140973853838875726685271093122391577063814034893175366008080017519934523449951962984917725276759426278087256302917463462700929584224467164393365718475341531609277698115694424444826504960157010953710755978929165827586986067155469176225562162142820254755447855462447197388468353691042596373579138083548227120704670868060966961099434118992351987995679846373659750397117511260425003424098500214268258174904922862254021182109938849441311080432338956793782322100967740744160452772765115656016410455052122966667161082861707363991081430055559745970062532270109088417405421125150301416768194384394408323980437332167880402340235110167903170135210788952157896638722006328225973791143165412023820078151391547770666746716191788243548611681528936643844367415140058983015014915599659915420211754073404507732158883952030446744709803575548396445283596500121189653565812901572111910704615899819667694413239074429909458912991527991173744603956439151270037070993172172732209047963735684033874887507767912577128035561126052103081786807453578293802100191251813269117752632405694915369858050155825575692413267712010351623392619553285072872808012321946918952542007794863263052341425465191269859138180439641448316627845503862585351057264952663077323926740176861266683872732860530300703540910874616423301510251429837955332819736873772934424104041566623919728441862424590629956109344753682161626832349983418177587924318017721657566982659447235492880547699806884689104702302019271720264148900578681784105066316421565559294754133315744305130751710678838486986302589000915835765382461948443171174131973199424610151322538634919519444819781470553502736174021609368377487538998902377975084407853340100842495277267829199496940020912911185223641471678070415836361908851225851453725020461996299531212043702179108109378400847723126639489827545176235703737505729502183495404176820611928975460386679739733464118008063870721863667904723502486834465979863635440686753938574610552979552951480026462474337753107935933522655042702339101113701261153338996321064608555272852788471998490573031620878906222281816466648908989046586501872714120024282576631245156574202666187972817031084511716733681640052940491891574286644661554044442923920451692492093733549611016916558857059863298577205510249623729607731682066119051028484236597337744671097857491302571937019634836462318937424271174674466373529584857569457492791674447307449458502082330131231770452291853504436701109073454230000733986606568311575439879118511807036129698761876034570778549242619526025882844130694048770954950797068495390893041310324375606484847236386593304272193230852248213089346943064990590179069235435585850481709620899513794981408541526746866816941705582021742975929051553761640341950160737619050417510060539425645305534684602304318719365751581108750115902644408900633061975113188014241000292738879578060631634234248237736348746953106009278328480584711950991760017208146265463778164124688116277116069039109929769294687213593556009144531172211734036285900393118557591782791705906149020372514927762466297483380230418920431253654570696316538964693520347942851532799699354741340573728745349977498286104082644819547280564113271281658893583575680350276365270739173437347999378518233726467101658752206860429429423173908517221181787332214437207273447614441610125763686117930928120540168851273839435724326284636457759799807152649433661787717333094437807770948168416235892412389189717495246326410891836414230721516795491806600554490398805091229151869486182727074735240555852174251856505913452392134993014819016353687900529468214333925698362851665709174927644937028301315139897195898413841061401123994046799383686267698260159262502014033456133381012307071728985886092780770537950575413630916419257347181206250134850333691279103847187342635514628183906543477694178581754201709145989385351878604929320018931236531860615779534524594768798322971783992375120027950155500787084069653798841839149970066626279951514487520294719884152715682715954289603594722359100521055828209398215047095376643628368310542753404335096441403388616480408098893639344949485930254104965107537537456872689288594025840959959664649170730097199867141009895094115667881296368701148686516991547069406684089166511144192913789909375005601447361505885574064724301663978011752880385533536169828854530145716517494674293280372726910997338251310332640449832946696730152776794696693327222159834408073516832706183325510644570027438408196965183368200447386866917946507380415395071497953330760498555079083765197958092434609908319584665792813437938587487498675735339365075449977635376761941188154591643722850077403514899075589272659666722950010525365540863207434557667287261109645247309794649969060557335921380535111687935714849182307028712807296700505323867166575024577768852540763592633374415203749977976882143666346126402126358148337977627276551990325283626733074446968739812442882572894376312178644649838066112093355190747800676259537923963432527062304545335763094286904906295971814777706809051447261223994694426137436630872430685046373327245964212399601637647482715479730412714100493160290389339023665624876268997067633617159302555531618024221456238331140138884105951678185435235475654016322593824095595716769846919464230468230062666669266234503741350267967806195092354455937516327193301550962899312088883849349224283216309630632049335210274009871803949375756873481352999039038223940801142283828375674355308684619271526741541183787391595063804549406494139213574257831418908297907944225345893773461801286183619116071607180678464266649954359151827777477361945219553074624824465758881108625131660865037108641693323800141996614310382735331200052323387945248339431342735262272905067804960393948452988828667534837419092207744880405566129522605246689892540392630321206472310890965156335017794347021637929262612195037327310420669503418757797492060950204989401181108088206553290539121444387902207346222681413915323193586346638315847241511345569628556874463704681974768516810004242875470876060283943037469411121854084726764764970041943117483540920447216742433783828055262176406251593935369665649342601108458892126668350748680437014611548328022679906228026795377116338921077920319272853427230003729140721809326147214830117845351177996070435317208357767171964666908426014970987422397716298337436112848672919083309090235898153047422440680826165423234879459500329528502685203929360418246483347225491730808660175810509614061258993093326262620297312512048896379675920115558927624192355964371424624816086670055898242254805878789616455960332988946806900836450276070879671011393730347304314276726715143076422559228681646869246741007894207916468299618213145371145757762025344062712937116272174578785298738965559667907519620093856459647107473708318670407089919325575980877371342891023386911357253108045888320029964765062047466317068757672755517492474391454507808070915275934244194918358925459704063345388681396814850753463813285829106060654452698966153115243855762757225553799185454070556213672633801596120506985030606745060474054442636068808740356267019545389712337506053298191248218273129985334759920722847723872774971380023273375084186106199202347969730527055016198075782392139698113357993892964037804169892885238751395401995403640572057873768814250196593368761085638588118115270615414268539503827534806612901785750363136429707709898297461501964345546348022492176959916087873027577347280508404780901756372290883118902005410168458957431047065980726288083258689000565699875684302011296726990716922791845558373608575625144292787327958678686604740746083693656409424199627012635358120414684004899752763556228780328042811933442943427438266643706571539013662363565483296620893423840292228704280487954438556632023605966180244429133382370210109839980697078762182657461614113259053181692962707421044264312524435912952404310331333261819162382369856606365724322095637391611300590576158562375119256606072341281449519849209242153687783528153552197222414228870008860628374760088415603989808012366046007734860266866820406257162357175160090028577023664943356150756046889971637414719413979624068593544433058208048583357163917771886634665244547442152361632936428361782969498473769637130458874979192548788300305119854291181024510569474216814901562064712101070552766062798110398806486395464322157387348927742965453805565159882318242268587319393241205598892787657297415416424862743910013555899810940602746048761207952176939893624975065380181566355833596100131862882945850992702905752490990761948319946870075911910227455074977652642552439737930785594093874273467745108288888533163917002098828264193758079090313481946223770723379997454314239350492361388915397247643777956334677665607546152890882299228603593770225541886700583555323332107961106432419894831775289507170485667453033876333971280067972571220857229285387748207281834801850956763924049441153913343739166585534357115547455286055655183400077133623395600120747562458547040848259488557025210193783188340651948253203520644290470664025616462701312010246387985613322684273841612915088437500756423155492424126349577108173416709728437085093253131314259655691601587229044139542105813063708293550621178451879676862742798168886645034078379523214870300545434280665735214951627978610909472492000244121648500157518410521208506463943507659050420592297750195207412552018689485712259449621377557377234499784695316317391955255375085027404939682451502868470695111832526506510699036863436675149491249907872569689871391464518010938926833608555820015590626120428530302095512502868389612415997284109474942421147677392681984278004417448604679048698581201409138693718035582021991729651354372570060517520484936168772240583764778766969512757241853090357629686285215167104714790306294423386701673264571469047502930931824297352926569570140924710642288911065539666456287917002805579914138242899453483647384708061082645012323846508317718208710571215383742282386817364331470002775358628383475362127523890122285176494791150260217158027774394415941346323686583982501691174655406181812098080160681168473116122375521940250662435307794008394893812517329796725970233468792281069360103810602667748837047726325484343886785723126439391502106803501016136578256965397190646249868069903780345192245010549946736062675857047478394893760531244776770884982778071540924770107528071100305673495385899389196920650772365153870324895695720505361758969889408038709485759530326722385219246803861132304945824483827985903582781745584459181580965732152238891610057221798928757992266346057263668261257294866238341157030112187915050443087506495513569333905721346792201825076428722018779888054899999056044530125867047928377531611878443923982914247562974586571703973650053374621625412995751301907880750072105240532643842034131508885988388419209341153444730641198122423203000123461110791247174159518539711173439172268584271302784843801121169179167724955606382467969047713746926954997902281942482150265650074293624966157213104557489416045545455791013773686020971179803226144483459364336194653976376320987230005542563881892276625600282120281975158467350352118631830171080993376434242977588283659260802757527164216691711876785598339818258804834248455389070975908384899548720362878126848083129740113268076290520225368343769571722708859857296957187374510372227240110956985694412218855452370317363575788014910809382601429190311953789613921476209806657422266055503352625631364982671053225651082885719070207726220285067840196556458978723875768471744761812003067103697773904744082327620746290078973934211789682333650145099458641977192879448929394677201432079984775852810450190156291717791106184856941199706910337243007999230202162404507222236556164296479656230215922168962806042641892561941863428875961098668867217440609979635910943453681624679262111795092038561843119686973656988238376994517379132745257069657284147699164415526827424431673904176341513665211978422145676900813593161717129094663803295157350121152718392100457359954023434914760319974729392119262668276516533159760849618267731337166448884857001323463302106828388637920812697258577521601716996720028132964943550504416658004604942942528016446425927200768334360509684337204522904886202314589564957050577026501691570140301137518419387036970919032411021632874881774815457743117863806691674038008423997911572935524364139008433981829211686681691349567267320976210326332252995523799031473983574210826281810307189967793440927166555058047188932462684000417451958330228654063894076647209463467840698290464993920538887836354326734702530997036633974374272900153898219848500138142544247482434653295126295824627127562206905483570644127377531338538028259839520129873670803527285577570613865227317820000482674662873981992101910773479494702811587337094592488990388462183387416219824873493881127930743155470077766578589161834300951433633352338812949125981478228086876489435989382051477122920860716336111160159610088772735266218715719646193614155333461973110445054709511593327075990873010326887407871112057780461254891506628130013513629209521458723284252824791279545056646094303947260267236210241441595572741426623841367000323860445422755079381574870913972493998113173421511904725672742534294506920357408802369741432163046711490817492103959263848518494504340196870442930676819695601909160244891314283877333782948135034974101177707517351481779860213726667910848684731334554892776260988162186885474662767033751761488334713049122907905517084040600216288792920491635124923734361094304600221460528450212635500935973085915850954207867561255496497673356586597600076560072710006215001976031491793744038527687399735344525792917031131941988287829667087887533346078111284243555686297404915892839448852552452804477325605547367575420199542460190689513417642267770326753231623059431006115469334154222258086394667498439077236730443625822386117784334129230530492175606617097935289434661785905380925081999762277293966021685851843819690349913490667609840138228915957682352267257498211091254907124838741088826857726014556527274563456746136372423225749942425926083306954762454044595543753785149801368951754057550224096134292644388119338157287895301534498963016327082049450875462201453312776622619153786900489639578392888007254767888823139078451450486705140116485232983633659916203885564456531887268305843901811337774336639900882179400412242550272566805128356355221753183985630757170353932615411730388319496891840077927352405525449214169572068881178394122070880425363808440676247395940061751698023706820443309624371865263497057028453643788510651073346177690484089348275731786677979355343283187481160071680719536799901564382339824798372790638102678938524132807708427717825766353688167603438724038248173504335777920209276137661291514890704503288420414981141104914842987462702634518728698376651948571123652307181402903307101497384347567967039258525085863972550763706340278123983438854950906390004889053950360433337607608251233423585620509833667688445614776082662472292388749155373446266521593011052472608910858825068472230150582759642218739183464406586321270020601810038691759626077059189344582730740523017005345579843589425269683927920752037664167347539146261951528654882251327590645026207248133018336307942367222467657342011477915094017947234200794243929696504436368915996330211634406408435427022245791822489165584567266537945356585419330385068282838128889694689334343185423482583168712794125822366572630664180636369239628603257986588909847358346135758408436037581135995408656136048874223765365442693121562528066562299580519054177104991932649322838312690324845257629829003368352881328120529844836553869793191850395124555823079900554076943005999005560513842943006174553207588823863789084210999898546021044790117889878337562947046314022729066891882597273810406733282929197390030547186283213019424099682854577756068988356353588022431958243432565413984289378693929540641919713885135010406413331619844337789862708714252277480786303617822691791599198317676332220024308868700843672455530238496065915386421562179612530304754369774666624676762561540582921276561990646521726408482432794514445909416252225534664828370585280520818088324219896134517737197087096274661188805966338448567664588631174189409524424629878849483256352717868410391066370132609368391900266408667452838533861176135272779940649583964335994320390480536045397863962782273453907350636368345723408319478574430228679525163703636010207192186615052474506615321547174270500433987450019351422480361116674766181964310625585468117892255495448737657270838258628615298975076699720538128413827337577646946164166117281598807639233448179327569232008350464005176528951208499163847422337546960042309844860803289208442942773832171199072508034240745225558451155750864340198802135302965432797441013401435865749678722774074444371498143917008115896059102481861256677107644770006518212600605649753944494052769246197321211444696499503929107024905429711347290833277435721296503552232108558481750767752899072685016330033983627060325552659504514113410366220709561186171606374439109788814740528253330294907314739478944623393810766376735773838444818826671457400127637145048906794498912730665356500031570172720382912372597417425262612362687708064424521788060254176788471946493315598668119021136189035286556949420394145901925437397569418202127364354055303819541810414284780677449685217105590180763034003397681254527188271656891301490594070558905757876692006049236887613078394824849317322935829317777316571861165625219693310157601419001943733528320348606803211150695361480728283308812329616716956877445483876698410329172541423456866813291734901844527130351075544544893978273791790824192524120855715552941252411864574613824465520108127985729357417409109302631311063748816787783594323253090798478038948438478909839001762215100790511691587626240340752567945343506065726306829561692088155372441194254948987563998155475101419353895518130429640593541182639631181465559090316337378200316565458113158357135694775653525274759884317551867228053279440791060114696623656102821515806646561899356447844996650043359506981413451121786749780524700077705988121434031263189991117645667269779933001186028104948091054855858465888632718159684681815383747955980638501817599315991502347326991237919716716586655931872076961036572518347683642337139660357982178099176341944053300474905079165099680874573776851436880247075271595852921262820415669250690084352382766772767498586405923403155955668163059917155685274961656207170280442659078200033441557272447644725296584244744367209068237512910703915985202955740181619278908739146120500925710245247155061289833192202751861158166123411955831427301205882594983559529686115616946061303672952128285602421735671589622946045233319171013745639555339056638025527528479323479523472723860743370314472499845635577241629314173727575471370169953214442938472118758049195263260835864121235349149381725972728272606984400412970074500531196708355248393522042055687716779590347529499678397967313769757271880292809656322513864195284010737042523463932596251390988286632756162680868671799850603400898617531024662526439506621213218692967165756924842191439843998218213167922393795093186058409980397518978161549118359233478167345911578966231838604789476350893989741891386217904913429226041991298285336154565819853857334250227745029760299592228775738557847456037890417263289304979846581855554699649066029615612319018994476727500819609659428678524368096852325568104837067021403961644850286495950443313726618983860013851750875937443132564913073143354395696103697893389162312650682463717276747656411532566562444000560382220643348042443896379162122802453901465796316258819159400195351669582024086377328900353764392779709799042097105001784761720967172456202331491370557344991429433392317774060942773721687784023730551341598105672988400685474556144159923531026444958209893480030784522424112581643642945145226893712815236170861898955321981217157552920633051734065258438827949301960318324140520208497055222071126414779328150747291848264522374730744996579854650652972356057535300182231917289296090855546097434436956459775433867523800830264932252832159613055385742905520213363015456163610482183440228267679014052294264784211255141650131334552559120212104375913582550604905192950476373174554104836110661808204448498195636231036469520464034410901362556319667849924509691480782611571169739249893201935207767055445243364942073643582889017590715651237639684383068076238955507985345472689716240319091703743646106115371078772964304349855104962779919659562888128446090033640031297620861199878343017261134349248809992528090953923966594255826049785822357751920812175545891348434653378859526979826867378628102838156999819628185274572532067594681915808072305815864300559741834298112893036681198509826838400546221785609313551156869587309086259720538166628971384375514909557674360683091347197152066445909683215843343580431444274549456969100158018043435998304943574907120715199987686618220103306895101037660868609889361414302918371466836793582678471541556161775390658899270099660641998843877259615870250809501054199451591220769269685253603632759809821631523775995191927336539632260130988733812280758707483278790165868112074879397621675178227413354357618103131366513851950582785584628194421808311470673420255538994565746909706709945579848312768511198670473644194562226346772057346482420527942211889581319063580323265879855767200791268959822539108927103732777166768378906341332902255184722307612422020335902766736122905961654985344581426610749338520847636255910392718267246562226078534398698204896185358626976394927307981065881755580919062854264686343116397594644924057524936840706040236583597207856776925033785737594676661117364947605846709606367947364655843779061666169704073909804490504162296236680182505956838504983056226048526982937685631928900895205763939032020298224947584433555084187305257116918669028441272881274435774013643222259608638703003414464214667562948542937699158406966658668500503380870849263480179149178582229281552628384202416930542609918458345301665077388671668626170688915906623112812509955164960192763843594120311078459252750809170392922750325472248547084873080259328575976921552677239549920933771151902620856332443612344316535469477283005177987339316268591962481901898662622776711496121155513833546299035687291823044784131415566775513038139611460855979309537681101427573668593783635223559037940041898390813062194894711459690531450452262479232493270983004911976458651721805351223850679574865599811579309700511691610505282312087997746009786855393930677034008362355575393967729636264186341286633828432827124729725708947361132013042915313380079912041500782370774358994056968473633478067855225036794240735172285611888243731819765746551186599147422381306658108647907141750047424788836656649595682014716201928906513548236209741541680625102254838561617399226414989831189967132054935723324133197327099978930443688241261633021664672768083026276670046329253106688838908618934140477718184578003833850244117105579264844183529178154631057146066132161811491752372884871255415169128409385802571839816675506991870380790624296837327029100304078162634371344757640507507814182571311460798912298641668140374364805283475863169035283252711470171607373458453513120526003415283640963539920194805001338319204096153357275505704107772521811035406819568170809326504729273206375170577315816341368050897922232028203922790881066842915090378605227570535288814155626441671163362496372585373382222276253034893045450406953272879877810012682300465733066485923681609892432543171393777846296130096424162589450872967689785173257296800031904920172661783811467863661251036930771535126307923155497689255417041733857066122674755126553259997248098439291185766667979402756198000294577873188750215118553310881803122723855529955560979178069312702904675365312095847069531203845787453137142421407557169706474444650208019367815103655394071850442117822682633623686904341309519058174271929421020741586915852707590577542364827804637293290177362525312394127530935466569974609716698425310497085112323930577612425191663820404391401974131451446112599269441728819090074187248092356010744529782370038951000152121573529979957762811506754433143556703715958818345893904596982495790604591130363085936812265829776396094317433000353802027017952143801252144129074983122021012832116897385004472665351819388873867860639460855427911397918792598820339113219576771411958444609798334820874175648435585481352120466831042845826807784745391838550223976148611787079236806222596134332623765195753514322076843501515982758074930615159652984083087147621241962112342701583852455303980714445060038299550231942256563937374525252170072375041956999777969173294284576399443170459914038337747697173549469097900469819426440709492013806288174795474385475716106573804492947396947489557492953769848175489575032227939575811173530600571857112300265198430184259700136888340168070905072255817405833470707725254543882957666892289607409031519134752468747348970128189116798928823523604923743481384001250875238948013365315864661313234450211412399125958509325906233513224822369720012408014930675151667621603134417877728485165814764156158195189620466702876555678153639836960074021164658967576304701288637958338056973088299478199533829051087032385091926915052706235221276467870139835226825908891839777457477920168921001784633720925505827551255465186058222180883577186086470137239319058522650537273331720522471742293859960443615750336246113160101915343307661360130747335031462743205786706604560109984708528969893466265818027024322408102480757158791121014676089746532226131934240914470998943836549828488087261901616502689246492032480254901715811753967016909852566483644344185847454624728408839766660857116700084313239971695942287567597093143824339054316722724670759356328050560516736081313150552616256336857833882864448296319691394435342920972915253619121584661976441145912026119831538615370778843294321538733926178577604435366837739258266558781746603577961071348852726837431524298202737103833488029668807851956283645447919494186867552519883129732867758131529328914957379084774987518092931043497678627392895219852225642537586678485309299037995484378361914959345423646866106221383150592177046779220618912549844509072322304471743248639470119363821019174722710189834824405211712269931802462676275285720804732721440612328833500786874783493593131825943067300055059108980848931646849864425018893534151018119703607881531166135649071971432703112119643307243623483511497846781512498546253899104284011846210071500969752178329954088120393594272039217661526661338381991385689212102436770939913683051462940298761075406023559226141431669646711597885234984117663506167823573771838845673581818457069794760150578996082220340839922045450740149200479010679609371495504713170584133296609383434935326968073544169124655689441769657432622110300664943682938070405525458913323462596893030656263066207017128415497424954178206920391721311691970960203985231727248361612308100555653651340662648667851720786235587194214088068900973469630229832724103946487866388655892100827848306812924317926511786682547983231669046512104330301038567008442763142638067758552034915741181165850562800462347896239729457079339676432563810458933501558402982221904616711531684872301765089560739054626118800405750527667607160385811336263509337430505053339727250545635299122113139679250685519036027616058062386764061019578297068976755093067509337700923977687083629816441125645933028345170571631580606891005584936111397734277087108517075443310722091102346698351236105681041755801745705824499916161547708012978079299038686501339972502117232170718368947603726028237778557209822503975573235732593319010484427283033975860355725061803915700403409525815346755671743598339440894513478412265874886492883134769162388916347466968904823530548629712445291232740188972943292211945215138194834844906916307092589342304513614777617774960453993855556849216061156463746722991892807441507889228299951281453336695582930576191438924649711102945834233212713717952989416239705203161013130516577370321526133941477307752716717972897871291011854672272559403847089618852644826253797780921419861041206063338913649860204977881727440187107808919052508726662529278434358842714068724909792036843684267914574949067921722971229260578126964533123284250985614233823725841329036645030756609652207045884470308469551469220160583020334963913239919526676138365962921789671086103284355497871448046999483952166321465451689411047631130146571080374955323067112740074505142162193684202268664346319431144970207350911564667881556881014029006139910845912669411975012673140576665003333149332421557408182728961472408675787589551147342759173494289502280771231905434790165227808894237845177817834950633677737399320534408027853878694665291942980511009003494262928459145747283146255285284740530110871252804666842987498191645800153525674182495145334302607857936811841832997625911648265258907440011748543540524762747284571342158205848594961563531625067388780288167512836116036840434376837286832281146701866532585007691275334043429188540889230704763538973492707818098187857854814607898521261222146664527689120570690100625532668273805160137135113653589614383495431986858521416006741778361109961534548530281942189045516307984878762682080462855931236967716367914131180421715748784520711193683247655174480497245694277392518197199527691608043153490449727996401432447038996927460174358465439053645008795298158597494799826344712579385347504395516101875201211742476123392266316868355673063770333218397498657038180995150215368055073491699677746541190471088775270767114766931609548674854182281513472073236591665180611592675916239732928797457139732161823088501203761839771325443307688775837833521408251972233127000303967545776752289452445939522847928198163600031095171392305886433925613449970057849976113826723177018937979333482319025670546405946080475000185613918695613088837909109506691822728265690717012063615270217552458790324721571439872204276035143287745686229100644662241503808227466711100861118766919878347129017506443795358401396643403936498893509525867722237416485306135198104225805479208152223492158635188780582602522049170589841390772686706524268381188935841542480286377520604391150881717996367829773825115619547313402724824979179309252216377669399915470638900918931141586700401792499688380989003779584939036146629294108075164555889074634475060121641104038724602760986582433965555127629942593305442170813908681222769588671682996402145018338716455882232799745447667020786969377524378570709752912098558562045856765311442228283040536405937646329469339588995756884391649809559017326879950570531231006912728563676759414545410027212052614826229224259943300141078990035525359292194709186724169072872956382572301839552920738025407943461974676784331160980054504751156837778780100123363310672666054456677719782591671469179627861814562344713402699771925622591401599483495690792142027314200387166858422997192564881586952312077187457024180079913438065988046578599983759330680868533379304541821138638015750062319797108103708150338713246130414642423786628389046695896748546367291514166828557444825903932800842444475482059423299400738593500026255441943556632916822728790583144848716461752993335255427770957313532491278186852865996596880560540173450911375495669486230890961885052428008427101804951535796690312581730283901074391185866400296398149913716001298880117811233232532916307278307042966254391940820923465391132768431558039070082105368352351730443678908500507949851050320807826915938858781419693922120599542669685114910940584409256170957696090039464594739521354185406636971210232737501497629444512301398107870953390898030436609579477877262016840621748744209711831982098365798917790550082174060920189677235480386094760382226385613931356458688334417572000693202230768970989836309012761845642670773038356134452081847185123800016589431370382843675453089977193816476812725748525033566294692597749514919506184213094905648410154490838650400425180302488614262020849454780266557234090827774492080577491631776744847569773056256022797753818125913206020708289632499825851280345234427471224277088999500518771747794101193343750817319563898051183035931886606707748314280031625858245354555769708707711661898322292344740842501450737060351419522603808295349366154935842408804125864542063398969439520917728703153860805047206007504479037418348251771022569443253843997410452107389403143349781601782675978018346690615718515642986459051988718423151642788223495581610745083124451522330078853175508776106327663540892420865527320384639381258720624279267525342798826421196111060369339983174997228201144287940459560428783773617202703341996354361813677833942991791843747391812333846466107404795755325295695712319937214590359604906557651841042770909700848447431627588270296993213061401314118012526605363035919706400777846079574639117029192341246909772171278366523027182952662819325807164309992749633538050433737285635050923785928371847148051794016313037143878490819581212158604071475280543328973027711557857440028272485129774767995886248482669479736318199869812518354351094911610674965638142288973361721501691451589652085474035389252856094042340775700519606759306558259880757873611260034191556871749956415001940840070647379264491760249670481490947036435061815400563404173820897587153053845123003546885836217166278427988026194744994158114721501430986190054045032805788397079731137785916834409856568418211770647640723948135885819905877400929382486959361331256521724467286830193842419052630682604960149747592143638321672157966572646368444578003376293571755005940006745063314772093836293922566119512013896230176612944383898335680005883979472038103574174587663106550918363966013772412810475734056383569676341086183290392589023993211359036247223535431222063030793190402678787907885730042517204890573204010581499589118536365663512862514101015776300059151959093489329031787051395942388166322362128133684763104261957454139401289664646214512189654802515491233933100311917521977737520649472137252864497915231296713579670999128484779172970370761149745142041584755806567534706380735090135980912444706911564179603949710237471978064973357090077666235081022685046467984324231804497571209073178805218901575914606252480334983762754983045283598257668352766102857349345180831813043037490206210131482041812629365273950365743663652807437098330149385504309748117819314059076160124744703919737527314541232485335458770317144274454409848456480283339942340731901789390160166987292295722723269834379844502850168438581282603637742132104229149862976820710956538414954966142532601361231119008477042236122048111147843716576168178782778268075904688979423542068284818217090099046793088230517346860857104705419699736075177598851306080476853189288403477594512011597257216166983040222456713422185668757247762410275715517576493095223871257816297664339238750445423646863589907182573587082235894991880885062878857635162114441621345982266660165253457698663897439995151185306657255405918335883608055891488043817680404231773534893498553012626323120331377151179821520803987408498011136898218376657706441815941128581500010015305452069422644355927570262578010692044821082431843234395858378923118786001442125304497527292886036277253701659043326842596114419102827475347497750739297544038508526125669163522872781968141563224919996723280404820142749390394973208225994785931551334116929524328506880397247551039730656085376468098055744349896527288936809125736527231846148737695092100229620160909172420742145442513002891744019223722750825520106063260245075271901800263950098224015505809109903223553531532453969117077520666896012634109543053502888483162036121547287718711396373103454381290589669897264972674499274599639575788876168212852936969158386427196203311695735964718087430318442020138062148946271057194311394455464795176861176208799717338591682314726070428855985593646352188112997562221866785816962598845573269910547537125227065327437273880818542010045711945007565141189182390286270167255151526917273862971486012455630257696928822921890205437804684367836345727253459020155229329505300419332811804826446230590235243869080366414889982674114339267184646332291667262079593777699491994359091836429896034903313830420947539584388448747055499057027992044382164065620506031705524672752778218543705681755436219009126373288471956282489027863963816864286857635326855562974582732589025945866498764413434280189117311968109326936429192360700449003755425748775225986502599408300501192142437411469167013565115908926960418069804654960593910953587021417172321265077004806715967328478277297437340909645381743580720558469538131156351311702124264142104845760294163854815769096707762612228379737357970268627641585233124286056512999457018123678844281438631438708371321169431490162360275637129485326393419279586862746171487341091636368451100348905158694110918661365229287435412570360552305019286057445372721025529966121898234080252858080836236734030055638911285931336150227397491153715183676689973717488001876094746494324116558361857658622929364640054248357872666052808949822663128199887191587075489704247006264450941993084424535115596046476110718274565261177897062056228943000465044079923129410421918247262732888353853187109121552094249562078702521057133682020564326643547057126365929830651937379160485584267865977522350706425261360149252821236604125830630805527737244484067656944177665792427575449413184159579333344532455159095748656272368909830636504676269269845341805637304077377204641772950770483580064000505392812472927405750019444292859651278353546319255525360436388740356140050834212262032302992508429172211389527632337318976038900500750389684991081055599446810303922211912317027810049233466431892709847530100820228028857666786023906053577468733978079453802558672246698149309489296806316746746742483095354819823917872558947642490492819802475964082235905855182461151456583407136334101436700613528554909750198575395266310250157049687069987512414956234945100299388669629168885255084234765765537587108731975873268365500477573296497658867575689480563454086317006561010697406961397211502430851870588774386297317409480335568605960660535138983347380610883800664703213590039635713576576467946312266454343368311078437123039595997012273360792159618524058552766215269956695010986010056079496698065440053042757868528849674714381660780292463889045850002122133646589618912923603027966310116769457430583544629855020600092952832661685343249407412288427485832517102220199186919994988322842183552760141348927851120205468440134079936697185332667903730805847640691291502725706398967160662781892791879128907757607801390830565225004340170211877033849739919321462698318063130868743394072223544133048575444446899693244527450550019750737889041506192722995163306721302618309946836133508794198988875298125757063292162062431964960606807732884303412269056936188262929255448128002701141289192925676944189752105014083206149319708881397644426884726335267759014176801970067182406100848423221887767940774411942871274408831067194030302871202502925894672618923817133315824484246886251930143213892135280456435300753401233868411917473515715084964892095028840013001470281249896341630984371150690775120804243284980886837028495685402554885433267707024981206124532005306818519479473617551896293289313548894285808783945437114494050922017092720870865005992780138211180664192358912157593085823957982170366401551311103931190155429331987896230172149433293327520646592467075026985209640778062941672530325280262126156052922314995211498044592626994634764117769212098669351370087554315360406870118043033077004540488476292840456895527623724903573068851709683060051490178061289052871443408271388117438645931674828429385950829506639753968002721902663713913667387200253694787021933453583013837459465950429740454962345008737931548161983489146652249270663065664754132207948097389937668889720044931040225264334457537059632946001385398101045327900253294298631002017082118662340246025526380707615648843047485799913961227266555052837065999326890430733573231438093388009256734964559862443612089604331106887358904182483401718342375410420151293477618903723191688875134469617630276951812363568593036862943114302257889400593996519276001748382521406679078691900140870956460484812074784269871466175244888546084624795496457220717463104114837145981036392864175311193809108260349039969973119560198246000077988337147917941858215736536807120661150329277953311316512229791227930644613856354701538504757892678965122671590611539942049735113260625660114147294574377613227344505457776615852189586429864576915988516256023829525054526887854080300187701756962189827713338173058237874309495767505375553435509284464332190462150712731636582264443421237711343272101553158029088303762990535593122551620278220341052208302907196828684707399538268295254778540382531029882792362192533268710615171058290345893523492355360170197764620666634592062551613334547841877782368523626787507771842451714664989736976703450499171902287790322960711527360627017633868195209245556448831778393427606267541799743679142103037488032275786250139208051161335298019347508886259359175400808837465446723597913882248577910517993688968105794233869090704998904186815662951290689563314812769730085853423683663969955019257036723259568086113794203987175068557352788465274774068602035172182094477502352988716072355140321458542529664385976178405158085713549577390844646269145715049799582331561082643230801968376984547215499864151641647299946643611505375489098309904267674969240514792676613742658540559589015695748226988194852417999111607757797872412666220600061505663834036826102991527299297056502079375457381116370440061016594680392546555911008719324038787428764265956556574555141636811252981271122786378908321509470610977070905687330823771955834139567955407639319390641360814174865506101440178879906724537929327848763848678326185153853251206738146904881161626224161213936951372468615852650900053795806203991291186216672351259259033643430442249613520981372720996528639430234481824344929478144684199635178251883801948365700612721245080194714534615234698317405200017653494765688883541371041686107344626232966709667887767446714125906510942945020762695936915387913441794903873293219792148777933255618947372075669023165691129589379355747477515221685690801214309780794612789914268713339645838574678183828895071447721145160423636583416797089859945418793424168658773660432383228864643197519544459422422580185073291172011529680702003188377081314021307790080793855910147129662945567183675729272024254375749835325536732168726257854841954234398981857280589224506894048497964195079499346515290924175133054407721748211063440923080791943243299914166158678291041994325103827898952489330749506150100854339198477574054660864732129924051330285861971801485527964237136514827876785867532814162450321055377507991350273028562265300181500470044146309548125920648837133587305192079504197616084343156577943923172490263071113954046899389861878905804964263337839126660920220591630864666764475980655040301096608905479652700667054066777529656147688009840666590174848050530939304874685787585440052918874633529761924899224477831452374804972575018506946615673306284891411721509968856957788063650544020027849570694904331182258698696608833469564459771959514304904681527201253913509886225486981297862868764345577355779044770069259286154367796412829486840073010277863403122846721610717833205396260424999635555577476210949446464438322771192995181979687534470392522023839638985024815764336128776864407505557774719807379190196051069949202027833864291338852275002268386633532607745258491506185710112924417958347473248989996720921495527933375063084149344456508856832760238645428958955676482701464001309014969902436789980753889931298022512991607245029465056558524955957416557258360475669118055494979376775434041374826754882951962434152587489379995247401894399177816902639408291332391421048092552292122358097708595483633520384037510750473581169331668113915698987277221887847907526628913813433666352664273393675319430311682713662750407774863546794803055811810638329705647214484821045516830601756836197748329137985539865823137309172200052854127502922454957555165696107435769953107410625729782311011859528013537417028365091960637506965328856585747853328539867522064368176396234521952005296329331004050916947612744273221505184420136083630073789418487719228965174322747285676202632315144199497900273235818078827647986410301078032631248360235130525537675666194857524353830667648655249160078279684555862633958437379910965647321942525966113978144400881721452720675095953287004674264395539586917135602125955265801194939040357151829508751717609856631607791659285251575725288271057070326260131652733995511290487798007545164400948697491870936344774074411109878978678903491004606601902101364706824206741957940433559329237146243795042443459162943124285046407419053557890967623465231628742823943686403018484412145918978410139630415963332472520813687869856206981223677173220740198687889800200652080895435723285743932993605641885370719716427724912619471397912139820446840320520042173152870014538263203430544081233473380869729771080321460307779992665104264093949354302644234750153718949948747423676018945281849249369883763514448091673007403695917754151157711547794312392641217587031301699424052848926042414478318304481566875162375121322467741053901217814354321268652996738731907864951354013964765340208405016576586317436656655799817020244519438749160941924212529136213291360236042447461382712077737241801626371655251456920236802188327714867181811076706152122703918083880332209011571334025749327121699966544804457336316226620927882490875967453735007542968845151970581169899574694689650184254697315708097777792271861647895679672621095038667024049799094367540071201000045615555677284575929498632132650703585037011773239288282614471417771442748892910334590972543999772108829224190873576679362949913842008174162059275966670657713102560236849257832363148731637577784984854941182593784517910699472281427511265984334395704470541649760098967174658634831750503488255396147524237928064814848147234400801415644750603474655182043436801774753934942476589105706997062498137723657754247425253889197965262548935282368544639862799451618804471321370081658408359294732391474719471229991509367529307937019147969323670110369300225205554243014609804503023182569030068204162491554185272983221133462974171903911575727327191389016973180070944670737320193795731139776320952200852636346593981059161762772963267922153963295062863504722487860152229748234489699038233776259758479483897402790218974919052319524673527237863957187596655020818571275732276568196631298697592801654514709113347658343087770664196863388482064563518712259002901600296528804460518771732246912058030196288968870646248940079205529740198307326323893194639365668569590032635697685603267969749470251802894416767013997243911901152182427526730318933572290574162770501724039803219731910813084118952682825654407569951504796210403767470023657121991006182333313338621547711592928587432463631099483171266090322889408988788937632344753296263091381043727453296078027702175894297046427844420054877809729355468994882942538041270021153219990497715991725846472465181256405126571213037240703069882523728852749693140386128527216971313114930676018070031188482818144344668552440397696010502294156983363056988292383059884675200444465776592360654732912014950082400627795856520421689077409981917017147367061794775386212806355283872094638256322753518169629783805099386525281197244478845495235081953793470941414594767487256163668469715475251154668420854057189993268274817381674845143423548827450863910824440513187618053360505587063916087274184409091658639833533562587332773513464526076711291857799986650214958682620171634524465140814386945158430116183564994697564326810470460006523301657470014777004172924637561574018522325574698158759782500564206952744869088579322646764319170198433253432617713617326898792709633992715133460280244395059165997541716362712934557716723110258943750801129643079026508443725996506763987872649712487179276165729278804638599698042932493446888545714739945457035919894270863753801195701860375322595916705529375522485227206213744828863467000833851149399237093398714632240258280515592598172620949149496861469018564807884028356270938803461832056994983044650363116854097834471779919435586986130710650501481518681027940628145000548486827218080708651215617040949416003745201523426519000256181535787011502060900648555928926201144390659394816753968817936732921582007015889096343542978555968567973878284231210932486682828592480758137869479965437571497190495839422005071835925226210835093401650663072022273728215750018658086615223596400693703988648587332162477518590809705221374700096338822969618169238673597146558461952748136041650662872609368418463475266601691904595386093513143609154526159705847705157201087031438149362584233661747676203465793471383675021676704842747768757239158004992708958459745978680674114276295354857513320251045068837928979852212899916448024898897189107987289057174105174660174076168235930001903941753474775032876200224894219171436650869336339093610274390783165798120932281795009416530503320002342759042987162118784469899297639639329415582743757773254020894644755468399041592686682617254660432269199220411745332429322270525558209930971513906054355108180097273134001681035316703987384409129313945231881046686752167698327540983638562922907089129291445337206810301487788153578306283145778996452159722313019258591388616556178206470199119312799295674941027367855187865589349435236930260274626510868640546426122866421007934047716808082623582674209922338002428833849281140218446764615725227185913312672295065852626178862511218259541231644785952572900436240655967407023850985076066985232141109436517440483644276992019151571148754282564819711396243817146854698014936666906830783664907554222057482759077620408793809744234613698595470206669449718977175753840569859323846494750877634544988060313797668434519797789521173921947635319118529685176411777211409785331306869091907642116754075553333570359154366882246992389688159128569342652033922830656059816734648720771578941151760165068078573031172380628926567181563067657752133355452903858819745425956044128068321678388441849856018910884835311150214404279446448193029907412439988820313598583002560590004928061096232504431104220339390243438172107067315364277270666431553190124283066568470268020772993659778078819645644954017077459357666684661199443155615551051411794290973999463766524134885591464116143928624024702942426523905972347000200365040937649970486185733327616966582603646229791390932345929346839673954691866954986002434431423029692359075284720645338888094390318849247248982354165941157311797039471225399643534304104834705724080733480899458440167940933268166980800155146202851681494282584422850043637712885286048197966201700520366414061158627292979969285247890185640661884230405873269714241320105669066054608979453569034433588142387310357887843095130760131859407600353350836860418511586949039800659833758479095777464061633047816028618735310275426106425952621989348582982354040049291608006628721146460454901234068313319003110407944959043891839821228738045997501187370666439461115174357619096596271592333266880738798994030149445338143318430754006070840238127579285007114688356985318301291371663288607767292158083842647468519738964689430576360929385690825707745662212515070828297780552143872802396637090104118530710226997024283022931865673731367539406153427480250745507404607200914789457761162613167887987022501523618898938621380421936423208872150908445089624320437100411569938117591669895746614701629554105955485186642551786191208055676962081127879462842658922635923361408009388586694204922657219759272067747729279435188775655256472450958320366975499723296215410226303159788631194956748230379782598985455582221085386521882882236652668593681869915883693443031116350892356547291769830213681840148053631374646389947598563172492807592751633177619365873099011399725751570448242780657321477841384903772239837818017748610721743367592052615957883097379393024332341216704779747811148423384042654578445383127201827248508992531159649553002845599967928448079413277925058098815054814755670466018790328553998978945759200222422373573250386462556202919576522045451431155870356564629902145280963490657238769502368719953551360813295395143904744269215971029990888849732217740874880480754154902083306730726330485459304421225759847952649001439378094468001960400475702867164548196980268789362932246789699747562552789860536687517872954814827393846550091984605065661264151509159756334181010648942263493612847048379557311179676750307137474573080292123135610032580034387424347021176657419587447155170385314390935914737461367089233987642007014782462779840668060089024975001788257874834022788865143297549410374018259653885595906821505749629713649938952961083971509661002802392572018017678366742168382609513769733321661013533881627638257398359407994142645338627111615773048833797667853514422650170900822695947659012199428792073982778884813784144215494558089592425392045722316935908410559025225420285215462563753892588621439275609806404271575496959587518962907717103404588031103036622648942882146364073685600408119520790083552351494507428001765460726082770238439821747580507667665161579357874435036111764008726608581780897149940336210114969625743731400459866993870852301815767315502323675413536472791665895880379728267003679299737098465028813510508792972375767467278608812000485573569912554670231308406923176943088297325726410598436756966547323014736423752036910017953845507576106764950288912221981685819307884512381220579967325842993752304205383138781890115871805582227367870327821352132830618125690037987322173191347528361477928959070705069964758207304654689305437955648381195749834753301559611471676259132712249589603473930573775103356532647791541955444979737049566462444539033026585600614271206049010306992028167716224008217336550383150008162640937888974185138337688789244063762052735824581343592946145784521007037781055185511615669908750281425406177038112920653664900385223334308735736664285641601973882277002496417896722679544296588710977250067386886464278459700759386084256106474903117975876929309293160330980244894479909167467118486986493534674335553471969380207100363836061541296311234452212680860768940155493278590890262929561232975388235411394228651952670004391391180555514068385678048282950358946612754680008317826295361013615897394206253035206818492756111100371789677125974582411893316242563998054925404232223858867275448059751006395838485840760760929752647422249293008383247862685330327257691764049343348845332252135401999256882775037011800494487324061640861773447149626258061272732103725513419767224003290283293625540504182669970189682832747807035261041064109840565486514741727492109462186888979567850636839460140807611887929385361789524416017820563689164381815034501851442796174970774591187459112685371888366335512699336052556526932911537453272359687891017637841053602780941676691015653446805712133571378019514548957749969599676489104532914783709460327463588050040378055585496046834477592288977873046479795136436979178382969453079713876580799003759727608633355308554977823158868804774049671338304020129372261108926498534952265585280477172624931902062631102059860087304300420292455507842822278861816519348813139886409076681117994955739011787466716098152430152349292979389381732891548758194136790365172516452754416691734711918440078032699628650309099464394239840690516463769978617628490779573839803982809300029144006914122794363125504665669808189779354713635355535330831829808914780112100958689504022924299370444799709263445931687966598810367468815365147410411158767680801092909399800002127130005038042209552418738757542759849798273660891970560085344918245669233106403588730169585874797423420794823222074301220081922832667872323274095121880242424817102901418418264958682747620475472776685687295381456985556018683066666297899733758141243697657870750575335200031141625586835627445584562056884465511103839469609476232949755659896810595760431678908820967638271247386065732653694657449502506555869435858696857271110686205624066243107237416568337959957138636741397281382040545032457941447640795417835380324220347785548737963023239884307875008068146463889671315310554695768706884934126752870348786733991579008754722522604429153825366134070639851719055838106189386176922939870478027013540414780981311801620422188447758116768777140193754588069267596657934398765019085202789509432352968588734606136790365536150411609111063968506764293120301643824121647684487226271604523150126740932576192145453259907045369051764708691695996563127237942562284524891089968824392167083428428946525804652715750945938467026093330743322750579966449890131078070674335747349477938382087814986167694045459964348436658754259249096161901026186860096259120949014696574375378819215594558598666456256057647364010171422167997348687866143429817770152372504444747748385876614372823681350686387400170854966058423496212386519292981520135979240346309894286638175436196827381254493378985722759192447531760202520607444506647264751029642982015091690757407043106165736164978448392335235404158753517566148425228609983723493305209193572796481311677359888570981769322917987996900961570856585874131111630566090558838892064350271750086621535859053335991719365486938889620510247735138335725205601323529502370712227212412268663372147315407415197571902146987236368631839780717637215376851714618667459963046180560474138813704430479016120063124964507790385156269625808614489171367295972744926934258197323151322328242254224254073398632294927225996331905506623620218060450184617179564358610873749906862032655876998469000526913985850732165414011726997105616910216984855246839898228763498646796489442939204788744542918665866925562561140327544431818382659621763659525206787074604886751791032892495247976392600256803696454222219138561904591640386510907610256922623234519249004762224170909191996501858588701566382095830570298034881369708872024176772229595902380084031289371752320801965166474638633270632511250587878491903783692845826060675519909310297372815202547091009925366529269423770024313521413472516333026342825896706698422646410309086805844933853100148529864106920758545635981660903404897556916934304687215547806970734967235571148685097574062808596943265979986550662495586738611105325096004158635428964413630711534815299379197529509966749818198674546047688040039303862291198196290227808077778110763208250747289262903985141084866811679773460536458708594852196930619739720558154377566146742971970691936149457280323042666116581367449361836602860558312770063218956211072443445464180193184102363643943537821675200249104365907140167326243992916685299634940163914196056566246760166867239439531473842444806406336782181356013928863228984218204936302067184692470719541759244747826910030771621451165698201615560486576899718755558391347301402854969970767752235458177187132719620267289346481254185153621886325345434575766167158712979535160376594767662735153037567910151976557275364350840868896159568916725278409529040551471315714279923858028835784109967486646447309366968215960353604396741890519193192377918267084277060339110293556133341020309231275940432264767855209880851003794279652726171534712425094020306349409632204745473404456255592638712603183388226370520584835943297621643662448013058458238908696062106133187857855587476819924005110076115769654972705428603409728219962726072503458717732190486324856303675924409307526948381125145769209762220316423119373039566945179294893461176195695658804563592093055772829650763848882334893199076954399519171654708341047419476217101941186899481024322923991308634015888284416202558464774001132452113934014744680029743804738452971697246824691895898829548925316286696484705970697013906567847104771629249389492976197518325416700051308992568329251040286176412287020543874629527937764595595749891659547707518760708949879730628711587425536132954823831749915483696189753104696523504884341063993493841386659091553204678171661362622236420868301837253770055185204189201032835448358055185281836698886027984627018390877249839174347575352324168505515645912985234186569809771610976793947677942741507307746181511556840410733485561717769647520513435056245847731920342235105935928050940621259862804534786215554332242876952630077516078281921283487839205182640734130514181061232599317401203045702567996120031412984239627543342525146295030221986073945437121925323516321778691237138306561995523856434849927782723908027928920066688774101493629339770897347881769913521085865519310740283555896001159471063727242637290156350575810244706801517793185153053208841749190003979101187360094277132595727454820628874205617991815260401651150722591377673019104107670353192246990022100042118247316106874320092499337099412660804291870200767505178003658299621183505057101778481207107614760550118510483199389141032463945243269471097827120635933571776287050593125218621913903926802341717810938979393777208902050821824567585862728274063349619965868761328817636149552327102226173636524731697983886094668795027992627728477489232031357540502478124681144751873421826703733580806578643571817153926936892183215202025185933632417645705850103327794197932115985478659224817601720487585742444623615055304234133104937603306346855422996605420659226275145368039757732525764383355564097719085479120258283153336121414368519738789016049486984431161903260915759634283642128814782442854658744115660194976196549144894940048922210515121744819937082634649715908481153769810522773364746850975131866471133907152359427657425739645913422549364047175438181850951338323790496409785536839745868726595656122048229961428001960917133942714887941900236666213283019549431955460597525188945516935749984125536014601429281675985384516439067040113596878287278659093928932897233787292398318476918502405779460984307424241551683228562560277627793992400013761595258251235881913370164657383700649299090839183747863625936340769510723056536491586715041438279605471960842018090345884955714776513752846973931733966304870724318828258435499191665227440974140928754649224357966513447350265335067963191098134757869996789111232664079854204137903757540371105368526237863639690534856779984195178432626605128902399195715872525638146300208366271268864093359924969960419379546282549928890513964588072259233821983711539730259702532205573520606253960224864442267071701302760875465403915199679083025398096265034512981234843501160323445944838856953080703444461485759306004655812186843385006408552633180909114218828963780920088141734733098676283279925406178606921286441848737218737196254251297980226547360147344971359462928580814536253853651262055136609249589587601493491229245894330443994669292296714305244206480183002460746366280920689782660839663275074085436731112239712821854284121298777115203899112046899137436858424622395216411713393631588689195299834819846501833546545760452489971657651460419279008612171121660521800396138545868322667327095583887550464136418892959889754454900060976830447549580748869365481368826657728299444680741002722113810307926338089564193082242658686005465266228785949293458166241056962966880104498981745980364841936391808608762856983523298530730638568167291566395805844987888440807150210707550376923297384732912699252359465839079985068936980279417671533977959902367509124684177865706795828527377602925860953413869063734918968013030793693927992046099267787229854617277108926499792039507773786876071123408855787470656658348906489392499197660205596397937498361322741996627947455122976807340770786726390771175378695534000752139354791274895987690760565391439041430447430325464662934867175934571860696942202905615896770492710725002300279239528802351064173963629073391557415719887702192678191061658576144524764878648249682974526646696159636315067743873355743578169968012727735826879242202745487304557522883487389511620066554995157597981031279132559754982133338865080736850048870610830895485416490232060385932938252280762202154175917163168720172632377048697743913774737382946504772559522969187321691674864692187674377108991780372521069529827568392489452836514256987342006306357672379676438605643028716821757166556121643903385549933660286764689685153770240447450149197162889124049867132907160431039328422655285820565649919531103258940294104223947465304943846526901749990263742972038405399926922510554033570983309567075039237064902193153045197681175246403317845985865630077064697196566573251651362440759328776320681233696631191613232112500014342671716716014808155301859744455358591678031645223582870116442167539525747784682739110448608649902435444426802348778324613287322676385866311158534670629008197052204007882731799486500791046125856875730730600998395198210032163923576240647331539456259142969136247390032597251820420809402747017739594477306668210780609225753833024740365556839950452325557905953875383998818062784158012271726244655863598204878461748404572106614221070182149827980809106628269194350591403580964735613029938441462048185157974472642847265305478309301986713876172138274898150107145377864759317967210740338942036233876354929151180258499963908813560706677674665242382649910177972687801645394505424389798615562223586738970959039087772055550624210586743865731608466818324246642846159658116032054713839961158118781391428763711364059055423933296605551445374966300803332778087189901810924264956178802728573218833866197512305046958320696641335742253926130763843286876954132172896798124807413099305972566318128124420432387503266785629123736210178876974550863867694428704922554402493177109587199139410618520029947306951501028646058198462906855781819952660531398183147883802170179285958270319249447594725329841194764446353172978455858673269298998810856584622251254407665374602495422508745509281326535687260592689633745718452356561592407631854541101574321383728509235899274621978788253802515360678897910086246298763674420925400697765852725034040537616566072791958554536443085665332213426914557602489669430045403899775249904030835312285894977094045339075504732719448529289665813946458625957093701127926715713918765368780748929997411738370567713297781413079594241364207889992403661626096222944497050039739562696908326048951909319981932087725049974973424455440509532932757873635635974597062806515025959518315408050144201170607564684103546925066081615637441166616121513884181898852641800868041538418657289511130811127762996038906262357921510594869125934751326831678432752998946515528385486990667434159304571367036495190051807902091733084057756846917750814212941303190863569731139081908910420645607118778651115663604894463887577405642022829752733077389234974407104652502993307389652530161873618393606837912980267225655497001832639351717159978223082215567209591378823521338110215955817313587763540643166778150912219464477932672500388901424080910779800364815803317866304577409912842022612436539924297549597317348851027463655870874055671108095790450580871847632938764977999660144220107888614946002940644787966313101725962117940060793970383440171875725289292926586245537619592198570651138374337827546258879383993582082582988976986705254478076884569616557089508461228048992097736093225228521258147588406178397612446897104706539135095967991636242111809801879779381237552873441590657651307132006970303624354267751048170389648361558901317523371982540175169830077877517074260858557453346199344914299815884870085695347872977147890170460899552779323047844834699781639435602004881963657494950402649268384686821794414449848695414031045059932476336243467340400182801560752081141243994730848789990765253866713061922502466998629527445717998198902280391368083270438695788105769475908336146651490775412263622251960581067633906950401455695230745467057447449897770141817297236902837145397580593612948403496966815146774726066021177192924001885103787121538387601917476948423123559716957925781367432652131597659774430086534992831537087392575692546058591759117229710914624282433121302483207429220659343133508311749957726559685540513490829019509268531426118130990069610676243265758032055005419877827436318561526073123955201441178643902508063438297736341163737562782363185844538662015616680720184941749903577777246036874818133768404999970742755728347357702348556554000959114149838779820063429896707177600137107532341371372748574775262932411692197217631633135383767102394916006113737981588173040071695614963488530863000695775908318400528235200900609847290066624217733820864352277138380183812241642963681059887209397139429143257876176701200244809318522238934880646081264436722194200220271517013074696268870966758482879169529105914438704415027806651851405214181981765787782062063070714598485172270680169203263933362548551096646689239991889753467724654501806788392856788570805715856260515350788914077465129114221063082928091838256279146216278057758657036960502974394908488520391143740372302484678538085898421490105417992274911944731724420399071153533515239694398634844332069868821696419192398466789673345325884260778230092836268315332489634275604420810053863894901582263821192176633105980881701499979049105601106032166294036099844332979563170585015193152961833144553543681994085016167444618286850936334372466245629120458283534916304696735124379157328144290997937700942618977464614204514859595183300954352832724851676849361231187206579381866360706084894472352604386153323432132036332240228130301350643028216772577212681414960310876082817194940104763219418326129271861945410494808012728336062981460195722065657764487063985465993462480715127877623778527899948848514092382686980241988077477447086185312426401043144575791910073633489518579539406206261440631679041617129489305906900881676963660644145247348531708190263125444037586259362164921655463985286507519901788953118289625062686462792461117831545808502146963904115678037796666116233148834928757367844166372392763271518739436511420814380083618891244154588932367964600980446082536278002228047732570478352188240976371640693605053304765375343797579983885291142820923283649161113028108531098000714926091059154571931672502921385186175700610406903153884570086372000187765300217516096206983738369790614838645316667793361366648314927672927228290042737040292274164360478151377196908235457497603425401240112342969404602951094464308754762535119792328231285043663747586598967525296349665122241251541155443413889853898814227434131347579546520393441507715633564965328485320145894441042926291206613339539937810114450226735378496977714931857134827609904839050648338208168431191497294846938413021841795269137468900096021961603410551233924711241746953605037781880969387519255849050986579755859903821607626774824520412779088675323122352680253162116199406220767692010973777087335343036516828545553216414911261964776030110919305485136433618990576955015814383784010803101951844942957781800412542078332527587885568076192744052343709955055002307066169190011507417344667422578417492710612918075837384079557229237091150970986673044231641281439735867830607406675605983033353372301209384948018594902805652140618099630413012408530924846208933720528767353651660894405180375978848540516000342962341058211088420490413880027792835859774702146835971292489353688404502917964647785376323572575916403046980215786507463912551452369060530152371583748836134763567584158140077505063800823418282733188329442170529971728709201419368171152033300832358189152516739693923386643543526412983275130525068119072630742210823701435254893279509573220021441452918718364809841122633951544800156929807907576420620342156722084848408394148747538785215674699927932600752804981889934346640483153028950537426816116647069860032756771376154925421832101670325608242527240291696207528272619951676881163184694626688069615321297525259261455283567381133091866214384248305752029733503537106569501383486696616557824314189970615294671218853867975149604259649954516384342706718902684957397262074700534168837656830395045971853972281076738799001871282463829486584106740681193435295555205723598766136439119018693301105818847762844413273350934390047573140823140426671382271207661290859104787753888207475860418918431285083419492450754051358071637277158691951756054894259827114805242154951040917889924973856772938172424540210843119449068501888178366498121688278317317695724853623277216155929852475610443499212112718118572632462356757638586486946936013197708318495254706040363813263233581033581925215588672031270703192284159392951760557467743159289900960982397794695933684314063520710941415494038262681040779081526305012286924246903196094815648348688338052442628937996337810496489108241066811401458085300275557747893376165248844467737227733390240550808536491151366975948822886025700814189184771692548173356504256275114071966144951829951034288082909155361724689380015700233267122539187489969394024645091795499029797740030178323471172922496174202511289980184157667128428297234183961973442768067874453207411135155450714994805532362566356886401592361620738454593293310815561257241407462831765062355859228361619164393285863752408665991276891768983713301561356433595080130486818151451288663068131317242157914561663005058970913454812234718876251011340462516615914306538667765865285134213367947003628923580307635958150073697510119071514763000195387311466748454661333209219629127632661728006196325999579376147922625340200811422223895079278466455980699187036887268248703177240127666284773512561885143011896395757359221572495968740184186938529106395708256458401220972854128767119599385114009328081162064242977748348293781289937383821473447786524365925671237803753618791342727955667523947812267054174186748467814379630833271815680620078762190977165591848010779152986052826975024371046330683607023938590837656725095611425012728726602589032636283322762214281607439748669583652538954704171386093415875250407350294138756590680359081163116582068607637665236469507920979288470868617777044336661351746795502275159449945644174961340752131083666934448045669729580096674287866787369171740431390973563009805600234014079093131392828058763823292671855435113697484358735016853078207269213480136630887636322265165758542568112079775589861755070928547236418496262355605275319519263291954474470563450371907454807689448237416454235656960691939016270563008104418068172622512177807673450797504015208255775596601745445842403345657840934240872956387972133365840842544567881400994967815613913541617230101743018748876006989152720498864524603116446747357912898757826318830175893314577985273668070497023747398434572469042962525004364877740369556869805513154966109238703673002230312518262557420901511306891061108799348564444771844926646369085636545768062074473856794978875328169316110515435871715133529343291728214443604154900216996628531681969282616953821118941106993338185127088686264110128634056428508774322578595863852723864918951946809346775415117756654228498236588071124539777565414851769031610622749281738351968144624636162470117654043472013215842140320044193584884994044803985868605710164558694209566807208924170944398578051211235502821543509154791297828393864032226291569464108778292997781313717460635689473042890610945032921287503510260576751155896149263510266070752696805903421120438018394849461712173528524651138389654029469157909289001842504677385372767735700001892663039096308912618342001594539329781184459585631037966245233232607284288848327546918384628454224376306464285030903894650372723882617042070958203840446900232864998471681344870151870597894840141482497389876274755300782256349076124498155653466943988043564749376823364572481383220150725281197698599399787566481883149572906053224123942946934929815318982969457870125538831276537961113919703009325230689461330801528734028186990240898034808331194785292596629251887658091280342092311611415282356984190189813104804267691539954367188884385204194513458152267354696612538965816693868239634522037104854768420274673238755890223976087151319732801277871178391847130497404456038242796094987581880300758915579153076145294829007348033249201600348840585871174216397276147861904823535870443827149525208087572304301194918243061963682317773129367231964642807330820250722240559593116450766641562601792970536727332075651700160166601748159902261454361793058039483173113167506238900055502975646328210581537820941538274412755994020272518606851571429178091743532545137058675457412124578937810387298046788259039186811886368773326731005795180988689893827803294362573997627261682863018002326494889949466988908878694935205484867303986896664887996429547678153313958559231073499860829518269647171167187429831925132381826047616049468440867833242017307750873178952062871236871657396047980595977001507096586165221581565412812348823085318758322006713988228631627351922608770354878789044127627639665974117553610773438809318918485674807931487203108478573014757192634870218154644437952089721399285676250297901069241538462518584670614820404813038935441519508111268035732602732790018873737125674371722424743773846094073281195575573909845302206002835433820472310437974239461624472341267946645880390653267706616210861952706415898765055337165368497270032975704209738437745735288154832512366686363957539329125739651632794852840167530185788086453416984823011126144334982794567478841872752207358918616238985848193807799885268140771192542896678060542589491668427514415453098222514612512616190861561837461667896510056158689404433020903019696674575934965632868465919962968386451578855825700094972284381597091392140570894449671355356883982840379425006584651801917478413443895120181830305460707893606234902282168214525435310663302128033774231836252244171048035434155075252686772376087867764012357946983461031476576379150082439778604632691389676202984349393369517185173503110802819451146188469857302104585479459714648497480422189919372752760879035578770597334195808906738846769573410981469393551721434459466138070143801313865781245131595602301061345655780861383290619900124156145060779404088353566238400721561778551641588908409290771989959627696420522652829504196748059343808807726158533897123410877515093196557458125785311115171970161150769112528927635186797336705726383740033596599223276741786065453495001699406555285980074532191963810753315370968134083627482312161930560568668812447568898105393088034514668624763865049274958384503842824752464815391536262175927141739419706976624266216922850479546999001220572126425280324521993200617638485177077819138208701192274100599059650630548641419521408853708138385474268970037577756575025083480228514275201757931270897973726909980157799944110654948289225242589044737733764281005540102115822603862278910307747597264802214850140482608667045804330965792454853652223503346491698894918497803575908519545406715433466130187057237185082857288018292831495094686239713773414123738855931484299167723108236295164582972366424398007818079846028257699697274535584684863246213437906079056543283221356456714800868188820410964977091842781413911812693638004154266864466809925844701083956387880922604800960989575559405923335532596025374226760579704826983059051501615179748253199805523870726745149033011159587354809402170655015577569421217802395489711406248013760489383966351889961153463273126537640079714028069811909713636393907629750207087064504533013062445838910077621208932533158520078385169628929273874440038077380157555357627473659930113743399371685018547904384605065866198685432816624628946992791963768459385452468811465115440272410701491194962315978561789337742039485893684406507114548974906095471729668612299011995101805806446607845640497803078739061257772931269009951277629905218813487164277328806836730848980631680059567337434348228290817159544538142261952607700456912401858692865047362182351612965354727979206049747525334632972233007838606226417138617572663170375227910528416555316617793793592180386732481712676519160778747804620906871709618035491028243089841077837488921232728080234504038274087031044950301218459339122438609815671918387822822707574041299222242792216205720487514790124251605665608127032300839986654847418073822873496655024307580811524235683639749795205336321867376094777640164962650685654498809005461908695781336475856900166820485373788416545665805808142886608356225837569681417563960071043159690597806408665857006548314039707832169452815721704525799852470950903040107781324870628039938803340433889353646932386723617060818228448465556158499509137410233962196851029413335462626708374352720506926349147952421721412061258667599911929691783808810376892928638335094620960140556016920832260947640434349645551312320255430300134158509617027023928234786244786614946207087350167324435599124152356603495244841497608791961530259921325265115108607143542949085660032992082261489042868626013821169389496279423535512041643981151708649452642118809801127716752679516701119134360123925689694715057743481890326616902866960468371504041217821610095492374254932330949003903837396142212034865998750179834719378604873991617021372160705413404965034812815198084887223813744518234779869824544600043154483385940432538262393958904954008261026668503882280831766133346495366313520131174085356654425041243884517869817991410199167569492108472703496533355472083775332714818045180632512305615106014965258877750364634359985624916822576770710876639786199292596746168348624634800538641516189412805723644338393337064251078337604197539545684440620619852244634920556407847223440617022833757230670178372686839930378002578004430953124699696376655238895686941910848990901397781910310638940284588621110241950499663896789762650257723542742310251749866462869465730978386188972257549284182025096382222838109813085317954772381462446051285088777958847841457924069057317960156773950799931339687749884790569567491727445575726177883546512569989665587602236413918430091357970941192213622763052797024784768362699192656454646296721108787564623446715647361712199721631838683373141908342868824564905102216526070107408118860122936278258764288774538258219571787945113795471999892936016229100283663908424628350959336420530464934295011633381160211701506821994423792453725282654378120449408663499893536248616123772848065318422958699091714708817569039035522011694888539232536087906852262178537013596950562962818745104084513260830846417614094727312654988504610099496318770467466391006810854526616594852018678486474531415666167099038694722146386498522917945469784090497646674319651389071776738037427846505185645561665724184901649833504125388109878880410815494588054646044645068310222117266747102967794178802916913736477846500440687300999420019865642855881438677149965023557419687377175447019107045194260278118695959454547384250117817645517180177290767503733830620655893125955495591678118572944223269016109720465643003431688526759671649015502088671847154833875653855043197113435224554954261424348116965283078226997208187864002222973955862530957320066428899798177328865801537504034355448833845598361529627245179076707656449351797259095252351958136393413686027091890366566876233850502409111342255182365290188579083379090645784136922630194783300191368294507986620861132324638187612015143513990145839435592692766981695832895770572237518955130925100815516038557571243833990478313612974838406062583992460899840889704037576840122508009383503567300768225159571680121734425650674578918000873352546134264240903439633960805179117570485287780815622450842506185347198404126284172377545182669736165182409367695307235371856397594878368861406007724477310101839588555253369324314912022648054112170971012325533943206908576182990005577898970256665250905322859166954137297673519740110147538048670306719028797773392400569939398113805456556346658846144625198925347513792276258217975924214799038702498092478563660235945151747291486217720041662405923662003898481539878260745355864528892815873905850049389098321503252027339305403442336615294776347196458315295860286168594677537525515309192969842590909559231373829867364196157029482134691537482357976467572689548787317307309386232347244291101016168059548092168734696066528289828591769632577974213036218045300837172483011983788320609496432988576067053959939396678221061318574245236232837918217884957366014092996090578868741642824161884414488248555259164252283882647903345305533470274120656210498680563085703434642248780270136372581274866986056477000766811459226272765311683291628512494871780747237068518922886371962057644986461076343802157290776798358759583095672814019651763605583456646035584261324647090854503942447343671919540422085661953845374725762488554398595032118709733398789487524650071243257386120674940361465245085778148160928234559332408802329472784358886345972139755766429618324670319633078184558863010943579615815174582842537466712446414001367252027395382287823095658083629827429941171403772198682900088856570778775938879295969699931158489945972610242549012487751620479225682440328018096951687082286368727675480130345343689482891249090767568893022247419446339171412389036235070043958660972001221156135954467909105225449927775203632900344199000506224835270838699398277697480384249688769464158067830752403760141734891124431872046145438185924693635852929040723813787399664232264503996569171616174946751502162895548570822701714308962263917712175109669971297017118359771767016140435607885451681216043738176486471080479599745597340567067653390490299008639982447042065905729092021033568725691421252322160097429351117109899852002849375880050014382591247242961384856898768171298628817818692460059154840261133662066664835153684260708264953557141396287353173363131845701223396396386439858503118440172398245888149054101886893333834838301094186882773961609817917824832988640562521332788112628704528819268805632845959418089464529038279703815118004793978973198456985640443964776161475615167989626501899242320129527773034174024561723918596068798082189823462205725570447742733784482542526197022504828413802100595909892955411834055788073475321409001962285364930146217027847301104025582165240522340624727541112134293104875804765633345585715987219779069475314040687250176598716449368658998778965081980337155318430733800199163813610294621658442696270225787304218489898301438056782025681839590048991289780205349988389413983608012210485703366976781456943663689510817248462796673338229378856582606078706453459587048908762933936607367842445898142709430119602122864646241547836702178972080601464477803010018955420880669537979302729599448328382426119128951161582941440526445711449882164771219951524403386538204767353027653089338630846750778753647925778188395717448891425866634956595111442141060659646104299295833471406775017007940943893909346101768982824162821260206684370566439404873976087774555710641958286116222672578043211894731152268885043796429208959458781509460414898262491755447681356034279218831049764689945374579360144414108719422746756536498336295154912114112720899448558090875026256122994396495691556078144377927110294792003243263866592124245267002563223100387208764875908476319463678372058927294662928689374805452883644045266255806836084154864552783116019251541700600948061233470084773996741536991346162223990748423923335369554322118050087238835644873961659570664849352877609767238552093654070286183783462971054173805439244482505466343042399558661003370607598769721179478070055454027059992700422933003821766316452117975797796744039545481650599504501804087822372760004591299168109031350671672251315989487792054058589526201082296837282155420934207312234454642861667760219627246992484681033771376095138996057179634599704350684688755864907261534724847903149935531396935781713433614250154093425917027344788718048971550330905150392804167143307410789030720255374464193981180740850805014715633560193374187656838095457691569859510680836599950011809320067643299117637109194408787255734355174258380996710770813633244462089671847897465772488326454304462623883689649702290086233061337284096776212959897001186749766491210794754923317252186466176805651682959345411866144225547835526877834239539438718475093309487991282519321764459151296414913695917794685750058045509345689650750430723280395248817161746002370714154088657038629252014898919939463263111046558784735479433017666865127392936015526188271679655716252512402000519266016922463325125790067179595256976361446413366521855824488237599401225052828855066320487696127900471790979431777409453846748240532105534581647004985948120426914557454049286423887982547829804566279827818262779252827534298384422400740874650303765114835768716451513316606942732682480364955464601821935213222949073089039762064867575179774237919161126865524548445300929381474286359328428633041172282623705158936023005365122765167498595131895373509642708129203312377015484622614846598797853822246722685671397840984078319309199014904732041978041203981615439789888885493743308024481906766866840372802624065977183849699168517265263078850835276014745537918642232224685793978125266300076786103982089807388062439846904695073979152301918552297876325291430502721002739010950970340758977258063339825510143667583252989218283647640008080791942148632224276717296922779792732307158659742667156799755072354982993910333682500021366305843278694557372837909870948725895689132635044061059295809875427021531475805388023446234286485778801529014350260465964670460045893708104321923472540107744674583000432257638667012721404594952305230467235520193893523010972825493474484921122870388645582419662711991227932991846579698607132772117903088556050245275364997074947104756380000761506486710537422454179381047014205601596614344210042520587075415385422015542341197075266718277610464004908844506495049100957077735550732279823308583714312452197761622134814366381999572495888569559122703256337106139443631415583002150824848616572099012115485047625015530678647157071881635242983627729518048951168242414458895719678316330686522231049362430245223580914956308860870709776397822428547625409617658470686674894960601176969334310519079915441457114178065410627407810811766151362019073297724513363677720478471357142926529422202590174690737782598407793635608719563154968226593220853503252023752305692471338865174186718398428379228596013112532622611359526901140986646945592107910932936599545693817960706756663182607759754448805001694990683571843105048515630235192780408403623269445402470297237107627036232596047159558624492745251303862919251398306077123029057865016330048810937670571928079878952552265937608794786980584133936751511396583428917143627237628688810960635549667527509588731052876631510483731280958282988801289653177246758106557764594139510523208896061522866309042247575273894902804462489112339882634238883182400988576605484428646658462029279803673097095750498188790029937553646523059805224491862213952607144961415727752619856577278539219780164148368853539693904174347688830037840324036419953788345212317305894024247304656727433227389005289969500072927524638770875149134007125363019845585294659484962191534191881277392345006851821896973889493485396945716513375813874226371411630057862884767046993300052907082336473289210842046655153971009724195850615930064170963379308149565284994309375168036150206965106303354967593297439417464140494206576487484380331770154027746262966079248005039161020809673786560359791065602250836263982533239469380792560122988861912371344372271738365642342383408100260160230647586621006205064476746876735842668186091140195405458078456971559631570014150384070910585761155477056020476667129582360106274682178712457438085334000819756485343167005714663300161311021697623136066515252540177794656859488114237389725152822672044149761165175494226819491061506075517053880387070400573725593818249018281566640359037982918402073848863511770976382612707759572914803577993136804862813738363130113597727745721899114719866625035418364565394514799102964724729756094170314752259724400671124179830677118096389043491242455204023005306729991029941245201284036500102351594206936681916262182902087446723142762920840840408649958076944781087771860943267270817936204349663371813572666380785030338852401684146229739308292053478058066079173482556659133856129308615582523510615577704732748196909825573863066637680049357004489079266682572435525567770029016396784021836751667880258353179326035895872346726287348523367624509870044801271311094336379227813887062136891016834033730223412056969228088018639862895575528391948261255141433467256782656578793184063160006864590224781601123398918281587899127101312328297772189926309312028244487045712210182976234782850373793352114034420828603975369520504221802831046273616311188880318307968572297988103013250539078529961593615657154013897892540476544185321399531059091969368539523378454300937984410344440151291045109076413973980269391272070629878916045536213284336991655104442407900931573869833326873183292644360492667559158424755030758236768932336728291308750056637618538860969762521885262332796213262532548034137075401802354637012609310140232927385404486091319419290065008149459348689562324492166079704256122285867456767404769913079276356375149900699151878299275334539550903372284396533829633152146363052364699827624848417813127268411486742783395963988518923250541128034854490142525164488626639190406358081131845935374368689556347691511059615614760145409349962871329873067881493251057967443138292754292194829536278454272040289681037577411626279991444209975547526039897323461941135383366833124313262913507570479089414908195156136520952359110692510090624552266584274792877182923586739425853001822736679342647506417078794117764935049543210401379498736394875101427625404636352617468519200373585141060153574335623637364832249936614804932230760744495275629697560281386334183753641218986548350795274381804902354826609820654497243411658892208658263068145941775582116511030625338613463162170443212297713203960019059226240284422081032219612520257762716619003181423991233400984524752782617833179736507462698940858349861907881511831263044322647464745492833020339175122262886004394535763489744536493093442102738747891899377149737865266801963348839688336356666443852963711239235424494879221021238997162803141750093814631165614290147869731876558211530124169651024665397028786372046038198986938486737806568713649441952557842860808551314568812375929554486854178472277907857403978438930912102202829128475664688924880415006807746275449917726202261904641416351557131358795349775237620010062121211958241534302480611428244459496194352484419972332515528365060131750556003715994852262532476329929532894666063988935077502364459728570129060264304068808325296880144399605550331865847054953484570692460596236195524298811882892684896930531934015753674882838339484818650474417058420728682830010196362914109183837316965975921317353609711918252820758431084434609389332749716627124897410979475659655830799478601273350463548507429686878144652829806287315265900755043949174847448068828335218647363838732870564691485272322136724756109546951488082019285740745171345066660655499777246794220560433439518360822988356782506360678421014529121580270406311742503570892223332007297798410492297488905234785874956220827971372119021887316595874806848941041028217976729565450571047748771612039427877531628628608749061416994050118747683475444095790475483299270811590984767116251481312094098413720968848388516959621897246611471488375616699214275986482175676649365163473481784227160555819991254911134598499905513722786900375981448649730640236947427771099920206441686789973934875586176316455615337872018701412507973462623397684265661360017692762303836119530822415564073004944312314253310764550304856170278800322798014502715636396977023077300333768598762849763510569717623638127858063595448434157887008632288858508649510453614165254438948035805035605378678252181528586511237810505707255293932493693403581094314685439004968278569295366828827535301530966166812964458417774723416377397934511051146087698860303778474144401873563139009321671814250301711679263509279521685511681259963758022981814781484814909319568418038884808845713506416434211930624838209720055948244988336839197879327513837837681803018207714850427972142288533064793765374829084789379823639032977483019846646188069042314603716677225105518137616619485339380465424543574920375967260433248801973776483186680631999735336683759990760563820791734337690445847602493664544588324077222017906142798867489917790168781859436838777683756603344249315508213359317400042851378179429514022292528984873357044996759952287569853770823833448455618938011913635526802654143806939655445957063734505341680601713411144915125081600138672882895498716513012483310271530296526448809935756880558328073826666399166333146883139133048917924683503993134714366932626092721810737273785949650058152003052625764009965821929535655950075552545506003945088038217582073101473000323354006484334888093333845138934342275384035286046241725693775619762538126630960926373859154155059767871475788382012005025693878002118973558749079879721346381610077246240296649435532690292102142301209793094801157026693827160663177238772166166389960458950100672474023822850832000126235629041840860841658750541565239682512888840398953426169993494238521035665974402521887580861028209731307292488026607264271478243353744226748669078816512391090827315547862886704175777309401950156589157478372097142854350919243289903937188681150839063376135269727591279256718360704321029704078808790539537864780236006190444873824039643677046983793632882698225654772437188081364243114351744835767860381627810148188583030234742347175514135357887192660982387315179727199637083148594025059299106903520024110296539129859539895390671206411625625063486885631566436226051662312572305466807583187984647195791695058223136574416560037840255229066890938992922615978445052000844114042803000582677521246562191802220933167262263354196251742321002751216033849884396672383636770865084378160442850377930945625890143862757437404998307078349955820368967933555981342350547301948856090118340781981707745308169810969202718076956586755107315533760740603099776554174299185359849837433615363995647109323492835382460273644708338707972197685233677690542164341512320663499003186973018646461157807135536526680939986914576607067273604291392162353359374702448679768808879146786514866541180485462240442882054164974606522825882197278880910431866267586767262816258399580411923126022279641061690141418634327082825025449686052276837441969049265149918979274595905752584241736000945023047768687885246744385978499243587326727065066867448117267596048976845364151088408837108870453070392677638249857097549334794213547975261619511435469792398504141124140519767368342990382935227745178926062272204198380712544635208331696978471817885896205279398013468351668699271382823370789602987276348820988530059991426222420524140856362948353417546810611601902712494601230085462282593024747740369857766141439894479256139964104344789701396244339450156036753679176125753362820286993870499278689682293629425183459714985941691568010220088439224107007708052936996493997500593754080363283175788421964648115692283071833175430941608948116401568373031522856828547556613741648688570194254888539020552061477932407548978653762399279535521367962359965548016283550660799132066562626045310552683241090728830627608712222506675692232383103719300904819505592062338673734921474561432847967954354493297258747002027188341712339200115194991547793214774583123971927136633720233937630039757300049485172818682610658622239560676876896694130490032479770820083234841611973004780874002320186818492974692133637742884552714223072704247945704617065769985751388968029454016234640634896989714160419484074513161418880372031677077186853748164162118838484728307433149108122375468193089443795672639506633526476997985983002085958634952294639430885465207297939533694158903408666246824724664490287847746753702111709196090057585909232898966058907319606644085176856991718851952391012793098267291124746487444140792329174372483851157380117887534539220699431562405003894970611080915022943948556255034367184664191555340694046035958297465462072747743524540007747429813386694621503767636289610394031423116447158953997826492435580842406279517092497039402545408896629446725662339853950749072724118279484440823465584079259025787641710311187561299106745170413498832554829749038062001931014379753361260632999857736552641560211624719108229896312695476691474904759015470719059492130476658195375822440444171803053121662601667663104556733711729106595572806260895353431884394755410540219881930282806393423269948008777223735669134649316915730122485951351513812368225167929932708492006648790923260222836812833984054062532658584244200046391955795023077948407748492580363310170089714606856045784078210483264410767994142047839684784795580834125897661106278865567695557396793978509917864344957770578953204980003501474889416065174187979673564066196547728369503732435599470761856658699227059480672991979124719012183315876534215587002159757485356131910311886004754000214989694471954519175867030786166295197754479185752868795334269680588906774949093802282763230092252362319370284303189656744940101054284995306908589341789821413159150333787451501301606499535401465747050430103834642118526935091435623974938044571731383861996621350287735330432816490835484223231448878854572602858671258699539565854379040544175758804523138738172446316785481363576436463648394972553851440470377583966482393494795003624401519620380054116124129980816774423776855198956036561907875876210052733599032052075634637111547525242050526909303580296995338151018659632908053600447498353584637072731105669128547072320215027352973347283067234197062836923507284514197376760652790907080380503946094298387590214574855309873836281763447394955533589606848375617368414992865074115139353556930535812111583120805998487542062922970350563627683555082858699081187458334239437852638515908008094103580398355939841100050363646114470972429733640838388504533291744584997703744658370987415610307882143057957395233931973993325119506861603423434289369860709703897592892123139433625051967554539642101801995115960416163875772988772593647722427638768634166664161408542835466167687110441776214114486919116959330810782540727608454235809645871052923300405948776186041312427546976689350184639390585964947180900401975812763137761734400445055868807680381316239310695087802065340914901393858444290864959158657023255184905614020734741765848040732320385152832679657767496125845666094939739826364893562321885801663639125610364236540620984082903202601691359918704839568684919251664645940921123600604673033991509231446391805762556406510197237195085551106655675334550989671256567930492372745502051685504946637960326907795759438283786165706732098512384056434594180733361976501152533593782927366620504471354381343979233564135093526229441026530716537537391801899644081357534110706771844325875261351845158934849502294449006316290060507624044317239735122120402863933454895362656488914830195066343708841773187119808745144564684988046804205904957298267663858122205608974539860960886029965398408817656634028059161869513989394300102307659678827599838158080620402918769150346084504192281972793202382307232384890997335350186999969982878969540019616588605447442619016781000321528293710116490638073036557288700822885029399589668188796478432089402062425473480498235973608486391885051922778692394326525556557419173792323305329548593865202279391745578875631042096989981638582986335983277605794070926761881392547504782848964837969842521139132111829253980043438504703376144677146872652167308332947612089674634185407970782566891317914604935000711329831986434200128783771041444973705873988143381440289207087915025806386958243837145803796033227545361288520064883604657107281215731802596587473602823639045394031706918339745246770579068977880714694882956006554186402370523201984575391502381049161792200902725526597525811809564207131055757951589408267508397814106327826075432621179539841563672466444475959376310864926098131635752495064897108782326971599752899531889776215696555037302654076644139588459608660091744877133140956300921845471662208379812046550532431648523858226320952912374633882835164975258227162386851145129628377463830220054368226001984642824321781346747830783344256570873290596937819879094644093010857736383889932207404422672813159125198654447402393748011997842957412100749476253854140224996665749181362607887758091700571023134885087972031248159582972787010390260813387111853177853706536337264934829578257665507237626304122005668078551983583842990589761037284090937886287324615296847137626781178726751229802373181616528533973401269270855544418176812938164415044886307161396155048365385093503749620750179233861033709940012637898481296432398583310268364197500532746517153475210284921351630144489429569313702362328746447370841511583744954434114141256937179266930133788856627754274088649473257040325508043533157389169121224434636161432984512422952754510549174106750257439899746914378173675951061970302963230079998768921497750836339115244052297046216350972225837375339599609101752162166492684688545636537743204229288104707906279743713906595532782267616132349626750301074829084817538010923913649067086151425362389440085199073579935209507086212503338083144551926816491251439247370764845304451591487137817358593235328214359747478775677315291871020829100316898836334996783360234228407179442625611431993835919694360104955115965979525048631492156197285861684290702800554830052251677579871254953429641332038712805277401750095717290684756222503853194351966874260829682546930923279698390537138633142315022106879824113356352805170791163225890059569600493696224724225290112380147921223497190002496033361793067257129544538254748146430668240101068845916693987622397557147358782966374172106978951545128646428625647070556639024504096989189412904732214085351148698142486894897824603296565103388336913566098228454740201346429359244989703360585626755407691135883766311142878272589879197461376050391937793363042250339698929026751716796360923352219075194099917743153529708280380680059469945081698933830916877855979112404443106273488879923971508745804776220117361320725925336649148566230260827565117346731173773407601616083822711872794330399914288206537970240458387506047915506354740048656655284962468782665201150699483010668543575720708018415373665914261623498234838763943148780610065124671411364311398108774303241397432301432147785195202801492119039341640138287991448182928708669998462493880271575037865986513141747337340545548464518332521686898619816867939807981919258339648339848830090727028485632918557012876331654022573678079076048742564465341190574471109124506284840815398353150736367166469459792087497289682520620588627002895539029527685925964528869462078722103334985430045444402807120537624974762482806058485376865358185350383762616895976975999764499863668527229940984842038846713613336936311929253927308939560739298402111091369014113482262523453382150144219564749779322337394513320551859364873077934935393358119115662429161650044180279258918521712152316508755961703959451879266361306654993495117101436183943479730013669576177785285765697678469272079927066957374949281082696875715222589659017847751524346309063600356593393821572448227067651885554633993760617731042060054429433706327440483673096668493727558687941743112343538399940642849126559169958718857170274738635858914095660686091695130938407502755943415211014598480926140601276020943967742913805816159107640600206391449567417752997078430009512865681526111280359662069664810877324275820396597566279983135777079255871389524197164170447364189530841332946285869199650273173091664946234111283340427336039172933073171948198310776624961323073554284924292611524279226201842213099882463910766917142098996687783487695031258374805801168125390313756158251697654623904374473037599362003397478411420106350242023279932068139437897290988942391826280101861950949733315531875993039628182273839673287026222313478828867866223641607672092780449477254880110932834814730799137684893718038644704375349625618712711783344342518463679975695978150736943209776545508480201812128898899086247005283533119174274040293511923079288525722692541989159794828786691807801845741039266942310598957719206800334553222594045047705937396577629357268993461895042701314369775074945619596778684539847345113718198382587991782619664205844540600477563653622072027903518161801850298163203895427536552934578563969938533114741614200807137182180704896055179525782074334216338604032732469542904027012274445980290949796422335772404370527963307585218840269251003187073257856117286051835257705768672047332374164674903408392764752817196978880455973227496052733256547733593565668889919303166194676223231495408000498553180985005104968501372717610590078019573798501762923137882522425344581793911031263272736710027889354603131865118878057640425996102661177895162717318499209268591394644976536853613120257450746114007207818626453935186607765531081734773067283696730727948438833359701472483507161094856499777776489598222867203246076285685339009118077793279215848180425580555088140150456390253871906350666151385445927102267325081225352347539988897892408324904417479040356796997881747090430046300517474796238393632495467638102345028980446986499756379768149346002982209008960720598727983483794846574307612414235251150079906251913581045674796385186887108792198606425218028605366379160842430756074234957630577432455659222268676991404569508720814562760037062062323661340757611685624009875109165783287582986516549275646432429491268624528189556603953922550615966494332947921492074633416874519334706217095173322402754091491340176901249989830543437404707721344798145442156876082874682092789006936333537601567519511333838107574807194232051463134686603085561529894884900357402676008021984319085638300864234670493747939373742623824250935092680560834663493353897295171186843466390363483705540315297737362305944364604692464756992329309426019704618753441599117439962171729565251702732119718164257378693024103460786340904100080838105250537423532533046655187676575601373697666337137998898851258748727953820043588525009216541869298385587337447627737333634504150786336392499510759208364852821734825223921308425693980652234552917944667112596499939203034277812096731686045607047367321051989369512955226617493957167740659826111236797382567685987304859053925546466402980542284358035945026146998291986182724387302030147566764449672790387892347497105285272712760704119496572581542709287377845787792602089329267303220878880945812410576519955673072111635893828170821082356044619964826408791002458483521882860112674888934742206633724876889500834928266655557627918712644880029227763343697953537623770660351065770171645134953453655852033919045412548512366620005709403491436132420205750560121566839901944291599388540280242212131256690360964272640267748805223478110980888951437124839708798890848009022353118296728839619505531403726889230048997941111375556248426711840287315366764968930487888751819893855159035956043598859943254348525829550048882910106838810866058190225765420508572659802267355160108484838065513841734111685980338554594819143837504855566046634223374686782582593474911635128605049387261691750831245225538919209858656361069296371418104071206638352354293392627820480036089482600547593034849127420411236893597117257923291766079807828122352221160239889674780578953553652461188085350429937067513804710997124600296614151202293198566161883226851452442511814303913149216175998415051662003012323284803454918344495269532665996509334493248879559465548372883772482120359018120387607741115297856165323245274538055780021717798225577594386403503739509814650921610065690578368917334123045105522339354996841378617863861756131647558450430641320648083782179291318533942566868606700955931051470431870518616726004772366219152445976819908118482989541171091875419931958671457930935292013991634152092452665254487724354694910386309346850401614564163709416244039345529156057540081744834170442181827924738565358689797736589953113776700495170182792208241197332115704161916570581217229587840318110560123462610488892005232617573161649702705059030434878364097028703722415813057746858831863881131110287618646635311456558689173587696464649411232265118613954539334610985294459019782209628291575396681886517697517325806004628154158296165106300920382075417475285461918663937868836146386950720990823589099376417862203628487533850442824702849042771961824429810339915586021898010480164328495298191795861957229790609857743689624495635770960929835712678350412861021274890324143476160907500947612506608247289154272467082087367668954469101604507314067404750845675618547389565405755455140535136863951952768226990614652014441416202015582309552019920975489682512450937471479740869896076617135405849444790130050395066503821800345821489171786596729994549204672520673580373604346117269127590790999888862727136177486259240586100821734157719224282125749604932364610921770355274304252400608181483175557348413364776186539588938472736937168584843061294156075202899461404970901239353262963594728231150385643916762871489108113463116602065956586578540193015507303455963717226404851382858242601756057351837917971888875765194833541652761779539374799754600703141277311855723743463767946552757635162056861829354385112277144112912390249981948286719456771255265058572515305901785857237596225130745663408829721687079729414217039886990163845194243267520465644737855173189340486866721688556754543921318020621774477918464342128801806115365016792698342427095929575090479233621871870661935193343874842724536257898441275341670681331935815718430909968765113462948737676198382049083077948587682407132932602865449705680639566464242669978301367874768255021416379344448071024675710500187906019451861668672975722870981293397575489672071516170767017427964426870290126363405789122062341790159324451174923153142544179626594381686906642005121472492913017522520935344566550766730702301816824165066662302627070265172306220984126308612866467294994400048218760988399870323593216714011484623612567245999438341599038987553640234892997155768067667133028477192653481053629157628663368226437211345658450388871440319146292056861147457532884117513715379702839403498770246954892326339148967524479215756825473038551066991732797575619793081531789666469339333709337279947829657271407236370233794291849139908441372336195986687560458976712501486436627692043309649455315085162390819504545652337743344858570730435799507821595283994441740833381107778997201121807754373868681605896590238718647637324951396492692609379230793151525557494211584437793669032997199264936836034329418197149538036593383408344151192225168454972139055538926129224907214242402495731786195830230802283096367796786323335977541382046040035193908500579724628630186547431284153463009564454095358667002305536292412524381830673976244714822903205867284212422376253700843645635564844222346469324327505548611187316168079203480910656271362442575988817528004867296969372436533746607296413028778619998066147084627921715726921530809089721864570521330803576878703425967085759145101743683293621105847994099636358122599337761652704521328955673645097407656598542371208958483370204387399938130821375108730082006427826759575259185718977753910538462069472919255770168207983968597138295813960673996376856173923216424254221077218457253798567693331781184632914436357840700761241804403377226220997855171032409887666482781166943522017011041323296939592769902809356357194383897242098177727495206515190675436702303664232283711688335492045041624123011316789242955257051824763760299571173769038989653136999332164964325134548319428719881542078929705308827004309671925336175456669103728234570131530033027914229436340114349579356690321425849166448992043733678610393266027160345647945230143579870525419473761081850034849730260813777698696879779407808297699139459397721996813636847164306294439562955911521093622720725863935978150343644623757590818603664684630288071424484941025801915471595251601515066686088870357738413013089098033493114067388189235690816971929829942078357125155531496147883164844413736174703919913657702273582470957270991791229422668393225934953246461764321382992602558922870659976997149415806577385561127688838475265335236880971946762176719015027825454554899466115656567306099436580130053602382782551469814095786351857071380389439689794988047916601856786974899127666161585655888121458843568515303004194326938327719555816304282856165746067779482681967944380370406830375483257612571185876469585239450597189068912964490851613516575183719307967182436736277752832798478347921835194179046591974243362898786485563203789096999302254540424158656206287874492853970146554535846390114995542269210057457760344439434305127383995997260685982764342711030217042731901815390446148632270189193819218016006615463993849052328747154523689538845396981719288714027558570127675567472139726637430561730761018144388445057666279793043982306463157594088140265834739164093276545180465325769196927333499791969629564318371063915927510763127030599492043702096590091493353493710961540884465711231912083138647384121768325870563692376694036265430665423858638414417259703168075656445714883141362005433675275863786243177852870862053697613453651998133253744198392697426865772204389313250183971250360317070486411488546384678805829112122702795712423833247259821876624174987300047098123661207222472517637411001788846287609367395774901184528389058460009179206005703194258768488383548985339343839109145903045825021397282849474655170218222480809277312136414135714260708122720212593449123143043613590708347310247297511834282431277051576195620545438596330515083792808491239019678167635075776829226408509861397291011319840062474607833984964796933964014395574795429409047903570350736736215013112938525294733481252879895336220841943537301153027912662995576958175563900210006603360088767641090614790203749841651353090396325421127950878848115944605946874280068637989620088222719914430874820330982758582861390294001207802106198406632524585922036809951773814637649282120033973281381061273780104971198988678798843458380452314408652280935680511473218205155357993728567315619396600303776115308070502525361775212700975404668388856051006049861056748216341891850683289373150612733178150957287725421829971287577614624595414711272679908379078593173576803153501686249109441340969692738498164963518733643684927154025075124644161234244927891420918191608543509088075147243280855008407472479303636998706870777868923888227245377467558596398774435261320414226327400165921553057839736828609141883072749545203880399735814369435353485465859511462976292454863916854354575057260501004189970742956685778581193219842790227558592533165571207110116348827351719507756328418875595493227496508783664562420560933379186939107017372331417639182393937033650500445078367202996038990034834376955325116302756935884117215737002938019915438223468881190693253976435250681758002057131682560869148544658243399173668044094583160266653276409828961797743251402274033950751773096372603741790255153204088116702562932331728387099053429413793728072655704188504604150474983766729113427469138929737355559512942791746137505996919655058992033579310351644240731823200917376982033019223617380502181890538999186726179933995282867743978423472957583374079247904146597945006163758147320196881532180269438374627930365138758807468649524809959303121994087932243197376634958259709384017740254012502134581919111986082970506502221351632188336274279065999802748760662543637375336674431639143030872163813441043746548511768102416970564594859028440575865080655095849150659466414845501490129118576259491608818921034873840131502383573274577272584858703067017117799784339545924329746567875258769419491656988056413949075288938093900950700350862587457479994035309893320800204915813212088632531650183943041691254219790602964715827011626828844729277568492953482511993727932858746293286146979607342075985181889298332988810471591308088123814429182638964563679997339822845552910224468081954322916448933602464490027652455217074767432003227293101299006259290886636038366683151467257675291064836321563910668527363487167347640127926263973200042489263139589584208905242599493822949697131204563441396209814142636629950499375469491450321442027377071108532087026182235758941157568054864557582969007455267997564804314548682164500545257068576267974801647546139473946747431543281044256218983388716029467150803143967887302554463187295657837738613888372910955842583541733503541492007132256226093166052708794368336025299938784880867614931568790390945924211264401113829898435910466559376966647527625316220027673415639117745293402255135571421060958504106213187913877389118806485881661119256563379362821062882212492130749287886275544590510279862654032657631593537452618251471032837634898269415705689862717788022103701085997637970191178189434005402094923861533176857624214366885418071316660499161617667172767603497133249262359037031628130560471102991493222215915726005644096555462080797490926106175448380916894997704782845823187589496578119227601766037590625352077822596580234618110223451679203611649365893743532072142926600684081798588671787411961921581736132742403296883480887475972392676845308389962412166152719713781440889288155628872510770140482487116645195230631872469079875856885513239438342318216328047093372329175971567762093161825517222894351518367587651318717565646550173910614632644643452888680976563489865896374787314508128876360150270901194373601514584691205876632945002666596540845093856949228280914681917471644478242488530525820162903207068482911036297150284503705818445663645577510560649649086523555721333562541200616124441425218330489120245759895289432172157513475771647737949441662983623787036956588101751100441370822578437424668796585107999709620184970566978988610007876706120814851632617852591031600305169785791680538402154420683852708236564344592960314132446588361703526609097296586359852443139291902494606850936316896387617589934189636455692391069845620263254326292878272044568063505375216306557012336637255550447672026964868915016156825817116408991179436512405399319380556784378161019826477827211031135862965386970872932775798720646907454762541494249945199317060542797339200527349889244914468312031194348026629248949402873501515602549839763368883426425646870143703514672244152488353364304767887067059493682568364032807424701017068170518598353744963542093639304621247034447656201467864309261978750275605342754023554398654116744565017301957954793124685236290546884375156746760224706688455051866540577110121531582119624043816107531103837334355358623997701535736486337487362583708944651060576331128927472332108603784572330967936013193104337447880053061331362298942393360598879982249963785763120620841404855532357835265434164998018029617015235307485225467409512904013838209574262544335663323253055759141510307848124969628979819629670810865817631260897257966166301393762786873605871673928753383471489794801070397401431563606089399788589422416224568875729640518266886251325634143960392227079951757332233885861296078224000022753271250263911322245920914141867138478839657091983452366884756796825891810707938696091319043924195522288443552143154723326542280075616180031957155499916643169116546869375475442330667946248949899118753190502974218255151103692991194895558793010447807502657271882607962798890482072322376386344587721602579174739165179060684607200271692742507862473700700303293704026779541384625842864510170418651742790801610853330362282124232727470509281369359726055370794642768986466548237406515316157536818713724196761395597692177810446246833901960933378910165276982359794193052176713636423739073304833189973000899121577651801550557328451314147788834601807552369051226181408652463237116858223741708362145131059748398064833140071116155884497016234414018204021561509372595211384043651495092235494138081415512727215598548209187190138728794972740223022048516752205582642043856257778417031737154708026765501660797474481334726824280380772058102841632123684941341415613551254195001616548696482939179939776380975534893983680646971087815060512789360393272981872265637331129536141743797873961771139710820188954572205155890820829443475594014848231701615008763396329439377694698148827732046281506254792905481747901439239631065020931765754734328211546888829867097332313716505273873087705051539785035809391853138024253350631668873025905770469516866723721505672450908871521108543958763976424695945147151207479931118761423361649486516316642629992318260216411542386708481623228740874950888590556174744807543782404815398489197219012209983699029749627813451959708393634091223212616414006330515613187764051438786134611923932498277210377547286906936418871527224623250589711258357153687663992866765156430152207998993726550790856170944193525909007585639719991918564278210704679142524959307286180998626635671414892939452969740123703968765073204448783388356455006388400336519903093786810789270061675142072161982153332520854948288528787309649118352835806318050743049455395956964598304117149745189206267038761507169851017835227646970458815111840720163753807210722169463188538549690726151174223484309990234853704163865633720567848512382918460168348172782177172125091775467979247200488222313819906960947186964509087966858798943203928600848186061139591413908907647006886582020812241371357542304730646733677266264370925126840945643468395871433653775391947190618981045886209352151949717439807819837592749571944554554336324537605300385593995864819773661110969183793194607611753018098643829095775945343893104551604912570634322424177054464675312515195540360246882689017336472221969996034794235889352715130617187589550003149763036638754853721583450838495873691998592431343786340616950253209312089131972807724586731711858863233460430578844214602643173344359802589364662556570218685187232285485150583653194656407740255992567731655647796314667285335699901077011038651388500594022102066338299592550710388205949947221220414804589194377648705204082474682030589563598631131517033297853559141602412062049856669889837447393865607865809032258430865059023622305294626699706692455924975244039360649682360072254331790956830949156681663705142204522640367465476365412084649584537118423856197371404798260660525982580679429545236022952301664557117261265057348410484780744701270333425069075624027500990297015663736253709992561396452559520059934368616431874843585076496570271842774486133384780616657748855926065612035806000129461470617636144140690811251757691033559182892891285742796401882672851984874516663790502691815334185933411626344229089291453558561923194180933106077185776363937799166795657321336474889058848682567569963236631734304743504183853850569941042905183953831317825295443617352072101268230473711898302458163169947021609309563061527907303858871872464634211268857739128185836134972085091587039323958048341034122731319915400328673742703573202256904861241015496752561009961442208583603984695789836800901253340307435838082904876205831172315080107112925030795287523773195409464241778680358432190493207378835062633700069128266884088219745701964795831568029475574464633449114824381331179729779137724675223627832684430426678341087441534406575543554156142021750118924032753728660998029733125570034008587258236477323204551462350528374414217100895878892497931699602350920680676983643853320132418948260762063655356912082170812369198009552766858752538099744114264753916980943505885495510422029009931204864029978216475452763459846074324795482348094431478766738202897535740126837291964804444390145453385262709136884705412638663080943418191146515064324784777227746711173665556177199009780919528754481572807839224497837556899145283108642004245660891215028518613741341080421560167725367488771700875213605262074637649965805083020968383848739576540923179768579260840527319672505750603427297615158049203940900645769476005299290350708577575571578264774864870003696257458664950405936917301025097277811863352444828656201599894117915933206097956157559656594443251210442561185510975062935898888574235121502608096566027020743945670493439242866483620782211976146101711524135741301942982228229293688346772158162196629770995002200729182255498556520703608842458464440408366262276727780278138021018497747462262205010706416318856916450360457810295524150383957964941302763814435038671872955344828612225603466719802467508028566842695825107091341033740367139472411012280228855318196867290290833436585508930552385430944694579357493421571526348247701486212137071525008528190510696733065750031853887329688355331764032732046712265277703188657283584961172786977527419074445689735865469194528336766343391539832762628437785717211043375888132480510943210002955789208512586454131891224761402403939678342874187180118838027255317737558622966742551905352367909552894189541612265745889706586633754253747169093447505741995811858669239785237538645386003252500803871890297616984724086385574075596384211680037111969897157865021053131074690628755537922681160609939787837371619677975638689653644098180057650864045715051853494763670524843433641150122596501678950194155859929472413809257553422721366829518826003256491436441941448607963245500471052750251370816089387974244158196622341412550814485273925949667760292822827065893055375240174339845493159810878767659327771238114070652643708942908381505637039429916650339349715877693934213260983177954022055380659705915188506794085762749038366856961310800075573274889999748216442490728781651229021346502594682099625449197902659766790666220245925456404141274143626029031344401551064210314139908400407479540034411778134268943247657820456205177508472770331983162318110213496740110235990197843046993526722564095638662624316588473476683014417334060758340926714413576908672402790480339916121710322572876235167682211665406975726184511341205473828064902474236379425721192489201294739481584052006149897319612429924195872096979368134413467298912634790170805378988217986591034544687632045751452730755438195620345245245686208150255367664131285335756465772546446334084065688270324407371215335440076428929738955100869402096911455706292334521902036473204762001732110831816417156806529478189396192938227234000103807632496836390751640913609915549312280379643500923061098740962250698142081154966303634764256851204239244069271949141090699212890796250935670974669379170380429043502377722318176130162049103303356739793106621687209797909724414006343985952257436194210199178235810177450333007435559527797969860470044592722127828638372967775447957483715051666232019997727747741116164221026548794535412594902165326306260332375724853146901972343765879793463918722397609641011052392264279792696409005685435542128244609070672339793754170951771636941294835744078288737283092987968083920189904950095760115612771184872087116697296382222923702691955232875408877689098030290565791169629614228768940797145471448641298707314835578394630458562758745603833549909189541496072000129618795573708258724094330318417452009461247978196917347216351975765548120726648072390188095645789964391888956154467971335276447033507973364793122288347125747696691204043487472949235299619075719202649382714977495770926962936466309102189617431063770949199189301017039333828866660150979279444701171257548260920161757171892920678040182578556407235772986678320023632993717928121827180086796529727589849141726254954173533999376139022598952332406937378450448023494908610711994712219802793700789881165139571885764880948394393312758092968848543662283085753442063299077621715293805208749032120296934370306439689536920429876299789150834849378466112050322670151431560424848113577066082114577175610733157624671731695182440635142125336014860764660345879257453466767992067053057151063295856123078866094638657294787072297151971038292729213244880424764653133453818439780696856411230329205079475895195798032936956795602164798156523966217920443019662446957024485119628685190638170071016776825910397070744408575012642524108783122677317825246589732431197350297586050495386477237350452553807623376186889211584064916050077113563853518064987000017978197324386882888009562001367175542274785557418748743882355348755825457052947801566933271519739439487197320750028592381220363364881884540940910020548962135526334562733342022070321759295223163356637472346575311231655280322976839287370853838039240921859285221443816247062004024393786955536300311357113783233036315534174314073814719039401443803794310888301015474620978856512663896890136114080139094467932844852484221657394374073120200894246539561833453266658208913266122005515300068234086796399102373974168620602978066168923791916275403162641285753061627599453202261986901676149617103665886704444966409204418871384009623494197379121279202851160251173198181947619005316252999855033775179281804501041666092351528619945176823008333754778049192192864420557585125450100365078394875859380089233073778299878991392338792766131581061148940003263085046900565650236254646068301304882391814387915718686393660397743456139784005767998022213406649333464880641158407773854565021054200931970266692439223033191305352455104594587033892637484379065451957315079217995275579236888681703370886973541603467667079778140165343111246211323480831227516785763678357011271051877920153249305568660038800430050808684910171958576961931034380395467653748399330660934838800063740430532793775858207807467530935623627102550688386093633166519569540333445923018822597312092781618600035496912334871647811500320573867193025907013249596165882197520036324675715462370712658684681149163710288223185127092305279154068909540814923422034464183927409012953967944449781191794120727592711136995909586010098900052260146108486003787090126241089994283452897875216659074114449568756819247549063501289954014237666396959709316165413352458173503851778462070936490164115253099150828343816761753393578669141779217571750966406459034322650854447778424020068692257760185573596217449192846944155884965861513823661748541858221219244340502797394723665450106981871259847840765884069832102391234576113221813369350335644127714545049103544067486510766712700873433480463064174680282862349210796219137171646591879988231855725890482159311934599815527719371364138473222084808068711665227627408920662741796269573831117350022334449938307232662359501210033822777641981296545348460560862841467324790580851735150310127360059790520379321283649800437025960047152540109754357999288963416460045302504273733328248173094903364389469218049956100080646144223156229698990045117127258783633779692888687946764144625804662653993422341561409111595231616067692572755640185054501617872353856591708192106394792846830156232419469060219883342820463861301572790184448834740521997037984549060896765252853909627985902943220197461007198149673392456569324305064913241224454872436930312612051334456001830846949187491069840664475207317030865697816994337327887061544756233290780965965673862753905116798917889060603905354803586483536151216585973120719542477264512279171070266302382614001317349758743692623149549711908384619904697962106985868715066720247160417851321063142490771194674922917240557829432708060828429131599573154790719657142787829014031584555658873552000209962848662713125976259965343405188764862176887059802130774462527446089469324202972296718642920667195969280224105419179858410316625557795618763843503127424163247165993855476446798981648868979415777094897676238246063160795794077801709168337111396705777718084792903244999359427390843331881555133283848062646645739609629832321795633052765261815319033650004312986623339166127602341412303853580009049157185400906140212105713030688707347525836945905100696613157135149622433500135127537298944466116296829548610377432742746188424991498047432358863271784859581707595912947977452037716576901343554257909677140944905236930473281467471218468992843487793787641010115698358071369454508427439948149063306068843488349892876717985261032218776181827583583549820590890231329193330478547390656590244070551439204049812798078136264486155558387983515486118541155230386023276964053563101534329413865681058438951876761805892882078409124755234615710724466257183248159807296800127721053165691178335832558678608595490904143678320938545172281112928407261816910478380877541263092055143443735594810962975679314321863505148962581368450791095945588695391508506022841449333843418485395276946066321162687202144610375187573562528170616239719964432129955424416705808833991115896001153177850762230780017669840987708097610279196376158372445448640074288824442309407135668934239561373747939328838913144445336056419100397384048376855895320356443382371722181100209043511503964926682074085935054371167094428121729133733634909594097448357492162284961074955987177288629921705825189761163287489176415168429239584808383830918329648722803350388843170338839672505387231214502657176317288976532820884592987309164536063752787169229592053240923480857878165584670652974565283632096842170353630359532000058263078507497342205418207867897096696587690265009049088085674325273456095822094297299498101364563931786485966994147583247633872475351858529641335010236606263145761830568458916912436355471025595694053533372373346598774085445399385708192084424816306918332843966627302504280507033348069475489904177288048405251434562738332940118180066572996342211201928350423437688329934852324273011111050652539837185967861022222515976385429753870099929216705281410933759181122461479491781562972225448108333953826967859920566358100992459877828719292693296559201557157605085556125622253950040821032160774652090507841200616158681732896446580160093244164013920207241159919819140134630312885122124868110100372311126031616512757689755130680728907396644061653186541845595375224117572395600016576680889187633775644825924286933189721618883216868151302786265715655381527479817257869461140351972677214650260463807937470796677522625951552286993570892552398339042613762893558499032452483132249262240859497121720698699423837824665455617580385304730358205887467349797419962628538875720577289352888214526626465874111383550788463568797280975400236941372653159297615100488379318147448374339902151491562547167572903829622911792594078328577905197401090907438629342469254506650368659832885695658287579795056531712806591825324093646743992824405433605871151853867507277280015341297392600354215383703992835653225355369354077847940652404919731369355021768587167725351616839043874318817680764057958530304352092982507452773965206249902936754318904134032921068374282600822717896616708660772128393516278133933526965938386183601598821621813730264266419131894944814820749276156647301792053902518591652002622449891451076614468309637782769449791213930103976571007020380758083863891785765090251109082460794227655289526501614011153891025522712579679088736202629938810208551599261968931715881255459992032316566431976836214875958109977565273739203960569036023520390604801380824566161070039219529292217680178252904526528034834387130176819097141435831148156740940985766145191859692407597230188032524572970841544648626415975572336311085298874151830371611530302966962860757614424253989845266080600612867192648857644619839514468566972712551497767916801011613811843704488256728411425541910788247356818978177993592032704990722313618452742909437903949212502704928807712740868720035870308785931545318494608325787071353066273255516548098726263036576670092698652941592009054104755077454345670425331991978150249604422864757202523090331543922310576927635635150314961290350488252213607996864035980500619399807452666536641083996751888094046475830960124407192955564415435088737875941546907241358151602938831570550602454034507008887534251965225576360770707783775879442124436921649317155896283007325395447609840018642550336025706442420805807970683720629853364562409577806047086072731197281732122658438629317757170604400491864692970988653479524233504155833953462775571577346189857370713342576772075948194681786494657910194802103732901725393766561027075149620275406548110627518603800707357479483287945039632635871077817485586163295892086053131164648046758623413102901382764259804580382522186433438934766874704271466939110423737631347927191896618821272198293307459146402259759303080301722888982548321035964091313967485146487018666246500674572187764842469979573452595206146992962007001467528054172387448382722481974197146402675832202143725344978559580570745391504090266862428016136908351729007159949271343151966050997980807203573502827632210742252786870150596422494196078047338996282007723568914313776086458422359002463120760134919100865871238148871389837371218375733100098131041204419093142721456670719490901982541941772112635520896348080679394240793370461273966752406290125965747259551970160274574478156608997960460604622559963777378064309014594432610420707599295670970801745954419533035521238211383261005459530528569351257913311190325311680823495258035728827625369438851611956087878345727753215564539707558472078029334864373105755374502424787607117330451587931333491113550666477758869213967727234208782989667747261211449156853442429484937786935539611035654363999254744990175911332649110925365776525064861799204736672627774109091327257372028302661510624115869091198509094186032792351862989705835828378908269684734035838130366612770420239726302243049816195553140986601796223595156009916599317074679345271697851526312302680263773467984638132358398936918194687412941062829999178972860076128721839014992730149710284227440193264660593432116606231769292081683770510083492158833225391750063995400037578420079056211102331905912852987583664340879966048850500014336719019432738787032946990233552618053583078105423100572985818811102889115927225405887383742831691752073870911926258881394260530373346128232664829156190261595774518090782459234753135248894083825053453978077475805436276052281369568626808775927365613444092576290378966198884814540204351047563534140812662477368078013414206397856979953856198350396095764109720763231719365907628482406433334852826845335271443570833356034889816029503502749804074325168038016570214882535483128678606159666187530860952992807492683125556726795220766814943617586861797699978927462560533629544523430532660970089051908604440637057606468116421760257606873530242802714801650564391826080643853071690883332335352373612931797385551633880429732522597717149673231074814469261129878203625872441106659049352952207003391791674696169975119915544613698459243695805467755903250233222419655105498458681989417942328569003599419583331108317681015237159129702058539569798972276960402390336519011854600802927340387454909654295257269090671707026254726133425574478285645147141985940666519381492965886083426563515576911676943662213460332161673684681753057975951576524989737568178369002088546149361770418261022142296221804188920833752409681154123193869806681682782849522158141501154409396557439549684394183463912290139445017885295391989592207476952100080160278429098880119092790083714842255617744217663842738270936410673194855875937239662330975571291138032873239693989212751807187679990097514069645903757293659970983542630668282385382017653569211270527920112029804840519085465995438378454563067076987146071325253531644444372291473348139306900858233232246392140692304598638374016699401685112940060251822358543920056423584683796758299479682612776211000649369407972612087772401172797439590114736247209218348827596183982900731858821846162164779559092853771773502006574428296379795073993859886257235089589303623167567751362145094726195321622295314279468099811428585504986773787287932951265830144504225025495687273312514768654400070831241821302703979596653552709716479459815106126888217194123389019068043703623497039010242901624116814162082754066390281074736094482141803179564225878520815649573566184738731953897006053523299012903785197731993279862210457196061509884746128072439198675982743771152891666016408792808729312700695902389154957568166816947774026835864145292616070909083559429657787037539448240828921424209476493215521091211669252064748599031246152326887185972951233824714640305904397430284542096392645714625343351245092227874198163132134322730764178008026355183010732305628918578592895901144050188256623072775553671779672588768703893753803773167097805267102471649338642316515026102506405485699615742538000067082115367525827868417637102801883118919301217418314542746302781896968684215164597925860159067730470610313828343793177722199443790967579874442228779598542845630820224908389855284383722453648977748716548189618530822938585031394267334092896844490745195010001719140052177824705883146189036417552621670639342258693979631085467182470767653505398895174140812517921607182742860228878406135646075907463492785195252210729446419484201298005712899631590853487155727871229440956899700201768291257958878697707763291503374977881976177989727422690637619767361753698018033194736560336495927178121598686243102138210022555349279963655654367953452786060411002303756850311497691229866662384131096508174314009595448405239323329765284318387513981609644785193819301697045057588848536138320727966288333836866923335130830623253165036724999328438714837251376925251170797922123436815788134407393888609975855662060390380459535261779843393413375925497066642527549802721168959802778553312411938733524193851425489858048251577445951103916881954427329344634884296253298983419531677595800536115027627180949114608694545633223855408587404394040072327501691735651782473441189398974121434785066309330926743830178565725377257494021684738159586299634820776500606237410567349612779033165929871951975284092417665576665205193256062271410419226427630977146537804174467209163884352676592860566932225627269422736101737590124802127409189364756092507432721716127180239107570800772153176838705091116233822971514466012063937797114272312598169077206718290308907125450943979078775392634828188792915396202688610306971177109434296571294022506225189950935955518833207204482498656583555742568434490742260280858895237390736301906147489120118869103629075854599066008273581337604790763277442854340813035467043027701283628463826000488533201365139069792036601820267265813200573084121288056226408383924136091700537693310398314397540156400078948324119718168058084539952570559071545320997794286017245245569384203340112987553729615368119288778689976293157998141834611123812480273728265798277349248935413533111205506292735880767424526540749384175119750136614979085776721915856180156688377881533971289317991513713785201305785093400063433886422922628469198668355801130641462034060086763225639625693246560216284579295734790280245177606877455761356359478385287628058188551649394442514001362592260549450440442517124270445991195114292115504268052542729987041587077691057533859124405685111501299169148929725211334991847208617620881236396405011457352769522741670493765296787952476976876209602516532594279617646718202981766064452200340947751501112101115122719586028755446995576193678617084190418494865115709075933447872771309559691465915165401979906397054944557367915786815937793091832591895926875535768914620874415812772302770750870440135423411858170983934896070291094504207908620193637301022338962899212737969613677048800159519159139984502411640958859269444504052327691958081618267254315989648153849751089792015753372678702286014128901379527205521305877461000964955653998791713379014620306966062924642263618951774832392722650585568590498343273201350541522671171292430498258690556287932496599786351474151995492212797691825995127258879933605319521264442701186246340785497793169934891937641740240985165647704074358957245579964228384605406542664673960554373146528004571031526764748632725288440307668364386620590165103142194907436744948668284662208135295521587192163676492684572134305009252952154538162207913446998533113678769109725896804749933921404212594829174819942482022609826388698286812456509276271879488299977378494261541007321732608022802478325080248412442732937815260960205373971645998912919847727224366428295446734627891889922307746622321367990587772289843599845591550649162853081844942375489475403920738955758433054305151744766985813333251417884629788164856255552708288962903286667937149203749853885750790151213374895632811476783574970125231923269862334252968583905688544889179458195845592291364409141286929185716755991476204254705650948905173423368936765470666452137010960004813656017540052532644125183295220818320046801626331393765831851542080251559538806420446546863660422026744772532405661814639640887906856193161342749954254869437255847564126114424353003016137713782099646612025841881149091368772302680482757244447206923239220929246100636761926064456406688766618088308838113731350021780274573508808519876396465129832409826375060612761142010665501504888008919014350735495222352955356864121336270973075438135641479825528546346489913165248236480857886222442687318313916040899303667922944006846696505496522133139892842076484820788717141167486579940044150735995129804318686235898836473500381216041185115269253883643813328635817367635480742638715981882612276273518678859031180932994850480953342016894987983435111203410132985466376880705638524890734136935572971786942099887132869624512266092515945819738641552889648022300464439952395549765523147033122873523693755575959290866502042542710439525043342286526117692039475146658551037792677480932448275233452889365383630060288383793188214139912218351815518828593650458728537595267729975929427883021130499356543329065867519742374957088794127575155724347564408370045514952713878865744138546580897856696596930923595409042298775092799411784294977077658175592062735703446380305493446599328487084792209046400491769014834182437893900906020183029406518373277008218795271721929334868245638792344589620078674355885573928650009635719472436235243511265058664943625446370700755369573317333325966357571702700591713561579961394868603563065486629695977485367633031534972767854972647293145583073275287780996773811067979268507701374307665446779069361431658627346201250230422087362469860520760271415584242156249243908768226634585481826271316170868461892409944110983693061660588540925582012591914399839787105015178800006128665394357872250623254891541351627266599613383337620102393412711509567589856083984241226005633738940867789412203103892276418889783970212495230924495330990210301641161098694282842779446304866199141177734799493592433120171882693885808934029812617651548335310199873493255290482589842079459971440406148559009015421639791086677091518882225644955532659454933212807852643379360698291394145339853864208406963793842767521480526867409090207848598761961227167825192654243789661883343836839051747461399430873218537569290931240213441533603460944929287512758470955505360104558230940839773341839200236722828516600720605192877064704778496572222797290425136210705030766162515411679960930038275245599885850162632089922157442252701306312005031098853963667487968700005205157444250661673237976180878452011460029090853383075914083593779650066261237797977662011337456907362161414305293283771968740730100768750964450724631241849951692599198900782644039116385865994405949548980985954170068840832731852222807117171237519442298000503293033559998193116221850272275812579687799233875195105145599560420087798279216328049024035331036652741031177695146849212454371565833913955189099092259268296935838802147753574007026560246344911589916184589571137155707620555115582052570719152827206524897339114852883547588649052062553805763752904008414910843274132157488138699230154602224803281149500460971414477210764117410239971813121684364058895238180201696413310350034106055658945129972319787479059255927624278391327758152602590002162194038458027957575140732502036992648059397516230247515287809931178849063193580674787621607782964058994840554575878079653491381719173712062152960786236783858879674812839837090369641745832807656202494120880502732275741419859801024720280046156943787755103044265476289481381241298584423956433692106094948355056546682475770061838629775087471944793737687617896581906469531105449933922329319820443108634147877060611552839538505309461755334099901029281545362246157007593108575723258071152085235599967363273040916846003867713387769079914310590189441310840390509121129599135252999610357039355240177712369475902420675454329853908137888070571882073085921624829481529451816754100202999242755711405221136700060089396818566270707842634568528878009721540077232130181519051893527996784670544373606049282121776617440097776539914661545956415511489744258398937786858461958448977025822144688159630946347108443194715807407103725931534058990355852152433818707457517350914293126011811705929236171839435434493123509927241143482754783453291444803495650784453943642674192654279126828307619458375728544489376974865257701560455838491985790500448274725024156183558255792454021705535173335639788252656953131419680742477806273617548991990406072492987981062836169895013255802039097983666642015993406493545232646757648178772259627815712450077884119594172642778146550577484093952375808490449010558032414552249881758285123283356003869695515281145524579035744487236798684921180624970388592776742965357180147556493457171750268231209906273635646644244781802853986245678106614453627736350433912644994183331557536707547418664112276098520926265027925921488775511745327926518407187652323923962045918060477725568591764596251545826907143903353135423173815449568919305064038813882723633407168513637564950557357458300423444636762140517719629050319342175912519665469396391339288782984917012794174694993036991899662572108865028461071317098067287833970221232753931718025197447132002553322094331084873322926177660730754185228124402966836883942623045438957940330520503211243523365009127347225649983872736201418745542860832048562234262553621935469031438272378116870108459857483380025499943460853176656555030220565914948838578993706335362696927002360942010136315083632699611300853949854687362392010583829652641879746099928717352716717929226506010517622580611730480439286694030020652666395868319889539339945187381556159580584038951857873715255750311357840750281116178690721031076473401962189364050967935248198884834220717035425373618182678893208304688187050817237641307872024415068407206169928910372980176840519229074507675074081586120040326175388475065523353033767309931672666922764431078631319916973015645645615286462446040094713303838284368777130968151432575332771016985366708134860733932590568319882400180668900744738526246545492594112681399708421790448553264335011862314715757739813766435709042175187150143828674137141729106900993942839216090256625535875746345905244650547875669253737440941125706276870088589165393627665612486907835514690017013907040997156911982969605380664568704300374256674696490024385373395236896961318575213085665016538749919866946401961657219131200362766440805744298968060180457891706779875036749070351218176825983213380707447350803769708568671623009987224498381108320845391813831065401677965388697947941129629322718331685567824855835067694546733847124557335116660540130673183415948520068383974466527116209802461904428761420366478878654239044056639592026004901994233822089408528926201401476222967604875275851491942920917034430122572886566872130642620902735199276494595202619214287343405127979831462961489911795932756376463651096012606935849821519195080570218385314959446698391300146427919480819572407898899556358313099718594036652901604101188115708975930891369296354532308794706240677142712015066952423076948101710961863907050933296630735122038007232583349538891157284283628554063136236023647110325698821768692883853716935149709371238616993718131659526820532347359233657876249710237643358609647820257692806615341850615307703382812412935189810741735362702275964497416083604434288008119404395316224046040345842989351163493386120565262394646542989544365014939328887249331288332524035439630030977280952316632475882780980878940790761992518075852185305727056640136285355688445827280030834273573954047174233868117522483750390394754862982662595433399276806281069808230308166187591252620709722488297558244103826040706572612216635256946067978318662230971514672949718340675144458274599521189887592614056999065406984985807818190654525161374618376671818958535837206523889737295946121089289043864329635817709156733781750985943772015561208508616504489565326640948327978844554077728967233853229705192053932188648879287975776060668849403733659582974235664791068911386479028458719956674311480819891808036868945619828278942429056583095994743518097998371369793992920282308443372946742528632972093461969623511927358856842249379153118584837284007219923202785064869922176442161782329816815048058965023133138965767408452773039362068461993168505720463415248880155191814139611748385191162244258601350284726489507435552630548705535108287706962493792451281388057814035598292273646387540177079443687020258216313218889086619387417494014401517289541497761611214274348412333184632508041948149490435481479388147984687242021683476930603700024293686132462022760339474524739474391135884702337578521898148889573723390821187048201596158804070764306512452503663712049368890710144569920584765188272590248444789705094228578094370850353429634695434873939466950207324127753787672038553962312242264897211708293693985823328922124378554409485899309216495152353675891781794116208380359627718695551381958652749449569828156315188443387372752010310984423970872773347045137173240265466803985610700680860904875006709519304778440747499589631409481333221316282148433852582203275775877544236408789621913780183348985314604726142266132674437000576490388410061345362999254145150306010047221048571208023477790462651304945042902788556769843210430939077995535801603181095811523942665632932714518349776832635950287809615759759671001082963266866516610459614785434536279196446488161467596248693566623246703616927184307645952923144156782100153849070237049342578072102007703397831739739938427265449742778344657408715957453735206862425715482771585928226108999344423841123188133046254294662985217437806972566629614450180894068210400706314502686697115728211223458735905099124960898483402556055557370001446824253654483662973553690612439570939691362583342145030606762240359842908173136162125754375740917172293771226126582168617945404955982282437862740463298513397414424745223559036035735254963661733214123126458980651624290526756533190541993274662220892049473029923212932567605755604763741618423075150727498418438448221028466267712497155613121707013538517453916927262362070042037383103943058832419475872510351583817044340612500965324695380149151223914084899138149862670352450818681119529980878611913784142132478771008232052605858747042359113293678792664616725179819634035174871654219331714094891331080242939790740010476532391566202151029026770297745316029474768190709437099733514784745124189681817960091443888427326070448631835049355138617644609440213727014551802907805699453747277506264888350537310412367969449762647455553984983436066849241734965181538352154384880597322260412023710555982079128625522723889188294641235891166285602541026276168582761198995477500870335412799931051550811206507365473233356871287046881989550494744048197954172299157846065667639575894496958908557426907103803953204023202924534997226517415325066965228422054786593532378067330198339248817484003686876458116504542648559366148079211023281396548671427296907213933719375521562194828961948801926797762684989976250560903066395734361456365830285848499306818202314290868053790982498895859367014086053905842190702398032128183795573940283905655483397161809863195458578137485819287554422534394680640283957912111186397420871317996676092919888049321224177659546286809301897394033411599535780439873446033961175108471976638827022613082754078129235360809327929417685250310356108843000897617353409509246322513022785766996354552088451992818517888287621454384181670935626911113470812243014094528311427034469745694963413575301070073830239143625213874228475765785737633509778031721705633985219128433055274519405084128621216892736613080418784073333938622649315495445303740860058694350860190586262213369123711699076153973015668822008905398260020850747397493629555572599017817975171720692929144149359990665773093818507019979835090689682831349948844344913379311990040422821854408638493628254854000346912885365481079896298905634090734122123278140738728230527091629348721124099397196601192150901322357346827042647477904563482815377072256502627934144323580866053634503644215832272435570746413124134131285660775212337996634747957401243757174958984258553999729404563528975159984696872735463790654321688765491297816782108158525545327713723942961702927630465525962841684947848529004544548423408441273087300536418117594343942941836391789943819807751933931678827179735630145859440852903906021951655790634302981552395484222462258374325435479602512884740246794872827359554345229538450867450949503433173504856314428115345049137962134905422772062807321573642866556337569732763649005993268814636155049245971414123735249671493417811610377102249058597556173123628266677145125176091505319612527686525940138224339697563353462972893665478755517337421623840287104845721187195201703703938075623319626738961524248186183881392257911709157603833611607383745676129646702583380040959162006211096984167697742706426420220624666078331128989527312129729980849795396253269835767837986094497167316020646863589406753311982346406628571912237303319939429667858194281450425855112130165163768197547030014171236946132833833392666298672371330812404143031627452794068214440761824982607201086612154854444606456011069049063673093724190249023265813436754705957976444050176066817081522980727499114584357681459235215746557136666465914519921302244917244852627555397739840764527996446640125292795479150318208708149448955694249720740966497494684752547543369539897915651046312527029257915184058335442206710446960663209945437450463258201920571694661315771048674998299299651771372541838056688386245604010211295111362954623185219361383996871458526797481812995631767883406051172338249231417220816067841652739443757381358186927900229139015795930407980593114471514390704983584313633976929775503806932485192740695314485374371816536097332098851587781927128841031101146968920458736621615318199855350532369461452040506775762583512340574134196914893569642013359670986717297572833543196272578634918361722848355099151772800106942280475510075750228392645434109006239583520106713528385017317598286486068796890338021391076286207545943861350151226031366916895268606876979676492685303365563159241234380004501688774464204075838002334209472863469255014495552281196578514035894970001150964039978363810363215796467159977091436033464840458300009332498401131809758384668068792075930789106232109773243394949906489833657118961924588716875138195538716212213629100848124711942207090347899975189077918997527326783333596839040073924831428840113563214401889812272337033475144429497734276300835435022368579700633757884095532741631330332256752428409103882529619193177259563397769055133153485892755775073832045712245111102219333090082640941724125125622250604277098579711522081518421365413773376197870471715953134627206249626906014240729624053596539620830891237734944269287079430826384544828503047509231722132023519389690724778919502314546073998916082024937593128002414572390818823270531745528529981786092327635318844276007908409453190765995987208262874334832790691566938596835497348763016331940793036715782901967227622644480522197516571761583663466843232983073970222462579330020787674853752702136185662178112314564256423537615424641902448491011938488136699288809484921711787138077504039406038700690015543386752196592688529501067280974692759223091037808778561661921227606073835036011816640523384613734838162254667311873121874280644544522957309612091649663021084232201445344572318965870711253073838814602768299427397929988123841333089101983543302192445333606837587794227349663146142217932624256948961612521428329051157433484377087677139205418400003690976984255833826156435369199314779355210204898849198822574051986390066194224081386638238633182369413873596190395617045791555154665697328635099140835865983693805356512113043089548770682088239209714506497880794437131315959453197532161436616259194096543445017847502910200022083297888312796145600596581964087058141652344297752230695489907968050887134778004293211451660767018764885803060573449484662761448388956309852411174266730206758235488730849845467844333720442394121499532256052732624861084064566438607626748646870808726290281117307425955819949476817681573564461764298372768703560621336255681651249410700226317814309024987544500835791108904698519585665353210370833466254320687740263185834534946645131311018287952368398365347904614887586577482620213882627869488599161022399079151974749657448274961070590709836746410271079316272634361395083162865916197984183229267010941148296126359782387737955368491194300997579978471836822079338943873747397794747714867276443291930067360136123289993527379587891645412540933630454039955952098808156740703773800493397141592698980443032708544384494163037940715970148987500780479113716934962701842909425392720315483512528786760667995291949790672587699323740957366741887422126914363054450181086256100805985947658378293805674019488376807804479742619193759540260636834347339707187627040787598931985794839615465232497149180352248690663087174493578152470957120360129366040930003940148022964862837166718073602965742023484106906337971346856782785158750735751901291096722609197900243643813758516626847754365889031456159810982731084314411666239616171788174164100413098841352689813770685276001102232520764376321593746150600952491717444205634468487371597658224039852548539957064674589565807401113997430005630530339108017412978234711755183056404289623283469763101333283468021392485483196691802924236866498923064476819583476914808413060292449609932678883207114788063264802888737921929513967005697634763134931362393131675737095367246304864949118208698806400427086517791926423135262697183770350692265034404523578896050111321472604508075385534284886329575433800786734695069648391211984813582898246235366461534296807026157059985490523191235015951257060862512797735077255912113478635422674886006553516722124043303694573347071360539794435127121807964809381018737890017569018634379048436378430380513381044736212619776169327944806685194551924575791115757709890987689516112320211831148231740805951002144201779905743063775650067990034519890906100889025618432736469397856965959982730355246573779350397124965183290802883557274755499770587924584744242357137092845712204041403273914347570136549180689664434143142591748877309407476562751890873552389133785133056014313131830188813417198780078528544314017928787187355551456904126781759405704443721612719316562137749762276555819128253824636685511244344405466123141068439054507444213586150239101427299492265739080997332207663421371300649204197949501287121542899689438482911177819984039838772998422094124662670963125677726828935346771950196897548421271953362993324995857377524711837177107680432444143727761568130796505731794144944354109540268783961797876150767180240083747929514373377453622814429294839920719923109613246504220992439857323810816972702215623305295414902455992438460840860563119996947334905662000151767471353278192743100807342954259878424538887907616598584147811382160099829026013649971059609743067315245188554571237894985460826412800204648073916186219908137600605387839811205538882226515263223556246469983582298935877254341751722082071867785754381149041002673432014504538027729042902190256149710873396528996270395482550610500516191465137354082016648754986329267578846708589111186637675247121836366049235004775621222806663605635842531244657673153502621302299060442436317473507003417779728927984788359673058110118183802956608103903395114701201010600862938960176282441269028129401193148849874802596514270519303560377785612142654352960668003618779902629897632494502931628536403025408941017387106744641203739004384351759182684621712273423707578828326408491301583051555682506405303868335060213227824274684323170231678229747003979060870851955004916089368503977720293759523381839398869707268694638642604090228295928678672171218293998078355578055955000467847629251508003585455431684887456121622649323407338528626687185409884234918095808610967237321813479104476252932067754715004199471405882776223174432637606629334183751073749308260046382085366656819195744400563149195872706604501119788233245879118677898370083795208147410072784895276661290177598842179410631314203593199389948082551048179213591804247975122127505395474301565852538234460037515052146610729192800166621706397358530086411517486872865827360779883009118647227793162869104124870082148532855897157509672818999779722792943338281490671968517653729768097472144800001984704086369850930029631348104702290648755746418095328389441512029651901598144782405431286136153390754558152181220757379756456206940557018363340316326084017216658549201071301907548217551753939867384962714856916025171693989379820198612217130484957765328354964137679635413409754911338995298082674274563000282700936407900293068091950027646387732636641302109552024102272864576272013829207324264941442401097593300794549089235290165601434947362203251533857640562825868335646977768124870554649015809102482784904980416527509107451051322566584115019297304243090163799461416812032988642401258242155376013483205607882379442752029459394372153590032252129804801850052289878820826336199252090625746829170189048269623904280861263324218906476690008395634046096010513650172964623372863523341380615407615345579041827686682594191108408362973876776116037234513544925834721684023017276053946734669275264538452548739780158194238068666693817313967391819026595464793172202837965897423320115570755998689309192063719889254533151716567840364405571756684545910602441940409974437683461250224617748440823874755473694289147361685222280850690695351931873789214146429429004066669004404303942498708065749538054850490273526928753552347803606321801307290197894729257671449320643936612425464039469168881419843132821064049336976773881726160851031475326816543897800212102771501346154077598242885309632563012907242401771519352031515691196399851176056416891782938750411760778537484229235402948113183224877674029370637504506895709118367611616300152732963093830461956532838121436230103905074302793834258945474181912060666288685166307792325257298173146362050271512182274531117654039986395976318721348038768028145936416896576126730341990380710137810070916328872776445960180713994679336076387866401945134341973791652170022522449748654248940611089469636653895510333786260789118662782889889682314705717506501332198752730624831251825389963018361705197604148908773970050205875427859264954108587417470026714987964028972624603155028271707175520190693394849254156656300840930763393836574980382491007294121341489394346303427095093569773827088930479936538267165298741996669035481665825764123905965850244055088371960587959165423821593668502748879930411864873174340354808790436345607050624771565185719824010026709409570703499118604430905504765664226221158361463923395745638793711332005707435866365760051662910886351743612306800911553302492498628601892869353030122939662575484963043024438936602835264995457943041615273318682031664067621355800250401321004197154492695282016709024514319194571983569038495798975394142682764235302632144420531819867752808513138681824922036042077655563018458060923842180376642447655376902039201368940090926201162194106133685777992256624404366935493628326114259686837901000938235001635586069013457009002760972446399917453931875601163268702508111393470545228257607355197747449225949426078356635608603215631106218240583905984646598131506657766590761685411481188601859107705540711621536049044540644041993736218427146986192991261939121384589723215012148357971068688197068424110315439589243543097234014012777731394267845123235927722773200719193109205078509778860293069087153660619559781638790099542258496026790331725894620641906206918705589470584397978429141656577510030790037695546426565221927518274413337712759744514659067910573321864477436638872418083199891293746900798291504611570286716582231378267039712947085081758492848363678790492629203597629116417014610837872685387531223630818137297523430551961377580071556579780285879766059214779632855076250883382217149239731707910681377395242000579831392504737487531378495154908147426462971949727892898957268600166360759642482912552877822820367945954880126139905156673859109055204347569020546057531833965492122685127166927840433558410645455424163083305595886436965721420779097229218239165990130613385925664175100825599301029878030917520462688394474657741352588079200296049508361157983525371547357768777139062354090193734450025277223745800384142424173173924177184592847565461883959007858896769305909740758419834029287495939477530625651108605772152601974500227074440276808408624393108694436273402259907099976814697974929438537142179451740143989231084307494978923050570892916999401674249796460142341334871046176770922400994602371949218651064584793721355498350441002301654455760458373430894344692211919556332057592821341236598474213845318984275098996667215002415663103986469148377361963720323093402345143111973686186724439846305948643795233191204032878368186593188568891431897061889776316691938984530634165567166239303689134241491211121226714561625647104412448923693368706745630408241790541845602407578495468079675164569157670103651833199014934458216155426621586230893171205668299887654578111394373807323114157067142995884890888699502366192632403301724017565312961255661504058757804783354120137521289144210454459746641567531669137839702507107122717463225356025293902336372890964614366714275833071421748036472792930278122692865122350480626060016486562524910109687311648137227409231574652391735255313511278804984589585532785890037608008192855595462844366377214355941521715307447338412481780488260070879857281941732594740629745226911944179572279683721387333535742590630156146069473206218198413628578335870651522350499873392811248681199044494870974974554292471275486368957520293716881300039698642322171381677790114528340700098989926548483283104996646804017379451184150239084451025033443074243627993708268473099755631978202066309993715563162009733254014721066067567265242901654430408309840750021408592527785722383865293223305261251804710928379428213779080235293644443002191126560953455051669299384338778044418540113317318630265379204394855050335926670708054275505283030028539375023581548461033487700712385490240008102206012450906074443962244965585508261050722834535199107303872701201526829169732952851474704916811992702562198870110510155654659559468827029462612321995194569516253448395983558264722827129263043794463866654532389303713248448356864453212127940237559549260434094655321330706291125936064726166785962426748474096952315067554223354802359475682660652841581276018331116647617161741890117895425764588411862937884020473294674294308834328627017668628675535917258381273496529728476803284103599558321971864645521262184974758566091572135966033351614012930701956542226855190497447516161343723771308270847899851710343562279303520186315021561953810107318915288463633872302650281570424052826152274565758331958241920834928209401491569392968040270286233277461933611548992027076827635533282177962283653633870420620863066400562424260296045739828791113425140467317074373656465701364824560345142523734885621984732441506142317091850042074294498826699793248060571086355479651032166079968340847538381061682286059093534834209216898637301341156730137639334170680911124692104437267577977324268666400030469383190650609853972787723062145231918145598084189502130777254347059861462429953021030194761956814920628372950503491966374281401171468382719677580049013845501081490020025717436150805643662595641034066750137567764783715697705121583073324303534981517015856814159306904457311761717427700085843893690348935347084431960026632753099294966349987452162223790225690208682813665182222823138762031860374145907477332081372768446437563657928218833856606185660826652173763500911276148573439425569623943832811871049310443869509384292346110520132231179781440137286295906314251398664724095868826809384999196787444560413421241797077238797873982828154537767342756151460140034195621845726064032419356336110411436761111092579419901359722434350606423440245340686162265666130368400121041693383031304140910634682396731431986111513779934890303319298647683759765840425765970511166457350942130944756973747775142633401056352410660591209441491991356156304568236597801168728936752843797330501573409803301208784112424119652531795899632232883657654759456454958891388023168003264637595177839731576644683339244160979010597378184462270334413437078295377037484821959189565604848407340963828997770171395136070274505608148750908155456434619212680282868909998354506828212014829402231367196249796869482165202015682182228434243799717608143026177342289752936321733433615628170626215577873202879945510947595713848137785979076123954889384307577232364710254227845451523214119556417094983784775069043145489889113406877932922886430537187324522964462766194176100498171775207398536020012354334857457120132489112907889367656912995761699429779774897526791553214263982433174846087737202494649837546464604633080400185119876387552129574645240770554718884928855380619647928510947465797388812437323968431426440979397031813151722824404088578037912008175360768028547063931151026235695167666619138790845032785067190752772758537707693239483698890372687552376320494043250909927124497859446317911394561882233974728292948868711504645645869165585078608882645546259556407336489409135847897247404355519779762253005531528505085868102320332358435970094802652142963059298477773704601343180041657615297981740958521824952995434093106576989612815358675303398928172966354264160697488282648543640455377395001196468265268000084107291011911602681128560840221249918329203922946177977815489582444420434892647647821370360647459489154394458266123436183822450874986666907760013718823134927662169074179822843859761505758513791897141688973604115962175337636716537013314476410053916464064617230223534521149198808142626751985999269344575730351254413507721515595509811114233364280346300381384662055508077100648942330905778754781695128770960333371266670940909618033799466358189848712539752347880329763146576869474130219408221044046838064759446459098704314058897777261621835068151795837063105039954939379173464374124721763892267505002885666403780482658212358855434913499213866224667298817752419926566740308308782421268276518406756956862223445754292713901015086218059881165167947315536770183888323090283866799504767598403864282152953261521728404379262036907782009898575679380578612953810783556256989760265374674180152429917659234232112541732448124331757261575896754683535645011630167464545905595334887025135759435695915229219075483140025912275971962967864223140437523312077359283989593596408404155075060904020963629776728528734144417247270362041330295070032162840773235413104613802596000227533621614319792706089497294263385970512042648634541652409520134448143952295489171915545423109203787396338077121271422437991777316865097523226580944473619645171892757404109566180700616707399124253110855504156445430660522787286853094211541023514966413379391215559612000442548502761719323519262804879598374846943009398265032443725604773642644441481200201497729406941395679803186657675923390424999126704998853659844033823770866186821024790979367318000923164265551290489309337704605765031636048188477111751024526027455440015528824679661167469858995938448121557321325183876370323878274906001758793023627449130606214732703488455278038058444436048405830755597927786467821081036527456268385346769262066626428196926878772690827033367477649980379096765538631711981109933161690696872121279808733942482611790411844462149517198834825111287392919660994575989505201699723056364228055209093629862949293276434594661780764452841061625297051418784846497059110051988247161479183592006193901510172195825229795723336403259057224044860920181870202175276819121034043793542627211746197177084084673583821691055751836025002416470985142986938168922115790866383417170480742398525961860051741273942981561435391211420846493628848097627110036272152840094673968660915494530271270592550350086131266089128460062538788830681339090403291661857333723624633439232751587415743392230954383510083794235578852681597124630310452618946421984245800046989165411926585658729700963787214925838535398656943024298446601324838828274746469147389533993142118374847701707764518575582037890427720157468398518685627774441106048876901288267551043826720371422807494079956194445615515511257297972809514304004543917377436552578856208927331681071194217382776770513519279953369612987440538047354729627532323888087872268819282847708454444207925781224867567655476079042398689590529801522415972003989286354513630986163108638424827470645527412479458106904092456972527652423070486318079710446726868476877126728233419292315237722688934252987971201423741245144764760769563427957646886455729952911596918530478222409468400561070564652950692128943746865709210879558218248255105012608262602337297457663193538934057298905325073781687912001392163231148738898382390808002662397453565483266536762591726399957076553033763199608695599425498359501523512241973834167939592471635954562579360970602556543416336855641421850883523098705934182491201312042794959599294991161038032896953968482266872435144541540760364059253044135199867966015132960819443022548609196271210348640566557463392846397325962001417394924327579356757988977041210883460941668316694487316023601904581188650481178271067501815086297331074402109915540185378634692812851556343831831831446252677210985277009997049126963627793495246652876167364313416631638414620514089304906366380723168491509565401909986099796415620417497476861601032800643059590932346432791476869988755835535686639090206313468965454721295654135555742579312732830017181664460186379888650856524392070465331849809671598189947343735738315791310120407797453138497262407023889647715898842186740430183722309882086246639901830979998095774652178038636368973768405645741143293619087725143554095800519583648498774120369425683224811823044829355858465081223355544604061145566229867467939783604380756086994678755810487189402348128154574370867005455905695624206253252759628907568474356391791339350657711464475164649738030343739835880070805349432812817966200902315736627982186082752748673863296797176558913988376694698187515674655945152177780581949928754807859562723314435833387606031732709553519099484104155313372696764820665256509349369376380400228094109181839205186865848683411303025735025112443134773818317423822901007721973100388616694726793505499434371314656920757901718896967944848089149246307393936432666535271843764187070447013291978973302134570899709872256949526783381212903766561560333385218566611677139937754841264433461533879943503796645213776968808869067656373783772012593916815550568656486674429433126826433160628695749473245608394055443912781351444564087507239521500415676227855348364875911770202777058488709316076860276099068455436319493628033073268934568415273216087812877888083698828697632559804813015895597857773289996503907093414252014048905165143002972926326030509095815189781086665334334029746415618843621597909115237375092990105021315424589410107449161170978508587981756459333771677144054441748914851346437538193373742425780313448581012503118926519292688036727358875262994278566948004636822949682355835569187007149523435212313894024492983407805421589237738746643468955220578770104981395375713919553313328366674121876689855085884626977381475746180297360927381906119571714871561124531980298112150688044269329643519130959962117419655789254013704330832109906709545095289076573897375744121932451359684273132033110326524020497962767463540848403658550669886325179060364526516692198650901015546324108878881283323300831779531685642714856602406539851010050034476673971086499010260105793631844560039561652734176110571972572416173263588763753838226026634475711055490092224666648010729093439785314252145308872592791683933001345712116222953516122734666916195454332664756829699113374510109247796157883444999274656261820877600536170945495155491737440988961059406904534710928126489404841637779916290852565613419592873093562245026587882302555409473311172338332903449814521354894588017062595995822901145861905001989818773881149475709449321691798768755169497828380005320059709387425144965743553074399237960917790433823264513780589384412634185075737263840716282084321396801653463169713471992394337410309495216476963850343767415743187080266299603101182248890743149240685513592559557118849926795079040193356541635603136601696858674125991167232510443516087650795687981821182435943642835630267811714580414673875848248429609008830841591766067789840449656174324675693703009845450294343163372625190786215753855926155730870129262142596227124161148147821595751755957419483666150195542788192989280560506286884651682309697770534741921258313571665551141493199481732283048538161223849918141104895293408786533098734397202689770086924974380153565508173106040601754768315825018520553821229314267728074925703648492068905996375334539974257736970900989627871516543330325947919629615357026997162764400182808566165782607703686576193084039289506821115452725792603877658709330855269652319181183449860184336350479313991867534575145934876894558810228058368831266943050441630272072814751905299422396223918837735090156838322744591013782511898109555897009443231208201652361325943130202653093826594901774460831603022697958557870211956056395229312218367944635503901161051552509770220054122341288988677842507446286785256512963267349027155552388851470050730971883560111687732810009993812109253328755869337892699005402821845792842518945539152200992547799640169148225862712369707954588788009515797238929955554810410811448165182517572833806678067532762620589513879095712452552702800379637286973706567295012985574978085166461741992973099505802982233991896928289734502610546719470949186234262594563932707543511131392934524724258854307575458287480374225066651091187426910053387244350186576423778223627294747035541325097152099554352389294150921736379621798544251037603305694692405986717696770468743964853946540008446677106965745661564495058336531096048991430462964056641205952465036620255662664229349260593831086781372440071131693562089539222232956497391883588738571515708499690280575547816932391063389341924483090321269075661605803786967948738482791678444597158338404861215015223539752258128548138416937758414811404773648781444535437672131165754337046959243815628394055051574611269364131041119826561205801018919784253460549490859737351686743343920197952736691615602479999628678368259758916599794394137329851055523794660440948488291538037891598752222782671058588753288629043298179595301000445985646480168235700159148023721630949360274102526216600940772639102541541423379789468434048929917213752710394922802930767192944086929280661224182313689939813335780116768852646887743423607992134511300636339276619703523707079514781567560712182362997976443905032951048642289208386253308328700928792290460703268267141633106728762773757728890762903923760309294204622502101805952692180494305818006053126833024838047962146252993873622346166876307514615805345526625954982971045249840666610633247424534705752570720184406458315808016976635353845861875575311516160807181876001811347219880287795259026645183938111967389956272229916932439191682473428538616888039241737157165159398978221646099515999309546126547851127456051806421834370151602087955412956082444040109707915787969227510779964260396923889863818730941357022222405424483648827416697515886426797063681671435232434748032803716829652886953025905297847961826255830904762881674335207405177982224886418662163456430877777577221674557603967169968695161213195954516265015679251974938829693177168497379076055361733970441723694261257874604708921926922349791798453077221486674728100477179901020565891794972267574433806557843457231294578210386892576257547609090509685634172730020597356749555540356896361396629833557176132319512992840321983185121063284165655233483036780280032198918457844684380487778704403322242661861047436713817199712482867098369027375783304820181003585111736875355966146082986204528282618528006677563040556345651047774178240629902565191045334573929709193403249003559694530445748751157762107752370689587547380678838615341242333158416842632855626859498654567878403368373509883722647156433101835292600375010668604735631546139260009653844250242937153832794670738716991336292817098341676879908332688645822023254363466338748616463945010788254711262439707591974823513276081349527318425330664446583995416590172183206467772306637304744767649697895938495896995352526857423539799896460157314913892096894304882009214378283680114297063775811349466732263453811953538561158854532397578089515450618085108130563128631186527488856816692563822950477472813768328438453704681901406221660298792698267666710999065749210431901830184872271808960254202301091267870792846013334820944281031943322478931167830711555798487985750586165147369297119422131431377389556918416898988786770943682306659967339074938516529822497007320340039473001116619030500983488702421886550326601501403338978805844643796910990298742814938594468848731717072688356188444950003640460000728529464390234761175250800819933683711302920453208940610510957060005862964941447657152065989750014347306762463202119569104290889379869775580776528648657316853429184717495363886850078442374349604118678331030728749596662463522064508727922558806781448890178009685977342813486978232191752899821896377426140948581655785736787938635717477218588339621767173537839050681776695310181639790551132354568212567782492909263239882377222769197604995947060698937406786111387149499277700551072422365371429325205346790510006607862865468742941014914394250475915452065926419375817499773994561690071714766873011562050793859980808018812788832675378743017875631029268325290320753792684575305956751276968344199759309991612323262763465159508622304804490418169897248917946072361625724306145683653540809348141089304093825623033319200013252739868893056697309803187624570577200865439047283530703088610403364012621408392697382859404397511491502105044292040553033828179287705334028345400085783043399131959999403769832484539933882155823008575256620068303497912168663892054207719779178996341174243157862535132850581001069808568541327150575130821726348447036894144090999793049331858243362584739596133378754139772499094772996779433172681493738804670633152814475565641125731298004907462387199478998300840310560886000757066031089710379557697828683251270305098444228083504531062179149198906676207119038152629922274837988764159886150190857927041675778584911855932848497462363151021058497028454875309776896971199359450351863843373085241831524671268066552742573993498356562923831364437314886181286845012237791509060909989518373141812885388174690533348316640241861156981512125662334875249602598064314452441733682991201489087578252142002435405765517822665411906150881461181393259985932904164301719489775198090531379417898831228671731454911754044519982868563113896756067050654401719697274919471435299453182339827789018344768771760568531112656915293725562281265617458204470657049914429943420705783496921959785814839982820203821462043055905832474089070223610645232794760660137555872212664846691572039033085923708664733474274475388538295904439636419156902705453206868170711402479331345632429911330286170537025974229374106820048390373575163317225486286796257348445086711137831174282110202442913854090994327533774574504260748965713758120329046142645614331215815962908193563149960103032109931362925811023228424671374997442831556924774312814777351729747620766965876148659189813362783693700840965843344545122079158198638649142394834260052250964300294810754005954075039574716989330513050966096682605053733530602653478871584665717936940798529994999831796673040901829728462313597082777506717636833488304988482202109019554772065310645963232664751070417453657099586695102541586248212357098454304010980564697365452280888626159791987585299954384357972107827325688531970065390909233008766296260282822531285165726946192892872705424510656060272225050022577693447660400286493786335196022877065744343731399901846559538160960963468402284445846504509286199300008338758517613265989131398331869442815529086032871811502922824819842470274299139630964517109871678350497179610999262390684432764487516762994353997714822126976496864442392121312531414034087319972235378745700192997667067146212702500310463981767969146277531531431402119397563871902223136914337209786521319257173497717505951379372091159656203808510011665866018686740888889782585412570914873616281175551507284112105651039922133036046353507734629526158115805155381083668015149260268253005440438391463902657205235761968105965013798921438696306767700859880988089409851606356332522252732737758708025395747282552813777676048832712293498120854939061966317926947589701803578881641446277583366800506769466452404326428021622193379963865021840720685564728184176082852572998503020139917652744341291854971098964497974335728560287947319876635659422207730225094090322592175138303660090322952235798113220143377606030528396351764729172138655768889999732982668937758334843646931650071493068415582944540813653559337788566083864913120190221884581879877242091099838926705922203503024917071413613485731097338881709768903580301796595802161964199050522422789152990520532468183019359622221871534961723830779875564052722147376041094611524444879272888216604856980343044314449303089535433125395482374705962091024273336121682054476537998177591787440879567739924138453177369635288313542105460041439708853446490952298145890947664006606728023194392855204320734480547527120862079002554833278607916078680294290696524912634049428957427484748766088243556317122416903150426151914291873754073702164947460625849920488001928668377043849479459609455974970489296860510359939710663375098453349337292004809123496247366525550808110802254188404874196093449579193850280923787031445496454724786164739909903819497909295758035479527151638827882754709509459736178986206780485118322031649822718988005461284414511563706819695332845481965432381674766054121935343073207893871043661004970651493149076848793778872574972137698982464703057037525536264774527371886961587917501787764092774244570982315456608952114117934035699042240810145263585583541247896366039660241980491052117658291818121044349562218866801134709543025550873338402965793120454845901990516407227536691460550965137662108076992196626718709208696074125265125409657561762219773699637774664886993858426172592290130765313576208309283250475339142369766206701266858410377180796541375218268214154903627663812579924716660106810913686845233190543981031963643856133660944219916060584548599301447001432358515592399764546765037726095335821127434134418593943529724289172653607599305271891580611602677409323404982713928535854543019832399915486855242924057232162441904897948549730019562558269241947889768326162739266922495189956556843727911136951682061942102337115744425710392326366666758576048554354181173753811647361318929924292700848427881858669518945569548441458041943440032861255975123311728993350818275995011443299554482746512172145666293067902516799661545579230616161711304312874717729596205989322026429659893190548551781923791853321880791082952180054375019186965677941324059600910938222941787378095051476710425888774423345282799999038260792568683681120465951733228613382921711483753154670744835705352978794158247870757781475290517933057051036649823917766183451565399889765048752443134682697221346318178940388350650108206824294055146457898670988864378473894959239824439236050452399726821067133626530039843184844868214161580933023795608140073146830985910690149037967436776869552012131229566558165198385380724376655086011055566781331907461733579443453994712737988107621447473340476912370353848418236629626579865977145732174989190834232742003749495348568641194465455972740449873144318016569607836628490373242669639517721097073284992446989119887366460447495079221024906575651109469067931731142964075859074420353042903478421539999622809583103584214084035346430879401993743488242557692499056028618865714126543974181861326683813795449621333781060671323217248982036148720372785508916067835226077454042943213936384738046440838789511506752101748975411783580037440680414020419489383862055959779239778376797468313668688601684819502140052404667711075914951390095647921432075450439478096780215849100218357229594930079909593632016494626286053919789370914172346368172475758094634370582361167034754722756590421862436364844045253291189083621925936398878132429150282935992125008581429922897377926810227685722372734567897027696776339380444691667210522934668625433973562191651371612191784822333320573390406165718284972331580951767948997605668414892365385424639228731825995092960054029132497843207861537148490058289439455600872713283849005015675433649021453565093363672283244421500628235365589455430784608901152539477664453642826224650847454424396901631159333309995113434001855215163660167781070274285498941497487795963578694917869521270643788565839202840318329567498878831666105988216770421802551535050424303499778501224934373502138903874399127687123945273949023917394362964773413751859178210807451692698156190458584751219813140042391042003150785281860033065774516652041056315120963050629753062129286479683224078432314672221532072397360684654157926139366188818978223982348540347470390354792094673235943420215287597121218126342134573819948445407043064441904113455083590879391218144987121123206889427476464441111687670072281880815834216870787054987799640753740707449375341147155224503027723017502775165939008650111264343899783968945287618489862565328628067128977201810753684407545230314474857927105170499845349385447600921251125080858282036222983599321961955710222999027334026347792120864204697767563804728934541758401837495427545658152482419896117420433700463033661727447771063931863460580464784730749437851436411401244389274008913304509379905261943183938201568387044779459451384516855807062973724739892847632948306823054655984098949064143747656065494488632060428661023481626074888417452558418049930382326355906562211937322270513856986339133965397713122178656004971773399624377481941286380201502349457823901487976290412548301014467811103922648641613189491838835969375225064853607229597239590161498031548534655905300725380227800252647157551741027937054907287664533966772872140723430758844821361193652989582401582508167573802221006966254831061075776965213984025843718094520699150566182556309479135457495107206742651255251146997540570480502507735057074586371545317447906641503290230915206721095206387675939716264679560652289632956419741655727362714407769844478005035634072885111778885256945841303136069560234093834657413938405461880773006616925446609471522421185858574542408071594698213900769500041860739872523827447819955601792059527182600152272491625907405459316248832710002006234520966015418667951324862355048250260211993093853236049840125367449423804176921599838433328627394512795196975716921731824018655788219885635828183987287822244221348306780741722631908081716928229804414839452981172014531786646837902502524702885181871171464147147637670355047956509773030691765505742760945841402837078896097638313340922632993653403977072157193834883568899743866816532846803453513990266703985137286385610323859624267302137714197593703598381378954210984105893926230309941901201331198588049068659068215532431941416681693662182666321451277368583840890511170809727451787763120084297824466270014929308793627833546910744865615339114158396998304702887977067780565137635536195427269524000704268711085768643381212439502151523066499082014978466235353560992912333254940871885344078257097924883784249468872852179740015056042158949336369757449118584033743985456527201108085737430373036765638790796324773434718493721683039704231259659298577572937501506148917418083845419505746726371091404500625059739454648162987699980955175736236772795480719556283856653174981866309870131283816750263487959558444104631417209329779149132299331298880376129592368221393278387665825338223681816570416389304427004643067645122888485204562664475909982764832941282938380876910055373537711449356184813053537636040912551391949059275148666290754701547243131351112019688107681881167151623657589507619248887359511793453140761402846917482720928161154150822380113230404431681544129293788318590076597770059557451484703166583781616812090572114022800137582212040595542280231768033698333096864580902660518989249177897728125222796634223052348318784464248477290834646679962062571537321817748096067629274206829136349603218032122825865791126906085703786379795482593592729472820245132407665545750432721129108111782084407505147187692519525149534146775962457841421144331973459580117055833207016106509558839200096190158445845949150859267610462203279304917302926112044698752890556322779450007414711060408179341495821166111515953830534790340417812525661523548349318411878082897469400626667538086171428861028379617862901583368533015879868441416449249227939702782924633674645244281074685922906378881182006607678927766354177128099034528446345434168672537768371471164409247604013465274530626212331501876919860790392132817286050257944077673913919189407466984942161965007813257797279717947895871196032092134905861118167788865437410082010436685136129090247871096779538231382301081939917259749279399668580489315310995019885470029228728656868277872427691066508390584609303007638951803267953246222898396601307456444144616126984339507335982020013126605742814615506362113410671364468282752018010943457556135607100177563577436188921353659148914858870802890842760708897247544871114197408081404393018370239126855566758333194489453329222987893602251502724704383275897918987764439437921919367300989072874907835733141770800395481996013195984981322907256187871668676161052701709117694150595027866253000710857215691187811440699871107774071066510760661994436766890664688212523343856567243764101666490432047201493927242669831353421225601125951430824370330703499920466524396691029795030987796046749605714445116365425580108926563285384899069576270609960746826691747406534335949629141112014382936469943656004598828347071461504722837263488570403040572716222149692293899755195087697696981405811212904952604108757029020459840890533421671436198936550875513417761823787438365302854547673489502418226248588603524369896863536563136241209753852599311694717700653316484313301199457265044917707847359291567110478604215274023365706835580396142888757817290261918152426868763915683082782451759613332046067774514467932937477314829431498894241940479935470986823952257554797896189827542359540961956968132449654820303582626207532914073444880574515079033159607453778108080385571703682167562241724605429184097721763198610634846189094188613962562459384371890421177403019196269668172778432620037120995860121811152342527187282501966459764914261126198983572931831810373168989024877192366680711074422737991754778144130126357830692922893919380402098515622472061468785612507430455212422291154234981474747050681074430225923919377565727170482973970948267268360816013855023743058155960480089098621068403074586423477340279599073983346262171052929684920783042040276738929050166040296921669883284898179476160618921995553547252068491841909484024515917058114803314050736129027658508721245456247927689203992974325040827119779012442927290335149546454399513021678068263891870714270236539454023679245548533656468508141517730249483134795147514196230822367823690134688803879600806759640702334818239365995082984309904111212492739171536796504862757784453716240225199096210862499676116386727868407091529452225277591650085567521350407812754852234643986953283137864869287632387101250171319317919362367817570302580345685606670270628979402720523710933644247629914253297654902192585592673467357815546505973009377958261161659608814354367791102593399074413946755013793614871840211170462802197849854549220779910966455998301373156151771547498328108553012666100132914961812979888072874962785682059305158950094353347503653595193447266259124955432734210308719618559836895207280199594286111124331815620670380830203309156286708327965130624318067138259439041787333281559503084066539176490789129883658135193494738570853510044258415473903367724471962522669031063692609324372467659554383466574551364718823639224519981300073436797515079216893394534171656929386502442401047379888401394307455314431918458739606345495007260706894043834613199844338332181115542802275823409731029368306988493702581880078471468919458171441168972174255172971069658862787148663374718021529418267869858678503665039783844544851797350038708210236572793491004896672229157283871862369915939323895062647511135268951725449958399775641639324848179326660437796098199281780733393402247964969722467670753441087007153602686418422158411188058233286262067473892967650032788569672286146072599801314271145282380427036407127634148577326653763359478726149809722158599830846659478430603201032125962628382231728067245924710029064455361707822504485839934837543866388722648731178725195771087195308172530935215669877673813787579552900363771293357598247561456581146390533733914734736595064026316524057277904614097688039618036349881266866479959507742423893356937901910762966328992400807157631695148850937061217311716070090467556372275650303642376706547692521392007919474103668331560178918104416920580461917699707361170541164700836694219209740974002681379326612223799143577410507402458584420133850096611863668997197338879345383416423963448541200985032270709203906923497142957130884428226158714064411402660198487118165082361356275764958663094429725532495666063594495600157027703724652507203819406264980216645114313182553256193234028399241800747007764816688957968095982385602596962016657234262759549965174211628059551475915702367134079226328019303855379593548637695320855418819377151225998186340125900931734354925150124309853367499638164587869394162074829232626781446516989595896185981615450348924841701733599642973700610782941945753179134002076151402044944504824132004124987990081557487561527998796676900837861669268200749405333759025354891355678081577362146218583440861472610872013520062702182595358343018838257099692666442773678529598448642993223027457505277098355763522113327032016049714531413569928032404571247768592257052348567733921876928737439582916504194872197836044634942087251095957282800020804411499853563749185302752292100241041243165241698832326352256401951532115429446355601123873885151389402100839827888875380782964799140958820553554297969919778140846700107915350569308170602056022973254875864364689735679178366056523132061269826486498248515714149792476972609501456415539921162779667166049567063242575308132776593120717939867549304202906008297204840756007955334019282014295891677193241434520238185259553687627460623548649078895753205606016356181729526142669132509479686003815205660229026956061048166997159201340106541216047306555028341204690829369106699481511505908711832973974563615658504688414505409292527455046427680390151290362339494481088613401488211575623822027387981238583154928803545292522708711500425813154793094048371610109665235177409135277014828501469906489595397769906859053552387904403387789327688520239698957722762325830337806075639627248853284307053939725875799665698875688088665868392842754053610957308680954001940642318819507961101213877944322347709674834673889755412586119232184624139626174581133554180999854417758533576870153331594555703023176296244918206136888479203468424508064821384218574099357077988384316788562665387717022595029303722950639415568917593690314345577696267483159029989538284069310644572613398571994022619131842984730339316483716608365464271969509958199916532593033080898807333433872428867965261284299449606767641499095534558641727506535001467883080386004988373994033161180808089581648420240625353546409542319813549708837020836548179653519452643125308825047175474701470303537439164190931375225185707667763625023460955231770482909667746420563291509719944992265079568819974421259841531546522083778373557073349526982416047681026249066032220372515609634964918286196953801345796677308718874297804477417741639803812624622138908671986789585560450012928848030123311304337610121522600100185372785365681376330306404501396082498449815507827732007518783425360100950828935436695909175893621318778884003191107747482577472002916341876166622791181490244332701457968823692197338469839066135787611333242014803159395877909676896960206931338061241931302868819812839083861210659921799272359893078189235527849843190178551257023293222000257953524557894056306739701050967024133057272953222413395456228203206415290957165539599208722366398566152842005049631556119405524722472332876807198256984164447466996997513941863715327820921873273551083163035689671615716722922488957235394923521217712103895393728772935977586395465401885311174850548630190158513355066400203956494881207706046505606589936919909960380677879560632679196516929246178478952011970416271905041465010930901765674107164918317604213040198549946554878206040439122501958566225203557884645076227334198635814805727094084667692978273006545643483836791646340725205572214776676658722892824954089356676260740853919283248795480044511259930125863702483935851408468819414072056903428748869831770108194863670268482580853702027945735963796582725733236145186481969370630127317187045169201224762671718466377428119360606122604270242651610259958564243655772813776196362539266849339508012043189026326431934573519895789731944471709079343209250436608433917699400971503388853142176155696881306136774252570868066009543971390888522607537747530438778222648222604618163204985998934919042250616192416167045981881068410479944237675963307898343055293568842877034970854359673859334489742515395431778057741978157060222617688271967013371210417860272853892162396405398783172573482915152580432578675741078872162573688499912754646996520936609655032951776507098909165287508693026452711517629878576632114174338732078358782545093098330073850194501261408377520509684788438335177963992569437368091552522023589515738614837395797803608964594880468105011912894585677115008627575917853304814330079966721174477546283111108878186230161187034681228133511326616554870522014491421616873966377144110542766393968436057322592231903127019560995124483617694435275130379162227529921968521479815607529175539999166949778385897797521420111145858382169574820744447964102978735215406099159491359201101064196851666514621493018585119093487828025907139492447827382026445331070632565773857810142943871860757127785784244226264629078262767839338808873954977530708075515868262925443513462577484641147931559211998234934457687023966089953823042405631028052169098737119081959046236590076699729669556605261719597519310941698361417153523768058074819252505055046649647212317936960474713519688511561451516510440487836817184147576214766732225560819758031151322278019843499006551423077342493300040203481494890935998636286963411991663553229782735027048669014081830338078112061168965129121135088978839870935578887379428269646761469783946680474881302183700678779917037701884799394810166320856010293721005111451905232454044372052165569216299893911884992222408277060415393130512229874983434725203791023799348030317230192425377961744842271442346045399298172649618124059425189599733724659604910004301889834147431107194595801693727433302655166127252854393004078850293140833822691036880420739451935241995702034445145169099488076550263602575629423452488990509556782917932212111443330833467115888931132346230124860092058109153300968364135709276985184717935264408474893687012882440437223510345085890484703530545984760638574623750386803969524447847174143739603635880339140831295874579503930769793220715119682540022184392526002881039780395132907007612620410724010669499275330566926813898693998373638220842942727779402310128884943412439953611991162406800631113137406458136434346753337555235479825486886622305636181864360809148797559405886664132359151496782066590950113750548869025090927172238278045536175433453512472685330173945040990770065356263365552205178299688227289516116548858922306133777305514083252500696049660854800909191328041166022981471227353567498216134441232693586114138752363416850949676890013773769693872861672384861994293927447988131911900964626423270842214126239485609199793045760049618342249589509719700137238532775762887378194045190292139123968286064798707901750887032634744675733326793689311390658717144480547109390612957600489889780455262067320886532073869382505291230863365347421415195477779196951256745105296005613379438512828312303880034389422664275881598183282435007190334663136601365248865276407583884060257288354155044352010238602457885358097458514975103988035955401814852196436809863716479165429729634372856014496882429080677236900034376049190480184694087383709913076284377563126917303519179976982329920519354301719128580060507085535719780534990509371038591741208311646615469918305437730748171368156209095525733913149925989192248124104487153982519555450397058445980058686220612663437157109531318253617373377804693766485246070290497490807266850440512220000411538694950733271131153028169899236655752038593800069538137565816238375345665993575557782843648383277699989618996144665236975894680706113540543010255460764271760545485798928283997537304458229048307115517136228934571787120296706637042248049085607186908973596127919650115084698265914154184193219948446782157405222631189174085455857722313234052375434521901970004865404240827561176036070303079146012048009677701450521355845958624840355709408459225471786605515933134512367945694302529009736850300887911677210758935896017225925522236803501096092502839446922833107505547729374865067886405884733119431159718403471468292325804101493434535076547173402676826769404799820422901425293699074741394646398042844750204032623230684666413346705045570733868314222754237988966894214990715222261292389007964441595181520745066470498383832458007260845302318922886109558537879114847456942988393070055721715264064082022193329671168384185387456951038164548467978724160089924682112124605520338088501204394789529682554548700999158334729654468557985837034917069444416736815012297069699595016124206327693927814377324723001706285014630110165709052972900457018901681888524217963527400439745484695477332957130522064787239820894063735696471140703156684436763850912710420717059867816712373505685682880025944010076291692501118624146201085562620575632350631560745740429741809728883467710135709423862448234663752338061108616719349494577358004794762938657471769785755830805243329808123426386316082673438154347443804399003071729745211678139810649672187649412436688441471902354122681557903533858077955084602982017192468970108460489874495932251083490841604507130384393434625502165259676936477622520629410107652595246136726667306474766863271347926222085223782544462651210276707025420208488934141590223477887554146781318096160183372848783119670129566430747788536076744660230851130434971477101599073988982018094727098399373054302924930427899497286601226188889490015510061221776846109024165150697785822019689286622789186699752997566069813824160441218968263655958797244438749618716846777337459740780924946182781063868610327969197150070333951168034670057181919175633404262994196275413111277016701890170827173071175978868755653068550483244963140517751968649109121419437020575371234752868132799670717628887094628390221422236410918783910781684984386031810070106743929738902606040569197574433244308393464797901899015808861717216145604086184015845637371120893257360943877953700684805713079509873588767439605566631101078632850906458507789462037773677785349988089620699682907254319471625366188324681170031814481740261717685949846792215835073532621432113666478565033039005945838656469200765337589926893634985007624287298406684840900464958385405044437465386633814495011465839190378379369535317707431962340259029129486913841879634116241708273454634308325870060727697672787290029700982439774961598910548595255415136606113327267706788799918808455754521893053052437911626475204311429801763096734767136965398654295059989951086934061322184187051096721640530574755395352815778399506315475135212544425624676441857687888588106170297221118700386791114424530186027501002523665640193767096494980176048494351982615790665272815480803271132793181189395758464235166980356951534393230742571115394290909968407617562519747372678957357758918336365696915411753571099526926020234962710966905308595976331924638297065474198876262354941977467624554842015521599269019486779995896076228774780447337286124953582644891742661777276857978030977399163325597199371153111384446275740635055211201077891531476523683808961458889240201515893723255691901973474418199234003163798559496320492742798496755141730135307524632935363605849379855139301198566920713811357348420230619678019529814593412181142833978959233297471481678077245832637939972970823955630956923163856649900899810323835314611426799423227974749471862626329109920228833834411662589833980832195739295348170055542857228526241140201374987678934779326458692539062068695055982448008207474676115044636900420976321974481731073027115346778930324517325322983529770446340008091686276000918643562167762374018472932161334856873965431324187470940439622005155395199788948029188333385696245750877627026441981749882696971551566549459314957868631102828474980692283598339681155281751257218120205941300695998310072772303587620712874207658354126167714461599952929386713670882372537465944525111562785045476160464945233111161495400610581768093220452716782909173056964355344361214095388651593704305800797743859085504077509840671173726893725138735617678565071896516711341858032830765279616340305203678391411857642378280688516123424757302698559515108171177462545669243399780772407613928372120969948981655976007673558706348528339188135797628850418171844119817212305097990115087697107251021120357234531695875402173040658781907274641804809370616307730721347298751815075696817245258760047936555331043633106558902845840095212371266224151900977410555588843621570324373985881222770985413813511092948094287260333222063223968606649643605333336108904175414826443303260316210146014901054779755625215000854012620312684795626827359591489055527877715179481627573493260363789473677550830149181366560738252547972933622854031949916491553066094162690132674203750787924440162361450951250598134351650935093591067658760123392586558859292328488641223303959633698050455073843668540724779041126200400581638561596187947782281645696967993479182550763586400909645365611276112422297424646013015511173279795201279374489337085523388046311472706504398069504951596635142397128585621411601199302759261667017842729402773700519359890995241654555134754695966438081306370850661135328703587220814959669408827320367135589067272611860403580226036565635022330386631223008415008291162294519361025389104174134275859261712732685401720937075271775418539632900325235098998065626132042349882002433292595897530123249895416965124105559673545519896978608143623194705508176310897083752093453836518905932318968462655208808358189052629548206725197839168305916139379635118869059928679435870077646132890979854697338938759551102550091844292222898928806196061820937658961834285766428168309234917117661979995196445587641705065438871280131501880624346943602677691278447672769945823313012193036781931207697716612732170569252350015092254529397041604440653860360490549774422084364972592773098429048423197626179061225085148176282429988357306275292882719997611339794243288660041624629084209186858296970126629715411139482275404877403576094721114430128513538168609323690733065386954440946045785749341194110761166487596542359338620293044394149358564169394271990397671432448834232693710854399042183051980785170697521466751781010358016360403874122306625168351040352203941477728988638702387819223841934599587276070147628102859030548672928893252699226326313858747111547288746950406131846451458982198435743019596638868214542072297379411386689316279854132834109685968151860177493487592555414052285886581281832478923158575931836545342699352584394106309948722427842455176053296654105313844278654862243486079809589889980329500792531950589728972404930464387846148028720944087949439808426897325776697762794145708166485788017952767562187785709125121017159334678833212268141474044816567641677209234044619279257470841708194690656214058599104431413088930350594469176479682209095610016249635062505816530464071163983904184946196484771052471248295051028936001027140369824306722346935831549357340793221138052818232962743724300651506242844915198161252152426555123860144699135008541877691283630019625697182474321086524957997896891046544953086258391666565524816305817680527684380743777872448205524561325694693531259871952277180184457867725809596207747744552687782319885896893886387819900929653583290584180522444363302110336095382236417549100001456755378284353846075686884696826253268719071817505401744914000721673292065278809467197958630794490034231554411597442030117208511604206791642792684724526906059747961283907812774415402566520306093614850224821538347658782462929374953358091702476750553892588623290500183559141988338601725841700213179074410217701080717221269061157294703684068621010093597465872331375866987121991570783733997032751993684264109346974902984944745244118989048598710607642467054038420193960048108496587766895930664267597248182686214648565699485723114779231111507348423835086933448496076378869504462452703290908456550174135206524773798517434262440349125863959136027026403962986684094566939764636395748997005755533486923064243333030973684930416242781571999674714514028058681923435150663859345106227445861371140486747737249856795917841431195429987120309007183939775246937231560198318899148153760563258883893497099438027085693844996679922897890247543739862683585425544628790707921843639136641798624626949433321094305996252999606183695228145250283265341972861111445607886438686330469646780434209480667228536264937546564962849171908238765835370482014919592390104122547426992113719042419135928683420587197950033027652795246562212828098549264714872038781453884024005284632863968363425247595857033797202304406338580859297330948063420611969520026091732099440634045927988611462767392627257391693773646013609232108502444837349311133675097064570157382622959938338262078745697465742735067842593017987654527732875494572487588158429309791966054723690785871483468982723611533880987420558232870875808797016410172703824644321448066193474654640198063044373387890823302462743796055253014839558365000854608895777990055640894344584352480790417345375613224284362457748797506045982934621323787403896586710067582728148731896625472124587764804548854046780953545320991785828551254606062945374179186141896748904607491693269366371398159810605952308447888547393564150644733921264691040168593932785926299850510927729154106871602611614636150964680555623522344266925589169976501903264185017551767459701591374871795504566110504661045937239129280143556884678671644387440392845066562981346898377854951278582921100148239528835633996321414581847243275913997436374952512485936490317193064055581766617719403718413349891143817117768772825851726553460289776316397301057024074357260312635961545653662172716548672547904439676405308929504489818378197614063536872354302981771917768750407625583019084433108340505690545750675059974471266090502230973749596918551018245249710120153081838199353843845994288585105060782483762756110617030738484609809971910167905249332116989553572784375363872762787415908035516351468397457575157893923181041762665671321083165637163639466163377174352784944576378336268410999839493960002000008670619574772198046732659630803131374881142635241123363826975275929783476521221832364323669478084805761587956946881295375741849276014871390944335673968213942810047622521555211838914380809757881071359151955411783092370084958317223901440949007348185129500050142948010065987607558302244463857384430858862092113956232255270058967525566681805497312250427171075581944997799788554411141396051859892174960275996859018202001496953650938199539505645610238509117040137710324203472277367894133541451890926975408070824365168657088300952827043329276695016354546261016900149541399361104909210547663315995888541934234260932357678849254851473099201436380954004939037406112321382413356011057663671165928936812002814633673256009739430528554326725483976389806418976811954857732527775036482029564946734617114131097803122077904546943797420332407160157910639088123796206094441902389669385021578062279426556336124154214586469951108683763357739640487728858891909489982186414382461354215690084400619554269516756316189636457373742538460568772311582837220732785867160919886950746050410869167399641448313417590388831204814451934003566099749426487180863035538584904384496255584492213490638645158602738849735471518987719964630740287741515123347850224972053951146721855365433287659278033207840886815407003130483883352200588871646172851080269505529272294287474918851603174228782046573636941286367003161958729273574402985248812762341142308037654203488418666962882017898861438321645771110073405995643529751682503335468653710096115720252879207096685766436557367775203244067976162772890547935848386165781786757510049244585655115170778450829752204240313595569679388929727979080151392059043545737609398731266731469192273618253997119498884087401689660402943455324225613834494843158694136930722331008339439148801025460088736558854139015131463262493797344309430676865762987038831985524671001604649349335453481094674985528430295668403363281497210500285366849687055807739344721355933281812354705717065591821897072929503861191270129648968439078776224544413929242533600824892307210104461122306863485291817747626292964896491673102458235103548147403542002041193221853067969645398238016901496613625331995272673523297694582890060050199352921083798836529654065747783071747603507245193035925764649706458311322549172908452147366934806964229902456947222360586081235450445392442052126351981241503755458311433353690550030049518413686987357158405845718825988572327016764123154808538362266484382059775139613451598242541298395117766919530837990771804240324864646486379174173331166520527822739679011194765436887508851953299063788163486093399847420154533701549145453741382950917564605984679929599000150684531431740192359845987815793336574704553617067982430897300458961098016182748905435656441660789523644434320806402330341647419637305123840612710422024298027257692476525862137005848096881156299501121880683164760473628747554645481568570446737251493692767442318088199896281828569141807178811951867369099581392959233655888310247861923998767442490815320842523362400015968876101082984369311834188163668552171998544753232954676103652320063149295843813300091658704225392531606627809757991054517183581255919354714715137883933962222195815795682857863737586129915105322095785564284603778930789169205019880380316802716345727630709569388075448103704309560965611425334844347798762929268728026309879539595426245785646545753571923732044157444669507515884671322421672619886597550752313018625281037339164960984722058956604332374448930684985608490419132543258082295030752753581027757945590035398604241234294761236309384757000178761805988641124647359694423724184090393711075559548577801687733845624880442130919711300523815530381415803614620609561607473065042460791203789111384417264229068674802116648899297382200262539898570259575276890334366193393738233410862464738633360613756650462533934093532767033032445571623754096251557902782725989584950902600462053330099229060873772980124516444095175599638163235251845467477308954785865102855326569426980311968464660920412900428221476606538048230027402643499376031235450869592539165273725469439255145466438226627972657802627262840998233172516647932494894729554727976926742394267891414820096903049609568014089746247499140107494741908739794092959166317743705116224489441694491903712575916922445083728312619665606727503376813215700677279352094593567200868306851386171998860546226662133528046842881036400455973384735116349140837233034032567151111216126800284998138630752013912396928065734851804499558531700691025815301724952910794610378369635104690251543417112804790685130969824480682368980107665434208404405186987393126493383991307669077705597876164460774724449912276831511531194651036052478980128025336689150327456750417479041650230923924023784526026656365373246219096862326190648226820996854447670799686895260115449115021689782412084039032283269438368600088440630463445595833950340241560388552145567459117116300147610819474967745837996081419068365828562790368727541614971687354330271834889916377802721386041311824638968008043999500628234022399451345644149856388986217099344480705455492240002977034663402824307409179576235472582007543515531371633539075420691214426526444807163558270684605595785576647593507630438024619452700162386467593665343038539086388453864398625566339573137469635098597928109520370386141436146741836036371535101301468405994032612250685570592039796418019800471866496877001213440436611419300385012783756999746558140093477406504357281166838149630123300920404520888554379674394950271122553553321130421757664486910301914306333553627406373078971927813091727892357514783826917893059441597547945956874226011001971598180720184611866135323751698614212517212200703912876114454442806116537476041866303469641319461515694236483243908741322274230642903289157598270541382093057079934959565655439393014410073632073740860254195735310506041653905474495463346214594664447675777547629193044050554049041939807383910215715244941566058493549245972066286384570660637483704232948248098635027879560618987447789503356420652272989664467295815747009394474150037805944853285513165219885355786089793321771592458181467401611393509409054674119905962082444940921202505734242842968932387435106581689493193680480578473559345091037310363876149033250816339544234476818977983472637543243396754368199724470720212526517023097293390211098984531984722591886717616031698374882888579628334116379470374142974454013742615380040536012261513156599430187181060003630674859164842234180824241794274262363114458999028773853888591858013758056795680965363356767734021709339454500611713431768595467322313336343174189873294804170380009480394585707280268728002692898974193118986059094262692006581631346954616252308085948601493289853571734444340547555336315507853870796281844074381428364940986904333854720800445321798756945245684210746005692453642494106798933191418214287584724339753449866095024581361205925624563322853884101232937752591405496204264804034753233228927426078178781144642735114823202863359436309438559233853183157603058416255269800094927741127849521836892275439483041762381538410781216438128240769042745706616728580843463970333272806694290461352747413492826269145250096410736960683528678993774242887375063711147730888665775586929237390554883954925044306272755154845459231853323626045796579679487957924504367955352796948198161099067333930827564611500686816976641848650765166375058940492714244874391844759754222428509178706517717362232355388534140299089833833398165688001191386937590337562438776593181076071592092280080949596962454537671387953290508621643872213131023841229463417082761368385956073981825961533312566468217740440131919218826674217319698298983881602280092692281135208848214877847761237354439583138062021606980161172738710995272872093282692354621899074236362176345059379016522358296138062011621689308234647794952585168394294947331527871899105404039614812743817554470606666879146559841447769120342179613986708157135545700984923603322177715014608865472950377743091197751743743836636538186655903074902045242262650340315235993086094536389669023792241127172234995373237065815826178958350713000646578413190669382057092554456880524787605212223328876777578909814129862852367469310027011480664001550805642267324974945814227892567058613818534540518930471473609992270902885709875733620040155700149756754181254034838085769555452289197492929323038021125638762638760511836756314529111752445595508451191802524974777516744097277940695519179245089505678394909801991238660995254945620506748932520411203093805676772158127841829687285028886493866833730487342685909747134288073305030272960196093767972962470896941949132611986150264122977712482895354794669282485504809162690350029474670531202382888724529481316028623892714995545380086915501688318044303196132150775461404400978109356461429186357373559893308185215951761130510203725054938139598977678861796292525046401581343216586320481204670834854963628164810240702381968710836604742899969462482250586088489947555209880603280183548695282653643660015314099429253053738041097012557159643544818389814124158139425701728762330027359389680329376670825070119212921359149576111936090657529505559056487457878652829990225506592281597171785642921510445908695076463006897679679881866855915138667139484179186485342787614218572854816942157536790555001532090151415406304504054471361531377429105181889662108186104316918479763244403167947199692905084610223788453454241208911347511724482354487737808807902808551631384239741554480508823058614987592003563622904471015930493645219067968847300308943883033549495438357430511908389545109625551318634079512512397365784647498012289844840415329413183612862669385722352084074834083011572062612711196995284391637906044861128156848367117482404544248529355673836328897206716256893352728572379082291050880929567603269912431025493985186864193633322115705180884887569664029754267215076628795479533017332451619297351777073807929988586275318487874396441340197165039539696807991577821504375833692555182021441929421557132810622404548540131002519998958136574610496021816529498026758294800215550846811583693442824956431137193073412201190213692359880971020713024613803323479827806036060553263742169633832334731116054225164586905607843534416607553653644556909916460510984550758338563259730541623643308912049779912734944972961975401272908094438422155028181556924858444379761627057727410032342574110239119307367241968705157356168542467631549566711692790554311824265712561583992332861692335585309897001414156683163336257158511497736135574040079279345394424595280646102026206079956560048274207601676784079988426335968015770002062874169231784403384635345468722807920131092784670934059234865775390543409712527301211153623490705084251518907775264708502279063129462796531541181264742486662034253896370293023499211471828218670979096836957216993413243137543120370501739337701798222580647241728434556463758220032450414257341503778662972139472438394013658596025590238034546548016511128365420620870357118275331573527857165531734853073084497904212222471278638183450384084307564628618269960170236160365586290099140796995743913967926156673360804651959017368223496348321340848323284698614603222804985304733087463578734659723929684072034007179978572638889511004619408420617758434699370781960028876897317380143627443471722442459542190313410707021141477098220260776964897946576367691589907528070639803492188741567643413485810167092472877126984936209189367094735474153005722629609443319825438738822220305857007290622750714452292663357999775971735612172497472266204321361581360897828276123912151098393985349358346648849653857339088517111918014248709199178971062640925983811509128131033815301223887709031650538339017661455797760545730697063811680915384095881049816882294686290170036289215766651286110453341674969266024229169338168003901087271380864151323950185429208973109345569803721506410748101391279669505127915558042211060562493688475037891599455050150977300919034955296351860076542557384351212579275986281709825962949516402136093890205536680838727407762017614981188682042443001602809183930579875262499089678938082033157409399864618620424857186571531877324862639921361443477199961245229735855967679899751124183989958273274182502857086314948417290815474179814243354491632932698410372827462993891327861574487235755800862436065417633219450414527981265486896713775258506672067710239346664914750110918354286783783607453691233214418239250207235705222757221640257826486194798315939204344674053460236341702808859244492783279565182804346433278631498866215836921418840525996355867380914665931485796682585282124730343714897635087690155305350275853502499427232929218076925479352011050806993901965298419442567310658270354801720781015448246267031054965779714161653978479040552592462502626146181513634411226705392292562518786341352491494977413226117599050568854990294892220148047695376323266088271366921850291490663005725645821897748722609113632168041290765299615658154043141756751992709618734827754206251343309721233766046894727052338235398696674921805749405144952704398772417267177252060724727847217241446232982546129007415201797054687109387434541810013569566943698337024765485726320185560601218940655464462328794675532383710234433968993845829025758930543352663639146108641439548892327549619768538345640830725709391852135400941296063330015651711178018700828979909758817703704129087171052296932245192277176777815602643731195323974711000200207873484195010159807854773170980061060610329882636580854167764378169493155141471164478150548850230067780037577220563515323563441119760077230965367222218953826909789358185264782091359767600788032747788801399621750540081896389504815939131980088314740914721657436075064454998943737120453713767703435815150746999615134626753000412658466160611746308791141840592832191947733743788944860509735276892716019814841436895422957300637958302304426669800774844517482541699540524535632712917866743748254589914436998534490803413553954046315820493783956676926801748546873350387146398100929076653658201131258482370664308181039397088800528546429877882243682943073465879658205946540753671991471832089022308995678902999514958607098513083481878494894040107403311677402204012518331157039961065063869659328605397800200203790929393582855796628919200760294494294312444603828133176702147391380744098784581352576981699282967681055581320818662481486090386617755317911461728715223903973201904696384617082857296299591406075479626373872790779442545774144138228704918534755958851574481125857564769541584617812663826725506395410382011531557206608408559143240922165119599156851083632411808571539877935213052735022229565695290826304832093834689450951729783771800515334483930404116894581355306513036961780041151324043510644857732078824287228221773095855925808846778912535836437291014394278392146113637110420488251221573860541483346307408915407398623695202418651000471097031870710407031871417930448466524860097887214263161820523053146441490996328565374339482500718025979573673718836827307132341443586648307705582591922340322188930539323337989976996601813009676944765147820373162504873772778127210136123621352707654113405728374946511656202407742594465832356287622462964256517743658106846475080754318672119939086398946963987484513660176568525034405164709458927997550014432478238483116378133334101233701071945825854535186891295183421222264622473385807538437892367740885098257462930054463631589812631338443867380030761120864538855560030627198346409929206902974455467269393240059787506951425968703338921530735302783750235741227170922290360022214625798322098302215984458264252763245217789301017575965434549664346032869481069001104124799001774786668160889852649723796255433607706872243667322425163842988649715288013802358253694068057425332482157665938958130924676636795077328350785459800245279025851249349737376047167192166200105410341218537306242845783848217574400385076299343076746770264977267596915687892291400226786106832646639449262943701769321265509619088037267441939477839511784259499434707389555450888424155248453571362861615577945244983294879849988903282961882934693009091749314184511365966215141811920606283850094551986884663461907251326614419053469189066879265286477021303380992311079826080593848263614384671554302485597597708968416004581738694898617495566741897787210408742086253158429344398624470687812756209832106976720297240008583005725272268033759523791344366213849916418480273126761028645777504366276260530657267322246688289734498819497812801336522189033141579617029341774392441236658836400689218266969784661590466095220567722215968083361280898314257522143899508699959436870885283996249595092082075924158041874912225198897530502329048266973532574669687655534557944573752235857995098676325418503428402867129741528120689132279624475412329047039996792630809791762974978185874646007453426381628769427624239121148338155903166226332859401499492137235609067871217565378278594772006942712372697157507826272183543648068786451632089595130237940122316151695129229104099183114238329608005355256518673136087767743160117367573315968609177282720698733109919626913647754261301768769255790832128992249530317691031032837132406004620518833398546899371666316557532604283587321106117562836042533166857825837305164961193562462233375631178894465703491457694019229730704289456064020657001448765213127215966226357349272866744048406711260060894138291968788669657840784800298232930784459742106445057732735455221344654129747887796854020861393525114838767706908180762506587572481524524754571648317693213049407871580284510627057049836968666818874401791248071960000534701917118197871292673830560610103686711447525378851229731252625977940746655726001608154800541678875159741638057469872075309390457455391676610522787126053051864478944441348529913697196116489476268064748306225211431564083968755017666983281774783969970002508967850663909568418198785485199593968753958290949346759395693453449011966248455192661061725787689097910729474791331850549722639820238199045951185039304501502161845680830721963286951014299499362395952725949286036163753162336429779415847524836580852491197977695598451772209611790338443312204436748140944140528450118430074781149334734028174271971354898889261558238950297413495643338831048666356277075705365109896388313245757700597745529052097770104253708413392149253418243471264947826340432954836796777315431384744022036376963249368071233871532678469520253866644663903483967959863332832412532912926454721918847392471709630699558762502254682381028458063941301305639184573042392632969215681227977450024190725789332385284830789906373612164558982757971912570079145640569317129098074624877118748537038766757238389486431707381103732089679297509904823922561243010168136974197573899706012525303820453372832553116217922784347451011553324623223991850786266129933863273092655717274713725814947210793237207004525263985503079857524787484869499161668476768448140391514366100801794708900308212334705240699584940356362509083999699078786527017141520023916430891674372821660552758249469978223168131657242273880307731430038811835180323122698829722881557578529625180909987129799002430653509501845214088673499909887774244939848651796256949965128768987874616753998325719455371281788159034500887047656869649561236507642079783047143591201018306499135464048921480725417181163254277166229324956225668454469838252531231051098457614794640168053864743277600457436666462507056286996677998891841301454498706948255821582900473258527407214134523768668361524893116323930436510033055578708041301469246784240311137041086779139111637156570562962052317591100968591404535268469231975314827001515356107349129864097526371355052828934794155366562894148995209636161126995959197918342044146766357410816365496517010539269737066547378409444658810322828954453384938514321061544987453073824363735919270360503084290522460793392090096956311523680330863024486880044473928652516162946222770805416571791875202117524512115932427744370835703244473475262340522294329575672876059479952672948914612453805060220009668430834076431774309929623695519210767935705889718614895846705241842581673046541766938074063021396396445880624321186508871312646255930762501269520088804045973394674958930158041208647900134025692105948582093614545596849331689911791421052451459656064460626005855228499453960679833227662511522840087229505205761375828481292445002855819399175875177308332008743342572965558730873827238029167847180559632985372377972205611704144901297677325954648395868786893974931326096593485296157159931477744775509496928504842267057293589701364904308527299996619198862625023093233178670798986725473886443453199108855650760809466517478889049660659252017715552933953365871399519942229843632672685988262751162688507541084877533771496667683101434669781471699763040325023572160766880793218920003353075777893732192464982135085096460994501800466570192046112033962076958767198485378741227374450057401020111147618802590643412277720407694893837828146110889634871093722370097104937392865099348215198857348606308565729216312141336181842288444046958289380643491165247355161806412239568327716559800166265610053683464430926378383006320420385946020902117380801173134202055389075999047096365038503414338450223226017463289679752555021166001568604387267089686862603493169085442513231916334414809314607172639582752481664796183707141998402876430153155478068580082500770761343196934948770134109801476394695318352052002578263102959610764842911223506426823781793124394551853400050679153840455477918805408736155361051357610485036047568980623184305453443091409879428696868776284264016096049246365710778706531690177118318669272011793227074033870236973756658862051385301748451141872932091694007672156920846897535780173220585292503392390947909810903753150210274914197172535353821009400102256260859036981513325843856500388665570057050101610980203626224800184887937312530238125872871951631460055600092361051996512593955476833821807824427652859495121362140998884135349352448668504435039335867106708122782616788500715723061169528447954331724538169566245787819881066255963183897798265808201281867161374854901410092670551570027234265042887107694048106365757437397361987484711559267443096429980935883329083313703667193086932050026134823211764445702544564172642960783501271879014618589243810173908661984229880884298040874806042325062913688151402644338280043390318028557517707478917536908944633798905543408217245664800310857486620389286229064802526766083453723164440541372408360339694949179877619840767161803008264362838798755201912624377955454762955294864452926729224811166639717062789899652371790809017882270137661585228416879012608209927499735349576748745237117565543396955491936842868397922000728907126163309708298333270084984596149785013523121499647023562599167213533508160464533072189014655963146890845696108716605951734679671357686334332216422660507322500518093667180224585526785673736463175253080100572689338108187691857907278238661834668357125661305295577711878893054125738650048700906177073875661314513712630608821529295707033911148168604480956376103780003533420489089530252744384392477458910153691119143260666263693808509962217131522201996921821615669014942611545081733328173216335782426176683859444116983493009945196868208972835159471087762469329841811121008234055861502044459897320769597956019564465676011417045205371254216110206325212169348313952186471126673784158867115856402002580966661265191717738750548554869989814054887382207212639549933912193168228489650218028996072396415344016762270907616815305938639881006025117073438908942845650687849892819588826600493650954601489085492906152317648517455222519764368225675932035514875444113406609751690515412050514055844667751152838519849636564956900312192162294008745480970921163678677399759130853118401447044537050258229466482689758190225023548743637884898370515605232422650362591443941016658249730970046560129822989348901855023886650304385293158263391100389910977420822650233419162681079654245683573434852341856075129488590845276703980348056963860070524418344063992260754266428722352434058297134768984855545082875042588756760473564420158248527924071541665759155991788985247133889743782616961120449686352421182229892534759263218506476742641073222461662068081325721850288057246215774697439794728863156650663039778259122148771698638289968181144478493763834760392968878662022803297182402897844784914540112058516822301281105453629540688786000455805231758686632616069076522053321014275768849593173807536787626664842383566266804617212604655986278494330416951019545712458151708145995607499774666622100875949454485586437542150615054104273104974876927714399956352904694844017918021563445049659575562762818961640582842842827142488148634731406544037635026298649749058525846271628525580458240417494720854701713992585906647905047279632728172399579902957760932805281402803858333325504724996625287331701576741749911864360169206176827023604840882099689084449065623785558647001667743422313428706377374518144909553243271604076900663565905607798128640863560236829051086935118772988730128226174071203974774141091474265701478062545045751974231618790231424838933921624849883976491353038076338166651527131558001547954882473105338913291246085664237192115145389211984571402435138327479560933055759948936936799044471864817862999623416032451295022731741682117434026608742890593782643081304434596154404926560897642092350357244629485938470155442831217214944309236149028450083773795762453060759841254966845284294614977431002449492535802205890402551702797619009577633847652533864870723291686290599005091146195696818913949332720901976115564182707172383902718280022504705128807838020310738454154990150084464917837858024374932132662143832821835743436685738089412759085174649077934943932564841198656941772560980124792652374257353147022407940406738457495081555317883094130339356995317802248608219209054049820100412931068784182218625536551961623549478060582399622094420427985928307155947728583155293654691281748957600584784480123375860004818878802116696686042816361372733482721675725265804408400184278515745017080266740216849361123708948831360591562773338929797854053638921831874073625767471293745804078271630392796754068271018746879879929161358480926615393605996418016625332135513591093067838329000051074603179323420584206370214122714417479053237993498388724007953041175244280821561506856538125815721865950421634983167644401691558714038974812656960946295897951364748875580993337894056776315225626407973103057768645060874147160506622935064371020643571192098751318013972432182124862192485277689160232753423222397096415342959802406265050017833316612155399185841995291596233474104069987525208198401329639059393365961542283212529086292217923264443071756436196084366845542404432277625238334447352294936206667119500005561002458590203844378601959509667950509290046767239022565347554789867926887085932448554215350032887910066760534700151506225733237030130709562173224871969817460480028798640672799311738151986700748632825910114846869030545943908014545012093294333451721557423580119199261062562411894788295051343924251272388340307275095124281012749480578758597360339191467816416007798485838013686760008817042856414530416018649423350597223878203054673867000521725700015812646345610113572000361043571202227495669213866901005117034434749064626518606655969350651393059137806868407454592961671015014611253295434767070188980556470328109436777119286104901684619613482808533604694398733270160059693789828542136613160124176170841698810070427275386777045520356966986062845971253919240438747390277702743170653253098746494798871887035329618130643524552294359477682662848936690857553550692603039359829325421973407977200146735585418471154506220421188535349576079297755821619653751627922761105032114793674905614144063647891245341975728788629810064021357806677495307897867577157838228721549274271574430111632792524549088367257651201004226768529452836846675689722848548520839120471364740901154547792707061419256556703695104710288491774036307079068957752461841134806749129286704843018287519510167390058505013646726073546556571635193075499986117267806268439682411109914940422502709473635440260049831760299098994973235638270672335146699757488260927138442182621030951694781802303875044804627987165561964824500013787575298433532916296246254620090830347307627054778940783448656933373258183002307312766158416361720243163001044647018376973071816015166153692759227189132477256064642709171666683191008742133004304754230122718554781767792946135955109639593719117030797541949706335102696557803577866018810775527881247381207422666037551710265431612536044810212828954484930718326706214291923851293942323776746578254580480449908692731621588827130260509362498243401147649813317488386032445206719583870635820511653042294084039118345742386934295732521900134709162528175392625779252942030578368755733199281520469156289532041266829542200667636076906852117796622248243104162233726728504176453990469535249596042722370403969241493084193098868667879424785096907007639052195337088172033469916517898801173139937520260288523332081841015523917857950093302288641052721652907654028195625183625439007109725938450693306502495026921470530947902292899602543056241846944537897978564392679787879355487346606439515280183909245891435325590613629479761048629651050174647143250840883906747209015814406104510358113460987106539278945260101501777349572115229467975641605707814057300818357807648636136471649865493499121026728605796467523817325606995573270854450561313168848727948283421260813093835957764168446212828956508967359497946650025460187292185146891590355834742891331576853180394091676554698359590122848269386451217134261790838387234925634864522060101165572569486825363937720514709572272075882239154806683827052587447295461362916693854114832778447015470549274138467418432605425385641048771280716905041175983081364864859578026426456909876476722378773077744842862808184788496479691183498788629949743524032320015527000181957708806205055569540119436455616305074581561148434652107384401421083626617708835023829376530006372849532274418314449399560343367616980666219552976501339043834588366532565788152736833346224329891302078836075753073020459537644969872107670960148332937278162280191706754028436112156291349567778695075499891810495347412662191625736439785645137785899597540604685077348067189157178936019026720655679686067218488991462599711090709241439141405517648528516314980176522895538788005570390866958906507604156310825190726660586338448735104120052187548261398592214624590604201237789581242181133014367191990549302036736813576994810152715885532426638433809752372739190768105825602639826616590477943434470059900587075276547816574620742885853514221927962582580206881925535645310289719465881574939635326254876855971462711975737029222177180304386786936473418340726263435230464990889695298806250253879980847793229858207706224675802277107758632740885849392625520309648071928714697664055593175159357179741106368701690132643602508576407311638575063705177507404778516538842323950684842934133449904213839855727948560267731878349890044245708512243051859988679586001150506997605836821515898106028987513465538134522249654584566506443736311146872032577727138829033301061595626044287905089139795219621817244939514303582582409223362351337637132039196491912262253375541719794705739730287890035129248649367784946624632517482605731159537303392480553212138441868564548204104263487978074447562919642226164888589445227130664465401770878540804768122666427563131585483253815905164383986546578085886417770213630253813635366387707257053367753109426653743684054421408548466962901180194648766288199912517844149194877001970791026955063634661686623545533583560433230397673880689423630987064301315896723638472209999580293130711900497135064534117426787927532111370189192670445327249161957849088978712688583566211668288976923769931288207359965571312109275741947257084809779949375460521562895736565486077815081631057087322209940811403569746849173743388165987241658888782780116689443403090187594004060986418788133519464184553081794694838822988860167797471250145798032647433303182964752233236025465914917009165944641678631348142650171642828794772405071473998575789339220624929166682667354190071976917466491913089917864089390215218282772062191120008579701675836912521815096378708784694794960886038324880068541389519211978520691181475462325537674860319332218682390842029749619084426987432938378242175738832583727033640618351610728819772840976635266355372097757685353173518184479128184059271040292517664025787369396092898171592531171629431880848779385562006925774017130155047768321076765334288016054799452526369627398771931634297420915338107421468158349227224077219588154032631631338061694888566616865831112791662407553144386664938683154003681425426187655011494018689222406748513504731907528008655026521928847071063277281663409214605342666965616038683759386271418629947184316778126725123237112407667944898085910451119628363769011035391856677838941590834839911353547829451515100045237459373978018112341828271884085919244458501266808449775118267082189996016528063113747937331197389970138320433746839006868605094778551190395783780110566221934015899500455874579335312680169534852360304525891446815874012072441257884457801759190771506833101369644889210941805643066418011848401307441598978439117803498478557425294466169190320501118837487594567939376011787555019358799169493531693311280330282932713550338921449877601818804143668590064450694182266801480042495473949573763875964910373859426339662898085241632459172404929443398659695441913870763669840023645868152467835814043612826573448411266566772459369288083150116944552163935942164037911021031546388479754092578742688366576193493813994053709336060132679519782902616900595813560306193537776675568439056220372211890943747792588772388287008473643897103274676236926920898827858764249367519698438149792841429096952263200920432175787121132983438447375778992554500103128517369306926486166336347681844378824115178972980148739409614911860086892486044929420728111356803110340558586406048034875481902114320536311940736174897725436154583206488841157383075957058392242590684261014698618295589139841728231997115136856856453283331778327648438980630450943269176512490563193289535055726425199285140247036305301728479234023017870116054048149067720919753659918061409376345636159131776952485880936803715558498936477705336108996216317221865269002716239875226647820025881067825492606080261802074124894297041195174915703890151379538828786811696415981701627022493292267264673290455263264908679634138904381612342060429022163018354379436928001588902181483788846254004834656785191493088933553501491117723461462359235977329143409704878986618681262983188286193668599705711715953391197309929914692050663292272055216081180577664544031563766829132145295794283277340746442026203512274662431661586826110865429541826112222178329981473162295946140567782309726646006684433337744403477959420729504743475120390579246655974595980079886980505257939098293445273099038817098389289191056904445361230495774185013141760813126696157436358585413734254936376190253265256560798648034341904900864944214487944144250090208679548051972353793423158214500043860184166369278770201373611235977473602484052819488188509317428328588850010001555828784482889501904351406545982230903286957514946108743648893918771693747123277575577142191196311487123385606692096386070872925282169168668667460007308515248703513840663538865296495155397974778933632590741497847542440164804721275542926630416320350781691894653146822502344125326527181221950829678293656350015028305734010181093283583051838295021913115379731266561262873778358345154906662118755042690798969361358916081216972335277142321903492919306851663855032561968226385719311400944112762026448104186694911186485086814798098072563861682578128594702604764253344573813326222721949401051901132387410621858376324539583719019413943314148309968622213871342826480159500935324172225406227272631607417664082804494987382169508379050221069375574328651441427373949396544033112800866753077295513822659953368803863727709804131861876503260994182450696737823232887947733405508271069687769924533851471827306277117226091787730492780908169630800819534523539440263896861177511623738377414867369402274443864888633827289216304783716108239959667174946635803865490466363968462209274528008972917393322890216531037694242685372732106895176365704426783916157789013910589983729242920328819406909402674063600979662263249251267774445561138658929561357015829029577841536186135734287569594732771470812457715220867657602322303512838635252258105296163909734224145251014465748644871130053500979448254395038922663871295022796626642668997389648050703758263277803421696077844880270674512284712489245205292247822151762249860504382283214592173556673555945320757412262660345918499092520722927879622656282661768942917304037813683351868817932191392212064022212541695023459514928082599850470423419357027047619864360638447443424204373497715384920909654535148489205868619339114957695346222190278852876617582919364141700140979576332239060011120209696671501473705741078640058129583476399410088204812668992698959169171501194700141569301052380899048595229083442494639871832207846445695810668873801143202304268487546631675729680982338005371528394782499489139473595225787325109277599559258835785114913219061467671711014362411790877832056051423169994761088715342526934520562726603289789423171074467203817756190930439105612978837601912001445644212978571722157500901626201022929869898431513949188105303828066924488368951382115804707646804750037063976646706033126251105846637929160127857003382634504496130772959192806362307920290240061341922895818950816878009674389266506115777039194366572750158538672298578623222171059141215317596777422415997062922550327790039022298971864085102123004963045128177038746004239713721284400418994736686513388843657387997352612092979362111954091554686330148364686801693240783502480606798881459073751447216940038022943449041179886541881901281957351799663178672686590615395982906757998497227915673303363139437833367975247550990419443958665351123320865256120930343695689757884424708155885402010778854234506986997684953562726179856941812330437779384322709391836926294973579890897236310883142772221096493864840390249754154620552460562801130981170684977404571970521373001622461863072190915106073633334521547357649869395223994209347647022138151935249373316212360648104240865843014245451199760964957555970553592767202498708078834036146974153417112350009878869793121048671876252675466062264761554958742699313191065696649413363433468856872741531388934783317071532636359907142318534266655971438447383787069794885288824621268988634559691876574593708550790427527303893918700385474415572037717924779560781371575200104225259393405351154125482432449921153905931300797902892440667322898299285912698974470278449770874883528120471632108060131256003808679790194396753607149153354362906067240670138822983145280066290029397140855741001544560508054070735159257144401982232733075960198716556065482717289787487817917534679263029804374290890285857341787661230352296680320331122377022417574959504964637214191022406331214285503995616426064525945840760417804269602785591147354951428417170351370206016109967513159632938155736188658582608667601605245195353961415407958515146049634024729123699515525365246283749284627649654456518016061306208128120193094492655512044009386301086744091961904420602180560186463794443631935711059188039489742112975365452074647348015441764614382035243550864146476904912093195491918247503074966088778807150990956406989990772856739121117991682193902162797342724521168571804924680909780299855405686564850405836543688128413812543169037249535700317662432426132516712210856875103730428042045559711630060300352531806046606691480791397266467544716769927243901773670758427850604548712919414448109385644649625374885758159946001941657041214001131183564505659577666410285649446080694342827327417638690953174526256838958564968463396170084051946355974831284796651622951203008293103166556580933691793630280832447213226395218663529698015096756074059082489317590115449393172010083118472387919520357600122893018134057651235488617594651669538436331841688969218675973085573876492889348795465655915788278438684438340573270833939338599364322735880879437529191888731917669580077336190452651096493614309222093661111642606368004321390775976568732686612200118818273321782695632208785463298202142349598834981776931893631021522321094654928115459163159048621880539511166150578867241167269207835806052130670167495012516649726782438823602923703349579093616037914915605721467554636652329667044243875415675724738881529366383694045762433124289065975451950215377015756716844132478154819452038523187413735989264066012245746920473410823448490225573289022138684401252256628832859361951337871590887821376586525240773758961240202188705371525718399681701063019011440640115239371721368418164385723059526485219254651445908605547182338452727541039223980483951012946701581006945780648025577066524641199669736071504055041886094347796742459540336340443644220254624371197190269954416395143285422423040610229811655679624453247825329012984400338543772238449438659053443543725611052908918926451319599488818294819648085684610332275567072761570230955900872144331265478591790244784298120214955849299718577443135806462870254203294396928270068348853124926342687665287786759099168654719471969993752443331924779316935255280584122210714332743981507246877924657169253327815081193722609156674117383393380522877417585593020505224672428500200621797439390209878664630793563990138342817782987772535999368261950871100328545835362207862351487073509613534466750251089880803498730925182844368589440507441155865865612400185365685778861089405256148385284873523729504424629691866576071704952937143289767974402208556330130131263115745971313345587191701940145249377020780835245489513159146835652478665260044915069680494070547447941488490045718890417500994085178428584661553251397181048099941007889502498116008380496105991069230116702134120531360325505313934004828963209294175038924945481476262975071801702604550837352672330901953096249477961836784533274530047557061931511731735943742132458437786376946672270582223055094489050986630693312895673859820735871295718794739529750255690913647342492194997518446895396994239310896870244336003700181115448643535706654772669065217155157958237701717264630660372081489693197775244325227991705613271577874790148601600755144386441670599293075143011061991284265771998813624700964719066450946602439686970185417413969100958062917742449541687350523895612568745482260797564066636403670072121010391748531345642832373289064458324055897135527936421662015393539146798707143416478528324740349974692086480774889844352691260527958671651899047942057853146989807200024248207417784385275616911634163794928031881934716354249136809526509006358034434914133069019938699589751782510535199012150534682022252392814870870977745363119478636130647577734586693797689893584739091569825066749728764190520225753885170925924358564447915372537643369325937709405154650645622279133950806817113126526307501425877956914101178340611978213296035441576457455037173626856296129494920969319634033654232402224356316482129278251756742197133681300489537317630665995906377030288039702006632925606926657496640912742002635926985431512791476287104237234939556266415085282363813422410136085615539256286568810656090340296397651672174089158736037198163926665928125379095117790389347998184537546025693073991805398162708509318085161133415881653721613168367347569652396345810496968634612300361437795836361803728475844896289275433132679425189023155766493327668384176565551740261640599729185611974225391287585396204410569664069782575760329649094224896108494093979875134215498282030003162364735452673003289664421447540492287635708158880270748962414237280114845311205193228883586157079288571359057206960973361846484450172102309332379453893692589558807221653546086965955310838286235321488802852790534956298567960946383504112298455284416401266846314054337954458107385608618186475021995165507461898978745665104008637848689384012390193846753573588958475055247275075060256138863028649188891517941450918101876158911768597936833965346474550784856259183086286680899520526152345418788819843049718862245926578046410049655528508628458094556142527244761044106597471800367382789131969914934384953684432867972970272408540897667247655094785861339974431677232323881887181351782109606220958758691275952808306672612661971717497902727225677801653925553776310249623619111982831827548650761071714299853467688428897330262701236795687590652796387186854882492210540589430608654281329789034626711870405349656722594821509796886010229278083867088311224502687855675089475007914748160033488105562047341882511693295344353774216708611111775207743145699014854720734779044596959176042070787951239762637486943056525654898340240534234602352933335684572402428466970934894045156951040781595269384792235004284083636947006381155580158417098694259780902633161189921302638258141059001064520556363857908100201265675780638371073217420904111617767560847304660541527445583096449272514815843410444636173271356645976617755255083357761912621938100556385096539729771611503262765787580692392013042387094571822519431237072591715330978806424517125847900952235466062344039267488420755747929699011504179250767796108866158777437040798930488902836196447588956350526825182260160138880785688599383675311156315645219007680436408915966163258178089005223459900556490524782625024402445272523780628418684105734132881685464879021329710194346113477390460629528027566441290635449865605636616604852965067435621898843092096415147749733786138783865469978279827125147276831319366203331596243532643862360412007355944805936275080634948345339648840477046179197413459646405277719928828231346255982308332264010165441381319736135001947315992471511998447032001354085327682023370983464669666465500355261981987242552379381261203844112881149775789381766630595336482899380241406046012570518444508174349031378853197932252503053956613115700672369498345789041597600468933824106421115293779206592740839713956529362634118792811243800948052119663023415061363219485163648836498362186534670670192214575774849893231750730566491618232743020350810978805586201157626116413748903170114989713007031584578185610740218419925673694352057073444788207228516912092502964796517720205215479285425425618301516906923124028746069966898053974049858147359679579262999281605232488416891091441865486415847072092641687212405748729336184549723410357280041837844917828387536499564945552514464962655965618297423670496874087131373230098128359018565265025012378702047899599876972649977982880939088931953713184697614308068322121073293705142946671064028655515353248289708121174921291747916192281144691833951188049463263413662516516498941383277675528623290438418585683482879900888323842434043566616397551115499873194086900990855985596980122061177252754145777926427947037506236637680722563973620899125583341361783183590193022845790414212642238625056795218372216901702303127303956333196113478752240025212427888237059165356808698498112254183357700740716668036177496849693206135905149535889287422594186858559465716834355813178065119944565075713944648212404124361046796540901515463239248933448777455245169284604623496215411489504480153064603652721718406955842833159505217060633081902174109462064726789608647813181722703176509728734388734646528361431995991278540813194311527433201417792244093595181964743317141129433729599657433239635850915973426491652961406600317974495882131055128112089274852429922544372523787686126986285402771932407241203371993170312584645964095662379160018497247777124732462858198940599948822476447017176330738229367470529080790739685794645337709156729941915248589124542312017260071681511637841862780834100521793571458881279808018803700093984198714589691164717563896844345680878265854107884804370350657787626174921600034272114086518099186005364022980261548899588317789994219882396877671635552332701273705555556916829997187456121713261401385129638746662843709082804189821477181798775746106404471354892877856264929073527739691298425982924729998245151011414686531717779837831956626828182977123338781984942366255379849720732177733222073348290883756480555911456910217307876949335234197935373704254596838669709632592914643985150887253178425124676517720381617329523580509748155583190546415898494626571150986016160573789332028974163258482935892921155010875218213834075480324155083763966555306994919567902381227765036756934580414183366320687906931466840551555844729012280198087207316674074871832215466501132164414223013400103744208717724365275954199752614651934047756378343985761862408445488642860102823681359165214982762944829738168263173087575622276369543406059714830216584838326362923714568796631260765766037365253170556407335580003010852307335055970815352205107269023102926920050594934679906656504473585920321148052033423100958908360563532760574667521133556605750592702168239375121367886429483035488529153996759642758633366039720191670476052396064903959330041453114455811421908362026022465677497167520538059419735804289477160904865498547373735531168481778557154906996978004429251965845336950219197981687910786006272977739515344394789610091564003522431448762436808369023954339593287077000965423124437151720460973440084827673187858523929422565861543562183404015525613074940610699956302181481053256745137234451898326345528992893054163240700717877325910960653070760629638468846079699803703364465185605395789301997802644667877163264262555812756633204110797437395180685013440077507302519712989512403943218855209475414320414145906931586799431020847284141570970789596507048134906212996298743061956569920684805810293584814607314671031603333925706249223649577848049637261300725992578865549656834068187830792198325108664440516727051459830997892339727779555431459585489097410538304611139920699040575361219086578468212258878106367050932559390422189403933210976264973928553177797620036172661118602560378733120006992489924517792965406035723117423985780055756058034669941932584863018216546300752797883191311922434927903836792197553115658590249024299042338151459817843987391577638336550408941819126065646212974947331205983703851913679692641427180331586422685316039740876587696424052449455128934821285098132670141546706477723760654286303371119105132369783618302726903676559715103721851051255867733913308679108247341604886709535855519615426843916606758800644342146931524494928263941069819537927070453093562784544502884034104900100530816881109129350569193838470623563519492471631631265595018222552754018528723526991621290800502498368584259714825808972790486247200752467065241541165202147950802763290292861622272191972060259766914369219967758509003856575107977891684488983362943181917744806801163964177230108742356833558216345281654109364611420341089686438023969293490376222871477113282734872272089265305553216602907568602650621417729265594207210452704265168687489105353964825315277658071413137559333146879538635505220628569521765564989524350641843285836259041566478099535229808340133547653359860006962088642885639414516644463707879669708463576407574403977965135982741315486780626986023173909090948312185534864611263037195627794983033448391684522404216703009019026507111122666849417214894899630033070317277396420036975377495305209607672832397837403975966966079657269660994067769473689643210564045888876142204203731793890191131725938665545697796654564216143001678196958937216092609983876961803500219537033098413762450860171280991029209400343241835436814945249333681923853783085569033849022597767665307211822208334293463388222732546782351694795216620722868462408078115718873326054883425217533783989650393842758082967774377776024391920423907097416053723753403872040673835128702713322449381115707029748875888526372896970255124225777398519413439869372005396376737203796258154387259044669103243144639808116222663794217626470585167913193961706517434596082662538587591255735593209837753396526860637451509587777023666308373062532084756997445348800903240888850774351386494747645606186368431251901834457277024894320380508432788160837381073952021787930925096963187790061194104487232524796189335207679603672424610570742944628918458890601340382797213360629444257921203301708178209121632593266830947692854496431065658653615925274635813474378211228147530437896916371159277014062410397282906318466785680348552509646604302876775696475731677052342542847815435656210093187437396853894403649888687966280024174471346162244765934659342588018233367802394661624305996894857268099636530840828504414140927557505778773455318513575733102767127494001893902337071364626814631684302221524240087865744144190926373782810139298809583331766114110081888084891760733512208913433484763018612836691353000412335511099183941068069205809540571364487857246633124651552075552852120205195095720683616628311987128287253317884822949871848675850868983397476233154723098864190525029391477794257104374455934297600611476205226154759072737393177537640372250147568368973851870306083796818589858331597651625454055456956428738704268942575776474053056292806567272258290064211423791298777266488343929384207232509052860246664308080227451479501910734043679175422540091931533462189340116711389642933170974656024546118979241025976292290667811301083868030196320643427359574887839106824487570790987137146579009328681308731089344695526748334502925774763064135209753230664513850167458236204051776694952401925568879460343438427828584437366597303791757972460614016160336001795535003347473962992124920295937148543460993214212513629184255224782032882377653414700427704874236849271464831002318482231997870149907958870746717129331999258038085173479600022121078136092455802253781112239281420820023446591993013052441015431177419136858332479078832805168971947252338248832563734841596675533301200106548034058885044005129052529912037716217501182096909687420986809806516422238052309093445344765776314529197277817047639968058133630960325181446971403243862932750471769368589109160018083718279617293972986049054458868557680465619099056558041828193111464425522796555366146429125443016261180667477011696511621387745633906237119500905585071783751341772727253259186141530712980429209182515369072914914871985724187559520569588235909080889764926758839169235167019503534126749822192153785100043634870188702364486885173427853630966582584670028209581825140201644991220821905421977310985027641599502450653760006514558310485388227429037891935021196814616528809998871365606128424985703397506345727555901608546373244659263462011478075243508425537902230539053182714830785821909893696820869890398800971364473733372236916426817614159313167376195825552755272087334183524692504827890852444658137746571716050384849075346958576364347769051557735317942374519351026726353365192341614624177615831129080463405524483038502799464863201769052121587045597406176641772823695835912299412719598423491997557540952379908891433832863991617343418875904041916142965146526207372830392028469239980588212803128627368969147030063510307318555097334696587057500378168519776054545278315707502191106667527472056984265458768710791601315868940445414207023840855230514421830969487711074192347835793914460245928850357977890143581250046275794959228876589961837675230015923910964274209243659089070618001464460142603289231089457921638260747304898362015737847983697129996333047373935134674354559202314729486342928141330417784875153850312302015486899488103549801997976758862790911175719163000002202483846463333412490678641156881614958293418375816232050133658334100623895142165824048917041470620440343866576856821337557345203448389434700271317830796329167797794862518028403411140126760295321623596505008327716120639867056850554931718969167686483820212748233973261641828539242389495247446517624985778263546860381360818036803595450973613795461561907789653680316430413455318854644887495861337265634093582047060769059767880373475696000162929660933796227247388500856558247652469836879789177620637301342273974449186922603337875677483053847341732499556677639748858484736283563238741586656732873064141641776659580039050275634733004232004830559414278224855726423699532968493735156373334620556775542004505199632385029106181056775446137479483863411949793412466224668344331577825930525349295298768932246401183165055821599577747118522112947327337155911847328842580085142108095390286904892725036686107118134040918007714897645143501106560710070453054360451633485038977316845027140901686931677873991956686974627532936601858372835343619734214623302112665161978985877247918630233220286042134175421907384332106677654928036407280591803121907067601725389024023406971616178877346153814645107208487557905752534220760824284979020634296721811472491869480643275995686350203720244170630111314034359826981984560418019129811936663708632657452718928391063242473609119669438533619936355726691691087966579999387929032267288261633843221079254961141575481678202305266788145063526856989331890073665165898771909901267178665364450654970225227886307871757372241114612908714653578613919431026871231073648370095542586049442684214476125939865745203621830291285831018068660942921061361561247760492560411181053706782377074174404066226051419330120175734956328629353991288436420186448932972194782264081294493018174350762388949169256552484326202055759487220459399249709635064258080056128646741026334806100839310353125819171869497405418931493589467491782459490182464200199813318181203600492408308680390306646043411095028411981629636901311413811224061272152188308551187986262469444709186418775505697249336835158276669087340720297148640069673156246132854105284295012985736105357720825514428313162280712872949048874990726751478903351613200874620364019874361127281006391832729653508060656496266875250727737711991219417843686348633232426964793807693261947206276771245552487888638246030883717602785461327353234764799991385030774565529542626007571684292097992543341895082927201539808895525664257646178221066587557288526293284476998617079999860599410042435199936382778928425032972082878993136621619339050466756309056445534301906085798199449643944469295722334014997057744199194197166417042776340294214004189243202772013442945530754121407538598294552852661057770563713701997749979063174562472603884953352998766276363462009495484539255241301609538738314746838663754744793706310328516969561721587835712006613196266723193701425920616730321250536582608676368552930538014373363263782013937744096653813902199171819863522097127864215815492588253611120021552698939101517708235808124902324228384184971529598880713910079984489194641320182780563735093684197358945625256400362279280609137342170336563079719127715376018003483875166329545293968704758503446771948186921716390568285909963633933652193810045651947227847033596609291996256983827823180634763470293592517851008631703435087460841983253518836103718462562081565399040928893639124602030265987487339773023563750690791370589991529545147077154688899421452131177886698547602433627326379860053559775560371081639184170697717335940960595009112841389043171822428878413332571980778893947588249473363331628813142575105504082299829028957190118304013871154995471197901798064040086398651186160582685351553396603130705117269305892251009072155398745285607801658969611893600369667314673617711647425382993516155052250465208489687167242562738975175169692274615708362497893852044943284755879251503762622199573068321803418047834662301748278571668594626961197745219103619425739658729488088237640976350382938556833425882521214503370081362274529683479952738091868462081042263410992441305566389861267446159434952629388419628959019751944269475113449090361612771329321426892470736441550692123607358296997953662285430235075802848009745470943147643761220756996295693681848954050207189285403677860585515693696696704701798809040977953142348992999998872314449776254941025562445087760710944791938989930699196542303636135325023845052919832617509087868630584046557026742706785400835425122815788638104104953463163881058221925295522009004383116888977334032626659903146725392917765210575562091490667872419277020669851734120962609633482930006458735767461685427891277783719111267947126659688507616975437264138466845541761154687775202572555847881703247383867695214629462847783965295531219322406289442804116989020144237970643869043281922321198971659544991014186174593031916172200339318660378115380369861207843849281489564594619422904971937024530057045491838891622346721768565615734463725888732465648384861533163407618387672999315756067116444983875946847723552742044614784867123382732401346723503909650228713619914845273146265038991586827532998102693011160142759503749513065339646933493588267110720642233872647206494896279871339094287535401227310404855390449060294418935355732650094072721497815812617951978468548352429347375414404919409010766941922955993071213588888985446229491422646474184866175393887571285827867974233816593322011686151712203770521303030466466305460964362305593163393219791580967230636568148754683368553955339676805935523709189721922372752729461464806818644358447935708941169011359764521857288788248060143679578185525391010522880173821246214399777175300780833003405379473299194086202983531720494869109185219721499246799294110400107170429201310094605057480696824713300775485349533365980861106471763446894031995678644885294219746922849108625570604922436638023714162959409721636493207713286619565088221446453722965154015347320113211112496926695816451955426963710016397782466764538232160971262710201328113765176294841414200347839435418853681898467984435020350118590900124189161737103334498593426645483987897429775008910850326156997446598340683010067713625431360745519575704863648105607639117737749530221365905380782906589528991058444182777976744795130645857470291760189856706096846318112488968315274918034235450156265146339954844506415040734359577189641587449517208240416257004146702250258901929697422303917319294539920415751039441823051068284802866375486981252914034647888272243099242929231133661877312718704779361842155436855493110442928559623339218035927654317001525796470478759604251999030117519936723454993892061746371487003132395817319090740918138002418751487834102391248244929739940722959535169778026996935683173479203704940204008250719861359516725362874915999858415548201632341196312090376828812815704537227610754894658756421452459387139248896353509976329571162014587127671888780881644788737805341589626015264691123004028608118274515646698595568737695473957012000026146288388667413987968813314197490541513544801340650038367652456181661373952548474879642521415829451742244048251144628193402944111088947964321590128313062742642151116560269557574112279448698013087347897639998258915303889406181521508078932540116214215017929493612320159722119039363186941520826276288257093352102626296985724437794948288975309820752592812247143694708776338702422955081747981979165392761789556151231365994931763838163124920523629682015377202394740843314414632115533169849417266136109351407343994084902972362240772679676599119236152182569125059729062068773725226766236734418067549791207048743908306699194648468827383016491140288786500890026999185136226622268852092506229219553502777198349042101776428505572237257148983204942456977702053041764480217854330873013624063892819523194434588156571815898793711254373341593598161906907043137290698353072633776244392090087565639857906545191651820914712915829799117308777459290716506733524834161721730971229515720891004776558580433583408919426305164886375166028450214617216313721777191278305093247311996307723297229780363126556414608059491298220810307340853246252043154631948759810490167021864543229993158928089611785298901322758702454013723539011697338426578067959373428510319501729175530472626555561309889021484268730412919036063351409407314293498409420038353559912223118085808205570767252244679899802267535270482605165045560332714527608801037894720866495841910343644919387380884477818524112554277562896075104594058346179908632215726047805375513619827617816551724051354153118181185022445212315294950966145239080317089760207646133920553899614397621367021756680818756958422512677776514379638220845485619560740830957741942435917383179731317670979711853264804389136879347770846717223080920771457258012473785073074107520980497689371196420905217398829351079755740865965414967404005839617899032953873321291176523342307158067479283272644528592959792335056062374047280659139283038329224574130808445199980024833172849464493814482299721811612542502842990947485190826872625541025335160351066448508182820924093430884409549030590144793113346844554176999997981950559030945136149669790620848052152824583313924308103499823721346239687238248888737714403771812190409258957625309501268037802510965227290939242082293461619181474031113198066967767903745006693399331226747844012533486292775324968610761390018037083223091981605130762063095267394639857498815913731530378504312359203223362506722951728389662457166190641849368304209849541379028183768746152709094304019766565617633091675759738802440425755649978961098874911009934657244240422844743063169339580268535694955700876895323059706649470968455625134573422604614010884621515431691993573221823283055517711864981390277509446946404501938453928081198599496460363900621677561011109997043347726300528111944650669354095691827297440053891114460020151405136072683639216275465575051384576312142745846401670343913699762548210555896967184363642337344127351649378120293265928092100511239461831278456355945054246374360462641942295287438165933610439144213341588173665643615820118678244025347024571623960709591790001885496193085298286265691870170927498767977558844002684685405287856011157998059087443946146669902619658742631671869429286093841771160829046823166500675534651772040759696920012170993766979553212689494029992822521640654327209740917576240320835972055927560365595296132156612226095005505938218111875180806841636203929421983058918538488520449641985629808572920475617578200317372930273361902242493685210325545269623673476294917455273939334384507417874229103831783536898141653502348261923713620421290998450040740134875811070719386056350401956770912302027446187447921092289947919061184288022423440809166801027053146313833778301729389506145678560752167624777328367106757046803263405978776692509382893659020790588583917275714767590176042709119868598221875043456582604053643006797604911536414082955984173186674707464170474226151078967129377683945815451046984964579254823686372333900357063056780139602930593509586856829296672635768879567866880556194469405498771426704375336355430746264071473178456566295982783616008896974072012852104748101460939924810005026723582686136461520626807980790840958959067614281757867638259647338517621852265295400927812195361262677036631488695270290793177929173908517520319888050105071052156623213412584784315762089148404287410870632274645332181476242834901496333341417532183943022025033871355263566657192320840678717664753732840380424358665777045676836674716545003080187795417285708472263011230727413172944454902626572214442394398292674614547303044482991565062816802228992724081080897519747862985511808269950001346877371908592786175200578409306866765217216980799898956610802149961187110221709636519197591534625949260745217534766529718495260883622476642620964458931509737258503730207917475497137385179552265964382791871152153081890496865605967899420451282028636773091923607519270615395051974509475927080556638530018203243743137675385551722479738921722431022059933435762851724323289250429545332193818253968914809260988396441889153166047504191228559892204456269730765976830221424340313326400532002073595619278690243889161964524344340280410585434030719664680528232745327532188659963235396654911672277376354330535010552192201277695161541997708785302024137186422391585163863067658581572131935545884772254644442964412353968002569864115738782695142435512429095634399822802936829326017289521269233190742689021828740290270325190157791567156824567808195949042525429725511172858658493230504890020445733441734870099140335678881466290532832610437052514544390212874577829326984743731340176292111754280138631029944792509005600621482111445724562455208607957667053549482324472192726782717593318626647894896361828753505909677417830599006944904195321344463709814091035654455421607716410948029702226137291773809982800970098281411672454656318641071295508703012912889395934111537175262922782765659659161948667222752936276752515103586580046921727017550216061289451144610231843487777230649667113496905824861121692116161669939389261074418994591419629944813587741778101209132242912002975161049815284245386256006931503947853629562772150091162859719025380659024471205267902322341196578982999048382850514167328823834964517425292882781866451403171962583837295794850364415580307777918976631858574827485698481660469946922471245904498402724699710223290752564099738008564601906707823027678920637958210145725454645807568383040370389775354734062320773914162587184823283341783568290922359274286625165721739808011288074967155797133619188682401330814174212900941078225240543628092697248004437174787743820579142277509172282798664400676469831321707989524952241695935593175413072463184172509154484881634299356731449970308038325000583817993750424443233718716775789331579085129196523919305269687392767693546886604562353591408688127372933983835349571132715254547850704257559825964155203137032457147222310684648250795260450453318681101896669445214485962006195357963213276807405111613471865689806107949698119283016077446114081699699039215663901494131642387946115324731863824081798598340063510732605132856665350758436927465603957296939503893881495868906301935406849228038879509998213333535895288231888740376759919279242766394730929102845911627472728951583601946414982315420928473071277807799889010385169289630174476449776504372604180251551603381622646230647005817909455080709756253749068393348743574258910591151048157121616536054528554200307339656438015019760740870118902311049843429785502832364680219621892901348236033719071230694474368809556482538745137518918155551884942936831994870314465007710186202332613033740843580058445999398981634716770444711020403731838818933320033148843612950899608724215728794992241875065536070571973480758163296911363582344494800845739099343013095049351731620895215062632115871813415841502907633534324209103787540901350788019814817504558287232252773220265809887386955970283007424691592298257529334216837483271921771589817532403724566539469873103146083926432662502378419056381196377013142026340748917125564961346211029391863031520586681174994808676903263795326625837177001688719654072283250623623773932933604099420089808281342485827944554813784920837260738660602051320139825323403306062263647563448644060238351314410860821808954430245522812054893583932769973725556746146465780107334738333392269882984112480517215270150598590010327298121119910772165629311750783738655533049688517861202936929327166408947655571698218265563337871890490519406359027345191266233343791271625219441782494177933051449580808265545463855681729917864837590174238728620106222783358041778791597526640600781438040448713478305885897357423925366005619777862149460476018737643724835330621016853710668420145519892995980515803699633350815727260195096629623121402136193231501999363758381588230637772917855330035700881711344878880533099272496053206586402354984012819550023101134735774399726489253359115323473639240612364029548307102182038519682393619183573588969623440128848408004474767759006472721503261873519456030949462736105506697636424610863456331641378463322412964867008326095234702548902710635905176150055351562490663630416875309347667350216962738154382626532037803181481557340829491997539475490557963104249404389892142257114180131135296588141308436863069621711303804600614595493139471196732196700993164600104647576465772394179481016289873160902179203480923769563802741245341585076767161528095961770485840581972515499442991646141529593608427187291005154139148392341232316689747871293864834802377058434223765215955748049060558690981901421467470680182323822532263251347144843120434136763411313386129886146768980019668398731918255635625171619641235873181484604112957437265847604821337956794129368800894000246985868470652879115402138016497169818540344554411824635021772923886975871736268969841177619819449963765328284317128622573702720589807700648394664542545375890156629230345050348722847890250052293627327478970573071464601016109002348565184283233538929984811222919649193176044802945141658021708049728079934171057382733910371484581340853898222130597956360614765747795667157078365452084840813356940983336286176540085808112189566748858767835806939587987079585043844124415048190454709713384349672522823314576178857550657406130814547452522721590874060981313337539535754050939877601787863625675603390897260597014494433223313526489032871467701976824269581672566556138964445470838535407461330304453150343736369209562963495874370878366690449195060898578032660755433896496743398091420073532433845999644576441617679292359633716459892269222187520535176460466389464507350482834759273384630085111794961473041408153010336863979118976269660417019346994480290366213956687623750087699757586899647323297620306562629684130208847356312984149910602430002949607963131529164677573915671745063801079248141829604500152735483329177577187479785335240230052678740884990105724677194768491169372142038704538294496427590117776069857608661700174933913429640789214120912314588658821027340779693948252356168670845924449364052683254417014515850540109231921886869956226244511980820540933175604734898396491611043898943747952036401948905538552925926099977843517781096938756672881393333538442965279284847683684570077835587724155855671620547535115257664814137794345673015663094100077481727996454335128531276500096153932866637572036210549255910500365934310697086553577446286304373723277187148072086294198525554947226072926608494884333897540603604972594362391146461912253294651439526539831545422117680793910415518743123255819327044815724145400689802588089998960256941195951750554548907410864719570450409428370773463737411494456567697676464946752940143702661999242013688414694381955757760215786839524176729595975225652325860402513528300557331836313719879209236898683713977847441038232903890406991782208938073623689775625682715253547417522416547500793524203486729073786219897294456767337376391504595497798358973096335104712201215426072000323769120487963491779847691286134343636531118389873868877858010409733493034354769832016556894220658129424595131625768566439743987195546678173485288747712119358847877546976277192108448868537872017690259098135246003096494095898070640296417996586294387278864068932859147001172105507484610066102093361586386300196729598607163947137724066439099082571749445062822691895868998643675158548904680900017015303429195564508732452691260459581972757547859927512076314008665495149928349147208924638461053473208680511949487363592485717444741526851938025347595633447578754333787362741867492531762029539587837081417384340759493007875508945867559145371114844106302900141656476084792701807441208748794778732883720170412235189874917297037325260670388287513746867743098964115587646231411899763931517757572926013187849899779045183250944864639771659473371694809827897784798880848867555563698854164474074067127398816368199664340118717076120140999291335160782209180224980256375555126210565335350441696590237821254327094657666656104168157352440314602833464585949142695456158525357060372635131330911302695429596310710033289418936662676078526394036780270222861334453787398787422628352748139155452424119442778329482047023024969644933389015303891958353415530063789788341941242823269437600478325933606220255448502636415563135507734462826494007387274265385555564164936668747652257680569829031214055329838042851581623159182651830971073142848991905309034924522655599323507037465929318236599446182044669430059719188077609460032038395902417360882735511255023529708755396063785327902165142607076663396747575473238130314395396274706299584330679161323644242477055495421178354538998016787412726672556434293048695740969866461108318370252541971127439438063132348564276166064598770223095980670672128617069429404904068629372048078187284646416332964212175883687621501409177324894107219918497334260886907658932520037358172906144401482213843574290458145504412285894851158794768882711797210607156580411184215510380100622281340563233704398707030534136477427494982178412029863241195418997952081153880058458482471992544868044991898749154064730969870527412770207309474848134393464604482709864656360153655403439733868099052888550759185541072964025385515303878649505234318755775526887928573774757837680431865146106156028284060368403609622914760280354576146865712150012841337424285795558220573466696153947952049387991716926384401400821039142950837675982636494356681781174863269096155789823996440971883067748138236273788491950579847406824284929860465238522260702264497394544719541729639967604780403382161516184276440078994101261294468301214496557115903138966426418957373904518458235629150487593238390322249020320561741508406139395751413719711721019150897707265983874763693516017458745510883307528108545508902912761591058387694575723612073420048054736011391332674923325613316075422027830472653358320604394658535626233454603751033045654916432328775571858030601669245472236886338320603686325983518049954964911149474039419526115161204240472083596523875217733321907805023419002583900784732317493247988514185468586090902386729088598912745596546434182501412880760844351001907860775121363067448405315051522320471811751533848194140151626168606817752665337239313462457957649377628168507538757497172815676890024257765416079748763203839867346788490166505819869723506741380963580153110401520353913087014040336230839492822635565611633412671523721620397740419696966414264079860541403713492835581793210371369744776287811230410442663893767566659069573397660519432629907062581956460268028106090902160866079001907888471878120429378129663518611577779862705504827021458470545578440414602432176790909243079189849967268942984029210058084525461367741605199140130688672465531174705084370437844217617138101422373358824919977453267704315125855620133316181612315737608193752069036347069005351222436615435420664747072329844213043868775140741120437592544903636136245838462219515890311429074743415152085841848023181392669701456069057313307732901210621098698206811738971406371614661826105892940586425911314457752740633314219389225848287949860907409495042277813903456854486835583094361020154393938861828915830137911373991079552262354817959331938686039271114087089726749579264610881601251704870152721583189554477735617632044289891998051141656289516502391182868274097400615059388929969138047843849993043612099386112761579935060788765031129237408859474489085038471557695952228590990341034960861388470289381125695864207155606975909465879742103439781785957646711006002109865706730982831817067149949054756246752792193525792634115591713994993671627982094095325174761458824114509368058106925916801308040954248131514119738340099793383967889845546352618051507891536108707999334823136118144885600449413859330870358781692738099652673979276200808613043537887060165791998801595211063359882320099218973789833048866621875013135642719761938076524112625247069079646118833386111653638103091333710474752256009710165569428200948726623763731645086607668407396035578707627618972668818660720965379467675724265324951816053975889004857699922140959540705698392774720642469599621100843284664011206578193933015535840774933081865155417499261348999657162423171102423501829533469661119673728996450363468135306837757864801788476535305644330446189005708980279627561625723045961345655977675586535253520835752189659545786017906736454835403120952862901106199284442809065319894347656679351905382676614159052278280353466022460649926571615997298991002442913399524151750272125956506201389599798715591499026771710160770567731115327269898891627882008282151896388664732828007930376583928764202525054220331120550898696141899368381934154796927363652278429720094418450546704040675477014829509308664686633162797318901393732351451372342976561965897902652798164754536291096423064821811338794130984181001021352769802633803946921664220160465256455903135699127957003139870506462620268359092253174076973406183193667637591050844671539772955803819117427175151511023965113419074978618879945850547112966658359853906369950456058621916558335301345551879489180469220875715406247557060135553824053465047299671045153440530394244863051333626307895985739887402986421918475134491311983011424824913200066657477117001492957995450079324187142660284559304248062520690465348790553675319119230790553062208855578561877663401649782973043256740439214789239898704044023072417961629220263958429904277317041959157195994163296280077877341937596508529641811818391582555990308724553006985529418210765714322252308487665220182124619657861822605161830555914946036579539249925650331944604493466925441361595410264816375759486571859490284899340488973986032703688586553732953867340953701975302133063399843707839957643790530292028227025382707950363648190177416156066683433130298363685602442563460096343011384082732981403907332113179306252865971873101357757551429263444469732674804268150033599236155281873182811513839908390546068015926787285341849017250998657033613890971420634775329033727614223394824994650582718755923737220187423928628630879031890227746375387497023498802794130164620436779347201322061313618843440728855571166797914220926504835785791343960472713661279502542058338819379067677241630917656508591306739634109910299319353574571895519268636803055429067419747462116837269205838564183969233475408509949936873061553199569304357918085050814833595533025133902650889868815736687316285568034084833021670458768206472446287383753526175299124870439895713544909970143263660227223167326597591350106830842932157259537264884614581512493615284056734427366975325276326084496301520195125817256654006276231688500167170254179042388636923879515673876980645102005262193884135746876172705764258527541860457753056895900815437487252527812649457123760911367526401011999704125834043479181060373412781170572120188631533248697841053351553211183802316101977675191421391039898923030325292871816542863316480716023380324636026076181061993795745431519347783344961845092621957229155236513901035067962486345506084899168843124407826686048247714580711320514201187383653876552949987048376916787459792391185385927338188009283679879607337699038704653811490558170235284960909198911753174651860856909611767081428893728154222413747178189965623084637873392753960242537421888702135482396225839826307867630356351951288059182713416980464975076380838048863881771618884481542322004262712108238036083991895556918052295745737330084560624812767698644933844600086414262840272527361541991851700642163852355976191676756687084968562246456164936906501325056511520741834404778552583435775317601950405313445174043540993586469270603864280281827289015947872970342667563673056922586643267388887106526756468654316410065053410205457458406659602022915540352634914963765386348446501242783931162497729158867878842189059256691344479356651615304931380915192489199490166035617058149272539032519152382705067557144209318835037731455214877413471552350311004134914408674426712027935984086818786966880098677550833828304472520817270624900894435567766540774231971400841668766314558582706218100537146786952150139740128156808462313317141831213399160047401184548825365562739035334295981957185253365813280786295118557177552964619388563031065749673321526430152290508821060868485874188503325315827176411946018311511880111249211025372235507337295946358497945246376326800686325151293627830841685884436344545162877922426559714226516124947586169466911075235052451584242329754564380133767971765333261624977487785835435016500043680896072861474499715126868634254945646886206446120666699897913426060203768148741308180792999460894110823654216859778981934836230233765624015045296504317910784971929453143644229462492108870103267717916477760137674713946942325187294216246359370998927674869618873264117613400247013899212960422182577979839392163832302302801808357407795360169230447027121162673700964484332819855654061928738414035161871185059115118271018532444758720979868889559274048655020420916448553284105467281505106056672511703609458179496418324174166181942958012141192680976573550894091938873557582034909238978342329886256107268224833270989775164938162848843925612497324468220585633694087779810101381323953163952968289988622980257071701827336328491062896414000625097035087909368236497146956004823471763629279557791524470628324920703156989944781327146077483763045821358590059778655959880661823829358656687333323190993783655415539456358569192209242015098224881474566352943119472801426587663535663127691045440668435744152339824410991133168925869968892542413388627005703533178766806328179960542189643367957216665755486705643584221036407192695350420804243239364498381586228641508418044608099248187721930356415197780727343711697485570668320468850377599789065354170733957396399766502620964722416338565475599800559377552042365737599208797095679740051068596777935446765124123007840043471899279597343359405422506917295999877363021815870170913283981265106388653737678389669782988921387116480212852779063220435337263905932097969930748057938574864867564927529639950312946914286643889386614901073990826005834485380063504634421281365685814494945827946297341510019148436015323188745792175910006734607286176643052792926577873959160244906010873159701397309462957091355340509996426245139812227013856773851753709747443653603973934131231222784148500278112150686693304799560772862057216695954158209513765735241583996179751592474366454761038572333624133847116127410250606139566219822379492512993416306455776406001211238620321134027057527091238964240405977937054591223546055004680980326418508215636372599171191573101689019784216240035712056479882810126408903685471413995099267937385921496811411238946171975136849603662831362771300442054564941517648697525668849333842759316484062774542819310258707367464995712957799878179767988027837081390642297392238575480204257426311802847196721141050130337332020907352053740914599248039419293841084569245777348286648677798349619832952187284097683959849407364473207122343453475831732917601221118679102698263472064409728934958690998472938346610811743543913302224196617470181079741169910410601797051041955460894071614132844035474442422262131672990292308810874843894057479291655984568232987080020364690515507243981723120635288243588732021313684570973142827542448600982523238088755066594132336613013882827365014894165237272041565873380008852952095973893765068969046650276506791381360621854452117934721181882812883765857914800066507963340568286281364475339256889342512746849834903016912877214012364859537625884174878997457849343687852209495973645618022151369406730136385184905090998893728763749867677714712554607351590363591926786594931014930897708500589925048646219171361315421361668095599462767935023805428586788275334036346679796063608170437185242613081629823279578295156976268230054153243038114531695539451851779144608008495936668781557578125718970181513516607434482988241797645795342787401858093981434288525625631541019543405021676081241593078295653304091555768138355898997659210062576911117674815092651371999816465530454065899410427018578262052751851563977527136754299200203306127411494090109002411911108073423923872795840674797123781559491107594914125122069689352886562233939232422472004025000303972100376524577709366715148074305674015345297740484433542736451014178891969356985959292171844483993162155247617327908085740325149103781701994423760300625903511999050126766697672869671641805594968238864740630459922466799759029088508732460766553556271826083175283601361702522435291068069540282309228709938169049012456043309698481733296517781432918843658163907527403340197058804879523492548342854001113914105931312008951728574899136010114961584161693417081878824860627648899563326665372347263693008206553352916513515138488296209746249877010291836745350404405503948686455323888551536005641424723179956113808335059197575611419090485420563311593663978306003384471122704423462434593714817468759019310968499607155833545107810546511459908812660623009669197001992291828947705511122785323903829945194914639425072423439893990433607625766598793159542758787888133428734878383778211271874835338828890477099585845727722120317365296143254298097518521262294263358819243265791800132679152132250399251673664516794346932230241041309679832152923554696603842747893696009572754038812299692516577632873248204273763552754685628896733866821409797748451444285307108019818751555904813476095195967327350925392173760744115830680818342642642741274876995920720069814204005760472474208393344934909815300480905990207249534167117858112725431665189606765473320583186955503548356646118247805755419542391792794914904717187313187138308294773253828614566741908489057730828717242152561046307248352936152015888330406160570218785237377901372599591838722554943320922326036625709053250063426285752791992008597913774850129298062621857303049475684378588312219317025053713341421907788724600638611924844953342555591453087377968073242412497899023133092009899575474505869199085910372092430872104234861214498757046346789651944383635861817929695020070714733317161663507631603135259372346550269574623630538431632725591087398223036167623340208594179545245397507152111837265877256107150720953564415128397037357022262014416682188387571675213206727030368688964613629769775364175931392164619711550145012142004169842385788780695861435629359942367567191785605912458484542817177570315002957027782361902869696909446373727069814595589766297858340750563120364114518963776295474173110479026018321029350896931567121724921829021118004022646243620495302113022997368723411861428949450299530193654444731675493423164936719783922951194006782946080275899779041086948710686774242491661869264373038287703331632092213667623829213884258107778016056142245135793291956062440919126794574312806489897495887625383509229626796344553460428022908342467005817730610135166825948951298856813989957695648989645537579255004065052072903835580193789583091873070007691541036405295382819710290416232087413104793048026874782718655303503833129549786231878464538329849781605238319239774271985152762991589666487930345487337131597212520699226679610589346012420764905455982902562063762400375377494537341411291037109033555950033716942865287476905483790223451137495755789851898055967087217065103623381547484431527534044861945499701469405623659438504435984551290785298661658953618498769236892586297758769583600751965958213142075917918041889028495950349235066288074034498837261486041416108502548295968207762021403642935618472703741665840367835550937401267986329299044658260266811838370072472059958914622850771882721015512534060923437650379941917542547400463789235020191104542785017891147123909205144424478412612673896456070647841941672405766915497610001586962455901985250608501451137358032247878519090776037606172898357053241407944729005165093532659301830547636466394579258457808849732523263106778169180584663094881696505805408037770300095339977326193913653371375987702956250968277577628703056832980456702417893069897994164308055987741049808863411654609387339687088427496548348882215161879799020202246398165279656640333300303077813078230328306078921300288069501517854795072976112249222460389608129671502567848239805340322077429077392709937663642809244901432501135750247483476188380364078758106860627375244523816222022709514212607244542380922425586889042825616909212494409543356419638768180018988311987726088742329004292067387204247879826903130603622871805871146814764829175916289029184093622762126805909675610916770377791336272638580443102784661255075683739434006853318238456024384104347327517664567591436113440163673353588859063371302541687999406289770234424550376150606806455517150446262003277687556045075472701209688859492251590564247106863556529795583294073429746656881988557272906703012809486648851656796963051899999141282378104624360130920962842191077700543495829912395285114026051089983898266024537288920627156579615115838095417893637468097524427191691763266516649750506972485917702356167441211764802426501860833407778024965980918888462564626415831038384744797519257611699841323424105559581638625547376495404595565598062164235461498216070564221462241348894032469293453084917702728798649472282869456499768576599849784653743587868675212138571346659289152000197504972698423769986889046393262874821519927339952845671615991919775842452891780950441917998475372768421593204889966158383573930322404193086083636294920917515697942964426093870428125746391119443469719379148446013601068533333112386732773724043327420477645850904722340104293346433576543267849662358306662890379058585537949489083384401936075264379588095534859070634144583317745455174354919970343424402035111772558932801529479465031712595374564075237067361546071515145073214148348700964042143267835855029668939132549108779459426365754490776395683791829626580553616302598268142336732278163137871819803235182032209575339447175726683861990436812085234790493003254449735674014983285459625936882265839337087960014988224680079362411516065832736021073841294152114622346067715408657279358109377018380627482894106499462307953345065005856186185019652948859433768484587876888128533496913965299914189100734673408584150130506405054381688963993111768160007028112655745943684816773924593722009744283692349016550451084136620660825373761446074844867417023420375009902713188605782883310233461009441815504593391038415905390842226223577646792132463603853160946990432786950400452359835525185401186104535804372383092752521928498919659747926370756156359488763947394470931168034095159810500458567671507617457090500490542102837557322628255511221637683686724134157408366314874223706836453500249334288690165989107217436820225512125809705237512364939669808682698357073379025298627321734710079528440998731694068884836845681849322172466018207182663639501280961680144176017383165159487988498600256479751769161514681266117853867602594271907397568521969982448121996906503288936041623239198742739806339759113657102862163890205832561521657540573583039073576774675577141947439115826065182165851271568286364030962821661460859992943860604557493711982980038593299813067108489741846827465189698611434575257434386535677300613344532015807822885866504418385597775490881320256296790990327797999102636893620676270309124399291279641239031359984984294809676059497299112293648934448727109573090347045206104711021591051043565581325031870833588038414689950416630989168141711393797656938493835232270955315555472643077186017112214095605553424676222770279456942233688051103248996426699247077882463912017121291567993516789939535727919805399764860281633205577059348840228165322441543159020759005785086957635166072587646223869918182042132135818588566725970603072177138418098394235052160869089636905523377869144484904834816258850098259809634968030322287192168187463368873017332610696368748002581855545834879813940122651498507625656918228816899794198396093327740371184370947442044868561077946393129667857651785374076334550504349140276653961876535552125678488381006446296431005637186553598633616388377163782586969993131236094273870455877750079673986304681655192729533868354084932437868997806683956083123421277642876838555696045228593278167085861231584142284785140315791474672186105744455156503038082034206470049672061238766193491832937643931463349947755635662872202301594009149893315341858027757573240980860095084817774896619984987007980208765200550416405668075495090951827460127044390325276164649204833031661639347660564678717960579088771105336827935737685167124183254461860072135577666988893447614707395676620628675077871326711692032082686948507925647494234145809714511378307305286121104111080071300073267700146951040647204379346545169780927043566063850429263769511652601597852743455297030630686374182892354992257173407236860539653396081051031696381655312645368943527919693757389047362793594470229708948733029825290947211460861776681095673242548567430371628230920948743986143259617313418646644742945088791979347752643799755152930733531978216763857716355686961698233320802485360725008954110629897368435000199049220417754571284365878678185814639849495013785870681601993609782114241257931008647062127046960694959458518586601220851160880042307595812789433765992984315789440423463131676348684109048338918339198517538196141428214811775298821280637584780019576339431688238495588546429022506889152339651519215180733994249580607934436420537212193362228677883444992497478937693362799106418337311509642030867403512133170425504143472293529538579805328108953061776421718853652284873459495999254244838215511539417059598235329055849767417900312970590846027910789118336795226494715448015319836495793548257123660512573022454604868862449952118214516664983721826822907736522432729459130078378157405974970426119035422807007714324766267036363499055267014276292390725359186287070618170277893684148277439402953963575433982132368893064595842122260260913861345291030645317553707718061350524171706062816579479754581274056075135514743786886284264828106323148845755831498925610665558928653917703358099475233190149035244115307024485925904627467959928593435525861329902490762205061463873721976106623804376165742557656441057297961983679609756605732757099813989443095740188922050341711559314191223687872657652342481048991515822982420115561927110800583044765477109378617085261959489210727802208719875010234384680407178666609793068670671966107897238638314066195850589082460414597258788146276919597634697410774637770805718435749768448513859650376696686011653880607077278857480502055485404041021332574371454233340556825425843825434653488275941362117743824451997563534390213309692380529228929627042014647929322271488359168676277859075504279420145557280226297926245247514593112500624191960765739278450370068038024927975715484719902448714057615634910288118667253573227572112211026600628200869623807025886788314296078587271220686157186716709741915950267333446656975404999643498058793277527037612384135633469589702456565346283561123861587461836998359510347493356375416860490330336738155815899081414648320400492182214450742401930821244244948017977165851217472154470978041510057045051752957089777515438354102697496379718480905346574915277728789067546611010928839149361830695672710015166296579004061655800975028835643578152391604955735771327586929621961570598937062659589688167933697626183695671640518400389583836362387849788083713675402141643580562490213249057466892294681854755115465947137392734669681473797943877058458372736258965645960331203972861990812006268368929719076128220103594622792354971939217837949814273931737322682935208673937613161755535084922497291157869259775834571282870600550706061283544827910967497223376005388790792602847683168016326167921029428284298876044690339553876487361580864570343244737399233423208708292640121165537320203525908488932660650985139079813923654865268942908267734221710322429413324144805555684372936453306263349229957235193746937071680352296146165794886369198433019833981621427084413871446293140475899986942445562998887266767322330929860236617079502643166730301428237735502421568364841604253316493702501981704422362205113378033708188950525887984231986146039883566555766882220587204783380277861970985702673802170900471462955188936315433871452002078149759862182670300328785648438234059142910930957472264654144184372513011624709874531549232419964280039915431638521004635882162395698476864110720408754742550882847168634755236372402929375344824307760617811680432117806293443035862804256446054620217040302163579598859482941016735926068696899875774991806264274033824502421794541157085218608389246122880235493302255524764485016787033469945406980381082174298761438570050454539422270284526554711932693702389648078320479106963024412467791709381734606220738086888879028702130109831141818406549677674402340819378931519552726283896417400096022654720559573726742583756280680736760077754669565569068744095477954385054288220490248136230256356315945327329382444033239434434534014795427973074919066019542533210975144783686304904910223438662507002276247209479680884155655713789462630234068161769386495154830675223669711234718001256494313403755449084185818093846440932880832061219383911498127360238306864860010052508591857818324281282407676733898615758311565159058093088307162745983135529479946356783300535926371226270096433477822253671813897982423991576360140463994185588582444935635375561790066922382422038282127270456501821153554641778250155547971231009843615715483830733334721455004072980950711132074600631939343311774356793366276452042062301431949553414552894191667150992316458160508009396138476394379622138972780292409106394776482301187648317205593122120452594319667579429237248364498749036896820864564051951459286968708476704695748227749165452945176188845725235083924259267774914471787213920338985019936643512957577095456054003382830571241511634557834595294692206149738391273575472943345760008642912306302657492188375984580653724055636642354125276824335707829641644074340466391065032266080354960322097465462212111724330465171067205796132855122386158631923932849504791193299008176278393187156851281163493591451193373669340552750162821461117890029615400450884766208369274279446469313373284849340849458434399416221856974598943039112847635766672125513852839069688886286455589957257176189460835096387369073884525636379610303579661417198020484410194659211166606998372473005979794986806257763514344143865753938264268476019959172056935358936868248346317817910199119368341948680068610291812822405532754683459941939788548768504372046014115219789759656545423934047830622545117476171474173170056108537861008305156437559335733163148825179118123724145408554771297189040636959495585976007351279234010266908192853594426215472069884453080244159701138947174194655279463409971123529337403734392127393550636313124139493777365114693887469115546159780034330450309374655692846231060581822134104303978805848080265571493632819765019583510162192779008790327792145839786448454437989799588649048898798563152113025858144159165826730592639472251793298640070827153423207578108753286894171760697165659680583472788628698325431532548276463989985756567321435018930278015914130487572770757178620621484588114353660812399619392622547720737898648967974729653732421146670188114705654926107215487225614094873378523454464290647966476277301176588893844186806325002178285022882363701259621862495971083478471951632412673895248513900076924590197625264315483622244036515166043223639698419881849006467713972395202290276350647974860119258695082012284413420361233162330400191545985872712641598904558082598136435880509948724722726821659647843101258835665525963498608936677824054193427362034895938101317634620102639208583667257554839774478430585130212532328093194374261346396023142657698233709410766303803843724751830662431280803800956995690454467570535572075058103164887575839466615436246403283913885386637450097032944205200432499803085235911454014644391492749879449374154442377139808633324370587769856925098823042842449538194971077224458671244686522742554080545244508811283544021185665707301323247978180950756816788016394129326950373156474859900109673003291104721643705993706536729714095901821079756978155228947728686042078829388865787268963682475522453602405834486024676169878043383369844710130449549188702464017448202152529501722852444206202153218338876963575967981500634423716271700764079278899109090739052591869230538612974684902587725659779008532504176114369174247739775822632567774805768497004839276291623170416051499443993212330874700290109830149611388949157418361037256022300384387072192378297483990222610426689306806656510117817798889173580488535357159487765480554194503826356635994235396676852078886343897776044654870689733599279565865489751177713259027212689977132180818884639938879813949056474641909539015250972954081433015372737135059284370437245769370834593342377722018962030545250472102163479772672864060255691009741832025260562376756699850203488649285269870497283738202439987160130435691052939075383040029542281815217116558140223435427672804288290858901861572074273480462512877904797510077625906138048288670434427864044590318659222791095229556536800423702022313650803301265258544644826085166758246238209519721101832678802562042325518893697828623379608258811527322102209314154473194387658480318684325995982001111740267445860283135258870745409510584417340874058704714442983510011893239030661548731129135247266617879009540704204177907124396605515110583541288068697674622646022451715714277389013939947870559252611390665654555122621965378441346314356058266587734157451785867145780322577685291146053818424810685017677248391585152949756875339836844273043344640150893218121976134407684795043123359146347693181409195516005225630756639405884102804757010874727913694663339277618103539459483398297556157334726254380845073501430929850951014887452128915178201763606136291011813737268721175967857684043771706150199973674270496900752174902570424496371816190590731247543910999786392293475264750936112675711176489006514408614282678387672899091217005545833872743803043233334115595595727837025816423953823723452211082195314569559419749745104013582756293189423079920077131960883743161036592623497937050256201431276110872604974013661427672270927035759108680231835084493609634225963949544600177430787193141048321074067679216708121009577795475028549477282769276087097008609041110900858167680525281982286452851850996584936830075115503057237748057357339896992747120986979441100523208133379475551069132883186913675097063103385422056816987527955458467821173642116967149604050189745705141452750324719618786748045036570887646903649296736562323025740611659086793083880776146951866236734104241344761990021870265374508560580251391265416456008876443284461119943508769017076481365515537863565121021595678198829711992796827705836083225240463902689860251507764350476470651345312268262033064865887936814228716062534632235899714904446406473440485663248333863484429404025389457350149788962126124253698912829720910714520592923910552068448501357151413488335052955017079794434541844933247152410777687180283687788624954103797731168855149337186305115413202366163494471510897529145402518559474838658082844560653093395408276915467611092657131999133754235244288963618914866757266451820976480645994328428428451700360167814693383595758392347868864302630375570230592135910196180777478831051574127428908922304180704560165968419060849648610561904443214833181280596451654936567095775235315261549022893826164802086729215853472713481856671878446939891646576578573196249059086390740581252876460841893762552433469948640005793280297900799554312560049268508618039831110698578822363119401965397389710410721536309847058167290956118231724427757389715381444681255239090230851456237049261866006752323680756923563562734636654200359216738740622992813234503925227708007279715855688552144284918981560951100048542796365993364940856060380950371554711761770216010856674093626961382081436751624249860879299000799107087464449781237034122448367609320149621036795142411813973901932207494583116551272928798028169808964940103072311255384043103733497085650108015525599929512866885451987128023807453593803930583339513323821734439038067522014937755833502470606854259676146051200157936539590984524694913894523505464294040549425998530747605714460258567986799028404062693339392716807621696255658591998207149978737951138207724420383847668621066564354021272428784542909261832692992093439645251504310214853473818767747468498032405147063249803294800055712315299524942657164599881559920820571162694163320311947183148676371948065733965833335139009896674675209374134256432852778501801996172343794937181789103385483818766887783649183160524622429785926396087985929290991509584374589192947609719731432732069106424445208505727531249321255056930181375574671304410221004255647928961802513531356675061754410206642592132045839103097500395522994220344271998331758898200431794643952467470612656707544834872106674113776617752946798837932795168795627551363130059175640462776052256286114702391491859741939183321440747484085132376696969109982210677629871297203828344045756058885185776053977678378482360658333069965190904640174686756572823494569483863110630164167723975312836233381202416622506997567490578693250290628701291797630930734302272555532519210543408861791258943806826901927967199610788557593224335040094928556330658302293245397261778060254531168991371823862303180373608142211404378718668931044451054229608326687444511443753440349762060668830270523266640814688760172841775134540119755017441332682082282241124663228143250432581495302918608154175526632731865962781015967785495685604310524170619873105295257573156708785624049562070585796069363235580268862153334796632059995547255475775007286043257142193208579078882986320012535546544206811917449793358667035879975523625577443873073394940382338951617046565995016185244668219870978810267193862731061292915949830648119482456372834397750876744280970609065516900292571013286062117113624497757022696009042800363982046860727296758931267836811176020538057291381991848838865723649288587571749629249270645467596845078548859506757110758166180968599454830735994773927430544959679841978160138973914917411721148101890881041046039507545993093628397583973187019388900857480913565192646467284427783823425289144612773490728095776602010597995987365527850864330984489475507960216751844429415917874486945555006038090148245635152075662443251741971206526652079952826959581042873025422578400834767101644316334439451165307387411432650215110456397240357685079650294341986552593746638379950861356332508619177375213442468272857664073616368974820881345941910304893523300994026083156181653949698909423293070351845061171545160720858456774247698976459756356666673810618506897935812556137801349287513343170444407973945295331265694447494586112580113952878379465806419150852264883471191095584058087469138547202359923977005891262610854134898592071777749833795645214915757227087491552132684059707081157516569827852822105477780660634443008953909481730868228983445777450943229651017532860058742519365264004519600317770946992499811491539563604230918966198890777008520932150572393074092944935036344927577383787549067871932421561076396156870208093611317024942756017183068413023321446649570530725213290690788149179832542771848741853867696535619460174502565805814051809282316064522953829106268925528194390871210738422408988302786325005224569042322921483179856628876792652625054611771360022084787755576263550733917300120891271839112060272450947759101070879175018971627318457473656561850991334717016875502699401447715129716851095049720402709746763501117344227082124376314799231401184131906261053810979925047674311914042702601752523667641377617295325447811133753276066982078121694997172129069675033802462256907266462787416259306265149008594676793112305608098316517758766413375925660507677948639680342601589156401996205589666770589500794774766801397665724956474092857468912584027778365231464232152206749420049171430763147064918250628138649490388433277144605755048238260936580983916174207582821009779750052156042757430204388995017058197604696044127622678918516712486931293163168642886824528818587104913394434754678698146893146190540377524779901439507957022437115917484605725437762946053673919447329443405962809152205227828184713181120783902302240398664520545917372955406970135859921381612446580725870901488930268628308281540350591341437759919822099756008323701460564721728894713952976116283027083095928928533015719651062727017673702808773052125268480052569659701508415135050183480144472846569772307956773411867453572362286300922193441330388048458104498955254133766752462292663232048146746201268176422138239846974891760587007959669503073538780347573000392491377074330815538871405097500311845568891522922165783891884214064536973639008090674772706352660036295468345092015390945280512251720466019088292934742625160597583905079310718991686546342309574006293246319742458978279077807955787642186752549046925167948588877630916992969706406658113609229831147840154229688181596593906557208212529431459377789506002457238250487433138065839032557057745705135638675142168813437919966446506433836229068210952592949607213661387408553528270722186395651429581494260519589674270017875788687399361033310093440775299431023176250386601168253727942941465209508014988468704767626025166171589443735917267492804260077755417524805291941796409854574528220342099308754587400068723489039924962165884551584566183114068776845615686939842950167551847732551886272450414856843017193535610030351992004332663939219489772619318742381963298725006275043261545125088054244603520322727321637882191416989951632737031145524508603343993594530557812589870451233965054727947508592658422473111510827832689383650083403007740914929626627087562076125249017810934807883810411118917996108612353430148551218199385747442226124163363782167055436099256793533526172545206621925769868624532712227246096525128173611753470718000371950990444590853661410469968549731424683863702605349506765077654531378218660921978566961399229794747447991393196677127354412023869618999651471730449738889846295947715751446579017992271392272034730372323898985796998139799635167111045956338106116695941066789493061955289886329845849616742014723379561391573440393990682432926802022649538957067767380791483994478420559874201623888399638893653555735310389494034486485237195880950808096702518951261281980480242158622079460694392120607815936544249704837364937802528040498037407699076527458242579642165196558310185917574474844284180027226406684079652916916493248692607514147867486087059639975597973611470614783042790788906961638416223379108214619309869002818523447819840700429629409395745591299309797993804651458152166320418776188006098800851817380308245013363242499076295021908589963170037865358219264496102535989132612503827425243507869854637853537854198470254770805780170841386359277241793057632122268393942992371180859528997343503153536891061448313872964656637766201184551028482021530111573353311529406272638523083809874085045358871903061499209672636826461991372131918159179394984044040353901993847654452964723919956215763841395942768536745265899969291803920215683735695098465837029505739137813644877406874106359732244562479309713153945389271404585068017045972968210165986231432638474274060110887801772449113018591270682218382506275462284059122252435261364907459088530836575626578314800923518023016790955941427196317989363304075922285194684965653970961795717533584310041563670743211404469946836396304801232884772216085905090447338527725296355825710511654579388222254926796869677274486703733243543334708393246124154724767328791064652292519244025121159047486729493487502720352848045264434596716475394218960085665179611425172121728766709698915917553164496802900630227370178617081876059947312043839560587013114959163318223972970071275541532300053072879230924156167654890856239918147040842298248539564639752764191669004966313295812669430872982866478830529505765304972651539551521721971916656309551190766910933418454230113681732638367752760875190334235599025498144215881986908943784189955992320567703931467289171623741829412877792549191658255414415759755697462084756876080448560048841372178302493828159067564718019053098455320509932139753430948024559395929639832552373151575666431261204910051087263022287931568665504282627817223017335410651774748301738585371139972111962328935025643931148166608167429789633672598775788013786288135390460964773260879940454077608268387416624461762805211374967342702963739598255110452461869684139247848177494292334437971201946535167210399035315550353847791937281523626867601054108242819664770669478977391983170203285971130138059241651441929118939435465875477404063154232546657640629923365524465479702891872276929719073251001104246269583946912350757565563791434162589434923437315024125507756549259469435235091591372979872830568756234734774825486623210614473329152768819390412264323500120679643704948254248245374450133339421397749552861670270434913156821488377334673497456342044485545755608033959106791241225361668276890988101383907352926021314313487469159173451521642597389449959751205185522336719760765404780129664172280643747045105620793470056891526275872640013736430446299347053886846086583649386602994244186093596970997023224520120600470646423249541588006650782721937955063438749228643664478840866476548870057683552891409716007285784951660993100660079326790163108167832395140468452531144250043481140424207352680867984856778230419290266803041106615807810542762286067105223484466535658573163300147439368967608697815966551496625904289139856892143345914585671630514280063998114771095697784066328689808891592279958911219114070416197813039594434410415093960202372825309790689084015738379516409201107521390676755697416361872292953879676038965647154586125198494260042508984050340272922835126183620589050721652305726116985407569352002967024413915386633792634066517381964606321448393793166689881954842763917818127002109766783396543679374655523015537613867808756715302454833420601489017830045508460442952789549556986998199813622080535460197012589408994410011328110310159192119036109367773728774399870183781982575154616671222779426898209015432997876008008842362392338070109493561616204704256669973407018308463064359911950426506910990857937688948309037076506326832292696571009547582075338435866718913217116918702531081617004589872884176814378065815805986184849557441636165689990903655966949051606627132866448129478031510420990146587061591358281392016188859916251121397798668281402638793925703902541623147776564838882979441211271911612842493636856825317352742841910676772316886140257340134277173871613207331109579287703498882723672938631230482853395546352419609957185443545151708601032223560656350620351189703026241844545727815692032830760623758084146885751340953751855035527912130518661493649640329299080256798763708917611892564403388602731943377658064836417242568260636585226133989249780402765266984441041750749909191732433784680161135876824663689212689587706878246977727474704370529785624552344118721785684635547335498319145172679606663987257450906651548781772891381384208462289343734353009849004817558593738717088415036403717858884377264175568131702376159082164821828967583733717886036490632324415719186527612726917871494087859811452059508145273391275560559276924945211239527633380798963190111444014529850801249714774725778155901465940398722905017970956766698933482381048648244502306610535422369566294568787936715480531259572013602618444227382969200878454365101989770565933396440525414297001928074980470148161635996745432769533362838619358519170829000062967392459965813919115181671810022959106883945935828403060054165098630275073897948458693668682686201592450219793974764894396774733902201204940509612114868357099786433144146842147126818595579673334563391266003367490870224676601350158010610034078055830475117093005848409456628734591297813780704537350691957618935385884284401149083635579983492388413846125615195230096640094816244339699041751699138799771328790761520582891063237563792561623164424753374748676776668912475163571141184543736015343633939219807262068006281291642738933257797885732491633550178328729601384106357775624522383596216324665782192743915553404455381902575116566294677681405042497560102326809009262824097165867191919485973563315541670214483855139325589577551208340684762540138198182492754277761465896807885541104845005374732571433066816933311159551075677649220953269510152258189885552273488952161374794096184619426526017231783202857971093599054671039772459456358628944046341497060471380645382458119389624010614353690151411235597916818923292586013863106581483872572649640891564097334109781938362338215909476669432407213755908863859360419272038082875587875726715155238633476085624659075208220379573391886794881036434908243366436396902910462879112290335127297632819074407993346738994749599147273498434504868002772540332120146526079034721999679816029460839427058422578145272910521634339378726006364895592481627805766230097378616346085315071304360184253381667868108403664182193562153620394002177147500918353432290381525370680863703161011361534984704445390402246747040166936841136443107544503457939689580930768247155414346083054979746398948925299175567808906764024350454502328085062166545576612305433584037103807235632855871430874306651916882464409168323502997584769528104916489123412384410247085119761717193454817094233190187391358124499803624478199336597788562108463190561909834697257643629828623926982879323658734278990110351725575161128189504692932005213282396429846260297451223182605948885323706735601195450281529504227172797803711067033477384603863655558583974067600385036580855677603524692738197532092210370915337238793774220778974022377571110706700519566591315893385136251675405883326879106199510872492215772017691615399743351493200680233452022424720487667940302397516897450298112055440128708567908333265907169874642320796806802662583845000189607376433602648441318604883865054132235428299186923053567196237922609488840523810648677599166809346584930391648730797168248387606852793706566997530343733128782891919368378341938204004588324738376570127528813608274047021303267842978963218102416171026759919405993618947323006365554040234880851351217031530603277911367920185447006786003196373200458559934119608542047989012349223127524065202680140509507563715942937098366055426413249773986231411644275044568332928922020095714769057150883878527481103228200173082935511000053137717278451355424167550069466698884664377614186461379855709421129317185143474795189154228549264785708620240219037915802578728823635155382197535702378497519728898665898067160679680559728671121453866681414234967497269108503417786392431589017388717408187402753648331403163714589191039097437217554918717675005798984725162142466630174114922955803261617786816405461214671551047325484948538962330996564817005953689056838804963518745273171879220825958293141354299993156978392608796523152046358705846854141101051397137521916119670773093315612691937571427003189272799152087962355241156675147990648336047662014140171189743825787599537259551550038428557539030514031625435617818352878160710565941797375448656768435802539477789841279922622915166367351113929967227964171515740158648588350451942193855351267989846008962572563221886003789219245139148606121510040767994495321819112252371339696497100351943960064412730583450823387269682979401183326448909228970477539273159751755686901334758535707366982390298978794873496137364690117618972838427592634916937080263336666182454626535687572054207326304088386615561675981830863608943934259491714545029364652886550153340123051651706584206583207126797518791527505917641876864127165616687452470790190417644690882457251814346187973628099308545751432609627862406248133247117597607153168008996515766498649434925280981034373619520270165711116873269092451943683277985043426668145136615192433598826144923459824204810462607477894893843318851299825905214825182218136211991576305477571939363428008647142756224424030886631104932654276481359828095201461410340869609877787279290560442615100549112047564399043309670886202175331159433301268003788243472655736722121238574932387976788041242595180650179200903365399834221130250933521749601172202848234235046501148143252309702021680017032182494980894900548691470464864705967179923228288475804776054882429899883460355391990733719961237172594899265781375109722227555379463451116423715038795403274195308506339976614308668595843948921623988574641955859088827814486124662865160471271238887557847142537822163786783622657863160164236813931332191278895813588734866643599559781518950037423130962919711155105863290629003653818724346806075158709631201257364907083274551174617531867689521907927588902406793566713649239935355469476807839381301532551402644447439795915143621929768707277345383859869093579745358557441911612806991950830461656988452928196861625792683127860522640352209935759804102739728331904411434567763424724133241024346262423033874371423138523553295163960292630352940608884000330709262419670602686240077714309997268033407659358651587990023333604459583492880616406700436995648487391457953986951804672671646058124040827908218375891624480976876336137014608169666076041685793020153293556559354072869274802991242540238665966802715278166640153489843525987046965242530111951354811503813545524531921943736639395007568391770832693154263893609645890623358244894555500294252120035747803647816740886163574619058532873375091403023127116429998351292162187900467443732835791471077587553214480181356873677768429368195644921542526569958872815492690310983339742808448789119963460431726486525747027814923596347438757580986725591199229536759717418181583366221473487525359885845461137331132973741054417685825119131489352810379197414090732891794214717580468170658505663799118145257417569737884010450425108853309679686287858602475087698674545331167134224941345280986167381953212692266886075195961092489517069922286392050508391194611825042878094374877183219786333547449409491243501014983398771721187065736006411690868069755039354989629359719649453270580695752204649861976794300544775069302169173596657356531014797934845700377854836545265609027912622312245181935550508089528816573027898988792611341279109181018513415832418906435875452162136043567646342662134680554178291651331819588305870283918981400421790381147257955982451308246901579247685027936101818563987030775017966877992624883041164222123315827841369118874000396873585747609221856590511923418965045803170182257128267449546697406513844927464501210684877867627721709320212838959039552549339510706690374793873167779273953666725817927381019410808918939026254227387531401052197560561200069970581268165599272618423779886725017094192563077494407108232378828120623920230077409467116324003915192433128523910846022025696925569284162948285536741823251696506290034499662248523508548900801534038421003565242055497786136122770488526532751161797415112932761279287840562518990630615040465107155447627869835957370310215428649596126047951964990619423193094504926097154599255084743210626926118522511422251075568281781374153260308042131139587668812105497019283927438069605081160211430347246184509791375980011360409370177485927917137209708805457074630272641606383486388674307995747425949106713798890788421372029081344396863339603321503635335783196489031326465802654027762100359529013261853166081964485163255695009545441475755912412743648583443675165211400014658122928534025795780811958554795099965068548933982896573784283672888594416084272001736774824363911064838871950299522060707087161561381511476361849811444145556521373346132559293736830570465521737659129381636453257011186821872841881531273454215025532028080821644251254545958457900197774265540420101893335757429146277373591079849135332377641883310369575022891239840171879854167321686533304073311680952377791559777592982484935582819178357816131120300004070062200447713350694227857429052182786260308440312182869674802616044547794335436580828050341131993070510150757924375794076637254071759536984516889768442665068725908912512979527907789603442639816247846475596050454351925800081780705709200218553809483304481077051193401872666257287736870468964480493911758337478312383865371056926833078405944164264470478779585783169586536601247031813649713130930449582841668943552264381233609522002248989315382878357151000031447448429037116986114764277449187562378924552297730354899548065481357421042473942769849814327472044819391773137388793400547928199101808970304736598253105911576186982802721086655186283316294790575853875511280987090488189442157156226079411973216459057899023780519883725436088390829755422886150990578980633227304261456465087758942290924215703859652278694673308757261523496701380842345785010451646928953721156471091792858055371057377702387097389298843027893645148583132665467964488426508485174432885884509761372181299362668406589991436122057832938510477772651766338549784294871371373834503771454421180637758893854488699414147102465013297984315449745613506757308520342340880172316938962959015314987035675734413260670062129132289299849942013896199652113095359074580265474428343465948147930846755682599816085455252239197702208314644029891668656445302559748326622055485864953907409769625815188616295839769188315894689214121035344723417555372402037583416700558532300821620693441419992936444344478248070032631257362335666255336595975311720475699921323994818493957509988872852210512390852949571024469977440698838394060595402135067810364874956113084660485501238674301911426884885495619464157250189157397816398674400577111953813476804633335564603637634093629134483622240179071592445985144122831556557960702108529911610264797224898168323531136429122815051354476798408987518978145000737397314466301393559435193206414781792873099617178360183108702167757200567219365017834245570532965561435613675815989203952846284501024052528187722107075985336425992267404567205652836109821793108588286050538606962122930824287098357942701240234652278353789979376863657177169502237980984644741017805983833260597837189776863468503673794041903488521791848549697458342833640642900254350463110587039598646491539561013105460715249376764379935388359180493929722579170234242483544299042016189622572909232546671258542382118032896942297880640800276334528951040835120836601126202386312300023133305576465276000871162119172357111149893766005330983422407037673605074812189507986846834870530624605310930657397203306891191049842848645413349283866859474641586679894167602411802803567665027576043829905093625907042182747415535172521338027556144108566910939895579246739195572079079226716571178005670721973920792813402538386148327986702964491034635048335812066787158620932712209203858615545238079265132722853595040049440347114960406769772053560759151857177971160278943863543932410933191332596457930340088998977700851814326588800090025431407480366004515201103220834503487569269048019155415200571562469624056385687012262349394630207008605959449570203272022661304238889191305905400651057686356111813691241036954454943903308301172264411627165832966652649688122557031891670931998788331473691039371610194233402677708695694286878380954248299779599113309250335913450872094440999391214211488885806530490800741703402927735799257880960479095018178356023361008554281699482422366441598024750742423401776788577108936101927646562544236631721848383123623284574720812956938976192776723635056436409939546437388916396985277832049095938836769200361219176965988521139222875297055858632600067052731271064485355254513507365189105898453648701868977987622756191690926235448360530093416271876536906629623969476701975717647007072313091348664937120765845901885691234125067549184126981944136461491020252994665446698492352925404754372268570662822782634739620179686012738897650347445628791532820873328605488558669470145052241978428504671667817316487023493315302401244689194566776928380238837867233213135596596844538078389839354448745363800922617326978018212489176926821314290313234727521722190371384748521236996297376448804578034599244278392850554575931197899644160090073041368369214976908945547506611271526016611769636708321254205613884171947949091400103983093083732172824115138584952683553403981138887567679842542270546723086522979258269690318094313573878090937763344639885875764690551263094782328709486659640945871416194440006061662137377764206733787437796960647117410212930673439264015322679331719020461587384201787332983959798163307977784181500925799391402996384154912620282148534865897982703341871667348024427044377170239399729052237594792593030169868401296781893943588249338085534020271062322541623695877342645566458558538651812359890383869129942363196875603207529770797343161065789368884330466835580001554441889030009146529490051179431345550945297341353981564343188688144125594336541849142867495405349976540181574679401806016332253620538594719332630324710905049310383121916139180868881070531901057572136973768224777271839916430036166793498246112885202831970521708707263257582622191961362710754492049328670892618534012198669679838598898085441914664354503436053942848185146484333904434475264124907726399895654324013769261538307612969997262076991338246055779658812447228618381254428054598262656024959175264734012768321309751267230018204537121804693119123411499714679687616417815733177847041915096421825334092789296432711522129597557606364430030067642074689484797957326942558179170128025813273365427133865212994389340443253661270330356930166500664450171858718743922950743648860819887441326682144958140028418183182346118252226988770265342598674049858981954758294789376610544899481573766162149922861038688381062287398967536298708776292719834487811795009554519762338535374456163876632952582105627121436000429263605126143577467301212181999266482344987528853596439092824704836288051109403556274554118607501811979562833736568575333231417968924395338670462404836986662021974796154417204874953497583678859596339764747106667411724414141500409869662324548811655324115747250109859388963651676577196809950755635052255752203763225167646329828349331922265675928691409330980371605540623986037295133480213278601931957581362579440060831634414408824076420872945764572410979137286835723914572981480014170596442039251345302007730107289935971859697476440975869392746350207747564171918509870244215795246492734520046331844986851033025510862075217724744007629009739289389925018481349084903944840184248141766277737918254049752447199561044802354875764196403857021370166694131855990408082261052306950791670313699657982436640905723957235610956777560053336755745919347242265909778374986875485757829652841571168329401817302617616394912425083658449757594560371480811211318990658401702468497565393747655395789338857238074378984626554787483575387343461854985163652629479704872182097366146575037429078430882082726200352904071534964958127630452944487104760787775246443053603940480314272146877533017778362744662573710011412760206514101729911803664886988353331504341074091673656807698257481255030380088156607652167895540286795448499205746216059804889498800857763946964115549640315644709767968330456865753829157486272411812311401581839450012623890959459774495488748495085551924164001785965447436973732932528839539554013722116625306939768679831698678753078340010826469724255366778234013812049407721988797426762615234358280404932501084738907002080192120930776019016870924688381753842504540944414646119672760242698644751306950482495453568634624073959683580717822160342966251014732645647189485873443949330760781737141673651349934596389944365527880169233004775092554474612526459334745694183943708065341295265858579848784086421430482199286138539458744310068499357529787814028443232153339339156709022843084907363434564536738749126936814977950448427228980483857613342543375287016572770528346707442118712261154759996998150558657791546154505567993372564826380523410921447355098522262126712776001015369411907338676150881027932328217028549913554733021808945458543106682564935068655831918100677248718090737365473197212838496335729219833253377196860611942539854923413427521733053377835159678385470479825341020589031396474794985610631889720691219785706439441789266718352189314419964873124252278203363981699814137210461378668516302759475217264761014344078399765538244023993212941843420073607474291176654021626022233724924480249590253292946901966551925758744344900681464067881899464853473645770940535705616501255716366341433377633045059572402707736851982936541004388496793984840128547270670899428589167796868644857584790829099033163106315969041816998864090329678200786150782982124006095139454783614340181286386564993633159427455192571527448412033989611707749697553035740449033887214540461432058297044275234883748890591075769387598130004509848712047714301364103859621160550195134787494856869948462802008110125189254995521993956187737213192578689408665044955670793401421964824445667531022695814999582685262695776008769818676576518337839584731342037914369161323872955174036462675721392568014765513454889787079064511873007669488992205625596410995526447029486731350432291409342364987448652969901414288768187558421252738184371098896686285592662127587460356290664707423738620559421089770980906794400889103171433564110060188191206589093502733910076988787752657794200946672576379819854353361719577203310596141681339877785649713123496953556219936419421677797531193487212756588485319187688013220940959318241039735225419006502276413074142380994444094300749622114050814364671593212186841773044289216397452654954911691787224307858733752288902688756272710954373470682463626366515955607627830930911827590202444557840886876160498264939236062316364701649795423241898296222405986921969700834285515403397252395265304108198015426075400125967113133358699140013807968368355293217203510101136135269605739801178931076156699445588018879981107151596376071896889547754107052641232347470875105893544530770928524936163067973477240031514745500474767623080583844919093925783568857369187773302695160300158864481112944390185475069229761451966543081490300592695432789489832113381163298836702356587890722504853869481361271046379716460873568138819757746121372283675689577025013580580850250576274577090945546454132331054453307853551692527749146806427701606790638329102950801200204313036730167138786745861266100367634786339429833962808735939434207855597770388467344820092290688882003349395268901724097593276186003157701024589884177156926322334218375876469225543430160827048448756609459867482046589587836790919150357389411831959304502866999620752293912724603850078620465741890564629087834935005354749583651350862299315802863894284993265998382587907442427310228206876198386267133883982365106874580033410091034488246766337234341728147805666683338587750888917267374538538636653531633809606817322913622056228473185822850181381542695448839174590623093135369537300552452021466945878993278661091874059543806275125364497159178481159353350666454716124696235855994719421056768702265789448445756240610048500431366199111224923094446029800588645676555861698934558924993695370664387055333099658970630584498330589466362482528668007468105634892154482373505728887072543922760933824573333240203476110314083540723939860050830016272584101485878051850868415765180462127279561687629271436787419980261743766902233083880697405671206319576416888343624808497336276351333608918778092374592263021263843279191685961535634520843599487670081005211205185352844498306846128731728171396878038311780679138347239539543323774547486819475338583878133690012840297757864583712104229044224836645196597165612166957550193696983293182793790395410609596882312590706735416937660321138096474358721706307170334812905303912550544454508398683543559130639804194962885874267704328779203650551291414450488775489010264502246912920946438821998151490529737873115677697089235560403062147822211823895838936899633017063956818772560242403402571285953443240438974880592403045533993999567999221791575863242064957819242169178358245949474119052102719010707572667720780173363260432994048996511108597148010009999451771296295179506896844233660137499193131971492186256720747831137599017436133623340272168455156353122748067839504289510806468797955174451051076723826342189042848730503279617078889174201019187279376032585727716219050085181796605851799241408007284370727019782729954392325017942606299823207197087036439688240847644028705219747082853472475371792125942237745818970094605375826623653428778170221847320842033375170802847656472091785554543909245917851010040746978062403168735590689120634651085760893668158695388552585229570911182850012397898352456809422322309071099608278998528137603970754943086131361448489427520556339287088057758954643641107533093021534860689234963617152293747254106225539697217089659075225717800027046161435163508612211233955448447601828135103732618684624716141633909303928014420916548397450976691539713820706612521860743456574894143784888777238411770442401976913543256697555215389644136913068602987170263208784449202970883871597102991181160555477913713476476026449864229940896573992019183460175562210336558789114647363735088445204533734163168692082074906626244432246903468522894908138214227975401180945917029558541352548055219837569228793465606062015677613921641779113186179850623261941497640089621029864369839716335513069962723975992227691301875169868725836004412179634002282999253279032025796914647679409544885848346055656166015836061837196685744659655285037671566460732994133401489881760279840282137903882179053835679158438681645729600755669593699114388742778634091194502658471594735272892243703600815523387625036067928632397893227298429818664054373887168130185283437802366204313243394360802409385913015266665339623496565594009063945789594420777075799365028561299076770450131334344368545029024720621603931262793558262931337474884534783288501562117208714616018419864738170305651790545427140297245305895284140259550483604998862933658125683433403843870077306260975286547814594281471814328157748054764997924566124310804386596529123460434751853633271978474375842228215645302462415181683946235070233683205911274192788431077666314616304838501613458661789023483161498673781006033272120947834347473003092393443360137062975783757298762106645325841874158067020842051323520762442701790821176097075613494249623521761326462469409824617840334236839307142398845624598777006373172831395020291498027412059265034933944601150358649276165970649190094718744559377484236116526907952808791178898502033922010229332708259373921365032847097548730603892402898554833081735304857091062299704157190927617919491805026360521859813555058476876701007228090085664447236219616797422444170353608804568639762400021802197973855579139861654575820363907837161722819535531681521573632247454254297698363220291952229843562300746965399704409476920845390494751968922706165635309493879876992148503366545617467719381796677191395667312517106649733257077082726847737030457191895170470796848470585567689496403655367702151086237199669123939064114238369988828689057691434358295546118869356322712897044395186730388327917507329299132947577522409879486344010213775682462169019041004256857982309025817041146481329456854528489810633102523259238997517875894731721501879507778864295467485335549866959138854636720618481473164757572430153471348317122465707335260370397950453260121682241912301364288010536319722609561597995451947656368452535827182693503912828689736582614426211230175359281140246386955451756599737159797890755744362361341447983961212300855905207064232068507372074431043211583417950905115203677650222217155245383042136206676293718715258208271232261477219584723809076577919741889795072581569168598759721650959199274417895705874652115727188450872970919212105032606547921048757020699021050650060333553233397491524027472691429291459912694687518851907723556848281880441504911286572641523041054986867891106065521303546888868621590588541999334794976737020326604721893397765076209154392057277363370464725238957708446764118193006912262426797028549647719970214448248226618538622801847119486030955306345125636106213148179970342210038783299968574793260061067395666821135478829579256515002367280298431711980471769135614074530346383188567090761085742391992670188999365512516536230029177154211412504195124082167757338390642644397377062300825468489195271167950281434552567134744544925942651193052426671543101300379779552294643136198986456589721447271498218400160443379578013063082576205462133609406318462281728332429532867988685304087256470042558235281546031589602322486842683794819526198481828627344187216549772839235597196259974838203750286660802530346281971062931532410399907213604524514609521667840971325903660570929216388431975322127290989875088150501653626386271101281851200384420582757079144614869278556010983736639164989704145047969014287915180894867073424304743629618868103861428386741879930136766428703811970475723699544627229213477669995277571706262338613517664491700956984800899605255423326632215461937566455908298770906547969593221833232475821271279026570189025717211911809210617568720534420823308985006044017956563744953714122236764029193527294815815683343200504997757464323334087846328524199502629735477370941095991052808492599161823998049518164825115375684864998787469458476952720470933903506672189794041329250191536764341955343167913771944199195825549049300803664416100518471759728613228884249792370453957128954287816407099823651387211957789253845993045770475015301357067942542389770303991859866978410719741381942405747333814921223523042222430258113166586309849497994643742868445165179982790317720417713302751796371282880870662593707729439621733769676038044530835180554709275589789846790513518819652970260495194014331209299401306621796082753273905367082978463364813065783569998089702935957778620693141804892726410351749050277668050563244928102943708793571933259947667900716794595961994230271907204292597683996313994135080009660967592190527173102537171969285774099530959343514881875271112431582285555518132972567438438978291177906816911531662193473483957482204158469401012391496706961113922470642625448154531088563250725584283532515253035844137173142358351767590337290417664422835822924843259086025612273132774371160631432559767336483168553509283987568635466481564793890939428890689818148517566308444475070341523034238143081039429761417721741409293119910973912181074144347910703895131724291609206175144243974431099471457540472929577665512329542783160114851686322899930422426049449805319178897681741481677662460960622554609236437447346679124737170987013830805764607231531829042328125798773868962890941330966972746259482263916460306088234305611888769393243180176283231293380601815180169459663808646289757656908591606049255473233508109986419820133390409466354661203443373462825801014484105676805033566948393749350102268863859658861407882575852027791990479073519289772012807718926913561298011636410487630157636205215025772038171653199840529835536392159778605595805712374844133091702098068515315887192839853154092582695054937835962194803941190667807020710133960540504360787259526520598334437184625291513744257249922305391763857179673530562459914726599168833987363579575443946126193749752461282565803265584923488299807659128423141708077618296497237898604637722314173548091551195526527600534466989645096955455217911324121431031970648116909100804293506779577017477798972866948689187097983099988034806002138981979265540654865363877848695220258687387493146008221369067234012670839437905772168621394676335096734320557736692999340754560473508492494869488268365793214924134897893198702232977917098745374344729789270098101856236938022188555929628044901448997900507362041382610490976085230449301049567581181842349977139592459477774234215740505901747851944490106507043836015836344450862556218996657084392542229632039724608418133068564059878339686774665838592931587130510065765659494554849420910775300990561630852311286199697197025725319118382254924786660601302830079424855992121208153627093923095323528649653209262534986960629543661990576987961076509459074762312930873435985153319890805569973131724634113973035455286690844394076357234448204074878748453907719751289045502276340413887373533289537813299866053323068791067868131367421675455326746545054356813420298033825385852116690592789581753840761699336527469417720857416891943682331048377859170245314370934390604954846293172930514741352959369049310017828403819794783113401884035843490007508103950027872969053463340802911991214709677995900245680925604709677214361244394829282806368816559061547360043571953793181784016321409481100070239726169492510283805195559314889364754565746885683915044136405717647809478343297744633425963374311742188526431920620320437544115335869736186693042629457491704256369538671702298142549106478318659502300401856857982514041645141310455598357490137156547505585466634689568270706040103566013499489506124895832380918719102273333419120632705296450236966495669563730088568472586690843431756772927431870848047437149574464491367435530868574305265980962603408886636003413681349982042655149313963965333673942522596813803543874606726879300014628640193363868281608034730841489091763787432118746368591142374912850692212158190328803742241959041234544646980920994115922005482198771943235882516084404637114650488985939933980802247953746775202257415109379774766708665932073562585468513977510392877974991078304587464838792291374686461163778809703351873437058970540076690099157074082092231810917346148559913185850503276971108300170479414819049837411833365441078643295910175127768773557060147758839531051882509710707959567137679600459400176601119746504911347509064107577374917225253869065512030176507219797588782209300216590158250957902673619084412614875163478253232073524368965643476327045607902209767360112034406885038040376514618008865647831179418989938779378758708826805583624268717355597048197143915623813158948608415828054779685813224352707812881360944903762769629938909778812066338981295255852262231968835428825587908509088430355878306772285398370664519900691836901198056585758700759745402933904226183843133687469747837206422799470147415593973193105628927416775282532334822075297219420835068758452362171437004210608887607362901589622856207265733386818890455613314298307438936415646346894193798330162175754667605935282215570351148470247421741625689611035805706050523605957372484923906776410156004233143063961245371413437336457863222533750875961031523678505619080598438037888613591324608008774611323152000558936738378904424665745722631208299826729570907086391361915756481124886457437314939266099145170877403615201355574533658207330960411248383572895537987389084517846374383053028333426418576375791380447411351605832427253928649487550121167976939357972249617827641735017702981803429809972309855882496305531835522414951886643153992513286507991384299610434643906326107059674009074558062518900902600506415600362023154828288807485661575573902523483307479724746257613508298225446098463983061007841945486549358966874884510901498065905722782505943900355228540832014594029257780799131697359841781234182293898948368876769171123866370335652596362593087144990302362102754600647447916335100937052634920505264308338041386599999695163864193752309224883730339053743793515087611190039869838725243263555236683044400101240176787349722896340736992458369647596011912157503121034107435688137020302669881916125277165296033671024621340965603853319195883598855798397431810303487371021883571542752424936690270562880006662159888560168639422849660095143442735189665838556027784545967161923946232764785925625357165359754581209549599141643176761043517554924976582427373754076251619238193816096238326319804040119288851161478744364852440783291487863197120817487559887174518973536191189729113018421349892569509582563081943457556551248188990638089485690494586416902928020753384616527747990128163318317740128351914847832381447222272801259816133530734693161949795939985827578211909402653350809292259515823913218377952177252441413273514837430279359615192100477919464682084897812663648613870251322488595325763176763322402630908424435196520213959053544878673560716760978862194519220507099976063067313166378395786587253384687391924225993212535412456866740509806174032893121039382474653723516802622608112646652390508706479524648205112485362345769523596121167621986342839652703029441703702126302513182845355199651722880471469811828254829165554531024878517932654335398527732771140283832517513213219212805612385153748399474224674663749236309769104917261330956779848777510031832260687693630465864213854722254275172497755741374261896932640744334457539303635728655955975792965563222610997107985572080551241655997474205230948349783892402570215086115636740228650135856243208058020637916487410501532521049079145966912680866118920865057355629860683026045072197727975771549229504386642843513200846158052400819006023602772613467551941915280964634455827883577106488965601417323406242433453107491536552480694066270623123771023611130920037456850780217694223256693738567187519384340340986907335781422794459665226707004833092903415370620629822238048088140855015458545457838376482611434747219572073784640647565729810404907112230030275786259220987813209135511127818093178121072560347652133364124842307162916100327550420306783158029365966531173798079444576623106845089460763942697011299797727360188090830039201383666063166823545707706221066785054935266901733942608291928416069260206015544799105650117385600386371746054147362109478267687658883430886331726409934616016397725229635407892833924305106813568818825464356737661247685443805818329851591179193139065499074850216158395345128705840588545457424634556804373135416737193753243773606398861098803960121404401586233745203461754905601141374678435687366408240847933233131879229655142761883949194977025534548491498627993116351537135776034731122590630683312007815482643895259774112628016283746850853099807538047106730191145939972312893571382060852312738869973368030388150128450253522432570694542483977719659487736189840823553968083129924415894130539492974869526419431442102494427449062461039756099507423645972952506489843511393664136399641919363803624858924160124082280476795644654704457423889242206000223871803343422132230229621682849889746549538578209068598432935545610334225890249694687376323298338611640462231500160867457929481048234122033080420335755167761421761975821273009087463717656840299699187698597551712568578864610758786831158832899965872132488504578226212417172613054213869268176603365506534134593658684475349082751407180426215474831828040251315807265492386769275927187246623397479662031907620102473467440255179874104411750924100102396748162591611896373676254923985834541570661240055573988679554852223644715343665109764512532633867997114573442055418330607807251947346519062763750275772972868395363535779097960539646241652900658451928682327101039662981968825449550919054869759411922299404568923514014296429228692277328457629272107224955449933709181575474989365337037657784977189358255613204873970336182590340011863462837573766760280588708162137393605685730284336361965372473530692448177965514879202011323948690387193291536062230867243421270591121469498703744601275008806372860586001215523865249737417116573196933914496672451242929923790586371823192566122441414785194646793769424255008167775370283604227093472798113443018742396151218422590493365623088811751586856478969028876904580697768183143945242291305766362235616477700224311104139135835988910425531735295523626960563302407221735754024548474351835003373766887024398207859700104041951363631227936126410646676097722028523274622453267487973195241772736995288153456724376553268204788237761127144747434733015956445513176913050665666682831226816644078182190741465570495114779217288487936073400616339814174654706689004858752644045833303808927924284401888780348340252542227230272312943811304328933736256355717047814156758052227554853657142904024967191755258563212093052468304295637095338813786029100279976215557410420543163698638557003997001145258454023423089177095635610953612292352873816995831332130124774396574645821987244471430950000560447682492118181903961298639790194543842178438325671126058276720865270523110163188239593818497760528500603939729612244076040128378738451457956842232153067923378856939714499110768987654516977261970312866563195555618827488665227653609826869336817698996493142887887055523305297364231665447529777158747184301463322485907085062339335818288020124190941181618893456236408607933335177205839229226577847865668502359949724821704519456300712083066128360494841547728343458917837098616079061768255637195702491520391681000569997305359747809838723256590041623602362737423853775116888358361260446494014512845012178750751724113975923875511431693217240867789866949153208767847422483841442306682419402324603798367636865419831164387378955274994351032665178852863079816086051804957133712431195656480226472274123614787889030874090158448048942736279915404618315279510221592518056548981846213832950351273767824742375498372927781932832815604790540053916499440327316333583477810663048440002831213850954490272439171435742663986451230659388819141689913629461002587622097601773375916133650789888852451767899215828743035145359115315979247508964874431583484347585671314984449587285634099975083612441298256728763793927598564642984579479471978620695913570144786444517379255629484425969125163530026842743302467896199049133799003517044078415030923551165078772370162151991565768750591966616588828368117610976246516776807623596763015606622920177683227129664293363228355436053052140137169108743041001052983464578861405428820044768485660067202276636940520064851164475653101364595765877800152609182424930732568688290075079262374384520693576818348083179123815275476793958602200243087466170041211046264315103798217265728182962872323061885041702121140784696792638804264589819655152826336933246216317729837821362715693859498822363595079476159848770073272398295448560171514917058324634204848947247517506824140019862328484023973831986342587216159826991887853498286444656652812352704104807429831456603703729598539735455432745323595818424917331936837757258647274756187015183667587375726237570438449026664746035323866860117800484802968749476997962637045469714221217154536453958338304249153900849378725621092055746347279952777026572319880611862042588336117135229614879573984270511101077749621446845288584366000127613082515953668424104755505723934133928195924362501698589026781198012108212771253205119417116398955931335913692099546442849709683037193315667342482628396244775856451545903450354732311430278533382527910107666342422474330113385307540099002260949057107177113085438572193321719669188485484612073875455781408977691708846812867786574641077322113921752245950344151225855037134945371165180241374836372826569364832968334382722284979048411520566645088286455667809094691165318063933971756351692430665228227962704942891130911308692412319667430615034817472666041368854621633181454675921138414035665007595193709749635749295768072811571194807979933247994675011169460469127404448437515891370188707245591846543521643733548550602767786045029792519028175172960619224919284129143837764214631171839519293280057278848795622164752471219525210922051134634864342314084472949722800923227937327591621047718981910888684107270893591131883109889492452983551805314656419341399059545480038152348291189826094252504809648029867002498054115469272260674468717090561084082411630425204360539749613516714007355989628239196511400313841594318265193085028329090925830811556987534693100194141919215627798117567757958041519886697553737064710056115661361335110869122473530974328616683063965572297912410809757933574459490911028521985509708733372079793222257232345189194198152126844619279628877940330651547130108026523535778694661892273013673544079555692846954672585178591023175529538917438492161582664374701106625681603147231687858145780235473726513948800726386059834953738350803526105189677996443503026147792102601505325111752842252377070463986592621896268726281931769257028007530196895443733482467397787886906892193853188351763072411421942009332813974257634875326397776002522394467140305529010258455032407261860841064103231294433249183116588684602500583378345743672571540578879398505463326536195862403511979535605722571907412303656712279085956091698658499740374346890458570544082641199930788584766746320335979956549332733429808328282482909358861222236336781110230615393173410377216481398321491364540481187809886156320313709331110159373185288758196535930454463187666023510903038888537071342546069513498659058531099946669427187569910002009772674007771573988453829958075667738677646273192234171145440395708651338921150884259606995208410531842513187085192781112075706377054796028775088726576846565956408240476573143835380709053228349849490321764784377385614961498857177386977845897762549028835671102771749360120133314294921672519644267621509193677790652834814411266163160675568498552026767743735112247413874143078940803982037995915299067652810163336396679421120601358810660618513594034101899055395177482653650285309696636444251390060501963330438463655791626293357568551327988341338151689610922247103253051572124167026340899166169628084662319641389644095683095618251959881307812342284686750514288237669344611870866943223528378231532728211590267216072554828053898949212075645500708621400492167404026679560872232215255248290605260156899395210309726679951448674663314050375256211778870177963158859577551469313002552553811373310677101162023852335144437464664321875932090087866511435420708260919377133874707935720115104695935373072184353817707776426934697640952082353438679096903470441933284418888223198780534760781426592044558992102922310844987507947097523342250447395094440795861777450566106999826762146852196582904274753109685943804727096315559108902147200335705170350379706063944969387870860019041168334598877601559286927122024850915427980382120971747200906889426581767224854306603447274642006432865018319528227435608649709274607950631574478782216605051234072358937116221009028158731617551122803215103622441423573611564665787011885051989803770455423377975832690850706819146306581349680314757155209792098992925080133680980563250082252524751803488181202957657333524453482761478276358626876419351520593338935454852960856949632547133313086337351547046055324466086422558175466708837098887145365102230070947461246302211114459882720613545872152387365269535374709332774767810944997393730262771573544835969191938535180241663762841886897774615255959051351509264971001013892502459478070271267517356031255137363127734436798525433987334880798878155392475951502649454607871321231519194762313685228636772875704955302780216102244158748916778174785745642207732892049745003824309214037819471629970244116353471759506311405705774130136955554435854546962373968014014954198068675786068947808630718384865561026060116249025050946158816222816560178665264494619987149181818491546345866771986234022744444011438936810363557279621889321974095573541710120247982471884885030375516092116428826301952366944886809049346553011576833010203819187128998984660819756456602293072196367938681370157417552888646586353046033738978372218725821471755102126993524041211253432290063283410934551079832996895653260013331442805084055546113405306654242962412209631806846726983090204142708561644611536704650138895086849640894625895640445370438540779665625692919068795723041432023332662586210586715181617276451583888440293999470669409347590658353853963867698895972475933251909923821622725436594003590143627585755589000208809869284109085934981765345113055964120806768722696208772124134686034718465839916350285043775400937603315369420172604994918625275518380853294736820839200592659705019191753824339925544088976836926704968940043769867015089486043448040067542334916316505581537968896769169695958920668583421182149381251255251285720895248596596702873082939374612105432249625359577854285458497591270373501480453596094123270442866709354457141303522979315731364806557515440067872458867247788119654614525841775854719575739925730514377282206942258927299434626346588911413422413983691303134063258968194399563283914748145474633615200175213362288342038265528422628542840256279224958663627707696675488987907612297522436315547555641875470109471553706149145730278398210791413665473188470596627527003808778289144563234940836493543200814601948961225789425631378944868746810220686373969701395537746192440956195347650762613467712937587038508172273681598420287687853806260430716711657476417221081543858956602754234537317404788996084204331986282804125651118884277158040036245043428379624530377688120881928842026765777446160021940993323055952618183407085931415585433393920213642865378576829362737101356949596129788595098833234230414387142899794369748232683014337460343264033518345137175044239610681921124640459656762940088266003797877558767033689164900621893983235553837077741039962717383032695835530859218830930538551810252372356895507028253804182930868792277050505450752756182837963728972555370120888843037708894445507075961644695923909214735796378450693748860807433160148949410732567972437857116984480813575915769101990608195709764206455696601279562310960473493940521247769720442034705544408943613273429779898828434768722890342006021436067659772283267186666494324403267420173709163753186789604572435145307171519581078938741296514610054752830051870162245761479534834422432311060967351816251686150491695132816894446323125804886906080162320112856350767263301688068548025085077840447782653789443328231307245983683759073230621925764193577558163035428770091102133469702405678816002267841507393998279453865048321231125197110131863476816785668559938340025881749597432304397975276598538404528909545303508877482947944072867339049685261708336776238983424298221506086150376976393566154431551558551753045341984959107548376463377451299737323341513632397843917656857189926640905733228988619547477724580489272993709357804805760759868446212273046211699421189979630463864737051075488724088518289040335490737690772996204903992386057819045910465378962187131233733757162582789009972189921957197180524238177082855560875248474589395721421033996898316389613381408910922963411076569221071551090911089539209586367446520312571869365234350043956521528087053302613902737276957494817290834679108772529951332299472916966780686627852713667132231557049949165796986348635060984485792194678970523853360273491269625228781287636671050249272888145953533236660376263614120466902712651697056003342050684306166907626413243028323498335705991276605273981373740432020894485373488965321614655758968895808368646826284963779520639174444261866717279410896755333584591001267238334795619063586812298273594884528828715665668270656556062760510401952152561951948062855543505306481286642344721417757772263651446579364123058078474410914552483323378516256498778100687462154926393961314130863794879097277249893550344663732203064611409803818375296892462975809012086284835744482248958057730246480191855935905891558124252093809370631059433336198016091789141495053276000532417491973156981108817672690934346686759894056677488760004040019085438575065813304547436852346833786324111566334887406517778242824429440439566262008820485044545272840091554737004804135421370362937386512612879759830605297885960852490484166616469519103970543980318079527707679141944177964240017279488850247642397105865087504987679142832868981618804597816543506661574761245759327920504198328209990633519151155009382073319259929656428483276764271792230982934702743991133912475559369279593159810350154808391782677913091508050293903699637344905730629635380363504484065841501575979878802903597204767692622882746288498861281698264489070855858435549223851380670864970356513389349757243255534495660717586488981908852311900495093121926697272502465506839460060279505684102106947544582295879883733667178393826015206769690449381606462972464959548481799527280735418000859176029450292502510423301380922446345157822836931286918730719129556374106546454298882591596881328652209747490311213442369410031795332362245292982034625889405773420817480509182637665925777473196461030123778445678056525452306693987098334000113505148004443673750359980918993162585800664092260841120269762690796534036880813845531939165311215106640614350814001133726955229674501570645712488005092611924039277077175972759556501195035019871138715997805255261389211277981854403368281865700760347177398422424269755159657017563960346560041877071628090383867893764835463497787799941760982910919045091891221940221657288127832560063272531180672281637553670968816901415085916995961094829218183017617957279281465699866428078356536220678476866829041127234499931981484802395106393667689664089669949628738617070459810772490392981225840280223271148128112804861766614729706309740793320823326707727546765824249807698755644252551288840331588596009288793985076139174881780669236715504221794064617627308409958965277217735172197190449646710456474458461314143603580785428664174514739915248087789711214062859645312335747123920629259836903863269708830084567258973887531312406539385294085691718196329810097056742471568944805370391306952650469399707283759220134911963850693692793615965276157759302513737007342741694580475378199876620188990594545127803783240009980390547522662051296885491689493779024525544373234344553196344078037505864374879723505963435004122473014242694118678701479118342007359881447910092750735871269762997367712573976163796338551066142016294374360614569996470538642902104490033984698086593477951979581638026663543437537587630921598234258720598460002368931623535113949879947702471139300749775132102155761393236010607002807234892883143291972473079096575263543787101099508966975401861023329050799626914692624059037725163542285360245957449663080050677106947131681590509605763048848873896214412470086384133917244307674519976303259987450024238005982438967367824928025652473428574348302467348235781671850279146705872028802363552026087421073940737525489883803834595086121078885891458755597228865416065675391085278932546420005410169322203891546652617745346845263970446171150908950016195044825285888625979424772792495345212171097260139744301339714027759578359720721678498603631663823084226169947481325170404711515003676614253488026963606290970989539763111025963724395737381626737328628800486820626606939276961058297224060625297204933111867794075895233378326937277391766485314612136090988191623996258945525557426921786091168584018256813967934136900503771210202043399966654102255789622301355638107267203303570050016206152379940724967893377764758669053540661683499852889427856237467360657521295482184358321669921073015923577135012462863593085682109760716672795198432641244111991920651553312676468766998377041649932230837365465788149729019053952937708085955457424368743942412304428851109116342517114037634759612473232464673983702462699939633740893389547384486881722177687828511977582402393766409760420976137594524824694292449718812056132145604600981989959622217116257601937916489621220492726850941840997091301481902286556651338562275844821175471543481744763497107097241093650456473567805998143580274853584598627364047350110974615433412011498976983314297048138354260463159678038955387559765511570152208120896847561854051132732886412551347454955465123828987293457568317603923661004695942346712841978894157952693894624815590322435265767149362159806851180476782088312493001844488310600592209024859496052339164612068684020519008735271595369194459705065620825697365329735515791919674448068244376404920544282995199257403688440086885621896539648910018180956405401562775951665815303667102058064626879274965709984269713977529245766711537536374650611068253808854371648654054493327339474256904414644096833280862415095008165700868883233544813811890165279433951823069444686444364570651053503244918550039035831644108348691261233238058541539646787080669819009206383714110515117947908086876150433070892936658759469702055069086943387351085866869513231906979348199396868342029814457934835778152025634568717252911248839230239315641160701204859237275629688573250365814239008812016243341357444179668641986451498419442072034781145645896481921825455449577777341101762768029236264402295059435315863369397967827262029347485994431225196312554136792608155897986445528073103939098807280767205360868023889957736812497014175755128705322266392260505926136513992523665739756834679777341168534913566824820185214001171581936682555521154190611633538954096368538239306380054963794685549779975576268426901723094209978272251875573521777910533821446603093253034517575705178189367531033346120771337806315677291650664283338548119164776177544551764633917814949203154402773295573413387936728006233610350113575380850483738000324263608605674258851075315970459992064507847976697965118509471921101826188324313478032448192268102127090285512558021178087779872569936590678285234950671185624597354192830541081002837252672412775013151650916902833542379769139544042677682441701549717378864468041336788791192989655081679272361365235908940218664944528922734874563442947710650470159068985650417225089111814509279264729707467109648638730754629749608339604698767033731376595839764387148213619036561766249805740171185186395725172952706509071303751074589806483114566266429109924563822273467934963665204524765729285145062967972407768142925412639024822145600307625726749053567055016085280094892225613057356880933802454057710564153791621766926701873775705790708587459712077508985832066304357818559049199081058242177564728998002169380806234770511721194585796957602922358327239076600397780500376709832950994311346870539280240146471239653868423922910030556198941177536765629382070794232728748471006229788036531552460568471945481209852722661023003815779236603041962959248396439769914217479351402295678975643187069164688615775711449428815721616588674454067792685902745150944539228130528453067422449916303309339961899087000103174243247787164886542813289961575006268628484640716574179726685901351372650870337271579011357314120565266192258845513815523802962352926025485602708242814471488276373432917500643898357356320616982232840343509392877381992427500732594786551929959844409832369964576141160245983746025812738377300249871182236713524600265296436492458872738499309723599463581324914084510737381754930736591541875796804999829670483373014298559296387381526593442669436456753327624694596491919222831968339892889443178939763345546434602478871013277309693736208265903923673681233007563631767416508884529551734004004169960343236726928265340678735285857986528083208507883113830114128293700981144640723249926682524562859774762491863278088114108913621204426594921148362155672784184827396364238231812732093040290844867494605917054602822670663739985409522826953272879701886881531369569209023390495425856619233455081118691248333468370855284354861219949497636316821755055818940947073404131959534692864318650046967355379949794635773804392920020159840353072566712679071985600222453564467278115566774115226860887071288244314620009041758881690771050659870157044222077269703756358616642423089519816097244982325802709487743378894643903256290885202365648386181162886793106285426221758940249186975735097519817156598578628003937937406015525349436226893317345735937577697732812324206744633354646552223896060315905165377697382607150702523842261289484763290536105645713902801611264900519206294540889158485750249069328982901239340020990321316456054921342380104458141852240623387655789525536866256007179279109085969694280770080347688764349322297248021052212575796208211444100415034794867531780151627689194484606372483000363863095997287949441726552865100244643727378476887359156705815994396313005125144832951734078254333263994503558249738567070956417072075410483396572097852698255905839501581394026489208958528075688153794846362281638863960480436346032825352608333526253103291572643730984050894824679485116563905529661687410390102290017528661110421397817924543527486955327964138461445142983246105604935819134153184328211556678720048127585740903212151033519755522467920591342737296343150607201839525988857063091224204843185296228418262547252441350968649260978523579381530949772231401178256131165623658580062741045215779669948619113220863841641883259843866871397142232599011347328719098489244749939879780920552546410084456436320430719248226653579215440619119467378992109935479101709889309902054616599152340213593955279205114674549189853698920019062506909633477345461432272955205688354992297500718793433826772384016909502558413519742853824606303021754976974388896415425708107877094528923063983679281793126205857663225615242715632721649669810626829679773667069358865668656961694178112198516683160470101633567625350472211413470130190874268442757280948421664528721247021136442196781313215827745843881120917350819875930041799802250865442347012827891261026659506315869136448208893255188137588043116072533248596575322418275954602167764471379050312299696054819209111788989444207299149191748791201246719147689411468744700882884191558571897824318977583447957583515504237381637135966060395229213701372716534343691831650225942881496742793258445362141179785475515627696191446690789957123133258192738423911039175816967724657831238021764816588050171268902516310851319185860371869503896491733460434327412896740920873289612888033621735756067999509473643216610466892499208356972120430160091938039605089993298621482346538584230137876016955646107829365097643871768225202492699667784303336359311583728746582479809724129622010424498676973072930745995400914255379966643591489559328339850466528956706817263980026615302046838995510480809172907798833171784990111760468881135592641891137322008490162965383518443016196511992070417309872943609236803885131358343792735089219552473211192019121540023959800531454015200385249731373694914629474672353650506395856888474889224184394171709790839772282924118163460359873841620429479979805279786914919848009011737657981751038573101394792749395516640884995107445150469857197345820771298293245540546702640323339867909889442981410209091063401409240083508131046487128295475563578653045469429531549964346605821360741540473095030278469106133886667977968232910855162078050447521547649331880553918092297597297493854817256781008622308037854905729319324986806054748035741427105540010353739392781278744808225992578792157968944584568742764725785390984071276427967652024918441220413402343636539121963608347986285171029644051106501402217968929918021085401097150001698442436654116417130105558722003202237550540549935433716085740046786773723868823967208528651284363554612203581326459225051698332893911095665745465623373645129552980125014230376554050707649478324755987255011483872817992189434951165046797792246622945877025786741426734694367610478362471226470693244438569518387085747806683206335156890878223961737799855749834424857806925004077997733194479761763528871850808884728627968458573135133755418163638476443037716147995885924428161860374386971278091368848704320886316574976397301905328553798095792733064558139559085813209685064796507875218654603140796023860635709281440129039188059860523492228257915240863565324299021849397512836838946471106619382388913784487729396378824270965016913115711606246342815919974687377677522171903834394129314076205713453804684647322655233073384194365976516540622321478370216900849394414927732058178621434564302687489426574113638454839389552812727016938683342525081278475269057421144404316966909489188123762283940423092968807807249283739099034625480268692141444687288416460749802860187827534907078169831769528186184082548671931208221281804236607502743705900803508356170987298935194418518379369496915639802654439688698165465593928266658955816411577987092979749793035211358235709416652290645548763565025247691178719176347167235359730556803244052255885112138756238090474338095311060522240874952556997785013077911522170060237479055135255728505508695788025348851269761458886445489683332124346718678974360996272816596776968303625516280711329323852588292595095503719221826482849980305085493659073956783145288928521208752997459603549073573360356516679274241414536413866366404271378983409945557687576182547678476962064745428320939363785762041909539736356568613845982341479798651450846752870153390614999387338634610865065555909811519142525741224127382911789301635611319919391359810778863051230418523617202932777371120835871977515738573737444050656444223913815210145844328764890302861778294699336660057383736859194200527643609379589360243377786401416438434823385621486163158249743716228181221111207906970488831659692476258520818216078986961213101052158297294438002153871871775677828797217677025549883323050474719211799895416500456295409928198975069291918797389398212053360011196413417020714301881319903304585144121208647536967500063384222961879721918859644206456649959082019310496323871482941313703763479805096487334738210366636701531789664097699818033470029609208867072242770267637833685534877547164360486231431704973495235577903874319113148249681722976121897037506870383184418570970442321853448175377274528584632302787713255947034930908397449333387446438409192924515320765887702044641528297144125950853900737159444130487271886274616990551592988714511444327056020057360580776254934535256937531316742417211140519673853678600908025426240921215410597713603562619734449636454902591247743992413525127466419167386624189365782487461131934210975820887960410845811788312604433630006332656256653271644462019151786693153982373197036693874031876980920497646653913741425449545725447637787349950542773790230919370125584758948986589742082154497348691388372799121917092400232025931377289590937770811413452161580654676376802986086031611122405794191558035158532990476124304443967797088020962155092221113964806891040545138695070068679905767042374795414148135426263814558175153507394492161338889392054986228708787436844520323495486557532555687438936350574021010878103212663252064443457717944993251338298882016635213799084134932403509821461579982069640955767333169156486713634208159346164988806787184319458444505883772829675096036731556257163720960400953586923620813666088406695421845661194824269384543217875149788674648120701535714016482562132240537303895393036825316401714519343205824886463372365458489263640816221293433775160752298873697240619482219709049526373525152370711556054893343836966290047013739073336786243399768081418834431252862383522843737668339769210144034580370088003646603282703500306822996435354346037665593552824916318826343998323220312924351337035756747449600584490341276367891606376749900545690988295403384420555733501088774661029053997838930298127408839030035653457886397665683215357840089569692513636462272464381198323723222450989775396822204224064618308352893335040402249686299032509750754865615863350252806202834391717679824175193518526472600230715192763999743990500137784847548569604756749615277845495007821940887854124147377603563160616314468720508753954117244386545079111165432341903216967118624398363695609907248406124464595218621888706572032342103081149036081591395809299339342752610516053929952897944210136492746443108782597240947778853064297877498494640963820114046374142016368398383552890459588349594170245494662027462448713511886352402151249018491497801975324559717737356026169929984638556890916473556050437556934374105414793380818342334914818412688701234727501624767812389633053221391980016535679757679700503469143819180172579781191815338496937231310003096811149750066621983061632187490567611169441669681338296272985550016112733228447516663468497769680286869632813032508142102243948155939712405147185562915382634608372271890195290681991559274403770348418208125007250411047755406956014159727302036813534924922510928039742564187743663153174637629348490474017329435759342000670321037984321486203904263624050190206831462360840287605114403526547744758956794464101061774799690624120144755018288844296024682822805925970160929812796359704708481805429971254618769233239900327258171723058310556587024841761065685298520743497432311483980139584652220360724664827287101798249967290238894416261461949495456005734644805789943422916696079561017543303707602237291196369073691923170384110011632429630835118284926804636343629930100111886573349431627154026191213063520443668846107559804902779259593331744035718735217827220803178072522514334716639088726938359338605977788785277654864010397023387042263328694559520314326712149107278333725623700978530866848010382773501650425502897058741098007387862422486133424355864748806636729653089165071259852178122969686499610083068636020551758951308398525493762109329148972595968798222682806256885186713756142330686218252910376123929844757108320325701163097765662757434420663585264245591365735556035374155978225337426374846196533296240147000052300834250024715074960186393607065548443661986218675938482153727902125315251841408642860955036267598220461159480372757632191154481176602876289937780504691702046486934639902465809120201662400951205354568705975792662639200187049031657517100936225117477820649221317124670831787227810175690438949880906290561408206017055627912805403253585219146046883029408477161536937556640732755193251975523047325600568526048508699990206858079590847642200575925619258263700913711902374640556708060754555675529098762633227474272616417601668304931463427428923651189632003791289451080819134475793263218029851387012378715537311598168611366312834888128561008295387782570448069746692161912592747899785724744712643921093060850003499300582762277107716621779973022216436856131872389657556647881010848345705712060447866909810922216976498739826885755898757550337063660997736311387472867181679758165513387615708086319762773368083112770440551551336168117939490038708856919685382327771916366510488797708562401149362670579408810477908121815608100857919440012640967762574884304863534749937317447879432094164409754946485892091113897313981777063252025617737280631157664243075851914067003680449855265063997076298659030495216048444401674577537896292863178542196985951018552367202414409675478692250413563692109019555346211174021591318313288909772002930423907334460719884773823090222341643816539297020961949753160131898020864422977121904876078850147719902637609515125057643092579108841411452706898515519557629957635177802218497151120630625337772470041211645700083679152737875476454810145585337614575499688541641236044452824901711640617284592111684925612418625682457768121904705371917946451589643289934838994748302345863946750361217460844238296879725850347260327838948012141081239257006000872572800082968649783765603828620749306286958400674228549504616348300030647612377161408041146467398345348390468997466265975975807546716695898495009862196986429801573854691020757489176921650360118715317201919847531729034637924312691997914785607547598625112340365142942150704131309552858128945028882723007055687181223247464583136930163627398281077589462889977401891175640277867782002479851465755879276865610674704330130722916282087416722026615750078147345627957854765143315925374499675101656230444932401124974591029351844123476762641007998267393942689052556248245025845818831847161501632432634770405397377552946101858821221271551297634702594200724699810237875213498725297237749836637062289046326049627233710700737245040288238620420137498692466251910833952703184522646008070780264143681378502897555316379709971305202520503625287705779409633475328767505497460010631666272270999265194391319876259419791692727456173171235817997133123651909032537943329392745872104576674143175346592522834711739595645676365496075131177528615121593050060787670749633158985094668738300513566315288367681229039501289757351427857635850587171287875429960822468019165796122325152512079903534034825867880619786687390112212635771640371199658424659630388858093566967501801988725168530322695048820338290280308873495466961122688638694747054529592979322968757268202082554999917395520705696862782886281958405914550104627331973500704302697926051495387785929331948725742119888123889204592769460331297395680416931824256219373749566554676599560062997555562164297138374132147950008300504729829563039054484986327332673939880263121193344181827928928977462634680312741907573424247466465497798752496776621695476863448279368892086308907105105842113373447883097764285682131384619555847284085518877224820336776847017930602934665135122798086726335837001091758475907802704561083739780038370409601736507992506756393442280378288382830928806358887321418635591446624210871681493287575850554988287592200004657806737428932050308027456351219768082135637093120826194294165968726544962969229148484829324253299908052754362648637097322013785856238620808533429477279482646345781723344795406447448257691352964461529253947365433259473094122113386358247455680038265647699409180167319219765811778773310318839188508046049474355102950906466880819975750679211255353527564981465016321881214638730133416391002973420403874905583927766283871601393192814071177992446968944434726877637572304045538588528753992479054344793039421231174295390945257640761534962021876345311395297631091598274156707917804776555867534779009857575664537313124716933356562762823285978545139813193431564905707859714257819032528314683504162077993142547512703869663194569080251083551988466972474499837487789301763375588503794573176194739849076528801565060905868756306414758845397587096890919708433375097682495595590186428092241107084166716508120403690330897396681009287101248241040629545599570691874755724179674328492709455343710839348604301436314067737790181611611529002853700014225708528640743903635515242331270996603256238310965231533329632578853300677127173793312289953533096275351089226806093497322409188390696804245761772035845598031124568370543645540158486106821786231046809366066354097185867642994406541140346323798435005733644524454387149788861699948889419957129599493640111227946474959394370811835611080640027474149621747115311746023035963038122142946003717505524899006536269278016412754055774121553403460344957447072731099067075984317593253881292146235164472219309104204127682014382696437238039321602219157348243814056117619709557508334469774900450927107407243111185522933369154211346552326245136317167905189405594401925624221003334791392495341085169152872392886438428280618637987928261640412633681455054953076107744491811671527055268232487468561209952909385113272359037149890321002019149236870518706297780450909535648017249503006422106720157944443673752992165935755017060786095459651433834442048028122064470764802200236077487312375528743071707714606214974025187455763763116303326007984422183134278315587489363789734272515989059225000468376042252697523989671988934451157057221680211802692427147328059145396896387531861253191491900076737346397032505960517459032231381153166714684119655801823175053501914282283050605833331910279981795366736888774898936003841592478986997086982201349980036343652526255782544302119573556552457411626015774789251689342855695891991668354267459298221209537499037232137421964806629968937795495741103904860654954541282241365729931200650566219709887591391859775363126431647260071875298167763719451838364584045041446033925366395673229066085982020535621811534606146705265749261987086937685588545288586303899854839596307855851049085932675776531270614216758376983711233932613660632880058957537492328492240606576839067728411702491915584829172835441574831147644550402988066261330981959181640966370045169198704075398011337014323668092803795806698968211867105880397614098930747867164850311312152715336144231435084241184402571106795838638448622804379637234203386347820862076447193862504984469456580638837499690642059805458849722915176498235328798349990431532836064969871459015572394648456264611802692101251979972499101537730551199424052230475022455378662648244368472520283223904312254475347941196368790213185813375703008126070762508468278710077589551371200219840463227827468211350762284525739240637436094748639319583357386190106679756584810212633426120980606713225177024505867292109493829530018807559422895769415228650751551303075131346141386307190856547069037630481715815482367949066839147170482481338268460145822867378420084451228627246115405668903885565254254263562182550497250455344604769292033033531946600314930446572868944817015082555226946212028294628113249080692197285676150768191311522179373814731712795096013646091413571440054923929786264746660987732130264852475254368892713457741730482895976658560864990114722845025692571886136331173704056038837789742135923982109915557464001434470018216229712914243506791509050654241065352513704816207571183804909518431532907251105274478175966330095828715851174279841066127241537616820070149235181170412211860368294181716428168771798698674516928665350698332552328585842821497719612288351758395459602256480550074694082207319026395438870398969628533651722680695432325166053014289654179551655406101500346472903511415764864534955158734265000342353401101067220882774589832841142276597600769865127177052350674276315578951969764440405124801143269671355692168768040231143058702488996203399259928833025240108903630460476873738764474668137709507017441526407231416706724977306959812411447462462087942647950711055195822226229663835712232385794735879718468280792585853029981536912460768702983294569916168907812068147538440735171105606153215881298177506169841002087337384381844134739832820937980093732526338906325404995379999680913472032431006875048327215532254759419005146279692202161737839036987154537824739300408612215216374968508986707966978675292924113362422238823562655163622844668595969837000899122716702280227325411372456666351469207811989011808208717234806256389852352242045048115103661266372677344193751141254788553602567923479407694454748431024539496685399555247899801578384703199482363241709383880351192390320725767164559209380892147048474827657128316979173079227940564528682351865196204667811301122725820357407508461689233587112161014064645677383805863938538979292592422805289956771748347652563068965508034699577220782265655712710301313117173936439592980391612173822142069518794986007786519502795252841092753757510385191082605196314840294703956272388460092402403458768074755882887003922295643747763107122862586168877161665600028661049850805823834233845156630811478575963062758673215040779904540556532457155106670944636127166178797246488387660929001968595480899876042677279710760248461452805478025217023807095258860118549956166281973716291484879426598083290391258392408088122953681856241985103346148713273256770748018143816520569205835315496870661555423543174507340020140076388840785120501284923459421825383312776079342534090720025737763580301338605050543112890718997587230956473732154525859944010461572339476625480522267949816084513532732133432773791294746149848297370163184920826842300111475594592823811847530114890015686973043587023695767939853325308687512235615852347449676880177630109788941700389469922971971690410170497639081936490325653052509859193747571861802531739373227573443677878963847753505239403221789579620287983412176963369107879913329737319271537814307010740022490903032348726196639324043000367694549008299227353654401304483861858172659904384747064300369053573366924707270574091924926795412276683512301226382736117240828956456793571478828950505667837486057141854327126112907085299162833658812458825566336397640912537377245812549407285502828858824600562802787403464004662285061150029626064183864291548798864315829558771838899539950127798451588422411484354326057777438141343409766493764731676527449729236266302113151258605702539693458647786927078556905150054382656553178541195754927299233918139185580883111135446612986622934218378750938227042076535871795140322956778379757727443173385226067430264738728173410979313676235874237391720773828293234299801882333776536025654346762606951602225366972681873172396272046904441670879106433958185834571164133599726179556720057897281691460645714162513363410770580105073189509807959885113659285744764762325459434844061538515304036186931267319096014962868321794577124544818959855830581854825841630833970919319135891548426316081190596122333131682849353261375908897518126790430775398546500897909917745634919216462169119756932011309554588127991118408711137358889434294633746897592296761622179686235194332876519902851947517480895494768899081113477531211503722840633968873110210944360127144559193160966448350903387086109214169588914982423063082838652787500143746143882256787230932147099790617770131404497117498003526272756814652583849872017784323752327872305477334865700800353039044662693511674712950211998477382646431163215112223655919673645046270299219875431217042275764467597248164717666985999845237417638684452189144697816986437944944009970853344810814061122425867243814456469380053609733118584624057712956822601629428730111985083074194209542285720432238935406577178229813027548482072123294611846949532440767101848606084748656928893284905751539084939523575431082569093372408457397878491030677471570542325922558186473911572436929928485999656851303286914915264239478881610732779818858647322629128645764708913938821173586468878467182881164346216349637569769067854297459161434911205751192145888331322365815857768488736623457609216269666827413259877802132278088529214773848781788916715513484077960436933234828565026365229642332608190693972641322757406825274505175488268485164292554338258454555502967878813795389537180444538529665296334054921131629915048265953165057121022513502811137430852755895300504185701434580338659502301906767332316225531507930311441180274678940337544523608767569967663456308442916259840536526341777636996297399685070393671564774438899543208327048094223109284874093588269200120600696236878862514950345990400605002087109785134319986368014730660966777616651459681739646458009005197708694183060739145282623905331859360923601684682725074662237600464831194058493826929278544900988829071026990119687153154883550864625012933983063164044315875037268810938316332373730660619241738052549858075658244560601474611020840762680829907092831903334938207874279040002444936394002898932060118379614480166971378532863632719330645027676212634033152237217156105066236380516621885784999527400034174913737512238925886942581191208419324232237720547842080165854680164931698170120297194131332093405418888256467877856178527111550000407634758545662980976551851221980575846576418522637248097951623472667917346277206501344738890470593217496980521203505167076783619663034896243861874725095723337713741688889780317350293927168604631334016321683583979338471674876996031350992377930508513195956700337119108302024467373286372457299943974582083581759766410058860895746016195729845716707756970080844154778384339305912244926755376862536168449813507624651201482017151999152971086295322343184587169876989896306977550535551501293454280226647740776486127234932191581539565456546231339395777438609799739699569412598649050631135479789126290592376566002478729473178620061595634793131122877207060967226221587250677783502799687362367482537451476478853467127902531397133263636177741793834875959237544626340733844345315896829125002789553604146196113676208400203862419318721832072878500486183041695799005927894720954636824383455120467449489950830562461941645834557369075434809094100796179909391904915077946440180280483751488015030903513568077447323815285058450380429561478918444387100597276058437484873860574513813347369970298888283212687699380747343687473133423727016762091114193751934088482208522993623154327113784638026623694397239498214512660829897854872385759036387223111651772942203126335032885852983889987469274053515022089463226566485427958211686756734709290010386096051342418482084442776130879673982589706597552373399338329596206341108874937019006664636168987730295604069178317041596840019758977421569555312992322852282598430759793269904674366332788754895056072597062220007057017936157165729730080836636503600005815682289885462006892475199604514486529525698729116411904670955810229758432776613234684076360839806867947266153545937060257781183994545848111813840863748640473436076917097810564358363304282463017706641126014218895968863348109739488969579496725283890897133575088206550136534069719742952765211780529929698107087008806126667590768036325074843847219733262907289369057430608023775165662903188294173806089408035728803087874130116409862397631795281342378298309962647330185304457802628267093921532990423302574361521079712937674208251337960683844979491745553900684150367868335118644417691268707836057131574061885385238486859163499086201786236466520434671223983544261300614763474681664312472376485262913079351428131671185561812783845307519286769580883398889458514465137530932831618940673939577120625342063674459459262508757550392371006029202050699809755938786845050187051276164649741763787656999464397532415927656977281455579314270832775699756824230797451067474799358824988804465512845400377329388700113648037823231399673993730445080890406545410803923703431100323325768020653730215400296662018762951758542324704581298219100895800347718502944812548803745739591604979108423743569148897219542272818554867378980090945617430630706943049578912221898987512731452059258563205707088196759241041770923617596905327749180826105389643673541136896131943490860980189276334647633537830017388957960110740229996712044372427271927480437054642656437385820541318500776569600949096598321813488984220157251264713690320932255546381358233542156081747291581054227833877946891837249749799299445011542373564650915303954812488747725581437720837657587755303386185357874040440277534096420338307470833809407925453050360903412939677365176211958925002116589178563039823413311146224237457707256461252990385091719810699979067228961093586225501603151374607547227558946374876312849187923731055054348618786431893746230411910234602058587256368677996372058100715007121240504766754701527388304979502759923232231701202751846427703172217667320838421884404806710772567437170451563426139983258422175760922163839964514015903391274605951425740047893024563726207059756242342140816731459344232793046032833577590542309657613080278219773756680802473443652184041128240212031499037925855668204804906997282592217623019687105127461884772041833795007726167058987044814757127337019649392765102539818816801935185312447464726977296215111826877667184481274858731409755601028667354503017464028895649902850339025326623522822656592215644141973954849120042564059518699366486235511227079570487917919332805207579458731186448626342172245449213764315181746213124360185413691798919433999529332620885393299945535174530009714583058226354134425963463266644271931194124107972333529651149218572342909853756824178770217215637252913050730212344960209352551654471216965398481871459634541866906192533989076399389463892195525052912687852488638917711727513445306682832655208484517014642606706851845864778403571172197472480400415149261585522520956427430458331029815640602030673035904681336154246769455836313105138719392050083296829907855152284114909377460683495728353624894727873634652927452107124146956011602364388017761561503863533427280015456656012201086245820993265567406944363476035502324682469892340355695435195226385487650275162569235701904928663058044759009503934804850096894236055868894101542603322368290876672781555370759208257800371664527273490528769757196563683345212796447845849240880213759892015660348329665823910506094854456978196148887189378921824765661213925903724315637098556399871981026890770775252329326209826557863665322948078418808935760935070067268501288153652627147517726552813863558583325466258251890576276429697450147093779463570410360802766252603036221597819376359125929380120170684966705649685895157933979939504825451912103072627371880692158573171623449452374104434687204905222047996405074726068436320427823606083442530090835081902994215584765704438669242587533554403460452941218467632255318296048017252687427567124169477604922354693918652214316845423936409026652460887241192807532441544454746350759897744707747751568141279920491364412445329475863843242827604670482825195494502229568032963015388738757114996358071496068153666972867034692334396392227455112149539643427392766031041146842754885787727667915151654254684301605742998548698902576419111418521509970315192976302417602370137112940816203937407978394727313231665821672447214364363371578875475287538951298068851641027291237536357312084586540204076751670779121657961619869572999042147777205239286161921464712933560931817362057718436360428472816954085617530700143599018965812319663268512502414083970904372408558321964370491156730127366016105806472016717663809711009643597664018721413423222731100957071557023200660723762644601293526895726599651928590110730492000037590785940481509096766190108026711849869869262747720286391328303377490466081042293912117855251195980488567183349569834466491384877068631052666237267610977071436019037405542818798472578825885590257538459831433251737550093791039080401339761122298105027506239564409159970837276548540347703511773889142749072679384545697293419618333112302871813523315480246021642897935199239534650042720758344692583735461996338858473549763872722022002878496601642399103357541856605023013454966572067214144406527698882097545780581729230807506414780042735236768348599032669489230386744024561048982424668306335824835435851403992655900103552888294494120679973389915621566398890623452173898733200113753483254607441117097569774204941393476002891168982804910839112540500888322358815433653566728719012965192472220033283887119439952067886491968051191295703022638458295482912479362485735656119022872641731509380145746556006878377503664785280721573893978202058612775390366128816864332049319544116711645934534336768654089484597133016958348768186540068694731852153094258713781202753862877777509944517200599746896252765489466771694555298884144106027929642324222690608712624277553409214856705286844913341107329250286856167211618998638406933830966761347909103431600922909328371552093030954123474427571714182709915427892174509989566106634988471656750941680332605724405970143420909501397249098475141622342652617907599099805276447498213721786421427051724625720103986588769909836734375294835022179392361948413692933455683731851656198388819068605156332267097059028776557846041887477448620236418360696575395552531859566367123741455518241876305985598475627526423932905962628948290266716327700829249352274362708806149005630446316039565857610312159224095043526336091687684513082901320649547423933917654916078994121423476315060422864984918474779330896993947220952828414828144613870787154234297068809378218821142055982978968087735265530726888076235505987503755457429932908044867299451101970115100892478084305428732300862454136096586719694193346947815143875158565378225071912902979668528600541153658111102709511801235711853038550381882686516114391545309766523300985952272121492961517550449234816822586238955781989649651941551584128320757288875579608276057955363218867146193819806120080834556059455443916951546677872278747779158484262788477407484064606543829022011794163354618356651944775340857578365807897661402054316560266333805315614935295519570701603152905222229791834593866034837302099942218386302717904313652501322023493011805703219122226658214349209782368664841983751906091574713731232376184098999624233917246728982930516661001479748155429130362310274647967904840172353340079393386505647240163816657661793086413041345167767113053439919129204672239379539208684231846953455501725031268239920948040822563369494991178254149185490528736040751802081715558296230471123213094006437712219069663529922238472757132404366488111678615306840420953197400617719206104878726500639220919651248752505048841075528608688086045793583516169805598463043670416123358099862840267946670563358077829690002278893335891060314910526672194950887270769829950889859560890406153159772875981809067880122058023517120975665735032223532072531180880047171673563908282068003265105340895652457803906408427706732348952249642554476401473392832853207140915589294072814308725457726884224661807241019205499056612797139713565426462439074557598117915611350138732302017524783420735745797273850489835158768750477789983593038029622309528057891709577510243426363323706683591033022043465429453569711364210712096212981613523110883513016444373655964948878568602415095995269446085856969951659784535848279300304393547406371723408202626101529740760624192622295228400134246169538173665319045852446683479919811141716701962866239764095015224593051866059853388061624201616961266325057910262405384265985668945913669835076063394488066453589873516897422524506325444601292455471556431966487463086149404394814311754179612629373735758713768717297865333026001700957359384889379911586929390006270121085899229850943046815391289052387310457872235626031690994612797064022968919605880343667816279804437940563267328997237302405314635938417763845742742982444292915777398505391258494218996505322615707172130892159575474015796644661866338994003388090400324154976935285216850175621028212829632916906851979034327385587806367206809228450468219092154399016436480862570001200262013983434524249825478222660884082336262320287032280069644062674393335987801724795821581985447576839548604086311023989674954121415682699502527534093522965184256874054504578289582604742889863420530088441661139861111764469392478292884327024342788194678164225920319671909722769341861908691155379579896217166977063243217143448392612732249283092401238413127887953547984254412790228255779314302323092184914876375501729056726137873295771436883253566622405326150680581327559519011178985591543428727926409603319199085712255899051663608707990702598170296912376874899072318564656349951133003776955668922823769678492043364741173454403768439413683338663157025668787411926546829800679778302542079595029860581776892915121292249537157471135397810619897262993051041883563667058605653280344154598148592590099214771824940345148728466840402235873178902462422565028243900159029635613269941021751068797254013952600762943348929272349200385259541219425651742264899525524500289751168450954721092973942225606768670588178375993774723087840928523640641090203379360157377427452368268605591867869319164271578296800263008797360496140576753103199470333858441912490252240851728610906535878471214829939105687225278494213993116277872483254787816213982186940037709226742268665057013815692032180754206137838392890291143695689710650275100960760765054563702262998455035973325408539756171835788191034666015055861879215801406135749003627075203501417544753041345724421777500040066034899941461086828891006748228459229657699902525743371046444812452809492775220781819785471964847676426871884785259647633113473141473469303785888770430668664973760232754383113870193388282239649357952909322606624252197264452080200025596911629060743995867261118021522273756375332164709559216168242324899166749276920355781753299442456352983658045350952258902647769538137543089813758825130771521428272695823382444609062269588525579503740897212268007453508030762168942847012198343726934049526399721041145304384328443826820495661729520655860044144385692482508621660881452922953553238834477222190478807586400424471368228936662381012398678175679528602184235705974416417465680049793611408721993017209174097555945591354281118821511450243734906571248958727795116927955435571668605492226178212822130657621933668429335201547913912375416139810525013967039127424355848612875303040193683606073881036424662256926860006623666223785836770490440031742026277209443136898555390936437606699045636124828552905354224456315350968622356740569925786818985292683287179320228830176911004851539551993146280869785633942962555241341032413625314003583082605341199780461493405092373863887455220735068515799214078278116502438952043876777766336054915308441732294025090346846284916355324470041437807966679619284800836852509372556102191402527969862328875481250078864151459788469065403355364640809881745293373510498825802247062461856616935289292006341721747492679296703172291730995827013747771525733893611152497681342368664600528550908657899589006197456311187221976356040380744283392481204709620801294489999563360078056515456671300400443534634063830584129140099313013030460351463479063564564527583644554733798678626027939860653011496836724900562097016264961013050531277415567683846847552491304088340339420341271833829614415060934830100040513533276243473825986820019193645388924513031460893901359544090451341680842163317855659929937998710947303379029360145672447342046479194665316036833720953645977577974689011509920273276911827190029133583624061725343584924200056486241987594950286384581449578367578512065036554859721833807343905403546634734897439634468908229487292497371340776431782993039381107416243645126754238802027252956761174928504040952103126352849578528638211118108719273367848991184383359634020937092372344098825917006360988955968670631126174267606811848784467052883078157518699564733902338278855936770392627980498956168539050139491588954535433229658028883888132602400858737218284500742444387555603167380186421761816363190210447428401792988472348002171283010626032141478551001527558882330485713201319587910801108550476722025899631350440391596542886230102934697132544964227960625742379738413322070968650009362395557654888865268940977831106709764031962254919169435229769493182579703345730245564786670136053501390883530246900513489633171814150337882724761788609874859894922320148678566981511033202459760607439377793287096498453285578125944226432040556577127567695193894419859040135583354297246277930320844640938433401947996969835059409219271017705671781710713832648457517977164248459699785942227918698134378180262037676837262371751514636232955711699929503552958424543182478573788720406572476459206491508004122635108163760222668998073373602508088950863256429466247312567250992837022214053031443023714963812868208149202289564545433919482095530864122028527343474510214652175698533258839302520467832120043298539999574298045081983686844060773253088752017082646519448207057830386183979302399490031715245983143483421448755572327542298941487760427290823432293445545922060733241770788494390224304975656612580822610473820481648712008029110158590967415927042055871512106245085823507978915000259675271270024314626673964427998845793983623216105444917577647779675476853871592979626414572217061352984668289405655792942404752556613230278095056740336513329477891582441443298973370129879071292767316998317257557160283159731796684543389786077656376162217835759001725434293394767749610784732561687885327801493528091176284516485598602920074587906190350647751842975094431078474854303700619701210700667325004495436899508357944915399055141744093743389033675439327806526080371703320757504599385366959239256782915448496870718578866949900004559913696988692003613398603933958744420106433748151642750236081905519626800630317191526923287974722254198710132793599989904178833862620977873466743503244616505436810648000245214839916686602915607294864532916232229124012734180091797627347986461792417613039336673986850611937724485285839302507783901453312976270959113642576987201978219462285254296596358030589641242467454869142899342881671108806603760436940540028380947502220977971026796734216278066363034019058034193642143076304708629794187704980486153523876229527521762632174186880263564513653344093196300624322599547943047273978167311518433713822617612543872467700796261328758373547850473747672270936966694293311242714662824628584615918107592821611264037102346037345990198531058698770581643078773604444626338513219016603928142686933628783874576270858338795446938515635883790238906217305138776341937743369978771818704949482055701738463175146033868584650587596437534706163380471774128939308253688260751558612274582389469907672749538561434608417614137694536399633206001665048957809315202771305771116472661223715471367897601825092487632673106917131905132954711423214330829549795854251397815389612976846470731676620219200474335249480261016210312716946255315201573439316172245730009143749619505503939413312412427442923704565192054435986928190263499814199487270170499840364176105502854620141639985020589380895633793109258979532387605993995654612334677347489942644308360394466680153438559536881194227159827804381149899973089675454191474450001994501546481124233043977580852864989715998840446997878896877924859572784130664514598371057352981681023991742785596292879288476554143650406649098325970764570484672598988610345569658637452969786144655241650799198068474979828681231123348537175723167249695299864897464345687087843107813563877077587786640786961104524521182366614325737467639306940282603633906693258213435705894021898454384694172810859630505101888473783178028717710406846642283733129009445530379499112340216830448168029531932705946098268972998704080205508370557587084372881373690989959553599921464849112359110566709326960102860080100961499220978326212673268139292680754783992422508235607150369352749485383761936691501048075987016971922811902932887034484851992163130267974219043358559992113711487084353422056329170478389129278359361943193141929932083394941270913888298129946658879825505703853139911730198709435991312406533438632702942674447595447581218574515238861040593894305323448356193137441908542303394808140448453025521756733919221509200059048655843107838869893410727073604263128516097440246406987975657136680530147638232517141437574681378592933182097108151122232125732843744737180424793404550754093842558162735043973320786294041015503314833852078172213720566560857685042374530867091319709940141159690172444468091308588003291192192098726754119025436516385018268556215302403258949309171912535449628805365242198251982678561384663142466333067580858636749929727580747505405873414271705963668788518122434480064446231637745053507667785112112229629496854741671110960718530390423858773198314865307356230387478966609328928613555391331415331501358715805323580097017750070821968738015046359848201779264841588806368563297921013045007907210184550037389413011388626966496733418189415512966346606365686824905574537705780706326417275009348249394157693057084933977996624732350388203485787152831970478293553734134262932478327391541250349899604734930276736873424163349478130054597173916556472139369629134687405605438839723236944862942954383837894148605569985394002883450475300443766798352936092417537535410150631547386131085504817182115682025215853125459154210796133665791150993568086709490758504491306573781123151602807917469833858006944268972628008033064891287972937009696747774924729291872212738225167027455184366820975432337066220582839664473812840350993940143059101241883281538969733677729675715409416973039792767916253052876841051848058879397307795474205013967982016639533872626604418494060207507491159658692565528453954883598333119506165119596208693603865788966251202186760840549196526797282968708302658124045863038285370971153242154201157429875066300750639219798587514421306762072922212910042014582787719325092775736093161639271675464013414608004912820967477512356232791555263635665350304502017374520142224406163947548703196506922066439622031064862367256482374635822417130855696494602421068780735689680396478703455805095135365088667525510020165744603147087086182013290642849402762484323171183467912382063159993727862762085378890374998978738248028718564773876249635506731719114793729171470572335659335043017226577752388748170255237548147356234981123448908704632225368177920093909672835578355811016738552591990370302599155882249264611499071365360755883604645323922340363872253268049060539813623109924325697968229215395956448744248665365669750104420769088324196591752912980384202839221570772317832487513511502894163377186423432672078271304306407950251684471549846766905479775310097617502740181869694892377291643049753438624664676676451040875585631744714279553939978889200535752036021807491562016429815444850888743273743076023432472575261622767581344443166787512002947942445673255412851528830738958049677612123225123941280544765658229540569682587425077323060128135863611448004418742371570426849637120325306787467577445874540154518362656053392030766500973196346628526797722517614698780333852692557224306073679416129518279505292607322858659997666256086845568878585709327343083429313968498405923816652260430417426992284333695043586276868008959075565302033931135502317231327680266048809343683806542677121466258584070449633273819220136643603863542940319915680911260557437676956050684288795682557379771151302937821687024238192135991603430111564990142827856851245976105341086710194575780193123505244796418182425809387741749837733549327569638733906835703496674433612993386050200233799885484676793304397247742932142366515290300108461236374571356504910312132325872905030891806596118224928789723074821321114364849815695952976614623404121968188606630913855283457736545664817585887017964318460041475196737984026902197634537001840922386126641176340929550451163696594546604215168362597421166317162920599314342862414233067537858104656164254229725209525693032011003127637491899803721893277264314045373845752035894910616031001185845516783185524977971015464311424689504814042910608175285573755902964318209582415649971945608801895220034965075637793102097087302353254663416154309516978789970357262031824205799593525569749175391929396422015130713547023411701877323185024839398680099015117321374204592303437825017345469341148886567577828833363993357701792100991357266271405584212408967746646519904383603006913922338736157412893832033561197406950325786174504748750946804028781299798902697211677178172801751430125425895770239223417994887233777513292473825393158587320767886689999796255133418582308209062464901956385146088090256879902092956176060679616848738247871037267090294342731317537856914326122600711197139424053286323739693414565250507400845840826943103041019268990819615305398349061094688043358915216245416168249101676630532477175028793857995365127506817558897756168045116835436003855322836098755572617655463929021536014573132950304218517518388642822016981686022226306214591788503988424091126784556496662164356650563655086046174911469185458822677757553124018383390157066333639242958608435749414031520384086112106597966124655741012871763939672669020905422691799913764915395285263795454960280471268506110902489949842987695316431508220458032577656727578752837506511788845779659422433332168900001251125977906516839218018589076243749247241605017752092168388493366045054575898915064044123015590800267159981656765007280815468514687903242505767437978151230415005360632323655188842410338953868717891865890587065579578516607017777432029056334393930718527281349927292320968801271977992295200805830604055319831680787517563078484241650679642573066850790299180331548929079994942299115584769868591161383023134424181116942915776433691216886000297313364649990210479702231364231207104746307232157849826790871737564861428534099458727141438802929175405846378399911334645560325077052437739864683631322620915890617215276796884147989769306657787627379741127556612313260829079926203152405265853343670648427050755104607509378466707230170423606709089964523505139741174422157517849728284179807385817791137407838041783837118333011431078404637949375992229206116683692639710584078921142916721930246740562569197658948452391745832874188359601835489698534968422922646651705679509075153781188440375140805763534280777730449493481697222602236768208436212461479137729310319329163574517778678346465849911663920179712021874447405030411608425962759670206576686229165068003152691480253323968761074242207165210373438485969942064683855148463278080186790354226575034979208367498517950003066341169139301363253242917947618114201489924503275672383320915573111600869025666101465597815017327955472741602126365930110130796342984041421302905915550299523011893362646780849718430582523040454226685743291355647170251561471667051477471428548288371948240589385623736015652463681650980726535590627176527991000802260500643292753698293216420476894866976835708709329656501799672217055978885381618446676422563263396480156087234471384322324092315245781676767153626714602769027512237614980376728970020459353955587891552367949529531089488434082334801640436914921929710264230181508163128983485182111560887405038933799500510812156524527594243274568813967910921747997723628870978959024173467644874215886882714071603118433882436061064768204451582936804700284249619812019400088410755445419987280327368671469715153790865631966754365916287851243186664948201178247044215691462589103383308130980184940608429794873189302772387131806135422032928102869535537797220846272691149152422369310888223465186217399833009419021615987549840233542778558784336825396712391139708163750873882068273222483390543852139403227210037199572835143943911901247958300788057924124247216466100539957904700176060600502626758528997132492512985047640789710473667593050325886389597551465013815551912804391886993645697624135701679565426125596210804806461187274678715595747704642807030237580250379611631894719989388456283579351146340822321139284750494453330487944912549714140619786285925643704082915007093872725246421833858400773440280246648638541956165484322762828019205365234600064529879184992095073153362816530047764847688773181244482012281861353252715402230726516821070658955890967362404345848072683675419224189301300034055608502826625401166828621774100712008393781424384398722508973770287279640754146459630279541762748083713112407084514530528627548331579616926649701539966082287975129441492233299070969178334163646681804415848861583753634719668012053380818580644253290060366740669258887688357662276375854583597053131678309572161226836049749299131687302513287978188840614103547065115504117929310054903879851734782155396128289088930046198257528455642551525621362463742529482220621759515544261152828326203067105911188779729836328818806218289671822490510165558709125626127213856777857490511304051155527089402474895372015696385841122764448179557746644795935796324022621147762058793190836818621065984066332950135097248510384607210512841928333869180726987638165254250069451795842326808349307093745479987235996348884754315778418973233925127524545009338583240017410098361793963893315191306527983004878008278671495752174653480753728822274680042968690039025399959218420090005450099143584673275137387661744062322323877437196584786889211528354887282842920848581100513483220581564565377684772941259628646782064058614325733530858591604413002068271224722213230555893711488734665058321135182701821507948730987354250810363794964226047225298407346955299448750553121563673350756200850929402748560044280059832419241796786721059679405840282752847494066931257529196284213269134336991595922230372873328138205777177163157394439055660121653425227544026492907129063695431467464787222136442595678627481636553669839142299032731669414814709126767065792321947614010673203084097245915562061139706405504449628175125505019909014220473455978051389447373732720174672195312988408539242359681121965184501465328909524505221011330978741906611179843136994266853833502896494565207585116064213462450412256505701807826059582957205968529061846637142843815643125557716874389149667432797155440451308803326103801461839122772496600278793983871332105352634303537799477131106869650099643833134490438828461149185134976748157900057572942693091290358395874382012794241310222204359887631224798021320004179576431607629420636063169506139489542584194401054128573746524230002669448526508384996443815160818809128858218331150150017912540671302533975556095260506061931015214189576995909472890091692955805628571212152365543954997342564391747871132660836552883452557345708686266823608817950716038770702458379254192594043819130305814355629499271506783196228831312400538550920016505677492490475025053181345747698711959332959641151540357372780557838480012625872028605410567178172628946757795464810551007571331655842181177317653714742920063894519694785990123213697276641149979112873755327571221055322741671203058793639301454769402898551830619669328883478715801921778371127933386419351691246824602270248566008359035443030653496432775924851088665841467076539984923581383576861483819480832148577084244931910156222886949093534631584172391750220085978727288493872014628469462427500784670731411486081774004106900260585359157230425323304529010267836134256515196727943952830084418678812290174751629536248947183541210204090816867529841389388162986567184273740646367720070971669792464189186456395089684067908268058712046227786323962042479945350041579873236510157605276779078491522975902623804068449420769604866043579536108177730263335845895971043669133588882987288468619318207281979856942523220680904167386210937791209070302836655980568162427874677773984660682623522781771902712543288302348072960102272335861832653080071067960606703266410370295156286094125777487887490894765657018523068195779532269928974941876640465078788246916239935994509574590951037436072458103349849075962688438128775517555635196130946829510452117505011198388022771736056565598446615179276899614602049646100468118578617975385683956667557418980281998452761663417967975806491267834390923458573989546554141368384741501234573115713519299554371105513189638933724060447472297984352013329466659842062177234166824942881321371009085994732800972301558901008088746743350354828916738917860417933342830800194441778336680944148043257373681305162301159623385580807812113880037959847351836342973001738596964007955680468323654485886671573841134722787663571928348597225573371733827540694211044072596884722514052555025174174151927861746382600671149862487375359128036615864689139162293216251842498777377183705949877420247274954185593075663625465160998742323864862988785318027456546769051430916861157208554985501329280886093226363219669713783278261234504243328724764974216562140437886638213371486624762355555179338667407429061449392324919983097491275218079886133906197361794435598584360894135071043791246675590092381494489663496814837504069054977447163797149421036273833022712525675032273443991819311109981289359448087981463197710132375886057824628497122751515878599120969696651191556992923143567297722087315528917477464542523899353968657343450148826326753067488111931523131042868461680274358498575934253230969040496842164992783927987403661831157423706619593813258100251179118679486211834735121203634479761239370260941796884741588732317686516659256640000150156958356248242361021728423543927680968979422729258727010996030946966763709816023037513592402364813126630955825082133646906551467692682871393193806549744336396740368092363636617447234879084394856934889472970125209000302472610864006492489678885931758034171626244246876996253313505032723874416054600918893360874409464564412707545366135661290054951288262530968808348241754311928440412442652198560406397289834836320578394236144872047078990582190348486018441948168373016310965895094040748124991613370262492063638309452166170649221455428133776435297081486442793667558665675777112288124235158632309708180977236178818535114884632468757295029739950422019548200813331950766634398951340131834697112174448780804031306354658899217556186520716379132229276466580528540294677651267162916395858127487773147291565832610809251950902595749330582615677220043504909008075377610562102697202692339410216906919916832376622395632521871699194475190643262800758598875537051541529169634303419378391950361044393456465133254958165272262436317436054243256727204992155524877830863780450533314344410031646920413770829909125886797027380581424461876092702585777781598247587664735377821706891517413373912066063786597554813033926252960390830279259642332565441900415275545959454328739326237512642044699014605170599686660473745705256971418615721490436150892088171819940741239232791651088355797301891124379135086340641154324358819024931838763136532068931303664484836857292094936484660875039190458075962777821200573457822170263557017194941923957380804635077212828386623622242725896165774201228292063141183452369952332182807985195361380267590135306440858321715156426926859320389060287761182169717793796137400607729859235457822281832957420852719588169245825323075300112135824797736060369473764241880439071311145599351606244182069994916556719219372648288492462476140327198054361278150624845550614949885950346336500288772119259429433963622892176943902490011696439190933503539041299237608471155279297708948799989652235742474447408073200776276835370637328496515554967309370291574613370973615064886780559850013987646700633538458224505386130136192126908523989371711010742129452838985348823989094617810646865655943530176667052274901724262165666439339143433322611330367172236764381956413778959601944570903998654401083180190045635458114238105139775563186685893125361064564371220534246873241694742126111423604853025765004549757445991911227124937991392323213831763761307546938654950225273277906663586380595490477389641874174212598817649014325497625992118343076603823293579847683842138235202562620775107242050365299352211880901288680221510008911391210950930890179901739721466877480302488161776987533532441689853606920861020531051021631530508761887462334376048724580499625130195741158117737160059490311107429427590184072919155949297813810110701556647649007477967032772933170405991027507423036628064914428946807807231625315649581883150955422676974626093779396833038825574329603384466745118371081411336438603433993867750684422546143285618539325254150103500704335633015333167760907828596403914326991843088075664014764917203453671043932605736052948954557868374525614865334805044563741298085642665694861800640475717089087012558461473677805452414281899577402228547406402511841582090484407779168397005851562861730260201391128310177969983118972343432018070993227693461764479117141913758582219449859729660376490938524575722005265531625072496705757832499448505012078893116232493014016226695637778722024162347578010784547617225594216204404641747951012129974820164701096720250545792232292053913196600802774210986695281431946604786991513578707456667453015952111104698249728407303976061998720847334011377049903647137585166535341151283359738507493412280078350432354576725757079968622936786286011677852042169185878075965116775438901901601296860166231421351711038346766592440295971610810972567620639125039695172914505374926151149000657454195004848806982801086156636233546497521393718855973737897800458787119823152954548765909549544961020726578875256557084105210799309646618177551107048393298720180938174205128323878162409329163062142180162371485844918701906936905992255658694717781675253272260951541605127144133391593312434816250674202238370450352136904330807430322985241766371365228020037862527320051807717291628726800167318849966914092514747242515863607366973031530016086185208377044641520841662120101000672194544720833191821463479414295496271731003540999264933169745978323107883571532998251771081680039948854272279468154918982972998948066841232450972286513161949044964534447908934517430338623653165769343335361276905536637635419847101827664417343845916336431911302554873039197352890746198228611964133753041132657491608635010942664746294581293216170839958805594843194680292805415927657422826826575381210529224342252391620410791929387180835737375665532076168243027537107244253728306360268651765508953674214303439355859935130380213019846025681929331297863160758031319259056914511454934418382468528219155617158885105194280577154701082322302103967297905082183689628558544039273236424561863113495573316546792911665787799484751399971945501104054159145530340997907153356964661009486892269428515854485265022130451387708955669771619830500906078395417698012577599113122929830573102262376956025171823783987733658261633401189907092370488655232694356913333309180657993009163312450888984756700887599669691144046102577923332403067522803387388788131996730910770025133847673872475155444463509951316846558862658939409566234956240281614744414069026132499646634595125031067652632996081702573379607044320970387499366602666945791738127687854814342384191720966093508961801176407941523729711082153114426823969401892030331618838811838753937288259461891965644120624713412339147452215565288936216151410707093972770079789217613058277918007628972415672515084794802064720524280487520103790786573607084241412935374947915007236708917583793044071205565069381780856155998644250707452931159221049828550758943823006852311320959561144598991282941809449103210400691998190649662054319961988256186710252916122817061672255087319626456042395557944755511934728376953001366584529327688827284041515113023561471526725111233409110359425918327903465954228907710043123470648777780945233929947348863099191156322345001387719451547688039137147565103094922539112088785935199794340212781670326902103984722004938918783750577610589328067890291966665406473426743717706373185873558552633675937730013666109671563200571796374643993138752314317740715715637748167839833977864100793381831300698375097830516985447024126902040880196496068153921120784211980709394212104359282180685173116185628826992005108905756204451854310962478369251728845949289088226760821654663153698125826766895509958965233739441089913919065297048699489371430688214505916792587081922538480976174852780075015619413896849820324638980965755482326276527616759401192194516465707542868045008384481214304552254915233573488965411567535432219998639998821266912354195870244134577170565105924220957464846213429138821232295958821666655349182026236291277227497292644373013403318812522645486677325179060596328813627703781674726734796815998103553807126108619645467068783336720760918760899451700906358822270440923440625423075656481172089001882710676946915969529495886825833635336299736012328283917289093752411925369316000151924928891408107026077771605061936642386635166656168717918595470124946390848411371557773954053239480064720426898776086044525671146810456710032469385692607155403911424150894709335778589501521763968321631211433788136941892123909779764576877504739907968222601983366177016511885983155573478730307326909915185992240787967637021942885611872316109349205138234801428429076519647663077590560640065582192486715110012322583246670229299174073779166688011754937669251055113733284214633341940745767089477134828397411670938440926104834698690092673327586579293836374412216831361902262403567132580456815998231130620796435014406987194305544829109008330358458257757224519896742667535855467283256007822432648370095752050698184846505779090936081842565194644284096202119989250389164431602736533677911502452647975211410975746976650904137546423441771027766599411983205550470127045481709269937258500014482782784616997290580725178104578453058948980160330760213481455881696037050248361308256220036815655895057035351127467673896791376766906007671806884254888963319859346133696358408814083728037097702866500705354677319206337867861439935156615416808637974168421053776758709251168505691348539966278125088760409789388949922014868020690627150262523035309982038518454582876057737219264750977867173878654096680222824492330681882909389484588274682647136523060442531216681476975049363955427892532559616335989916138347191844439778890354955958777660182155041613149066530869537100823350269093472504508780088178325852173025544641528697649480663994371865525108479746494521948956772613460753697038788912301084525398304202246025756941436977805960095702000947788803582164526617981186657404774884992307372524117775190829998226470662718782706329769040063046415558285608373206570218321147787008897228142747221249934735333844910805811329771827128230076098227714229238894997463249003298200243687830392963047375969600443635076102609371423323227396643351882250485790035903619647885087883717377538954979421369759888942559781996428995420838073056975923220579949706098699270152089701259410674663256252486075390488328887629144491932302650876440717110817810698198316477999575445137598935312258704798801901963479383220966717384187205714219064642059765540643329537438994403966797071089527179044150943684733785799149043942879505144644128125992685370781707516171576437704336965214076964760777138474861201849433109677306398562477937211008406087089190971708897699695248941057165626093284875121526413619451406220819918875374806650653073601791799627754902672463959827813342418127848967193542732251481688064371866399327726901934935834944916302767024504883299902869454870699408488463117771254189054847568483056046195110895345612413937688279513029249230550444610356856367046148158108926449557955497062546583537851942698021758175433310926381458148868021325105578675934950537685186255941702657264980249627323052873169259015519114639990875592410914622328776691380641581932548542622871532252859322856775348652006433340355050918304274822368229664785731030778450458304787438573695942431843687254040734874499577466974677475046823788088943684385516292794122510211200800726249135539204679254256349123281171371075002057827988939785827092070652761092955021173048300300938209864645941551501513495520521255418304190357464479112045781782920550253606283174342781871752401041602622535773393260227189691902334781927784515562613829323747328044954141227183802717188251510366456134455579210620220177120589801041761384870175049115283027418112932807679672225409141238352270342306394656888414502394862883793060580210511445958520577018726129247782999961968923396373080637347458402771404000429798856951142099838424957358779404346068077204059361265713052285933546114109558116656886506712951791447829697865085336995436780947385119137078234823563995374088631650736156743700983294384525959388556595317294030504610016958163138847484649117855752305888753643506929080554158148209013294198116783010846460481177073642936645823648495701864549398190313624472473850226911072137950763060873656752912700869728329079838765546629344257241811956517133468220409996231377289655839345567127827648930812248139834291052080598884009804162718637652903227679201121972950484015427606235854726900113378251142715964277800589478599983178663638411605510706184430481730297836102583944610139990776341257969131435829433964315997436039274646329407662703377516067500105752155686547744291958040669140128441203861024463305223656833605495906038850418162710561944043794902179683861380684454242825950278904440907854183982707300266992417991349936890653249638969587278499952662580790236006170378545408437755919313652773149344008506904283635829520246036771367744593601333184097499903596538737727984672182365205569728340258324097796021035737404201455737853937163722608724410558168724375841891342431646941581163943026882331479694473342059194782710994506119379380569056219285266768285674139509144071510475670043828296958049201113531773831621514414289283299024553602783624618639921393046364067572597276703296934605718207615562940244141290231975105169454374468883353778141930482548543043225362174021247373867674983850444804819878506130474794976451227316319026887530850594845634474600350793624779537832493737812532930020606606026988485816253798137248263379491916414232180278959614135789165580067204107683210112164790632760547009194929984892546889338350561698467012011924018183620908196790660097267468618147013601352122625410552710102694454972810344902617485946603459889042027429745972380981419561558918830421097339716356643858106789036385282797711391898369573847849934104556242591928831354225163751068365845211719053362107197361627836729514860351754261675500549934976892524086596894896022197280722551114780411258304107360067509285857223809993086957547857674378308759870629729819882684908628052266404167330620158458106018810380140767058990634421422465398108545948136113440529684086369977168538348193611763829605223540229415901376113512171987641766953187292844116511891329824869781669336619506712449049984140316037457670532003886176926989789679015811080406344913107042072170768579252379511634510979031696529290575954609663588962977640492997468680156404584585017769646844926039972465515975751007793734995423948845068906196794077665554576529419065664438692733001978668955956405375354600314828824762651280611750284177510324347201615321515271188341276269747184586237262304305540829157326569810068303390008661441152630074276843800227329934545892378232469585772863856979640712954822565101850401827815437900745456327844118503648564641885243700709685760562218262288582707211831265783389304096687092802728302407037172723509420261843505337879881967837003387249062435037002362334288212550002372743911658356823130634730914420046325136365383327496729774367447849798916259737392456159253972520115830427418624905391884551536713206226846956458632846924152461616978658974676623498909375098756895031988911929394198368455391064474638609124449188438751370275731312029208541205129588654158316387087911602137133984253349726936380270933801200698428657587627880434122061237072333795071129390808336772670142299488872709854189596025821728743491883700717744436758354585811504575705856259556756580501936321143678811696012297705088878957588475780140679424448436705204219420245869281423287281423348545657691052942438213783657123839107399186639813973604648320180775429656852555119813393379687444652041556097643338185693168459237741261999761852660303310119520270023250957751889392208389297381432317623417165300565675228648796634651606586614555351512914058965551855839715934970651598126885948235678405058979296133700198834338532925246290309679300054857221513639570540971805094558004012657698748328772324663227702501923428694304652064253941781767923272406989741748559065668554630798931861796799496470950201833145232771319444808960703725534904128259381781333018660971809594331120692455253544626618879022288775394847076839427093577114914800924796746268186303939639176187828296749837620016623276556939088927478133575565993759237562782343718873548431070818601570363705188485949652825456013726339183410346757469463906198489620755758271790199229319719899189445546141581577946212855403825258496600529859386935255200888424988084279769140734579171124715230615932467620799104559558549929366618135145563258440206924638445802736670861158792668382947264418073431166277093858118446641632208262269922063691964923925508578550160932175780203079836611176229153076680112213434376109310847256377267133621145088090227436682559315395721708651853415426771953088047566492495940796590239197080184010406452413028724387320397226892601686316024804339856501011246331814168455852405673457282608964945479743430855392302945813368847434901610843563506675103396288632673507529325294944371135353393954278069599196275774904078172933380911048618434078135738316897762780970959832986208240447351201194626541210544185363483801484529537301735150965464802157010380359875165385259008526514914623407306790455569277064888939882880815677639151135505939758027432355606976912386700328702776145194199729999944517800344062680800516768971550550895625847835490741823789846950480340293698384005313838173293046001757230452493092557714006521632358134830816303585614081673297463080361631646615889408580202365689652668468462386297191782815856793921035071745545250061365361987684805895987094009273063152572013903856814547902235580578435811047234231404039918536753966413341214188069341890380776069680184439694195648413329413235983682408106449106078065164503706997650957189589713099000012089362119711686567591489140344775276425628467384356924266139479635452137798267753701183556817487867681003405751419445916345250684880707013890740792011324347095680074877739227393849656898259498645061134730531602465843564753227330131090914460028791271043988966313970909394313633335194768890948322947889102054044723705507281697303447127119478985221550288896042676593132622480963445535928995309703182044763058073076270579326403366796506936539662820879487552623889731681795113737934444507226185813860318230201065036063141331304660435291850553211479339127185521174664740422919631124363664652409731446604491359391741075503159742186366538502728305250319460103708038673238111528682907929720161379800236714514225404754754149207019290634094124947645411395465634918985509225772970902703475932518899597149370289813243060973632713524343106760468685162756493712988722430497035227188808710159757063913302811318811564245117532419534585668753857404353120333138147433526595602668392530433855854793789459051785371120762204582750347728585592870876561863712070921688342776652814007166838571570512150644926446699821758703822947085332894771620757456750683357710191605298189121891329958966783894091939219471784651350029622885471013892685544370811439879144489990173629848040462731618980807281984414513092833226612000165130686013336261605800605274626683226011563841817083799044156048059855382852003100537322654993456680312371309151278610006952003627090238082254104450430588483147534847967481247205680704673393217621768518325848207007935607602413124069641213840944505615472655394907652856504694982277005940811004805182709565049465387297061223054099535311279202093583272696937192204571355452073354953111704354040165669296552764387082726459350871439962668564198467833681299143256949987574786832026064648660405336777340743178039120900715551827916521184238950505551856203110836716314335787619126809210134926289067260655777435655861401478622227450850781042823385343716707679635429192743367636470737520315090705172645582655987271699201237573084924973696179070330673018679730153398836827886042143007051107985423754389092000121973503112455225986025866511913870400395267556700974601865456929825480049267949455098857151506761956622529958508156891650229140154153239418567332294021912303231762036710696490947353989426980683274210497954518305044521371422981291358766796601980283697609430123531633292529534377960435661298147690770703971387474305808603967822781845184224079731248774536155355268210792000419966283879681076347464044214447093245864550549565689145487708876916460065470295321572229312647894854812840783484798461356736163199025106827128525826714702899966315538273219230672979275117255486099800063249736173591838953720682297171343398766635451728778604399492429388615769511473584952718708366115026159563298766862566424621834222991112969718662955479113254710410189616136509997636845476287032670066505961434586332888522799798228289289624962870000784827563406722612674007221431305345231590487283260507719112910600642288259913670747298090844991873323768513744997607987295528200521700166587888115898040867979355989347783702933699818795908162714329911854112631335941896056192203510569748179804679863575940663840897846471727059202508457417383172359658220254812897595738914033246794341619688032106213973771203277610400422514280450120690377280252382798943523749039308708049298960215205069325664421294203986312669435298102831208372495102156657570330778032587250658718956413254169676154060897600791724091422990083778044178739633669771448710981809027370244309549060556233637898379132875699861480218192292276056023500125924816157119264136041314656466274310526954555219684619861069376612802106764354485927978252767498357343379970523005555441280560138345634527477292329785106069216584336191215328340169553083893783042793091876798386763741710510502580401667626888126193675857117783923765512548412662658963517186829617549905010524859958055667387061607531389896826165115661788573411463446543834921024447564072921704487291153137197340767269685037702877042484570212809026811552443794720940565952843540462700571573826061429830429746398840269509970194814075247580874554130478867492110846275640630955976929071712023239268404902825575836193893579072585962216515408309809712329463767599414931711504565261606844925384671739939933835113828380081323792060110353675766479198529202251565712886054915134988924034863696009849905320404049000127927298273156365804492378939884405605253047855386338145679424211180122446632325242820398461039186462872829456666708660238999107180697977575747449523103571954537085021537539030125829297384999366475507252271969941770939589646720104009432553956139101035515492097713756396769984520150701723238697046395292387787952461400229386500184478154850968300714197558525574805525952189207560127859821241338746583616938814811037585244543125472655011433414096966685194172972445955639896343122310684387895773999362308722284890536140035438252680059371848555918091088267800227176492246392754958344720514848102548812100133025008129993476260841628114809931951389608568016955930881299900751725850404125408977733659689178864807972182941926369801939925440584752504047161016393264086609173333774530532297962105268621364124878496639510061620862606983659571408014440054224285690668224636674409564283789114165018638936982899359538194277085231890071881991417151180234408393894651163447340993082854725612885621080108265130355671738199645252369766665409431752623636507514590711481232180396220902436185155385123682428420524869377073722465953047370719047715045354854438541109518261318065785835355611759365437101050549504995991638496588932619017744238496208087457006741570689817641748897446736330736871736195893811744431728609284104044104721458833414380585691220328346455594239483094579309717324522463373608192309552080641663414519466090828286508878250415408107118219387159067506385794715557001748886950917104402591557157912062378255384228827786564283199519575378342184556100787051527927034528573083251894921583938659956610034192856109158061051727486616392560747346637322016319083036660764174148507277291005398169623089879945747493195808599067316055365146131597822705242424084530267640058828680833747325247753620356737013002780049276007324856457466546207972782193813016391628820993249479086206573085754051508249568351409384378219577679436575975023691950792183763104636337080355392814078350678039139179050787820340954702355918230520537457249353099158115240588087723886199159480824347564136445589377492412525670223428234221839843374395489112498968428619209060856529323019480175383149233406005405092462388792065746373056253790199561723781608858773221941723319688890772190146934949331286270772091497395642823109095632601966764206693591393599510330608696108035160902293608313402261231218344861968098864851901405412737305172534102673253757519958037821045570892005426428979244089259972094997305714635244437131857129891381130660277761288692463466821138145597350455746287546969614158740844733282704962542271990979561854883997691785316339992072068564498869538085653972384518021928534496303368486579566634737048237951045815001578658717513774708251337799805221355007117584589313073640755793645974037226764770889083968225848961644107602420627253481836230385517355346172522444402549405932503691448894282653088215814624227521313114040588740592988687167676772071559119934807642167217631318476795000482732524681238014134473144167904290158968416380473726886607163762280433509095896728698442005313517500857889219106414699602752023077568360523513665080039759807573330880573418913514468923359033590855110050393273607298088044776507822220691828200130427077923472855335375068538889905962688535459755147879090707645750538440588476863344094786707615128487437063538006818247949917898268498772336758063231509949459995272415060711404129837475082212944540955775258701785591605668989264461001252394293710211766767546889244619368392292922192102209627044249229786632094768259590726522967061365111265918160872302940008235927220137931488883913532072380453153181862460879479645086972689163744498834818217290135431969317078863513948457426757523044749361493718322626984016288935690205936930353442882686172516391658208045201770408805440766494696482188232913263792758245530187225430133083724723278765071010235673575609218910446673673535294018286022638786539097674308122924592543551965351369338251062830535585988676733832460217082609111857142110407726372847810691372961527583701339698807958716852540408926960326211736881099889333728636779567396485987537751578236776114673880563703756196835802928616780417232900041470594761902837309991592209272905138956827050988296514846533404054993798716900972943546184836789803972020279496300034877478372950886810970643894168411347982483246994595871052060570357191997139065369008869639858739367114157583877516666720943932678879206815299951732119755942653705851292313352092973777424417318651414579219991837271721152132970655095008159838155750878118804485776605630206383846381561739118143078879605885422084378916676355052246864224780571746258280452611554379503868223559790722993519314175964522828413475871157219995315300367417826785877926973648755717498712612901582851385267588141332672055736088971064834913544156983461271579594154937382181224717009195023067782813205504133294919211510077748996881333308487012655954346428724327835979869814862318015617795446067652054283229742809598307947441936181149217030075575077342482662422133784019297185884069879651139226891561528200235884524097999116948115478261818095580231309116285572247177964198523408501560481901397398502303649771859229122114158697232810447166527820043811484826778572186186331652931886700263104184976832123716486239663783707821048775852718227238030714410133311692396933700646375960022204062420019185242936880226934633600789473989630318476007194573264732022689328326418098997834273374726577587898926473738560531179277405984089494793519299058366449016099962787497791821134951448768928003991339160794043995445003103018424363604921265976388487633243819185041265741976151366919000546309405124691593765912662594305236407236426399602930649445762158153391818102102745114860735819479878949870817337937749379302771323820062543533996394009856758728102418956279601565097269095659106545430182140412994722290841366194698093614905319295786984485093733421151495782377027981781344975166986294929499797695297146901521658309802688685169490442275426918298396259166516216154332330726001521819687989272919649375693169133892966691746022949539989490950228876143716768665114981309291057639379225329977073986867773645867352385471518615377356334149088996725676990364180740812494588628255345242361086291318324018454703874472497297458920284395877468653355951604687000924926373475485862127551415972450070365355586768314440016861542669581032568994784188075735145592247652287983139262394190673393880175500593449393403443101605130023951963339868949113924062466980673823794859849039071336943925865080910459843822344861479649554520079778280905587978987899212943325688572109821474429496046248107973586849773847321264490113883442838756222917392232552012329624716731120133770766193462775455241319778803592104079922688923434487591870362690716541575022400795220290824625774922711875054853045830575746818632007856824064640536616932114148833996150982768161337816215270759468428937382736755717874275660534839404156953954007273977532169259839113699995037182831795210637167717305325499458017242198365137545954680862875228074085197251619002550295960293686849960739626476480302036328599132739955913905373415439717869659409973385011144783576150511726926474219794565567790935926762665569342053714509765405660918643009832129676509257653194796453640956133952698273496169924237078576017301490884111198289682121385885506324854796227788396393155305703625871666165978902436299492210245658530177842334871382761158627680406222130950202236131278027689542285065635642530141186072601956845572728193504378378939931062806855253807331773222303194761755072669111179370753530328982038205785409941559559624633035980204753844528682888736199050073105576339260393760230740961803090614248523849569502229477724496482635491484699314021224288392761568651039472382557006575675134423175214416355616107293196069063428121813543323435757631629077168120937830579115074047217796221923836916343113838551098724333383724448737558521478010148379255576678792742286937248037779026471617799101462155775512114358343731530655515699249067893426797865860876917726362765368429600829730807635712941873904709218457074013668853978928828726045552852250308634098878446530397505549920224538348617595465603170724530678017003254299602508248002554410910371473808079813285308732034437633780067099462970076147157220617811309350661069008799816966074709995155314236155666719562636107462306230449609009360352576814473461590025384962349157814553606294202980265407610848657122574957866741476889277803411317465730739248588433088277332087438038526834536484502457342314885039721610701087505884737773030173530043698665637975166471945295199492935754344300028956984247759679615262139319215795241767536947282417185049570870885541709100576528502575479442338107409563119440789660952073208846887962105392485741820958984440666633869434143498582949863709988668014959738120739749292912367219000053182170676399049759796307568076221835524025548921097120703230063869538350622646728713356482998412205300731634270938723996089029197543849183422482997710780299661660155284140923737093468668443787464825472660502569581563821951439546753598971072484150034891620578803178724270045483219141343498650834259220092221013296411687284878898870616010574241784993815424022256797889248403523410806863276544068874066736305220674846989684532777590065254252586486428995421129088002331558682604351087992384680802894425487861891943695746702532675772184395779468649771478570924969837280090485518567210905077888490340061942764389552051210941832327031695727145560939398060560497166364231022474147158630277608918723466345142805951578431141088088710360835839872585757383021350435734029494515236922640842888859625534428315717312864954028236651424831450766337433402645647070882386165446980246454919768597973833678840416172252147418624551185404844805004854350281851914621845227620312839286636418365548333728302444839925047108906323237585527454316193083602097350790679688431592676445090743555936110877537563812832244184215293836346875514314974676140724458429797645644912545341278168112039626757770573777379884728318530165311053610300354116761081816558863209240634203895903644975025916988895939443528756257666654308961178090416206877641194601849188092060222146344178039100889216090796932619792382824406967680474880499830638942178899697941845680196880901778905350818535808397078697004776670217672048586177793458397850137975318362502986380975855866888040070324549344307471876275209597227622267200866779325946090109510903144104330166189322215743137584829828059623524770364850008472124087453793173254109610978320019141790646250965762660301583144837425669255516339048775829809279054293659477292596269808979675589716809704763291375263990614849692261144252029502896992257426862210032284740981200661030572683438928234025040848498949273454127896396367240364351914313150252788908164280670586736866377298383879308856356080770142325475272318245049009761242150899271076995106282526259472476178941314719082300347894686780799469505417075028967357274434645533503522690630472971271988041773298928440184597713180308400123720664764514343347518783130506944396424581688520053803273184276409723697457788862885330103808305470237500155961346465689098158421767344430114261938778089559238015158846799885302421938902983869555032095667784333688204541359259399991792605286050880975299956150478900430362219089050361578132249010984430653737516496310551951064168487985698748757383605711365743090058007252508093755491035173747116028016753316342193088728002006843039697271249889773760611697571978485928151848551858877608322590710864022919773695491005885781580896626966350859729177805141930188307530075178876727079691844515019673949405400782874285061755996112701366908382337187231854044412254785379041136453262834030998673551896255721252192991936459284270822119320893477056005489390684607351369978854644469032528709417171467912563880042164116262130017989371038325301513725652321640521362530828299196837199083014178810492832886142698403667837480612886847212347892843946296454756822180676980611997675841072105961978359768545368370177848313460680452710306511763009846105926392988706541051119488789018725493220238097623954585191821674814124714068298034003074325031727102587604208965955180506357740409357606435612806495047226274242455276614380255601847236247302401276950303229680948097993392407679051552228574279190545750631019469495544040076510144235187967878347187259917779006899635324468422581365880009811800716660993083622154573607545776064008574194119997098243596056937364514892553237853705593479444655839674179621326340854102317495201039606303657147221293387373945695449532408428843451638463535623141514192042788430907282156665230954145483875253240150567267727005981153540073286115749194003493641330148810093416403140302337112915992209985058971576536522053471220900801650640342130460956835227654915545368960608632926859937052205146723214173199662160220814377796099081334961912483489481168742170033604626611134579236330094326554025664033138508087006622048749502149548642969030121508081141400473102789108451682211725669572267262920035109221816777070246141526884637191180297336893741861246847824832656226322838659446793689214209205864111262793340787356758067752196494239108397675343164161806496468590472501231599250163069742858757153107179654895570596358823124223215254946749279773634550204443927716390547293505848952563251391543908136813423573109734970158598989275241948464899359123065487672708952911650303182062231093518880845242500929105438877962329518396109696869347042000227026740208104187418588611271397958601969386938604207385679604114512805003606679931792468355533538817306045678807412520905436876288997983003267854378930173267876863764061594398424652227843924570651492648895894419160043348551401755744322870730297018464852421996967599523388123223023284114326131752027000619274670989242875390670962519427296286731298169823664063741547479892921033937062583130765598347630817938492531098997950665891962871975956620444032528209362632670618544107940987416040376466555326328588246170375475213244336214174149520705260441888044243100089503781425257693925459471752591295721288315061044045542904398703212556096819090540080552508063656967324700301589335087989419365185208294536144162356819378305702279304730086435576316413184860963463114730651607123482185745022839118058855646396399246598873198913158094771298041666638718555170798733109536343785299342487874322323012446008746713556969528756015908350545620867219297010710533208001508263480663652975255935056417890419894929334566813976762777171326998345029246451308188793223450200769090630889353191923360184209466889177988365878496857178512684718276728100598340427337191938794088478927605419678724989773049365581556736674558607005291133328452399625561514901380172403950819288195305150708481730208561020520838611241950653969944628851800404730348618335017587126151162340077937767420665745142286646824066397318292559935252591349826670589311949399379913250297214315644791722420228003508502604786260536961979946622932274817106893128551771331109688526587841504310314585398592084942081334810027188671851789521675754228760957206363445905979404366931691584384414552655473989907528334050823777526133546439526010658126490291916123644069285380630318426085280865778379927866920373319037913146728247639730044393447639235372490451335620884644572653697730959409200092383277558296775821384130511373989365795342998568729294720658295415763665285405113063177164948595227387703245826870219509087593825480475733049007679968624556285736129123722922982447527391538206354988558632392984241498554887573438911298449881024097347812426642018126018416746465688803388360260638112748297434228824874155785701695780224212343216597380328115716704544209673706501875497433012208026585103004722354115907927517162229331475755603556456861230782097577961003068073733422756886192496367759867947421327305320798638465452633255815871864392814885041077150588549110559554767922988824318961647804491267887441740556291529761165253324147698926944054234035085897604950686798711114297661307768518971816478024087031538459952538699943787595332965108433626489284643322922172252888573750220147816042217936908519611120233904140348589646891306407147990602672286314771312818139021970060141546144070947358086577777744226155606098035876572569174270990522925923617290729096117568201156689761612316120528101962228958870973873628609498787320001621189373745758804382700532054562344297632132099197752174175192399587850925680390943452257606054650054436840116325908956410921127281103648783590906546698986534835449815320445906431755454504513583279967486191101473551497374352066290072987858379163352779819324153457081384197580154336695176209247528245563301012957982352259464005258618149958699163027870325314194555871872080970700437641293339978034284827111529388805622503958154318000672977240365512355118062605344468325002782312593715207073648513919683754794906220840567161700976803086289140873068591767245853039308543062055272166975416083072023639230636851708765838924455509215564045199241294445545494377135154962904156008555930417725806297959615848145455068009887082984992698360624670992310165319401286855703215313075484040079145079245680225537004999523201399043150242610505352072119495547527315239256770227491366165764087330437463067020899767920742280843829951103351719652575454126343774280449639526222488114605580307516219842696974710983813567271458726994979327133192244805892963540502739169915487455714185405090475700780719443372306194558316382455065237797357963458199681144480493180409864381682588138463600769425874393682713664552630854434678724361076012615731130994467453709962488489580888798005636722856277435873147953181876996092036381917428190749620252882353749088861600046345422217180205163433496728563669176739247668619316135087101069088977538602534512211392539015907202189828468797255235699325387682941425596812034730442172891377694240230237975354356272851501470938237948835372445024174132052027394770906786744081659258893889684683628718514191263698530635353309808608089199985705923693523304805118201900498155039656920360444888254015377920536149254231968205330410753012103889966598593698992996880405084685348689810652638551694738497735123249693888334505029879351061387338338576175647207516052564010787186749815145645503034469558877452400090511607421143916898244437450554769126554171790745715374041215459486955461137009591380967838209915815754697855979767932968929746257770955411736276860074817323253835197450907493284722780245267322331048177064089752955490812485670725344286895093043034411922145067645330868278751121090351395898432933139125156795276740789411235369501861970586300283611068978239733849938918250773674952846449137818094815037968245911465801812877943859354813891844493215580871852917549691127331873911949542768150076210115794348636556820203547729846578255818593090809616525233787654528782006253613427078064024658494175677623818618931891387799415431325589175232009124516541050469802955843693306339806369503683500218900783038962432334296058048306536780534052545583036280891252270296165262493434133017606156704424291191081832687748767400922359594920472132737624357899004843392197243678389908887307467762863244790281140367781076346432244812866019655108297598614166924868551471174202824959190210281936090672054727101533056719243989679512915522371800655418865621428955010619194287368421189150636308720678888989826889381696864126949443289541993009898407276034317414218940085739970043649048938097649947794423274050161762228918965387562424904637796728688057132123426032091230370035051542587492412814437643649940565626029297331406833379788752950536525645023297399860820666284583937825194618474050553871637722674630571756638719683070246671677059925881903375140796733072725808446601790886773300286359084036841940856933863427640804778324002077223091778796488207137681760217749535878924999775613197313829396663309810495098521101631389222008845158375895679709049644098977795257831696350855509398802296310601709446586117164885224159129375099857630621626215468022511587564381096987708838782333945868602196977403634276912622075942310185581995190116507700682599552362599890962060909620441999908602002697910176369125822137107070546568758176664277570110038417252704527779768061054628196757451611091941590734797071105528672031153845514487360427717367188590376752748781552736765459640798212507384983345469061433871396038935497837384333478487571819419778179088922345144595901176874759393956820721326094706991654974435156472491789800532847908517148369160291397631321829069235867431950484576235479586929056938053788215229172571636460043213397051529080682701700575238824551928343515538841801916599055863019109567997331442271208908905377026797160138283999363366361409557746539256639529075849861559190572369178399102258160837640216927633307594509254200710939221874749753867895058097170100263056837113265120260698574655658510241629228971635413983800825176394210972303423961557407517178888839166907177364957433516038904618211804426477862428232684879309039769694054856628312154047904970736399236181279582754133906636990316428861412377199441227335422860200707746967062834371140181981644311282976899482043367891385952872257977176457923757751632875667784343775314664406352516398333484822982989123501763984936879834535719243919658174681179854458778433474876928056720446127637348400827648393870225717388241378462431757277502795300537019585001159803907584532189378673312792846263335414228779898280306782207815077869197006081190376967144112459698118311569022980842743077518459371197406588170402486434036957845541302515432963422159510550316766822425995183190702715016924456242921201108590964442249643439759525706977055010584750024054648696552783442727019242211839504417959725996005161294760721731261597250264768183155223761343610697313209714528678339422519331257587226644455511641577985722824759440375224712575846119215804948040380284103765183169807088791370580386706278696825593772013372037036812676891706874545240226926135180939834727129831540866218445263715860963675018473496206633109975291552193046473909782983129314653005771681785799597577729319471052719167020911498254872837043869557457322050267984963884824467826597475021712217788378795354638640848486448348912432216999688820587740624692335292654238891410219948841751395625053337573249127650677539270663188025025446069292314451637168867878871946960357571541795058463498250139858675203366910047203947120486727015480062566589086465809509226933105729506096555381045327204534676270325437619498856441958840902955203336673050934185270993443151161563664944491155936345389904237003121959520215721364966953665450751408885970390908254088222109544353206568497687003817507652961013014001368284030795090910452668714313048815136033024376268327459441842027508322946293744358079463353451222855126817063003952113180437653211410306603870929957931227692128277943737901427880965471318313741044223586370451924554544165112065259386161878240363824747731721529027781249251579417619144407798016480364371627215989779268569436421453226297373431398178913470217964340429674870174286735878070408084956154564247015912094001205383103610781893033906762047808404597579776713499685549922186131787320251952733169234396773556415382732882531975503515697229080860761558876648652065953251285549261311429994905011195472679525242026962648782721818323910424948808365823634837916938107279722456012213086137952347435044465017115884919843589511496917878412756546677414374092763822047909422193767801141223007790211845460656445953989958326906630583504223920164036771020280088105945312122391374295144928701342175406636687391124044193027301088340495013175569732689346098928331585039687800163346448825490257637421364614553460728056953509888365719945003303707225005857097341719390781097531034284478365281254097860956431906154296983643185337307102200017955461983801314905442891432124584392031173257904654887622189044105583874479770283353326948498037148115914781121558878544393325624899722105718900167695512211852716275253485963394336352208304972698000032509720220432861259058731512273939052265484029533001319269129839172408974943111539567020762479440025213557924141355022258000360324390179503279512152007826013858446772149507221191461963092527524742927710008080625724718884847627672356287141219412933676234152804900298598872777010125002987120145677713668187952873952683048883614639907225426946755444189310298420855808590550197010215332205113919675833283149951769255518673555431032819466007817472189636655902102708641344837495286113917882274703030266575361622420861941091103666342756362634073944675170304652086129373490986763668853423360586008850863225985520660117388833892540231633951851847739645220029502767204311374971912041260638559201495948780025468125062343420546637235355822656306481529714392877995616649098693861942652992472998068308288132201349812049614155746135982187908285048337827146640282173674912269801764145541592879415277554934970007901843367151186820089286091461457947790463797191349797373636758715196108229668957644813014963672342020807221567254810947589985443277398892378555473927469135811251159669973906425786841886577750039654075400100594513059418197790474944252946750796570078749975589248349935485579841338579158772231327628678628656488361870430515684980829084241129780984518256937566267712534333282177997793426113320947530339710576661420422804208390920585240305473334121168161004663554963858579741363077293746422806970875554623974199943951604219810465744110139003475875374679780010619409969914291428441116987976332494023973377993532303745121565197880496627356499659207068985366841994066358211408046448758907724762834256603255917221034254829412472636741075478617135332103601518092490046916749821752565040554065570612630403679747137892375520884539422015888614489460166265927354185687884974042907533605971796252343766711770043338079821413127276629600012978588812449281129585080859883578663107705675059538005444862208936362856284161011299358895547911534026049491470531207847283266013643099913744337928303981158328261349674598230831499318773991130031858603561843957585746218501325831522875074966660557021720849849571777516254529678819500361591541892891852433126884811803460070640454806646930071580938426558979761590237486395056466762873173557132646418705006756879352404670108711316516342722449312742233498430748936308356867371034839526436155563632388310266902956373007744250164005220424052820948258834665972327927532626641603063646731042877682339953033027384314260220094716415538293624094494019640089951639115029049684920802415434375266868652869773848298067340690970626216851929469329220528800721958294823220657589489030835362194617963340966776295097429854776634216804419180863076214130318671942708691051923499874328732848824662189206042549500550813158936804231814288324219792391653102929885954591230779148856593991834635285797609473196683436660144280313232516424714571635907278754694287518432256492688510902605112246499908458342090019796620637706174054311457940823780298317487488678163384181897902439111919660497966038472631368854503055829851994711998902977586332767573620550669262777818769639468251418156222284373208750257316025930457254100415955964017090290809917572602134487309886268988153027133205405585107428806255984973121976166387185700526710455442051287500763283215197166538656802294834664640263925731593971877532975212047157267146215307972970496720379509302649527604538869779914365383094894641730235247133166700449516008121013903454695952112851159114632133973348553960750880734392376657746398835474881116329201566558447541656271841188966067795473777696894233868171269976494578240832789130266938982729862727684258472952275457319413145544545937958797705612186449455498453749488139198731124289066126158957646048306633685883767822534032600164687110848123248425194446651857043486210834394707645550325108847129537712043686296118755164935848908359900450395953698628830067202486799417796858819702175870918646329230126518757215710259948144368211080415380991412910459104653448056152323126381747166042477089117901053031186870753754193722472059897909878593633524216594679654590254081126649088574759246784687671037078349665370743329735846033943654832908392813365237560450463949014754722631445585543044956756079045748691248895505940464422820699983121348125126141837951527295951558995042217173055904678751027438982141680949705824467599744984630311856275147699854921658806691893185827024572606521159754884170594714200366805452366410597187876389189146296489448410798640888478008805731233378125437393965426300104514206579147995355274481047787110248343393356544147313755684961036483708823925905366037104306604001452412515699065147561717706953121543183121790811959606016457086465929655558572900216947755952036185147033940159315895018264861135266140511507678252082295082004155364852787173269670493794507994098830881746653168740125973568368215758197834771523801472499417103741993972281450093260659472935843150536677423473263663633818157041196363156815541094117124332123777275328814810928418040159554800631293142661860306316437118244253776403515787057029664709035347607414287279089708611512981733671905522594917524714176278603987800650065722742287173187968072912940762863157652231458359544262240408011639233496506481732769374295619643727207099548165661153138136050534566074645249200203631725873879742646244269059253633000937515759333227108511987951374891872128245972404686700786107265928725835224885674348575310467512755590632685100550402052785192267810481488269084081564833361139908966217899350171934458799815201561144778830109536776705763631362613353661904258831144826936256443426502380680484781568014294989786222842654264865391272633717641382435889318675463565603675919531350853082109158411550351387621419047097790388052943351421708091602438319118784691307255200918806793146245066971789543151280902341497699974267989790003105227344802692594949680363695053048709398762724562846667003814537817335890183463340217593866960414970230043736851431857236461578552502917154124262886459229817954131906814216169649732045541007568218329381552508041298083260601847314825621573511252397942388326354659718632496120251085049692644630258072823959691829233587165385254943961678468405125772011604001645251138580787770989614021966695518588677640272885211926833697657747699796737494708171711543295981207899749117841466849604179314760701439815976292457622439213758413436300996536514896156996353583016565962797250746497235332955008434628356900741927824704242519798379741082056885846475641833745291074063991046643437407683212713623061330664943721295802416087890461670037572701693368628198970464996650797787577925670039986860425264857032863276073006484431701392115305799313957852271879560339649920779159411767511310390607971759659575017709516496657737915782389579124002091974997969053878088736367869231890593368832111699951094250223243068432645278103061764755289015149875747229456053241381776834121018563595981283931342093516876781734813408261071430050096905536926855008907195045419568680154002544600799293351776451476381908167608249048230094885931348409059012323649837434587243193731530613898058991342448915132905588308868186243302342641277129982294443970852723590944095081848995384719599641763066080618854902017325178317045588116131031316908023292106646885514204393624899439941730908381161947462369302927872801999785015390906525383472400886092079947582175683869655893532670031020340683302251825843684254399611955117425449576824523332629715894215477354619722936807035143882606147261411273682805791895955004211275959265715007054252293959866262410797720467146482480926490970249767837885027328237645650282684833955210915705146325067776917084580833717046701902729973290608204281013950796794512042333925044976456148459406287497760113947431316011942081820214403998205721813464047506388670881437621858162200687298632909103051226239884013716170975605084107212538819961642567152107231769460191311962135800666106625603036031301402800715079749396965157341226778794264898206878463631608532528581894473305133348802624298173155793149370595506722744164626667432261547491649223459400746818618110661856441899888223647004467491920957433899823059935966582470854351171388682068270938770882059478116509424633246041685369141108206714970991549547938330060970271760803242128785659649909052864495492319913202647336944509462504941220798235459926642427948686844109007231503126128061054491526510461555900741180480657591581609709938536462149286761672685388731763026656209971398740242409742470754259072524711731520940252653072337381482085438610791602048481801766377332914592747039706014737548909042949217999687269750910629848789087013667371002810747793533116301235202370239686458945456810137703687178569538681343676779161659053589943174234964634156377424527499679845841598652589931615973660577529671305335052284122399156933700208699154454651014671066343503945613902778792471506612519198278265309288873374751047432064889967486321392126576298390540740939996421829489710902461658017876950658821319606729547384781155356772193866783382628896762796011625329666943467200234578167339571960025049086119126403086521551910868985951603865199556605760177420788363879515844579755046691643682710899885633469516880141586619218441796425914731439774110502371095290489852141188777054180579457917948851743275621972597982263533877140643889650990570935242231710747067835465452123064706058591203065547203443778847471917868487924191273696798777258522540307443154277916589499737037806026196132485998480991234053374760539068288423149700719207949863372348133013433841069339959639763694702319090251090719650967261071087339585057199232118244436105765896717052373434458660108256866709528201114091385598216552609976738471022251667679318126101529510523892654387831827609362287864949091350765098311538076153000565005538752385104389305629726728091829162550834778130560977308744300784735569689459959117574096340538041283096002868563581363546038528673722045901444218552303053933628601010593666923697542849113113714528407204323940078958433789429756494013185760801286931753874282562324043544903705942094206325076071293692691078909796316573547182524397431504339535579099732419397481527040519055046506788656600615002978395240190704391413434282354587255152872459806175211765290287593521823851888279288597942297057826379609420607859500754899783959909016592657510127704681597329691620280708591255760733111112505463008524446169425102082011666011010640287555324025647650557033540531136045235499407740484736620473025188446584392432455148946063590341766451573765577081941163626359867193222304038529940797141453626211500607926253639214799729778438652275587262614985897869879787490120098384209110053250450970802069869059157206672081363563221496052328119682409398557685426483762041955312339768295609106381233971226911849624825948456828331685374705665403072065688198107016785877804122660501849871403877311529635356797502862243344846240217684147860009438702354350761828968140052294768866673230354567815146569724293069999807231421013732115362059408590889909694738191453680280998091837166116554041988215301985252818919605182793940131954123628342751312781361100114508449955557746132662552256306627897806385509156896545630216714358674897288629929430318608156999540239378855794873670480492786086764789294851033348037769714168146771042829239015478831619092450985139232239604398855426670354234564687930810006434341983018880824561526543557048984960435323819140105241660178533763020905118712064044747084985738702113369052054641784136439460043437537357367057915453866399094953394671152624208557437331885991671563913347757978895541942991197112234148561883298453095880878916557123804838818731476136829905684599105826397763142642620659357533646300980002115584601664847520261866985691997222817200008663190523119879249837059535915238237784275468063489502165249683106507702526549894678343043121862514944466611433473772837792944341354314726627544528397227893963373771171668108301783283851755056198049479600154013555217758946766379662465877119371277875067370313825628456487525854485391491878774981894100752239849234244089007489372604746134403545959047608843489520284924920923928286461532740378066997016577138494013388193098869128048835829745365547608266670654698301812596774594219232437757339868514710516514625173065992086201649797228801160592955838261072592198052142131056365891791051815356125012093491771318989744413436881383409178421721150002931599777740523952443606953813333108083163998752816714322908120425393777512300181720619919305837014446455017472794629161353120481466049815917997025115572206238764594040782540552946259077432675464768140979900325620985682201045287606766708111668806586359563316745562239619770324902626865878811185882915077062396804064119604996603006948967005702917759388784036902280115389649437959831492075010906184301232214669056641751930282032323415724078358411052549721782923613749259611750832149453868943798153818389994851230771491449794899966752604725333205963965005768266516781692354151616923326552543583076189715100233363217371468899575593571076890496908378199954642852108058814368142170978006480287217001685576082722224388012722515073772558332990038602359687719677168960897392238264071663594916864558002257704280505129443080862733947271717607046894883984129320048304222153431594783409925663966868316904792394692286912096217069551350519915155325680026353921021653666381531615315957551565463139808261018903605368877117309716544116749076703743029824833126087875610599845080985679196766817703875118841054030430922548284658151164203568409190581760297468908173569906295545236904464456644538297646271911126264858015910243993417769923041859541766371554226849698591799892655239993800056508612180899077436410690595184159641013359458744550095311669766453798559028337564719403289739243848594137256431192174315013433057954940185624844468121611393693191581235993744758426269896218387142992385457444629328175686440328220405491221283137528338464851025276594834615441833828471736136383426610619494961157312560016661553285654381972455240921796884844190367000520460609748067545516828232146061601727815638092631934305330598497109530021397755896246924501373183784670355523154642102954584020018423788397812740046174542056604000852265886423383398165258562125423404876088398744895938179075722447879995747674598241474303298115836823307203112263740913390342143631802049795564318280699280000375827336694296875798075686128230346621710648259577739477512703780763215111889600015481210879791101006213954003664257376505896706828847674931637694140278182697069686933828592860436520585919363135794302543388971612299290045800740791814493035891044142713014915952855160307755396034951445565851121336932688129098172474550493874557442821066054713518398311591414649911051058185712380066111248523241289693330617752902908401761970023665617557978355680336197023940107263057253498407622336307742153146358906561655285912527446970002934512436200422455125723896915570936013605762420231264179179382157090984010556157848852079509031026580923885929816161796259602073124906287617342498017293106050029875763911811342609788884193106734826851569109790656177286093274775305502482813051467899692424525818924143057708450419719769242321433576249107926122426192733939086531505108866470627018106128150188891189665605608768952622715233302912068114127305698262995203911278581886354298840943769126692654769446229901341369238310699797807019121684848511428757341149073901679505358284718248896099753204709002074189020043532383361163928998159719337587845758886982102130389868315320372268383387231725141995831851244420482690166414493451593465612465773402654180925575906150404446896869018998051789646727326692283434990571002951449294863597103775208703728040625967876153762262067378722592860490002467670163538743539379551780036279042928380511931696136882581003063419127650060406220619850936581617900280448878992473689979721023450434440753377957632662630116154914329082247376616530460174227347969768759687148625276244564025946238543518005884404975767817498414253810324543446894777291606178559946930998404078508760181997542494052277912845018061127922695082105039227520601963218041339252585726666524638828891110458599636040018058626981656953598737660631721035540601159179036448995346802454869112212436527436664200055986211243270043771088781656664590974457270927664409534697422406975681126129850723385462382230932306952939201205337145417852382263458168361365594792501626420942806682664482704441901199158775761539127384027586274930736962000571491325544996752254956242317463340322669770939543922124880767155316636036297845376218691895687910978083156427137930258827336814625423867644302509104628625705455233601789928382924964464182490611894445590103356406751549184085252598504227810599692422968123292149472127796353103345598104229552109147150369572308229087488141373188067855847173508066829548838879403709109708923771738624865243164529787389398039666209629815471548046104498569535504727989499737365409340814125205056754754260254136589858542023102536126828538679902335139105537886190923072963557918552767970143546984104542660220281350688382155242015656106663265058112465203364234567746367587099113163189812966943350403836788292108075844498375946331711123879766349764536677156589593784093575709311795111860368291728731261486919370415127281092919940662879932604956903979309938452887094172968806852595483101428024525049806196329645803722993819018196942548727600671402775407188055223229398861081857006950896013071896574043133430071241603137981738934540228917531623025650382260841921043993658057795415214291626060868618951862176762713649635314946718015511351306074010376389096270391936963754238051781381588725464291666971150118198957831546012627682621064362428225704176639222233370366397012606952175443118116188692952340718984287448000142388532348793908394023350144108447223787400391551008194150457501056795608822097382220915534681622895963606059903502815216423366669727365208318015736600485896019029871606574205997833064076501624063591378797090803546837155375171819793215838211873932561563934612001997633216362734477588623617142962540089024938113466357197909060241766731010160537844754791022449319054367781072629787503317006905247705382254757431192872848319661252182340632372260496586623860356772712627410935574148531280006678898278694018624179541457417108311452653180145607790402907636339002526467940626003059586319467881871116383837703634436918806827414949647886437680822934584855764287179908708453555262774956247657658096380877923853400080709739119701055413317736035379174936961789076624800313834847758488325255690637668345315277793105955498270933394280626868565894279911516687732283633211743606434748511265578247045227976388374865457697775910517265856252671302123153615207063756843913019587509891164697678093513180613416555564900372572706779715101168884603576029955125120630481389105424683521288184844568539439178301643548964278277552727437921543337215417097789716171097576708562810567664593205189279642772265191915483890549866161599555373574030499990919070339002034160107143634949927664938871261143706051777674219549914207936069610160158107164200326069443562727624565284893889940315669714352499557909203935622046703081844575857412086007232700637619214131186517376841640994867785108522519845820587693708350599055598369483683399548867084492511461432799975001773010171414674993162220824127051053946778039802332570391824529027091759997642837285154529115914500932288120515621400995546000109781129543583673920423711291816126895390288501017689250497442961427107127083816897265502363178743500847582332713262080301128377272793861364607379904065106713773202630758258468219967627065471833199419270345857979463139002595276066064983290339069796671387627273612915464702055840005080951529225681617092559941601865977663910639909045815253971088955759889408858290098688110353454618343446965135392756287904897250698758819789902805315022111679225872737759465615139191508794757317566668830394210470854246655134814476663364735825992179043890816180851108711249475042724753694405956204756103948809421414983277112536594088966261778352667250251215836744010659792720835976664763101730201794461945126102197717001309628225249764091603608503192609849149365068687950204499116318033086754644062794054047373880342078513713134623307114327001054465181832201354727932641154587428349675247163314611980624886293509191815417025427382585449650118660682563752000336828961763886849287201354596913636294877122306439005148105581581814715232482010857822819138040043286167832095241188581853430464037235662948407525697391400258380322723096940737139676530205939747656200369205914684052149990630374158609980544923194373150728328628939203399431453260059057377988444602416548414670716376690528287651252436419343325556594417021620877139558028976503579518647800321199748470739953515538912428649749781829646171941152098298556852505888364667641005884773640560422228739964415898785769538092652213726559529840402822994046491931026928622144603628148380674719788784180753131207724105374212672065416984784329736377789962244592598872375752168727121356092410762166535042287416784105862717156234675990174772677273711589116846625314287415776055561872778488119913467331760796514617718694950227335606782054210653246364822917030385064237788256136387100698203484027229764043281142376732009572062954205580971571067661325691137147653266671104963736828911620756293508804973756330511793423668106985464123706632424605153083990269429187393059913069506868460696697428595671948483626060289923261605690891888361651458903510139388801158660195863875655061741541527689069771541366171521254607330165718455872396025286602378283947762164403391516838966993808195162866421885140508028605149359040032901892403239868064777854021826919385575623889836837696159246394074175678454900290799011106362660395044745725757349073776461331304666016857482852760699260473584747794518056933732209843196151399340371454714195155558255952715372285167153958744537874626209712993065031218280614032043920697732859993013627575807537532513102478201544019360917718410072592476561087244314046539967590160710807224029298378199774440293243777719669685244385850196089941815835331675380372156627987813582237984573657386696681492470689086806671164213431894442017717802716168415950391112514839851986204577763341797332028047674783909429824649419527169985401206840150864505713466584818071412100164941267794965087565284450522080205001714797186332345306010049638238922659883796515148208102055729323028974447114427022807949994247819796726221679631780692541530713579628709964965724309474713581692323196447333642196123667249902628887465233294757003320624798993516677435866830548896388288215242333436664251215116672616942925551641367719622759843488806681888511570192776724196922024491391737858735107639419731795715086173454670883531409573086809318485591120181255436220767413662381516263620323926896042767637937437363101800408954644651341502496886236644903794322486973020246298842462958260887417705592522992507695924068162065625899681622031238851212051098204386569901872699999330863201213614839843098142757759472974011453835154183606122295200415527551041188461524431273290468121509153520974013592059969220724781896440293656054346712013578728355590092278724781960886602175820260685662270367267962236137422462027008383449231210885775868796543369451179036456988684748468372253407695066278530385526509350195756055444292818025501313370519552855019313749471943369878009769413278954851727729929813136731469194340646990148109510143180849589350049992385801783085344021056911324090449263605662608687064592650055476399180616684193772112700822722581054286246458701994903227830630089258323209736677893682516978140912006369620926254566714257340077434942550715741433215798340968487800805406901531028265919192044483855448022378781015524100281709262718667501475841491642249268448762753710418689710630787098927039609773746228803782643911191883784475838404273622939448054777322426773052157579895933711959163453001453949792164581732045420652549003616011632724612587552826931492126089577922212140449150224855903374304776716423358530237176977520751324893944522676403139829578889081647002746022277965505633198116891558477040235465170401163063716746325333344115983889118501702896601838305467500532949500508882070922488972592310438142357585182440882773419786950977066875059357830858813320975333350432678015302824800368855347371263705650370872494894606668215033836080344873727974476236534360051198459175158282102557884340263266457572403085727991208374048238652683553855863081527785351548811131632516856401949909678846569794178339113573414950083344461927680655663511832097393841453870940449705929891474260002312071860103646640595633051783727684597961243290131573285089723746687572111723368815739034878246329362688183563023012370969702989905236246165521188987177114023861384033273553213151628636946175092960183577581838929081030700435599506329546366822601679343513044441352205898359041529702341410174747316990637208566215060078308418925468287838921429300113574099398416418588057440240868373280865899830832860529755916731317919120645157487153999699481851774385734280512781047833416334334307530601406915629944798374842052515283204553334005033682560814326398937640455322565890380894461297149502110634081332618598793471315975562870216075355954699313332055457132733649284818279598719956429446880379914934250076629913247241821086353925306237049305636567846473307776115442737133909041387851977331882886408028662547236086877070370571976834924302887464954398553109087494013097821585338582785195333066744048329599767528735264332924066797650800844664884738915285486806190933024535978257159671229161090178225279094889761039740685757624965810821832013828980631545542783755115880102143861641407344482825719801016078677845311813398763285851221877465985365032735969968292408452099863291302128469942264182350532615702352550993224274315974133188937692799624231756443177042356065136323529166714315745284164705321490928399907046560339332072886242572723226673880351138705191044822474687035346323041855695452737556267512650236863031320748996071673290000365132806202952294469767094359160088012330820273576592394030969069083470823689595859516329271810883835926069942504782982475354588668471596461906347456881218609216518918382357295205955473191521362905358827238933049620084322363879490039641124877131135358872436457978902162887462196904649513552854961856976144470476049135181303784714902251985406868315919186411328798953999128417245773022793669529559272009138045298138337868801572344299938782146551105246990921238787697419110154196651884702756359880217346101777698791597844582156421592221685186845078151322699814800801691294782965006769448689546033947299134345452168604234408672092998983766753784902202164716596907058245781018839245553674593012550082639518689672330960015286247562000025832514799596716648701601687736381894997959466707965853284879663959543521220480464743286631036936137808944678460090381941687348839610598550672337472570007909818973161311557601552313211597676491430956583222790260723714098220259372996520014134816339781107758012501509500123714601326549702438465532827196351171547264979119973766446328224798667031357060394056215282817970997213694092035251954341969649327257360472265237826855409142055278448467362074179509218279033027922194848010613425949956111715041462143873073286301747383636481622802798885050852572515126704554863954722112185052810481365611808499977458147380073190098156768492880776422416764096893308283217840537691812385599061678176725942593147740341867256709503660747881096199481486874365903515830545273567633681337862323982857730143187994057668597172731329822306991089133482011546883957521352672425313721058058300286787691900448992013308436472787932882412106774969806094881190800416135528541001818154156311534257504368226626425556872042065509984217891877207888837599587757402249055666133976068857731710019780254473421781329951107955261218886363412475169460505097976217149812311764702609335422720204687118486323665019846959132076370284628522545247400818845550521404257366091211794554580932627513352191139314541648919755307240357499185576279302065742201887872609118024368273257873873137297671637002298239091956036753038212056925355967686839769102846511176873776538347325226538683318310569887238456729772370374725463125166717571356215527810042923631804799474637794691811827468113124318413399913791841251024523639581843331677365514185307918803235094480111793518959254116254512664848249954354616614068300304122940905519611210317656646962496181427957281153245199706809002932248766487322962041781041518435634342735136768836496100914076790130262041151325734971067456134239132166368499006097603905323722984185720673864670492762915262728188511852339736570495157854278889892106002728968361367343654440731994652186496925031957669074157159963543815369338817067045034892491478904780754419613463290393232182233840640171583286526616362883173424259705552478470721842731479889579649761444409119034383391258755557245491394228627787360546549341066097592552824061466132503241324197518253009518931013974928772213546298404988537971824411971037788294933475234952422408595365701522314046773691986275902009069710016328992630957392174571119036840213682265745030502160951371819351184376860079862038805003679398610800993226294687365815110158340582151708617665266712356898163694388744072453885093515471877277831329049737536845333757649371250928883435930363646667806740906773251027591611181132847310971825259382453732006182293335029884083381224792241433861492247090278073320447630283518725131237287285783078394330420656305626694188772914381253392284691841113746167700184930312377578610833747199472011228236818200924253919524237276605338829608812084206656172450698684626684583344425798768767644888803415897767862659673592359459698708727228575448670935332448674123989863629094776138926605366805096863928801809517378424237598939646519468564793944901926167842265096326077186991467673161224150161996742260968299034551320534917292002688999304046024376603534080889373099264479189493666476228953127802264173139199717905634507174046583574202338373823018819476941626969878849157502815924748728393985825484730253782341917327781813194543516338132002804623422904214180131292938044395246505223601572767937709130804126507253209433015451538522603615933529095699947642996861202951565715111860432077497904273239026536496313040672354740148459895131761731094470001664053454274550090291543022584148691789941455880143874552129951360777972683454647711679359814822979023561909984096234983647973267451106773020567790102416016554849099328794981446595964588237332703068985773254838317267468059853865626393136196993725248616777929923901448741989364703149190708514713766610492628175673601465061928537679854198549948424065054333002316938803912607977258793391141514150690553335149285990941337478040823351122730073922781726052770734135672436381171301033261543438701312204785903616167757821219635124549134378438318788912318573147278249689230551369904703218511836788355011320930488400944232068408072020956670570982943023704595231042781338003715967573193936228604633082270896969104842261384407325455345401168518337534223756903142707890079702499575905549326075572878589405617710335536135308191023566025938568796514076482158291826892858854637528484627737271179943290180419960716778587978675911905351445907677756934971198052316038620627969108113537341297703842184299375030071040200081300946639660172081350849902135615183737607421199851070213207938109673093785479272257645030350251704555408345896538415228524736452332998475854389080659426414959231911168622827026315531144960084184191450868409179163755100466871632724196906798918710068692485376343649972170996768232796901438368635943335227463637952159416506921617773895223025904211983951041222860301578967714795983040580261597603249289217956509642031722101967887557068118951639367228381887722579178010762868512364465140976832346918976486715719099294617646569835173488990851778014691052608494864622165643563268385273513141721241915385709077991143797317564078096486471861619276424139104466730248780066104694752624113236854685153190386289594030338116078567887700565729365061669874210855033485241795897602083862858457081448575653795410206801399061846034688066050966640008346748430550107069824623556936688545104432773453806197195076925534216197183192240143639951696555768354265565944222180990557587503732970781148417079995436092467290946107252066321939848103146241779506019304738646667653528723575887593263855883077842284317231242152629844752568932825566861959251225992855440891861921024846407029029830388258743336886882847552484689607486052711136222338096533668922562825191783598938610929821705852013145224080302437514389245698734934094177253934373452713652095270368639012114408631317813428701731874028068424507925932286296747566920904654699429916166378591437339103938018094819307886003013255798511227781114869621702673692136170796339543521986672777260541724643134612243921092984435039951207115200847662557457484126373060894369787048896315397590202074248522588331172697940022561486128708761638450271094940955504833782944448026121311304302105409454352777115666576680544903245721803946493264072050393837861996905625973048846315186036816826702459050108306734825664159244418273899704653342324357475667118131133796858287918898072686940939900794692681757294609935148843254414962197913582364466571942933112999595627478797279911616881775739059431957279869548840628990338953292161349858785661341453958124708291658454330539636117847781087179905025687481344650677917260632844505651216479619345610155757119787643319685837626804900264842822391904009429445068272098612172285059780601188610702590307499126297907611892327524491986303748349509597460645845176112489398814156563186485177272265643239036051228319181532819485847021893941696731361046803346792652993201147065968575984011174632896612846872545119038256539617705377854517121867581423023380178942277032144276579252993951207096685884524371943018272904086568485634390916782732638793522466339437219790963427371426003111347664458433855323480283020883014368862467827617419945761676669403388213985829825387274364048567359591297630935084912353769497971196395303469470706657965826459791939188805241814677768384857682130482019262952389985640331307791576106797709634327054243417882351723704325142708862230749047237160692130007457685272833940678009521424358654892276077539609847606586372710486013120076464826784775880577203613571672704714864514115681687708702301887015758698148549153163736064494408847131531276375003157403861126061564784991013891767300254699765312000143111330034978566939200078931509383508272087063156116811712622711040167150351831038922565863120800666755943665598323244395627720403367361004257497166854569697895924887580971675893325143518231426684396294083338007398950955339248940040419824789282798484190423079665573781323638470484211703705410916056661858756689442492812791279656249383401130464755209237707134770403469290153682461604297021733619573006309113738382998982760709294942241511938820140419429032642272803348190283076036927165368013769801736541431339529604827135588735098187371173376468297979835691157005993970119884565278528016928903138459330026300977268381965455844370468352644543638366119247102336977034132986137291681464126515605645198095668280352200994327532110823235726261496645563627273761017024944180572552661917693510689637904036807962010367730566974892070391375770457178256822732919611423145847032219786102546427448713368402188585195501349882618018428340111156445022284753404779103253607796986346995893986402156684766739411619543059295547705890504417257969587369335414236088921431821043407777845730724461147009392666659499668462585791733242161886263794439063056719079406875605250585460209579824483692933422356208882315072729686914982321754835832184795133860660381792349419664703294917632800030477493932201090656653776379051378700076918307714414665835448829213083489493980569564518367013363039246571927431579015039938644511519719405057976304888386518333700772760559788239044825885047201640901262099533268662166099999621622217759686173616836264065612267206369039824551935768955479012368566233115650793401547875431338735096835357463492091866907778863226815589611863117341531348920510033782912039416715367316650362718055866354730299609435784689771477318569872092866497177041870066293106661414523653148943436510449214291505808291653176016721583247113140329291090972775904413960806049151126087972536726366156330634249108190229370940346341964525487509624443184079344902159940996506181301032707892030908642192845049386362853750017303526953449538098935130928054273307941313753863499407756174066769415550799014390613266055853973342663145728087035164474591768379421119711068742193727617207560804367363928457651566167617315769681286293283859342101510184600512487242191012785230975300067554962365934522184479330719026466679817563221309398690210335653055702884360102499414064694763972709974756807838888500642744251438299034295809274282683497933069380688575060134336592307594505699008999556756206642043279335696435293154624223042774315736100093724121298131404358630309357343516284098911792349323852099387332089948644280357295613103255713093594408651663150763453489864063124746341445358863043561215583605222552256727235908949174375081478915887053083660480106792335607377649939028663523185781802408161138650610094101320267838049795351030673811391401151938896050233850436973442200889105016589764752381439484235311801092993142176436103222248660406537568373919845559212973532392853344151785778914156091678985583161425935133065924846785601885738578686723625638007175699165835399863659705672830353663280216699050976444948739410498620883736478095237374119514252164494418349774669308052447393423827472654083339266107240060468767029127323104310986039038070534712602169375993687997183965245854565205996523703133124941914023282089379900524111518227537339581041345825273419279010993421380445536899399502151536157507438407955172104916507695997894167688299432589333945182866829884032465127549393842025915934919731436780043808779573117511764001813568444316542181125727688896737670467539348401220219461180631071759869588819240880639015499170458438520703015131617914333175099307097716331123304148544458744198069813312396999923618138342278644969213128834828131632297843560873948751949583781276141651474032049993510968335722117441326619190962615592886871375373050000176742302622104048733751717156939621398893524109840037040881750270710192428401179066531936747198725801048189705060885165042390308786826613377573886590392242089064603879024250968917268785912917432405507166817995724703760292644009696344414865818789174701444944818942170297652512282018371045024190935198837383516154098758574325098753648910976030329699204516254761813192611772034879974242669864854751511115059016264214124383104320937954749923483769756005204660171517099786781884126478918885387864062180427942695005739485291118924255827442873495785353455746580128615021564910918109297175930014942827668412549296985971718982588247130082210046890416823761994342705117722434552011113795132797348423163196114156325779068345129729195263485377018130875551953624469715490895176267030534470147515451319478839401288327450493297238780100054145671788061982133776113075423764236342796622067652343240889075808780723647669599880951416765129079122282153598008215292924917353984774680818304761036295593558196190892670550461485785334544437029675903273110768568154927532046173116150116821391785865277608997616358016913297619686752964768984993779139354329476992805939113082530048426883688710580719876437814070215346313666819533609827931338125188997354467307914531479832705204902884807293199002260518049148436513847592787391686489580662670436925931324370220740182712503464496088894203995265881142789519569315539917903435206568175958925901853190199099981206339573901773139581502456972506025317786805159149709036566615060095373553532473653147828209079155169316397963858988421530251553063720174839175929408363819029308430001285809196877876170198545587851517948660291832353730795460045255522465899304174426081355440892296213836092511183270124075380318185767563582843091424288190965778905000048984209520703811508345819522423509508033902216660803208094129019176416301834328152654466563236551815951789582393096576713152383611142746955351366926807614790663366058747958292798136877288343372064008404747064657222247222348044485180796861194914757507401138907066473459171692796775847402249427839769776333900395235026248832770187322346400317254880041918572113790253728188737760398907355358107572565546621803947518525090762375484375022852969858735363542064819261759757321789144671851358647878829972647746194642692016534462282988026279974828942447696745253049312895330299514723850084818689147864310260603214479855841565306574277797149192777895756896733555461173811257538157251586241038834684507752413449468281281062246009074612107370308921197949108673060851364532530954522140225883586069211779344534867945614740884800060883137279098268068869169844343942370102610960853807020402294753072260423387076687563420916981443664508868135379278049620351809151819479319752610778374261532117053484061364554711122391461835707315157932607459740062729852485606705639340928552650567276125108078344964266064647625184176279173580023292592362882282644287209794799973184241923229877562967440024307312649835206743253450193891931886252195213152269243407107138736819267702906499605434226849036361023171883137349392064024871734261687051817031624454824651719894577895396343566270979805137473772651183652275339571053757840092072180336066706883648299075251693291279010067910570094873123782503860267240607241474561454552647485317871536148642601880173454453050253479605333415810914012066515656464623197677858600223896607237805730094681331632157965314075621512393789147478152108869127037178823523480375961177080015476486103770917381231608805615013962501726391286798045716415847447167169337657578272901342298327797453952394466191033597168022852860783924193509138936357874049248994908544006521117257680645879372346805103761504581137254005918983509595801138321682236455904818967018355339964056005461645017614140626716959102150426355403663397522110576251139356936587925327809241369879092525418517468565549561307157487820385919316532589144147423042586292230284970851775851485053057098206073342640076983987254990083328786882760508953075162154534684079336112966765258304447539121079903166480899071054222655761147498977622561650675366184179794173941996685907224105229177606568797066669116890555498799559386530670334082368756551411662449075866042756509913184995752501406759851661831636551752190779587676807348906940097039921605810580332922705608860067965490600967111190011461411705992525961522694570521238634655644214682559470302569341548433999268211168552286991018774666958730437327738298254469436529395063361093033671829611201483571758847963319456087295369524057053929288488847742815963502940978730556768881578131123298686027072590881942273609467661658514735139693235136066001415705256962231663134342236383222483286181915758752741540536133281840198623345938727534271179518461237003123515368185326943356655588895311150110907905825427440202230113488801344045100677225746889692939181687028881855133892737796009673939015720951894077441934424758960419433328226007246204343650057903519962508740415535150862512334922628988566693781567288284744992882891139837102262074656594012331134080370995344442868294534961035149177361843395807590690284861128330792481208059946142800126613362869605641118450616705318896120153465411868566588104156113284114104179591063986477987649046606390111923888532668240234357319579147098918758631035610504836785633862506368066823287368938645129890280390598969159502474402739464895780833728061391577657759603255193931647086012123145967310394206799275341758981237870985390798672107133944317229212114188800572183338661394349961496335061391046174801120872365662496022857607212815730506796089711088762345853118671242269028471225379980748877741800897262275332968353350407970162174728923524293691746345649944259226157340428581287073936400887976962993130003396131246827884054229624723677899179512711419125758824921470054346495160169619786230775618083735973479730945278651601038386010231855857315260010936230810980590038146515137613140979112928681554133412878247926936064063356591106497093723330663004606037353367243266435570735228090745980840225667840323066620270040925749956236112659010474451816005670594881753637585380730443999592902471610470387856063860096142636875484777991081093613824930528658153198458364194820277280753228185857615706754761314095353022540940870967784713697565044141953052691067158477121761523504368451058950088538690318413453403396281111324715801968308246322894093390852051716210459047725575048742672360178296794214430791635302438389468162354956145721598279726121721521864998667984701084362902583234392395974811851015594847534900645471495153273556263930721491909137090058466409547806798354199605915198914506368712964604435419281004793392252669394036723090157777163681415886247911768378698876628158610705864340365573164709322728599619847872872885730354405060933300993281261925114180915515502613296612625584372965777727204243584986619154088125601453500966038145751638829909026898186726053808792994866787244078328850335205928851637067131671553378790084485961288498702185200372667767316724286286073971911253917642192397497946748991200800603134002348720034568425472143456105026722705303632604561949697793087000435621196058684349737817567318995068865243023177450611868965020245378073159651764730563171278361121591469964603960317515400800270431299551615327605542718943684130980193386908127947034140050665734235201594349112101993546928979067048337771765081390361011698162649420336039102862163159142430077091745028333381707080249992554137827476300355362968020885523461587550608261148566745417592743272360479001871767609142475379927836862360638652164676608125708955979691916160505155748780301845062186717035607872988869024997545896969983162620503064223669338502003311702455130744167350180295564429027189934740869062810579669422077057772154797802491201580526888227285233694882036317924180363465106615821011044527057866493605371322413562341114966933577023830220486384078914917284820814151731640700334701607016091146816494037074913582014149285776052693546206776082692877039400923043793160128113613946896743650650131283704246583079594138862917717680330242935393437213060970739609128549418339970740493416701357751390749154850107606594313421783405589041530650460804513999613178236034671050817067601760002144036979317637606528640783429362397682035576027609091263019130054084037592592451977787597077666625233847201677799978347421463593546176906845206417186370014542296008828074429833102163442536516877625807512509824731473654647030012728765176767009946350822571376819725145557640128211358699494876490039234397525854007333008505862772920718915884297650870227129646897410772383443180302098134940498649942615925335702533026538310068661290628563235355595339378145714857808686186932790613831528596620093420428105334226353075351032674794379652239809799705080525522616139321975585716588655996954937176734644401590778338911800961358327756121753045182958262866612808568312462587376086376878349752796197660655670516592523512235599918495613740484701447260481509232775864121630541487599021638165333032158234357560253154677015899263388114171592047997768057545391448387457568046476591443025974729161318079641560070280520881938795300170791752701428167672708596274941476863672359613097575342595902007246685200651962263116468967653129038941131686776992030542647342906477070790488876217783659416578987695913053258974060941922361114828294418911061750230880003086566514032913242671413331797608358744763915697281618160152194244301201237896370849230614522229582502720892345280876402113284725429090871520037006979809597321958983806496665801507657352109071531248656515109736274215585462242481906648528664643818067585375436111282633936802404664641858575192997183185166065161563771630273834333074269702639320996168762286697713992164918558195957006323732971476994509522615637937817629110670741358398309586055233096906005985257458381764007354288800174524267925866332856947093170306055356144446951882516840543717250437314759179574948442929714571359660878083620796189407474694671075533521455326419788800225791532307846501948103683494982554708391533802875276294220127205955595174198782121338405290375828038097121926080105142169648906105002014867934796989899111591563007794452676651544813594397158170286770609760357012030391994524161886354775590660351631997536394058803168599435642964658088888057549785387146243252881829666602131936137090799837573632875746281318814571758918938892176973300084932873179139441785322467778814208216769366138709485898277343593162444642634888803537462366408280926516152698977936615848270402505036825021899812401140434917170118720027032106403122823617143312150784263438136247894134382523159035476210125429950904835571439088340888886993200375627082150021961575713172637999293777623534545205147635388396573585096189708576524240942981741183768930486923611201330382568415942479003977448506558684112899126413196493899821934284684610854647789742056839389618454067600685697345940157156855478111675062979280032248808185952886578393851202838282313773886040110921232199879613087508426246479366519647030143174433676720025451468749790071321584788866464739355877200528701629433463435721846328649485368919139743615124560123266306766920726860587249765196524447972494818720417633757706256908705969690130183308724259374544753033943005844622148022382451424444840656718700507794708019855057274915356774205991122460246343862418909633170908656326500528809558428302488374499742225093784652139016570331614829456317143912233336132557883621354057261799860007175705608485008846534804287538404711011466611348744572433739174123750666714117949817417605005278657489193284967824037258307892729981152808272719378390120345273578030822056234795070222308790128677322447650898264303280416018472170461501296621063194725300082178108595107091218127361985956583382308222124710431175860087802762707656111626579945715060163366398253839403378183111869480706522031279246864689323216592813440016280541638154206828449020025706799995305274336143723522796282363016760878494045219119812637712127007554205195056976568330311738765085348562499146387191680033366661650430656345929088007407099395687203853124738460505273251538204697964407727299283668460210832215330181972032280299921116587943857734806753195920022393549390501609566229585062409719667975801924743055445460423697625283266753598710191099942650358748988469383185772503664109356263334305810233968033245961889815880354547667172657367197442789972651486174813038187408424940996056011363404139532160495938658645377591729307469058550558723203575887472722397604120243383465579268031229214607678349952684206304557689882757459721874347387118135791473925583779490640823844396829746122695895760898419579563379989464296385694631159466591134715311236715466826897925049773699086932883718743835710801273272453389646200990956608880200390564227630578283044575043657544992341471207356306210941496618350950093902083272923394250224926257863282371052802918810238336489965450481448754359524153947792988067236267755890581184387984483772427405422800871118697455163883625821663210607461544736840402424372350815163254625474301531485550510126114077656625121090867193473840964472328060860061873764136806712251223624203090867433082276895945082618989579176065463266473067073853720138822879369240790519990739780213309083093886269804684764481324495547257678998494312374776105945530019119903706630365336919630357932935215714155044177853845709711570722559415129080725419338188400755249862586259980372369597416869790696463526839852436823635088976633169193571500684179523895872375029383906540258432452662862847479097724009015604556510664479436726687918035893209479365663275334268508651662290145194481974085592970447291240037255148336153058843739561317914074830572465675774719176693954841764285221747527427473186098000010339356747574460571849732335295797483986634927133125340673117465516598282666944089036088351898992195191621847956217198659325970096978868354768587888652481932054586892596725485057530549159103880830065982770616072102763977110089729509277676722383040191154217838433621572213857306357403888481150718491091928352384777483860874582633628311779607321808718899322337016891935235340691368512209475296396561545364794014557311821219298609818404450684369072754480406140781703055828712513793452683333725729876127913663274061227853837157336243545959140999766733272225279251919227730525483111244215006836542823746806312140372389953300568393805350301556250821475015133752173473008620970520942434642666780694103483458421353642730599159689678827811143037487410754774173642004134190030168728136188552152836713937214199616718352559867796738389107633535937363739524171666665069847886896377905978873031985998442029747485784414962118040265158141778842750471251032762639874292471443908471686884740841276679605079867547427228369628066841408858740155834514973750012607063888297716260336476971998254055738007097923844692656887976146017607176703529449542214883142866952207609454280637036184464717651837104934953681841691508675823169103838551001309729210171587730793896318606923366205675481997458029756764169094703802560777675604880875470863602008967880747402019673072138596781536833210394158247554825496643423066866519642333211531783349928109886048537649735095001496305889190586204634682886974388654918986308740270719840323213110089656534271219078395291916395668894187433489211221922090891291404010680770086120373343325906871977912269882255241522651489137955170860133481392676474203373316770642650562190319925456317424594214467937653245928836009144338124483384440858255018851243327852049444642504067020022336194041096814359935587641042853543581141110770573562419231563922515514374582230457393293920349024833921530579301894715884379268705007000170356440929135174242550444778146810740506286394440100859479177124751898075485534205423816180281556430690374130970420310564400103701113986162394696441940279435171069880088407048495401322501215511994621060143055183500455933119639494228942299709737940761296025473680714241005795544434278145711053286942983038165717765371739466489424552754756977291321837365395957095996836279127286278548103173529216935558310609570565380407707927239809859684457262061706043955794191124295070512938580639816385501616814670907948779220560814057710038049022694565278608328093719009164035536125080432648927522210178867415107755645878048135000357489363801945346309869654613074936636498435884257063982459218150706849786788474928668530624547709634861354585547295991087488052027006665983601275035049265912664164415431864493508745076575475540561526217002030660394667853664263518902379315435661684297498974715257361492312333345567030655976808204316119031977394347668469561075645302040033410063116329746387992922179294945039725092116737802110867348292896299912092690111403944483735458115253832173256390185848564956265367730835796912727419889299020951723818785578387399485024964564262018218420255420548091378299721970381861983526914538934699099087328513021084742141666365964989379161377495029595978648014037572403739945911361879600457072694865332664695980117076749777803969366741414069292757233359751361697976228546992686098678429037738922226026683843520219423465159580902179254274696927726360343759311803396559320139245241244760259611607618400526149946988279094665300136820705653220960965379952804106315829318021420439255772744725467991980686932205817536335191255933028614542149899275979311177632464334154026253724277055231363928356429304205361712043218078161656331789049222832543315305643247563704735700735547929525681814241574934220180367872752629140051105466129308295365610304148970838731478701838394791407879079083766748187206599207205165285009410152777556828224492855350731776735407726244999992989719856420189612755837533703971320086982193566040016739906611924630660061727327970254807613385412135051551011433389633427367007329676565578465870829401722993541338078761564023380237546796938329773774164390317608581598489501702855594212926562751768987451897557995643396654540859609891229784067899846981474225697447393621122042274251585284432565874936228102873038918383854490405108477478009023301966262998833630865819063338581364973827009709492084298858110468505081414542354038629090991571249958875561701439603581946821624387746351219666454068951807156099709781537429847906797305907787374962798077729299287821893469386651432037655375864652513303848620190035872093054013768674433160266186268627297011431853669129714531676347573388243147334868024008843192165700515197780492592571302831926042469531370293977411750983511460731600104581693385619982395508495539294078844675068967523846949509660818999838052453436354843887790343473402052410830420930250947575146068049053726962722977608615815995247916222835960732887641923257760379863702226400013853949675406952638554761827201952811160360925270064955574688905141822500811363954223588028250033245976378676014321167467553600637486378075339535038497027289441060990977304934526859522853407667388596712734826014451513313797475984886696083951050417496844863057882105695910333782699663511007673914134656125706983844250408803055253787206979050478859663912238370406087596009499951955378848825579744193991394007928676993471228636855390457360707543947855746683491345943840533577541526085162366138576552419397722307541434139770318826444109775055607377263817865969658227741197127241893663352548424459829311837045120889020427522043590758830523429461292547860678130764913287603556664419060456783181014807282959092263830010747479065366872563700400173019498483597595825289014795144247351570395641490350767784766767546168500089233209746243591295626082969055100667888109667000215891821998538422904928809429457224694882290998759267560605361966962500910574290958932719901783586064964271599362626161736395076371402175915523836690624297062466308882637682631866848234292160964018338673268669380570167004686503625798634325145213832231644467505168285423080456291261432953487512279394578035626676671865520372313918019229804598608219467725561196575097251871921370333678452109055768814555658570430866116331569902345053774816582450175130385578096505060474880466603360639542360310003465453442214280631690140010054884980932058258581210755355414375217668128301142081384094561034578295478859290359643618895943731063977253750191051323541795468903660788347392373413851502244547266242166523524097062584115919292590534070642590246929662465475400868789655572539915177466185971753591990440494840957839407376424872410632754043261399313941910365884169125466043715771147941951725697555924724562010157706054179710794511894317992839606737756675307459773577749877137060446707378223789890150565619408817025449188955510797474869430900325650986532376433830248562930568538869557946019248318197602860256340929250247148192936260970103353463434877387908805804459118428748176846843939900796471222602407737509372315897715530878991389657362911160268290655448306770700982762456717668242000081297222385481457248304228221621328790850344820129458652976419696368973204552804292292768808018167090203741185096374381038149888484398928721070362842699600895424566238034872997901755768498078713773199771450549874344454614397776517782550230461946716159500415018463734349059434542317709061623379280646971968586286735188678627308757902510677413253241176557187987505665261128073843536360839420058202000941378414429513349724681613783219404467456596503198127847179159585256969815486549233489130039939136351375086454761836361864231372620400514182057043169255631231424146583677080101333716389212783374519594253909575258673421619345263081459074901310064485762799578103018724648654126393347112861444864348361428039448217927799586805148463037749702678337815305437202052689577918341218632324436367411012602284719811955121671281253631203558988303663090721421504021554521264915083772921902546692697034279102842064744499127286660792042225407770721846223398614715971729948326487736549440836011548321733565582264856410551708747056461696007810559650304541157265674914849556114272509703157497417167655778500871666473123927653463566982751145798807030733083486125299003732032923916779629786406974043382071527642607747863376432954849221404494752310790385616963062754824845201018251327888738140493956515615929210771244972736465976492019659781241205800050978005188384846124727266856423202845762976393201071744308880541872403899078388933326427099866847517427990167309313622511445698627438138937847169972317018600369785291351756166908572399521863950767765758341787887335884922710047196682115437204856556850797696162636134917735014133216290324897859672614649344958634699793561182915309633331602491023641267076459499422748161482418293050752585190200251125633810230568409844925225196999906078257514615376273039654046122198735362937865064759442737467215622540581979614118600903652502114820956593497869806844487652241691215815619931972820065323097578803310732875105284052041231669347802345245675182338643786260245986986956143285741222065474026658313403364365893063939079999937470143851494113557696592405513568284359284255048379192560373947919952225123431587855570689397670243662274605596937684823761970886836630766442019164989509140030955141360179710031662262439512869943000261382445827443726224194144510372117825794061704381963532239925297984013122476997887645706299427594727783339770404489680197630831290774086145356875125528929844867573561894389267084609270898403742612432008712252527424554215375841865752198182155692080344969949301937033527260618106129532092406729653655341804811364713635721627985048675901761521302500086381068902556956055892237206901741277554861690613012982215102927574357631085112328828634173629331799745598536537159713651587351672517681059303288679320413471349529312167393840449732997426101839598137773767197928023187198679566724064343830347040552742180409973227814487488650338821552035111232459053779424268371006345113671627564062315699805584726409256455221107846946395523959010268085465731969158111982250905556916327399406350227871580450183254464711778570634093647968402986910244619470624945510318202037866613415767360550965750940285143426586209901383779712940596946252533568897618001570338862774594110653827525238765895642537429087298955836989396717610788923080548216373959166612571523344548457857640425019595828537666125290602386837273425476781207421028625452352054726199526835395835238920011558736050019417871198105554106623151015145197235917609649505820717318834418750562041217704331950921449575486876135227739502045178103991382535486145667767692463287491601803318253693336814309165156147193436868159908987941200672814576086919885318607267022053432774227770278499754998232216022219974740138626785714098834375855939668382595452761724080663317203091273090361072737387465179185459545371509040237328384144855080969496407191955458346833594406900483636539244867020504532488195277533496569150671173387484603163721854723258167832552745214699731962259904973289722075019526354505822540691441550944613595364360272735228080641661007747860791055872331233398097116277076070752079660381538350141124294146416095586551428298405518795099264962650032784517636552653634533379704615527309751493274559726549295734429311637292741921625217549344494761253900604881735822103150820294830280469656287036532719522852636467785054596325745980712517509388072610158769570457450444560638894994561223575207227623751814413587140126802890987137537268874450163345532764864192164801399091073078986128658046143525003496784167861118042370612888918957340838592019126918447220867432844983400617651020996526507103576730745103206142366727038441252518898694141073974239210670099303953281381423816323075136194314327795201393667911375712749109285932195277342191531411237612627061853326143687115488599467743387933158294951190000750471258542377604234965348420967098708300536998844343949533916373736345910785683837659843412854203527974000287035176938427153511463917245123880163087318454483281370691323135277396823881389750668328193520268704209119586339241609764101156805854373758684352178817439034087470883688830909127245291811731141313630410996294378712550854044448833298784676926153264227601189132022210024082192801680940479815189600134354760271731188601317173222278858632304683503660949566701950459334810403805583393148440208309552423323339462889201428177365232776472631734862944361822423407485869621015562951700951361907025871537262691289632021631748857217509003373323736270784943784442839721730676433836700967926887581495581129838634018718965052833133952575408285025345083790538163534618402481836839078943958259936611566932566813209892774158867959649347411600364225839475334938362240456919557571981470806173329697064936858184465419286735124631673654803975605930827647057137427899257112293155538809866707713330104315616780391211962214101297690987395693891408381250886670543015896526367381498721771714115585453025832508790679067229151446632044748230276667162427619946804779266873249179584732723959525115473752489456477473700259921839321527368883551880611486935074325671642740255473390884364815342920732449409902368462115720258936245126745281372670132733224652562505361544299283845779309559131552136412918999593924527295884650016851329013434951746066899536136785825194757260907703057504392859460100824923183529233112851432829990233640505014869600152710968451414719666527136850122305082656851241325137755642313021906559939491079894436324117340786862864476871463510152755223530170942952594917843871941103969441569470275202168680039030112427517965731794800852556284251464097198911149887521590417399442375374385200407392697399385064666480196576145336117841923300027295520001347970933037172876797824080256443425916077917335563477640406483136480402099140039533587806803794850764392385658813411163326721435218163230140750995001238403865836785422552979382744704033459104458941300931628014645766076705732324914310303922456670025477377504049241954470629020798413676341747142891296950601945286256403817757279490077704624539528120905156022181968594404102948068932178551976866485911764539324208832797623389296006319322895784722893361583892359606551030530065055170555173696637244647511816449092074459528634402760594686682297552715636128573584784172849373704362477871770349067672840727048192799468227597057630772789026771593827824612251769002986824307713671168104331317272858465568100227945970108754607917261861953070030390998158449426325592294691743949810879043684424639069885356158021593379629012681680110397855250013213390648540003738721018226075143856046616818381113844982692766218375625586186252495410403701333179817734248087289922075280560753942513517062334993754620893104908581123577715711938866089522782699085572849362339087184198978454476202600684739113942428045380478517820217248634531411716343071665087269224884273209148843685800641292120170414870464616480116115507735116841240050168149656891510665021085649756108596019413338025284831521672136105746651343210288281604871064882573339420337422568471542536340730670670891587117737997284186653172187883298428443825528288904789484857335875017555683347269654077148595370563547350759651806809604631264976661477947968650489232917562239968803553843137222523115027016143231136955972190070935629851898144594986489489687861622114106889373503118000893404837451574879955037444240490762472752281946655046851728314998692496335357312223269307676567409871931012586184951531631125872427628436694734000920431732655445082485594642525510080582364573316635734522812907494649509010559932241537426702599522939049816684263691019868442670340179548402306167756610084236615252686859884371701365173654842034444186166242529346143081368850335894046683846131027209413022622113704631899479319515329811239585401021564098405632677832555056478085119664640098550832473501749879700403852193221847913958427043026253739516871669754874885847843373646857719407012676064930269588570213835878500216401279261996924802193114514293525946420782157304797019740605736289699283361459929583008892941136859016109352733486839125821350057429560209723177627753452603968100196238914092272207759680244597021987671197529975371074044254143962498586734213317695936537810941128193923436072176594006384662448638964770371517062103360559221481368350358874654251048779425280465462977251024585214015019309896880516010261731047522940435448564882455938769923491505670133292829554816866665268270995776581334994529161499846795902912423296116828997797526182151503214565031760722071678235760218309313713271429231706091037640248512541108991056271669956595987897151835739658704059609469073677181434703474990794026101026403699256280133550188422948965956744103614147516322585566234242037036072880505698659707238534459713167723524954343562010979932721920919010164336666130913493958751714377329717779238594136241381682238369557935595081439138126070609911762468869387316399541132948549174967355831221951638468393450222503729193955257799233282191596859492119461955711351139701694959490025724795637908438961609200113418812259787252413740927565993587548984095008052052613587377115504606918416379906654021741158502120644627338998757870564403733977272355930589041098782859522055463185606479290948449540388253908470204432242913062745661455470980333930670697324171750882699459618617458091934723179522771382040535310883861033031033040456553659281132889054209474977530998250200539101359305095217667468216615280220366192122675085941712577970477091146447553826435167313464817862531216493995939803656291887142130966072865693375597819106006872272225622528828051380539990956068217033725791080956705001429872455429812988117969439661306179405758386953654375897350572751310577301872188114640152365432470770537454862001125284396328864158863647678878276041151541870723184797650983077545046991521725738554562072665784042135179009530491566282525600271383052258497261235219784576898357968311003615511144616088731615785528492361559766082987350303816298910981459959371911632240825483104971389755935104487531949311014698630927844455742779034812693732621464778732475953257249680664828359511121630367465197514786943166952708193524305118528930362907631666580594023380863980170366694001712528986894681946461940502782501434788129629459729253433191583813415719246517055601422166284089923354774238112874948977887866470798226193148570184416622292290452377276953087865526189549955833177402593962464376140800367434290043100589668331205100378809608534550167294302714950706791629354101015133530888578881645687837850173032110758532629539330876098972358479833403352282676243270758889063397610337255107185525369648598798004773457810704060767023833713597849232909377397766242233911150814236549825502673165744433677320033928841421043973589930992484792959284890042733784043851429631519983053066893636539522855924455469755811010688905895371286759575950553522954251336209063203843073251400250836202891136794743148469733130600889218591375330583705876983039118245969814715300119986385866773976742202538834597912650567354937671231601802248312288561848678178736946782334604039529178095507673506425464251446515142423024054236584259832006022611328164884589891654793143168543213771960604702567238754475927919133883384305463808404489402750445770697370585661477330120306143305961724685340971419584974991826707447709387114975117689539458828802205447787454009072508014074442357973525665025368319274424659897555089449719443811558025477133941600567094190488501618360259508302549043037985281444787550674374241342215722724371901969155208598623662991214880456467805018252931332436081078580413553379473864347681290156882092723635095862487827818187318090133548303724369636433492668840413503489021869733020327087641285422276012361775169386962257546295996568356171146878334954152278997600579924179396826254302095072821327639478311772151688381485119096336597985399808189816049801659032670945518256173185413824835409708098249754360072676543818460401957146337132267166366868556912147475450503573314790735714551167196621678729147661673199363088064424361596378221691654914039417502846917879317421676455373466934944443683702977668736805462099500084140419620613850214617872649086387757162105516276785540922008991586036911877134136437806194739666939014473822835152787911745887131147684056200499880939778476365109047862912846419442075925841781664073782673337592789308782888169444317971056906906445659855769863346851328850722444394384201728998134677250199074290291619149847820526014572629307901800311430729089624577874727689071370230715996042381252678006686959076970051250905805926310181957492358547104121979594888320672319551680067928202903887670043040967503610286789177864245656861147710806827582009883472189452703382663097175633835263224521214136260196204200369093354487218743095172051706487356884248984210452959507835758976119729836693081786342867523741531690972570135268629021941997068115772790645132772991955733993401773037173262221871716658231110929791009956339088082877811471404816629849955332235052294782822774789784444620631249116313775266766837437079293866880001237148771261659449133823565373200402663943446282605688485189925264731231882212844218746970955034284886378139724406580873116629264685535971568029062615998735339544930082531975094487289828424916710943326727828217845519920757098425461349293496953918924164457434460667523011038814148806604714242317673415777759126685437672327029106567251053087058962060922321533611338708574152101914380435810891440309455961396601428414614291389588840318766368276681501394094748926483559369916450180707895946877566999319997761533077918606879700174760270569232230112998341819605874467091921036395692322973857832114915664313451350099668532642438557092237117081166090703586340405506966299186185556062319306567523083974209214661083521173855828844081693872753251704068054554334585012088076908512926344047790158830558679067784701121417688721359728778287449986650256550561538044699800863708845812215895022762041833867629766951687155041685697179235835812653828088590527566044472715484079461189564826664611902703984208672384130933540164298268541721754311764308804655565892865204315724115842107215537600010049523145771668341463381613558024215407161444830582720616834808918819988369748402343130534801040470374124500578967588855225147021537205327174524947600306890787993160948632227254478943333184449719469355858287701443015728092759752976648141037947459335252875512405132782164360095826489001332370235497308062117881176426213407459965787177593318679237141749060777997970974594763369471865664648615469060193358418274966977904897768940323868200499660179661629755514555353004150556121126822026669741554441428288950855791447006663453977449388510089624052341561323866368239554379380480615499517851212684851165919232530579346651027841899778567192525520623559899975899872853885873297753602447765137268895128257006013445414402271698141047682369094959359922978864544752803472284275838394468812696136238694339734664868755115931188388675909463205249458514220391272701209878898408828173548425225990631206635086296553174817407122655325127353714577042297567614814530576769998028175425981670548456711482937691474184842406282383808737121712887554180347512708539695051474775020988145735914833437391882451609551281367983104559630797198541174558284965658677541812776146111774707795094537841861468217700893044447642037484737444644325764707701506816991902579681482177733540569916206499227092969259096436481192518179404364126481182849510051117030168037617258721874697088611465966113419540073100688628064264150759340152418861597659776437338555398730812135831849437829221170261135609281219985539570185995088305205451563836855406201866473401425791022207347914077298937832299150783508271642235956703241798377909061991964155359180283049914020363752011476179605676055411932452619170853048078747527223184454098697973117717303902370225896372037407867582523735380992854189890408934285830753250914782803686138956240841476572011481200831017903337193864741327220647028642447498449194859227114009583539861718950370809064269665844640877750851284718475342353595030421818783941068304266819420267840800479150498699865723615263598103133085791388003276419900640903046599490409006602933095253912596551288003046929025212007590812540550483298906193180167258173356643991987440992903387049508349028465970940819573763718153612589504144009213838575632175367445738793170851100530906242172555930809637036785173302896893444001910754102259807007662818592583353423591340627958737280645134043109022440208173875177761360821394236300355001631423926676359087183428420884447841553558044101467846515784529879349411336394643001323237339952138567739468566972605744688341112971695245368209606270943852907891087395931114261868512404391482395107514686466328642931532697162369460836000118824206747460834993385853812501804161337829130584771532304038126626426503396597946895058475552080977446714357426170330597764280247757336154647269081847497229237207692221720340059405283674192604274043409488242276778044871527506060797194856021297990526584011166417711864571075695969313454951772293364333721397260148307096657026893014580146820809251788917426797810278098112716184664614140960398511286084940347755316225743269083198433007762279955300392396560295014183824070237241794321822839868361477488202764478614729148871065145089338578472174768765678711708476344806090940210848817698031613389250129524297128312531079482265396760540300106624708953983117688299876625808740550271778860699168760775794463092610925545280770499876061158663191172062206621406607609496325522253101299937506968329107378692198428999563424425002055013299921828855902256495440984754717504159177831065406278700968691369297598280300167388979464380769596350817636823679868614575158499484197307522172412991240718035175667327262906134174251432912336086095675316223862846151105064433235775218663204335294209614694713457052980237134192622219408036986460301158177279833524691622053295769913176465362195949696657735659272965491025464564063215698724060047320623336594854459235626539810226150724080535506817871140034734900960632160426863560910932606344703912277163070581541720045876578196728478418040490722547730896073526590065604948190955290698152947530056868293788939454353969511467678866249060346076893187708155096965879083741575113961647320949053442746432807779511972898682355450399432412127305544285819407904705804867835503819245030776076657834086094904075275372086047023773025785167929360029611647644659209660044430139394244564869052125375685750915577099374932640411708469127083547343722026087648587739054123182632003089146213705721947907547936075878631713473444380646733661407795944922169038461772274660240676565072256979602754607219895193473050604302348743186576279513711932920572886460304488321748793308044080744102160925958490317036850696626664504450802815283342455384945659639457088290060893900523115188661277059557911671126258344887324759739849836440027460084682158855673413933065835174723229096508774695099586717102883195691261787549323814500397551580812009184866355606375533072990675835144200384391346017750283860104141517010983313436044364508213514780295760321813425642074726745125149477523202596822729348987954663115895641416141731546346868237719292458043995759658780208450303380342887728287429666932601033330495536398664690745765489179239835772220244500062494543611597802927760661307288839509746046831926598259657670963431853538857857633231936927793584437173338034584277172013142352565458650274522975826082508491264748464284445071690859659115387762984918512347126192856129728986173742414039527638968846379910054839475745510942679293979516859895939684946206992203809725732213675888360398397582012648863073007864775013941189800304421556127151056332054447883561009409443770901225255101486700728663595433470625639711996994288910685381737785786275133083912433856662938504982483840209698113231693157267744462560868124743211866077474891683918255585991098962273810901097665671509839197116410435654488007379687963619350432509169957604359907703354048572502491159175690576677147826808150068862636401000759125250339144917691743663668201323006338908551708791025616753365507280808057066530885001440221928063099014877043343424558076061647038563394012822957147529005845623333593211960338295049121630023171343902191305367608006843558732017329594885083145294581524378889523697085668309716758577791119599418510316533659397313833672949311281745252812182265259094134513741829171390819014444473194100695307588236527703804141384583991022295592183558971739941363177220350502442513132022241952505615639869233314301642671578320920430553682586166053425618308908403212126951258824880054680779848191966806938317990640194168847238126343480978178207817100924869867964401453373998006443481772679837805391955363489101224347398312484961444145987272421171141113151204776511646201400152032610844679541520138365580037941728941559205448552292691230468538441713336265105369149806945410667946617874191225236911828965521287057342918792234577162850611972877794425162795094090645421896750936831948649127695500360685390827095540585943062443864516912135744092836496428734488476543008292802178658085683157542106437041584596311496435018042479595773689075262174219583554271124860504656266254471066256457038108218539554477775446513325922244850867818795232067663038871867806357252278377697010588334027870547298605089497877600917823386692558906110401501739936964072813364903897316050183517021168240170083199161391906749914426720040579263318294218425131710421950855190899798456737500685404158607131482153665197029779921601073784060028399024412052110987496862089541676113405426143097190207378439641435324298906711691269236365513551115190112863439375851569973417628447763729188786991608094872758671361566535738131594775488797721692965692577658238287152963594829472060052676183462283717036662471483388580409665175412608164012951858281139951874312886788926116214759968424032505102327869247665891771022980732574619193329288425479954923407647411304324908784397726651866846728702111113754312285233888750090565918914772187124801477445836912707419937998330695342615459666908097628107112849987347404695920268140911636492310175522381577842769160983377464654155906610104775930973240892302725363008171487375803188767416289213070623218668720131968706349309264898590056085629009759185572402640118925783683525936630407634894325701490657701071936135997495906395517894236027963934177863939907229335529844321639129790073187655098613748425469427645788640662879512952316951970485132762938746431714041598640845105532412055588834777518336621701670289585106551929294665205363577674759354302675576299879775523689022630969050132393162862214068558106350380191651787887107699936345088414721010375474148747073394250751990290470341243880700487156764485573416672251078463982702976638884850348094459842691237489655578202428504720654048536036667067108587131715723908054505779569162680873363772621646106378291209266166429267054301020359361134979370670243651988002817193335634753589683447447497170373262597364248008607574314895783961298397237852619244798525970116205033299556141935332264011025363431587814556560289139891380421577941129136238873848989297444663102160125659147191851875108885817826828335938447768403312740787361667264627548361165137699620365255355723685565125433740057963407148551850805810763792850973182847111613981044445604512574140907972413337387397794269052043690959346087037849453254861379822807281666726594634464095564000929551890710477044464999348727559319058083463024193844446105452013279862754702789224305023467342947458395743149637255537676360924457966905604639166996371234800823464412068508212878266484789117997990237772004405045346172847531884259694710048002893632244197881814093437484524521952306904191499229133872863034902442701897279682817648383882519602107352698341233633706130057930558046448127907605215366694789745035423816777382779541764915471720985206875272024239178873014269090366383751546747969999701960810439573027748616142865297269358022622676500449931128096535212168876786344284597680477228176415771009404013002722474722571416189218981005576394248305595919017437962616317820013206060920264720257692471666248121671647189381906322719966161155811309328764349263320362207586511956620409425760719739837278973138822974271231573527445139605223725284401360610708652140252362220707304653335154207287798260148459860886976402296743469989249974561691140019193238708299403720241621912865876312177074425930600699792664599327007344464243778126065917487338382752612977707277911620817064324314239124120239101446404660092310305837469555856680689143626124459780768342275387422166187763828984254463599611959649706669267823348624882769509782902925977768737070985483585841172475997071000419671550240228784416025403542651948238352868308242104239622461741010512299165377982417576420282043790125985651061322499936778034243538790781488116116739572276132395783297163954563953361614341984194074465766103179059775759815586860305201316814404253275925967476594488047444504532280333296705864004666527269167184971923750024065259717736323640375682087960071307666385562841055795622287800912107678684832337600638547398333849500093656316115518329873573719345810603922571709084320379722397101864559472828891475318433530823917598228738566092042732677348319007212391675661849342141561437484807692134075915065284944946276130608719411627972824920938987701919556176182801512429357983453297081067339286478593475368726254476972240712341846636681406954681303458366890032134116832843941735387634215800621706320270716470560283199472866465285944030499183100875445337386708616110246575903354830591077156432759573731415593868370014397985982111618406261834399360005984159078443754233503217371769292078662532615349785082551999202755253491497993397089220029183687884264615914882199363998713364184227355289692315177983652149682371314860316186245308084140765820559400247946823456699186883250875760247742217054113331115186740200640129857098232344572199145741968694615166345804710900905037396452254841645727865271958598201175958377110267894839085006372769230548739079727944023619563528470167519578581564304644922039877153429742541230158225978941721214311974856045606231842861886420213174966911917515256888817037426263566742435013579640479824194191087826457014030418056896560161044905939629130081612488605897041232958260336909047117386760363533859816245639443005789582313009818772761654061137108420338062211771579824880205409978843351696741969202612572187897063189781867002632471714525383442898493231649204709261094274530936894626163996120103115636676021056597315778473470391200742789084660385140667757712972266030817635911974939373344984609823583120170049199571401379471525249589998440296938316748815403071884140011357353135113946999185520282923423660808818521059616134379532928956458360617896272152343956871504933079155599122266736196792440928821234525478277781775672282816952179227137540402171857929160871793817065230866227921471170250732954424911500085664032502823479578632117618936068035586715166761555720000911711952374626387257063846648390573527566932301247272929677738079089680601905862091606495928908279650255275852099735855695528695164677324534947284824892879126525163339357975331274581460492845156191864385074360129524685158633986337541434670554050136146939510050458901290213122298352258709506722747361959606315344557065948680684065798612708330338134531387632145462389957489943205284423134587920811048403870968679358884410599326805989838363792971265657502139999273718607725667286299419760754088355469142284155628280895385855523746018863466861239897395490542370650332272236633483524234850328449902452479369424386701359573836741792189436677601873458246139812302382854264116556477308392422433159646986956776923138113837384867489592597481053458337262335365411605149281851118022630111840424156502314523653489909332453689141398612082309256763194642814235168098926744500636063220268368916563355756317320555395225709889699202356312885113831027446803884784768928861938778053656291274819235073894439533843021212627246744160062888387613359404598349582177982438403661260950658926287843873501790841037558504470864339312108942748710906125736474199886176541820848632315289965977363789272083275061834914135329581976022814341495839507977663797236648469526353447361544059060938908038563110024338296918337290755651049335609363999295332172922176627299248715413545281403859736764288987765319894609787319429328918498427634354107592524882549900053166190999336423497061680330691257669586880621124371121775345524942449882339585537499288471416099824354396194428930112042463440553634190554032322074665502637335699846994716926251720651034977291389649111657302620183897265730796447352964298265795387111392078623690559637481847558687529472907912171409559634403182862590516803002715844301049433494977546308209764310205942997904943766515451237437354483658776178602790604210225744564693066903646642235714017764633542596265965882314663204854105297177077398697987635586753157046691766563533679868270558530796693287784382382290354139749393581057030008131880079194852167488148659274989921128909196339616541137269007669466168451642777758934724593040106399969012760491625939571815648694079572750650361408956293562191507898887316138225015250852171030889109402571908398495127722814360487607869459171341460543170938562207238552119821894094425606782804554740456504286869395774662975852057896977001983049089334315444287723188599741968005888310335148564897753840144263908694297824155570257095475942508404969856505810498378414561698824899380423253608532915954108146396957584665680561230975755452763509355501805943740561377613004070987375979058905839927584929304315727422658941734152128231109445945989809411010527331230795948971138584285591435193131035184531667485824073671776462110150898407352694635227379491455948945446370163909610141639605632622882998615298095613380084451138097216201906954804365062331967722869967967178314559392935383192134635159729914728430994255864964873767236300607213406093641092385703461364580941499981532577814397202929778614699206223329625535081724689843297115401627587107812629665659608753792248037880928983319778845416931189144867108324677329550095897507474914805545854277729524160333710805665212916450529127463164159449260280474756465501362650272757132170492284451270617779466517405445004396561702956979091588136721907864842038081727638398073720304132652122668523274788303578734069456208797660363775557109725934230453233769844661102086141597247204989166555089535063805265739640092354219253382543256136797142929522477614148548185241392616707145826332035248246411059062599385567535240538899547773526353439245984834785016812400066802219516990383420434550996037575258230361971799626052488785164190941803142088242548661670399789604390559592977409639690578275249446911959068513707663838554627466112399703594393283595491701667983761519334613928850181081478983095816805946393869826795330792806857666366790119408876107547068952597584350882383046613175890607126651795815285910075243808793204053784187006965329400854431521885872788382591117590617918581399454903252407989234494818323738746692028915671576025364878586425973379013684858232703401876503140921394093725184253564084234864929389164491817082149293741493334647423692977639009973914005403365118817620407383050203762888749954648493627122443336646995700914834609709449064844342864967152419229197821498224254394253825424229017325151150664043703688982541002296564471820932480420780191223637011279304346604469575989399967090370245642258070600013542956951822448324265468067304195722024594137603684281935290837325746452774360650550676548896679058608913337047172757199275660701689942228311379419387996085533469553318070409196838709726827364513611801115239229563179803300115352421310797463679275366329693499884406931295136504570473918996560274516213781436204237239563817794145765877885123353593155690261643528958669707078467069483573166464907340010628354694620718072306765938726037855533824735215138077079219097827204199832390542829754991064171680064466975360436639936990426700174365147870987362753070853101725301910586644735649219480518432017235640243843900724621766392987029938979417777624971504742059115926589606170266403094898935413989419719701869782346608240283498628424842941308975620627705278644324765351347080012201239985617293550955799658806813830104467617448090473695311689611778929771893013646840421146403900872850877387994504242202280502819254311880773250677308955926124058733033861304770350445768069440105302313809672528432416733746333276983613843246842860855910927240492328413145739789861864471098385212813776304657491438189085645291930182636416020385487549766319185974398284668901284665261946357359370024237724825128727259929725891530070604439787883001348393215109096304479519040483907462982265385505381679960537996278233235635957519734909710222340209482140744155915771923450734015781868758535352660979243059491614015000859788129127350289560331277849303498185847020549010156567935177320984814690942733323574092853370016773471654815981026661210457936765279218286901284294784822404265471760057788010361125010470166026955002313305091624312871042548137420288239654433786914854125116434141574683247016428664556136060504363474503168945272561586585692013045848120027040498013469059259635467807358820624861450413981381884868409860876235234768945328998857555240279120943822248408618371091511064335360691989567180221157111942061068303851348520046012532670097623545849970846450050724481614032107999259729815891937560227508172658632355990675924859244062543354476535884752147161911963864377857920438856018981353907488351600105191283217310015142715349547551591155667516581923627122296481749815857932188507865583258663859949762924958193750488584735290364359592401241787242598948031248950567142582529129622343313044756599954787648642620133103495274921917499707244226489038458147667974072678970074698138210283893346927394359055421812451671602011905342731044971366156259906556546209985826951032483936905522092897252281791757886858562432881437481979681464194408902912156072301739678873064916201634971506722055240116097036648447033672653194399331350324118858104466380089569125539752032129111726476519676244558275156978835800364870011312901103359493065367148198034842316840914929291293992064161486557137378885010786426189850819650565432351288360214825628182649535505664523390074076656481991149010783308283931900646330051620966339043119731860317384300986020184992650301226201883145873497092324493708020749077525616206691772273210601046193366443108235508764328556277571402329450607426803660218399969378591938387575051689114305771071937182810657738975836576084214230221440355865950700905968108014439964899514489442417280681234544447023372566459324320631741683945683337033848522127763422571182253347847742975699132331333097774956203048382709131579869710109325595250721729305427351426765703696965493292391576171921007081689882897272651660984464271932838688465743436327491501683051828049105958657886986760494584869310800172857361266209743492939191069366241472400776647457064699601688658244484925896290730402642756225522322642194555848118676008756842690427260531118306049959650058276808174379358838176424833936300106279349509116728184518140576142943664647127642923203696508876561009258143102613048339512642717626990042274902377973416419630634185991887964168694513571012279585932110095817172336629246093685989147328641135890631874927087015685761429872810821612630931586317474561348267902806442865146494292910695540041445986145581001774261235262697381940091548828938432135655371570320208687349007005636850757157327513708329418001935939364250233173481571365963986353408525268148704168685029947107451207533039165733824224714851605202052676963116015172074082252076054481137160825765437010006686392274809989776826389354511791142658941449042097618134005049660924876064587759629872180341659921803772421910920501762617401935264292512259086408229843260209979938672197564215113946022109956264018459415611049356727531001567484249591985831243574230258755098612048643081062659406822925932956911782998337484594787173785928850828873083850959469974925506190921967894914722476248624528662977461941417603254559803021458425349448182156667182165599239344697029260741735676493933466194996302625687881909923805471382256188848085077915201948504779937962839512583043988118675139012892884705590985461147550432204286052172452206154633535713887828311887632125702581112049499017399358042604195020088783951174115562399052723701249896795130385167406422457193950369874005731649321542302332065331882541762035675771872142948033899869525626356493114061416543863341916441442637317616105033842700092905023660644543288787725002138891745779754522977547184975332919383311359037952114900361542754830493703580282802595344154302535911924656628660692616341069882885022178221550615669048064058902188143927677620559251565580595037157829336100188136201419733904451052852178483223596307817989955182827673354857569865561127883181075193560818839806076628936244600650327916949623575075914185669541536847892932934309569730575471323192071712857894236838603751175755907212494413965357111859340940254846715352869562714077287883802163005106389440028423017808340690977849115590910071039824188809113264708161691871429069930209356614880271825809796986488910227664708778832792189959422686152767090588026390112320231737740518100398194513320747738550688428254716083809660763996596286589055146343026105972832302993678577601867199412250185795026713728152618159174512170636740702535024336305371012900468881570037338250788909905674694180193821099232726716007617660765407662054452175799699591350991425453811896133056784694245867258294168057790576702325857451406254213736212865262146797292218068623937934613631916568025575713928057616913548298775490188719519151469203794170055714777233191655103944010687615799523188710317827784161904592505757166865752676528021195041406672038096704764386516170697486967931666639906505102340585777785778279774846980008459021163273616385361059020950909045650613621804892189028261457038022492790002833998526623208158508953042358768420685714495958328077108895412071111040446391185800430134916393758284028841112980536036575398038210141099402400054004208252050525563366552589053214138591107880041680225799929448789951890275173604500471916678863066022858200489523972548342832258429173182294944076997125854859320814086650436930683979185292378519117525109271574226091980251340064512298985939468171926573027249945379488543375100617174133499791603139300263763677225143558600435033479623095794751855253576152487679904688089398073853362755093326611806826459972258092164633800950270165034500770942053088162195150603707847539988190390510370006944528118037116213183210973929028511728661628723144605538395110637133659850578510592185339177839588032564101089629825084888646561307765154995148988559454547409415416056897128708939334576270874434026597314745211457874979890864988075850243313040564780947588758455492063886578862950903451137315449005311653763649016907968340464715392177486614360656185451067541989230223015757379070148683815277721453580590678886750383474889390115135726385352386983458628189780803947737741177616743291691731661654449505492307344820782010597583188752284992960936972693386985175628622866993018627973457181369546486292142596010147000858894084836161992030898152791047487987336819934411657076756320677698997629792220405556510703105529178038170065313292757122681140936609674680249230593030338264705015238947314887437057019744217336656549387311441149379734726710580321559654854105530612823430929926155065613129198812443728688255947255821050820420371348877479200078299525837257259300007361687581959127262451213999744981354613558661743997211672829045049009903564239211055989263331903502476287909623402484467606337880903681608909631298757236053997740050687128114642518696479203581402615737409216645391343217768128951657126239194599799976103663923783966310213112902256854715332924414579781132415228147172775581970639653656526093475340650087738031856066934653911332340891220945494390260797973335271154834869293938798102741497584341327446953163799312849014584675368055312542765195272650007239760491404397681147351241442780992903586259346404074605688456561644510961973296985413196611971265093730013605431347810530384696332930043276441497519195808262956744938474831709281999189423677392136238495262727477646394052757919408373812848275153375076855450322763130385254194632904061590494085749626939125175512124473513936663037792459590760549733105239430503684660575558611576061862806019963699671376831099109110544407714784544850432606746756059004960557819775378792677095679016559978838830894913405198319982815432745635379730859350279135877682589114101631903166713171098250882430934720287473351919923616767077660709592572088012182574411464718784117803467081632691482808042482854365649198712338842320894682537603833817276575240033061543324040335335611217039717838194520046454100041206929765291416622497920990214501870062362459256121934063969614926316738641684194650576135623903376731109299374523019421668405929734733559979390201992126510991581715474082739521798663318921421733393801525191258756477998241610708634576303776986039922143133650293881189545788216371080607363247671878535913458554992921939056245608358330964896087668388893789919695135421836880791071846480001158061354383806578292725379648338923296411155026485393328741052076317370093420150625656684174762470490289059758021433816975232033444647784896182828398560903351961580762113572895632359976243721258738117629355654255816665627385857824062310013639656989903708853052853229125901093220670712178736928506309398560164464370399027314463100205806141437810690148648613912273460614817205133568193788732562030408842429468730372437411130172252914810433752046892207874242629941737152445107282831594198646688055524938941216747922227645002998096489379286653848502492198338417736262564503909811534066284018317832896748164370710376749124933923719514289439813588078430419349791401712416284436211718079803386362260260882804026103924268166101447508837234800450584098669565057076791212874646184246937010359188480976246796400668990904696023817969605647176839596155883869845939958834316790463977837016680878673388444641585300115847894320057574089073304659213181555265840256045782121199042993348243044648251631775938052949054339001379360534289270083854360769515888364808924274081291395939722376311288543207266145993978411909858092815513898580965861362135228422976695421773058442814043223683186103565447793157080152297250705760543953601662462909331530914851683080243363757434699991439076572122239210388029194790594202749934780679319934746849811665579317181752073668610952502569802152442061332082606894609711948050464076025398417015140537706309649134446347930967377789771519207335899291734839721962649151817166828064819164861832558323773562038309010639397668895293800509761560127377942863149704223376643948310829722616501029469663459601390853078248649462943393361102374916122094579749725260249868080066489442136003501802548316266981003517147454930264479086550107589984698277064623666327394363928312357802083505763105397267505817446646949002771552179781658879774582214700828851719592192302506303168178049435471779867007279723481377367595080896418308670617630191269046442463168927386797966003320333186880206893826604703603965164561166421615707595672094244255687246478289108779439624683205761370943109294019104067670612304738136919931728931340425023426102773961625679279537292950509120756031389981790626718919401743256676067783533090078807350184976569787799662824726564627662767695392752723634964223608572537784898634136684732269803346703873286959599403787315504445540983381046305886112352217038755759836208511132489375252491376755594759870884634373691573516793634840657954843733675818722953258094289345124438222719280345619293863231051212183263076577138594565979073746633208447773141728110787961716101561257766332628426383463101686727687496817365486802643561117638671819491824341963082020546546289745561153401271349987237481511766159306897368712162510659251311754812947796082600827787070896833169290852661416457680226791468894556116355509659136223141954963502350755821205959922949500802923969649851641657768545995345211106171623949473792124538176596406958670978430451217263324533470223413173687724243846807626785903972848612254707654998710027361732152935206426445469809046246838815382347568967580988270864645674333047384581194049091264593724761106740374086763291901301957229521599550541117331668890110755089420993495887655982610129007388241765101885012199775438110357522537342201789893473652762140319232253721153705658413165834971475221907249260903374628113031199356698699916601821286893238867916711703061564862598889123379762320255141479761806408805760866959443312656246384231309008999180834479645087982829062674377212380836810966295641006735796809013503140596791564653088539436694186128926494670317306316111150784505634480029702718977906369192290859841968644538703250614376914511661182991031265838434823407352074791577616618277040233018903187052229427707642138724156479037629800029487794754731810946278169205222592487732451131596479490363892049697951116617011199943503657410762118415254793577100878431271145509663469376974788297529692685061629146685502683998023950982530925017838266157365841988722538015086495228993933524102115524378551663846701549868385338453954914576575479564952985793875502981464582301667689471076026447991270313816177116349332691983029195449592214789524367283315844660514179876238626492087717283149010607716207577380454277111641447047025201623913979699725723179009055830151259702724860640175189352139954560585415715829454295669912173792144710842674580716974728900673470016841560700976284026569989448860740502652444040238111963525985761490835635530978141697654674598327893608590375481982468079267656474045881234437729308485371717627071429192917941504829063894354138783926954400826963506331279592841469827220908854282054622190444704130261332560000857225343855807865253966831683528397463408273023455673108784001999822319632031104732286472091015026465657305810423600885817585771076511611904712136531924097072026737490517149722263828911929780855042537966036192421684618111042049474157143650457141424086251285244840769337356356747351236285915907222235760643704465417145612625589645461983080528306174915367419162509835534139286192837402277039722111254352004339834682935057043501997152941575749139429956198537533610416163752611055963355781851511109550941593489653373382567296857068818262135178045509460655222359956778848953678936088273048393631953337631190227828281756548277597156046316710515583197466125167687950989201911886646233805590627318021859674996040180563899792140857139792056823080492100243723456800417619691424397735949307435147872956738852602057592545641058985169210450417870165261141539822694126747020407637088365773883330602659519621256145895049506182665670069504512265815776197614827261317106780743193621683692034909898993436790942374601709071207254279764786901086269944521937516412645239209215379104929091770349994542943506275458710541054972432934998947886921596486660697781171156144024599748905869749250896401036637184055084364500013632484709945668688497581830474232289296148367081761014467692172585930092556442725491094151704799309480575322839319320665239765121152887825361217187922950242619474736117192967584847103298661904849294623842928292499154323633484752225569286828287504871672447927178502362513575128768400124542362260058968017081428096687933380460989282298012369604155374687290533880058326991186681663974528638513390367975244485220732138279825371529390527549556354841433968000897188299134533231594318432260722896373031530561731639650516775613749930525597712407309779149043554444189067795053333597101704513693683789785659404622092376875862668631434388698394930997956955435376268453681151784013538893646731899589491145151521625213288132145049974317445732897743862873499001397434239669991703128437574135538255524774687135376103232833345999013326486507651467567655820136034770468903999861184615578099642202989866879712824931713510842586189367060887244328730080702083923864590799680604759744461204739985741710073809029865898781953061491912412744766030889704697467911271061359767778266398842111082859061108384919680095047695889132878355970312598013242576864115658675925264836276728012984919924250337815346517186082404925592388245869344926904225509272017963202344666811246078550436894832360514593145979148663491097583994909006566193078268743926501788936881255883564779493327698035614914046534407435034082988025491813844564447856622379116967454622794187213515284375478519955563763799866274550736287188074979760057379305897627052516013869563740325175478434977038405726208719570453341430377095748701146665141789110533321318602785616781153690252589616940848000782155962156601215212292758187022758738698944667325221970717931326279262791919712677501410159101839893392571192480086637307897414818032443442330662960246332853846542097820696755734223742528951477102012911139278584908765056098662873604935703359446146772682349421113114767663453563862198777832102961308244141368834949151764143810545245462458838104584235979703203307933702506621284541985505945444081428883445259067640062353939366914906476006348705453104492016550438980741310132191521083104580720302815677504212398998896548543198843220355398431615962994406708335686186129609504174337613436003591623113531907966509259200827437209723928571176203398490976352192126625523267556723470935771191449394099067125017676373596287556966061983576365878226232317745974796227142977253781031703755845710085769286452572380617004499547401944078012779778277824497829836340274599786481048205415095178565087437483594397679375429424258605793316613387646987867384188691161135396464077723250339336949198006843355383982162328236597543545801606169983551950726527649908535372088398422016605055111974991937949881439415361785224644824258728906310757638067949235237612422485325889043693358115718256588109623452335258612960346880693418906874794390272819361097094306838399126458804963351437574033299382844316199365865341182464120056029052989430645672277686589249115926511641596962060068775641453337850214540832320657790270459847899917160569812881382065635566380630662889760104347356709338909970769599912242303138044110960779394123882497554076613686791358208094663435121607755599339177694332986899973297108071623881440213222595397734863686826014806299004244166042262392365197442943386744719658675687298543073301335238421235606717740079848838499779298130996747941796963245177193183350379724792559499135714685763428593536550387247202769789742608601223372766262370297335264473247358746573617355896320943024119662414843820136013930740923119066292899362361709873932692225099879788131621720547957948599570426747367336410325247377798631882340355454924871333508814507243861500863501265200183205198339743725309301034212409237153618345346079438601756587221877805069365738713109833799909346824808624448818276060188611438490701303355262413139315530128236505209175547142598311005418776602960591353432323824119683362258445124143671947673826652374550273276219255269750614888951370731333620855507331498243889502132333728226489197302929541407539437742477598883040305129202639001245360658518778026143303551278089280536934236297917048234698929976066449732913503805456592097912832774256033524547858532681967816011864195703845647657509914157092054531744678776896085225042682067364931183894006984742417536506384933066972351579566547620698527783908523369849663418402252165214297147699000697569299767499497756750983403495781291983053352489343837676028469382600403141994025891479431412563993316622372263349958811621667374073765189925356838628081537015392758446224843107125876583175097001208991099460366881127198753331767996377770726997185138830388248417893624390962475649656023188353454850196045529645249192729798086211662915043834766849681106850167733631216193481413038620856367283675451137632392110821613024593462991153120764568612425765166685054184515598130404359428475486853591328585234265291015292398026385874841428042947322977485523582303565863075448451953563605289328340612625514191717483842121203625558199633314538904194842629586828230630033247537772986379972984977296674065929953079793010276339590004812395029684176401138233863454443112106577913401086449606250625009354448143428887933808680020392950451926945463981198838965184522263697936018954514578723759666608662535017478291963012854257274133981363852563526420356583139145496874491321428386452434231984089090207578561937138744583434408400212536796515434104963779790199579780275978645030090407340300199506107501176703091095301916690627636007523179943550712719740563511760270304206205178321138738378077995876287480542104888461399918544749775405850701673755383252234910739034928075691076759676207443442126016195736875209659291718844248722405411656460096701060006521675402160489180730234328334527897199308007652144718837816899215027949455639659104932490531044703994310523625646031865795492424529348541746626147749448244241933956097955234308826221736374339573779047140747562295010598971878593462616487957042945190862696407766845204874507533597070071748142540763012866620926991997561506363173790176841681577247782762895269763365308454895486789440629838999651382975747232096101484642909126504733116803250291064838297311132570663562967763202293766057086742023307910849175115230362621468923356513481591133515826976373192358301504079587283087508541034082729603086117409490848340156724971840364686731712917874894047528587037046073771417701661636636514531535708189815246251197480188730237892362616006705789120572931644494365092606502466333813380303221427472501204886406552717104416395182834728188093752231189952759751590975161027131768036300496124902485618463980394929040961792937050344111020312426735102870063589066258251048647852631247687795710505142737073721836380867603336945628559266062597364612910816403906604728739248575035196152730944361521436111427958831954196737601599137704417588972172683345197423967334798937858649999197379114578357771657848325672489460359997335730698038390583577404407621993537667286133622632900863302653497077960369592454182004987101674302000961457280205075437411136483374284565875709419940336498896188700088972093207069658391146467869063287892739794758425269552989610338744542627456742838281991600376594295203731171526965653183417047281113691802597131035065804983708100509979470100420605520710637444539682221264420576862868519820489118035701413917771044224819021773775026805528915282143693533335760043935405515995108502392289213907939405373816370001880237535502185220478534407779647435468548784098176448867344628517692788620442832922773578436615973971101660835839268702700139449932883250776807405716966429346758243945747016759814860215218908284963685533120016232122643684911839660763645423565686961034056303206406200832534070993473399298168138269603633291882940126430210736226779928765806641132841578855479702224963644759648094727305025313590061042777913023974031520727128616638319829281594848225799968953487580219245474482039176630608526494768612084577142543394888595450979162921233519652316355977249680356887130980850599895085542408195412568766036913862606123828615671100256961810923918382274244637948802144492404647652148828785294181272369189270581466760313328981305869868056361805476493490103577819168478488037564502190122735596332738926988708159038337930981395365340073685528109866475653646217434547107358356388710005605382022421586745481007455341379485065097611954298270842019700570947144833783266042829768693560766426617859260687539661938240529566172475625475782542094018243489772920507943029439552703429325374710591606458657048536348561905467718160448220642643874865956562768692887896364365545522122108589132327221703345479828272946570617889402953769112682802815586072059632462325329490818731669840867602027662578317412004118126911950824243637954235607015757049125125050268141572674653331559175362776703924893591611245128652575056718117787561812316280689527399515180552674554739140925851450660744168919956864899673472219225602924273724055844641481566108566782571947103483880121349533872149485186531396528985079514947812205109943185982306436217689367079256472748301796159182697371333726524300237940175622053216224741531863884964097079672165879223856812896383086718773357037310435772881149360476984200706594960964474247454599962797988891833356574012175344010360638465233198309740512270516806413428193395246151123896598311769978313130971913376018495365144703713512736449809940281762794623311334190603179510140033159031387580680997802174227059683322862156095174022086098472451935643797923319546426615027209987192799964113388188466922345351260597332075688328414632166491754914463545824972062765116521210119026187500150156079843850156841145940384415271374152003619390429093906320033394473790608465180249105915379777113751420925553613133048156779618318779196546490211639592568726840967641603158270441629190698560771859553339349532304198342937833824015677044194764918811198078543588154667643055027894090912320153508441207554420734308931902488519623699486959885469022901436938543194121576315955903403177054998290352731581915947520258010106332836035511572504150161703088730832070385543950157066970635668040164121067978155506200134318442467868305870427560768416147118937581482292847054911660899442252728374591346946361147612065152932337716564024861318848407183119294832590949700029610117485659001393620599773821980654210072739289682590181603715483783527166885491291440135816688857662877257333587288999940336949956791489790623243343424620044385229911939586421558129084458062015789836132581421827278322680966353996247028901976359786159633235387987132651973141413008191992221286166947060774417141525547641927888745163909155136474964033455042472009304244298755606389986573192018466974259521952768632005049189386678006979433169592338789557242211001402794749188796878098791414678817408276707618529615331352167697170645957270421916065448599322949053635837157830828765571681544628344881344968565055097335566325751259521732951777477162866272404813616627012021059016149123490908985381615885353216455003157425208595930382314651866879640642470284691626786420681814874004619408026623871538807426502636071328146904444569694605887114785961192868420727499875591010498631566566794728901151109859597203917411360678147803549199878136792378071320960783002038474525568298394036851582582692831703259083714615602719140924580821963136657200732797052553798021336033266150642706813479331975061514622253404744661469443629610869230617062349228597331742814657529503344226085741206511553198798238285643725199641452972204214579938147059502147411690312717979427764002405489637626736925796897808527364418495894293144410543628566632192586591869198682088024808236341804010463050481307796527747268185287469008309920062487849008443844565203702177904141357302813731782368907910257622738817955547456939121419084118619974235124634104473699713980798467473662533687011499667081029168454565927617194587314392293758962534929693048505699768266088974650915277246971974884968984331011784176024360388394475487487987292612529538406217795241844150309190090676143121975057529577936167911971274783417091533496656259263358019245627306317845743987885833684430368078673243503769272464832907695972699963915267995496501014879155494801935972259069829040033537120891192111239585034880860464632311170451004711437441658928794056928879267296033295290846634966932820890570055181257941880829284036880069287116841545530992232237792480741718466644719133099585926881560120019115064045519394599261302795412110043128545903229585973261581685902670951005487426168790908932767489918581539999892593021026690037501817892066673520428575470622777311108812626574005501845258873251878429765097938877360525791524356900450117798577090389057641319476906655519803453788638601149650026566044467820516582132588945538733496926539269922308728751850781966069777563093573803829770109765886420136910757260055544558578479418016609099283223052682027731855342366226109776724775985250622153852885311064177427058736712129809997597077361555805866211221542691820018080968013101236846427933234375392261647184758068758611351575735348280778893152680237589733168071529318701024034785612722797971819950522652931053259940208891552416731742959747136931953148340645931872218694866499645620095466334298171547308701328736729351851392809008354630638461593749145654513940926837176310382719059387037013974175725578274189742799929884504368192826343055779222435987048159701817999218725930890947287129058486571804325606848101856000711770630123918423223255504218832714110988467719242038276588350251944204025654195388570562470820019773931051302425785576873973464008623739846924154851431766227608798452075684635827706066753999916504162001090743275143385838374945459658862119749313623078548058480775481435942867541503216998350241396705376218716359315687894477508271286772810936525493129978763524829207155815649993422416014603297282326760837258201450990343464293717468684603081448969456081045693328874258555793651705476179755626424130489282253030502098827084917190782092266964781241404060992939049082251131770630767523425660248734783905823366834943774301139879920707123067107401763132888079631581509348008666753219235837248491515581889461053608792004331031963098174809810638083684690933599823374468875343777207360621801145386151313384650263997224387392824456142813272532909957611973701871293275091988672541629773576456229177622451222152764113582972021347023798563425484015884114634653007278941714354676822300341577642542109486108839935674667907061134882484752197881430742975800925822384569009330018312425876020704674285980817738114308569131600460209485323909103023160044915359904784533428506008912453532172656378801966304536237308698949015381225676406917894741948516586850866630080487863736363726154517823429379099453957578567932708019654398633699452751466318615758141904547070915363863379829084687282306282133918085682882895056870086832602184386435439256958650529557030675603504222955681541852003812874858766502916818043152219719419656101216466608141354425891520579945658116670754292608748436622156745187268999371599773496112725391062624630525276947495270899432680378654848072728151381016041521719038996634608180769850528647821756535589059321790334225415166800974140279905476048248676901688873916917485564056197338180401342605296059712140190700204484058082990502446061367610018801040390336875225428280941811125908954591480338674466259886788402593034433792153712721929192286406090196256532092181616442327435980263668243158384046726260407296596455040705117820092476221421047374093892254886214171244511024875584655350285696122150951575775731719566649959191464768607404286331962769565598356841870150775113057382774383395822034840910563550992666343841070154853541325165110406905507774269154695770369070845617227270004453254833704448288379936098915297178246002063322546718570393825845140623844751741283526884822639248907325474723861124621175003038537857350190492765981336095591393206803909898335736470739189355580984427632749913858268899329211944616765970710174289968396285587305382816435931547432822338770659939149444857788960299906933540165241479222235527592326310849336873591303473217273054879473121747035013048653309808366419929592638633023571420640921819265162742739825544092454899875925833350852893624114062123638959681881237355974437328063504994621426523058140652648025865197426313116730094018675002403405783751558364613016135174777125529285909801212449679371835838430309023496434733250439646390080322303628006305988692334900574546579239491406255977223977179261941789318463242085868143726706453942494284558092120502117627301023435066418229388755276228993627116631621329889551916972656252909760763949004010670056908776498975142261255703519558048835749273950781859086100475783957387823494980331066971455624795258027350617019233048723996973953867524893531267583093965334004777379478461395377229608851977650204627667837500172661840451932812096925429671300631681602162442427475500699063799969623863995926641314560908348760066550082901564510486634870697802655123220650038852366084234231629893720010374553193613297525109203807807405742445591818395167944226779855019104589013967977552038752987851111132974836960285109285208726387148163664495735590017624379132703304894699317700324111913458853894621901739136122619171334529545122817552772945264637815200649626100427401136583979890906902562793813012166547966452931256769327217383227894789436242123161868613572182216482368599759180475340326118869389761619938609307341173492177446296072208683148014629736387585139576125921212727797377562936922477906179977717598379510521029642191776384784919105733417235359958540654350740998130456169340503265274560773894878136676669066935450580885464174880878527905378924895959079298154760567458817062864162302145759119324584731499140874426983648042841446789931303092627484941162726702233831134244003494951865010799469917853009883369901192335796035776982222727659706209860284335960869116822567567939264034271748511822485795738427192948900769461314848660711124508469390755255898297907001757387362587726442828933824757963537384178482654007350295520698820379108829891549478260362679294551764685169353361781118137161840208977448602107057985558590887476404801605110248080397856754160682527618504679564114970584825210862013450361151296267589034394792213881197341655049328131750708274959717395459817689069610819809696518661088270965388799958355857013247019279947328803389474476576611943952688898093708469805643213957538582717408762027218842061864349351494966721988257674714018204767281239482921670806944362908431661422622825836527638034640630833980168829562508641708519493771259578007825816631356983220545277158162518514185605778086781982818375675895065388403371721454660527829641529512526277664828517926054662108798275544841352806523773750245431518987998614060811610901026343324544875152637643350397155857400936042177745830770139980681409900456607888058349255267899565265243351063955811502055276073074989160272198472021548388567523699661116584767343866519482455707131117182729496167940013707131874866972011991766840299198981721021354244609669325049142989973777779200441461026009395983152873025634986861347097297806441183719685908000928474700705025479035884035612930389611051050043107223271798500258573343220724850499789243412998765762625852385716738419872798582229922940612085131447133678866341633487361779074623151183116682665868468682767090401550784258965369956970831352043825312760186521308577741908226225977039391176473778523076786471881837500534643672484206723701615523577435854358855794070916905588641154743398723089206769670666688176934495558548630678276134893856499016644491586424359269076491651478657026018067592119505157769466647710902853101731972007054546620319288036104455256345958922594598461172247447338720215471750401683309318053493619257966057343734855156409890090921510970460920879149927467940690397487196806249463085261750203346550663111809917561169054670345812024567618736957801867381457158996162093242503561932104100945941961576063520202097339438326891660723599366093641032573298218732704358687144705245902925338197756829279936879711824326795507667064022303284737448106437563480125311478985518482972508072405461743981945169023214769434396821826356353121671080172505925082081333993911678584548397724918189085268683738105883860932407014806585283810374195975413816474475211394163279035340295592137702441207331496287996288543625324282784426125630461798981824353640743184917784029773129458406744596628641258777630134278441710354613004512094623603162212374887119698099510650987384039061453182291159428424305436448320276926679931475325788613837310299002891246710852776008959524996706590509738829129020785778135533483070873272622183593862298487710661535033861405121727136619445201221299724041133691413233534415249372867162587709442031870810674976047400320289996536614253901597542396406134832417759866998079166624952104049019854765652751745499618100175831233217203077651992512780623578322767237422178929299231073577785608485745717516052232802886096752973983156390130064955961515932983091678968193120198918797243233918456893424507912090543085789589707807414182606865029820802658751895373741514282355223546149197590371036469527656911285193918302879028396329811874409986784721679422112365281126099608343915861812902470734826444696071458750423469661091081476283360571072540439883773343748444121947101294131085583326508132941899109049037731378603308685478193521694286930226870169152387670538542412529260795700740213652437169452759806640782356009490227219259272266836762625679643055246140061825681431750216653332767946208149734932921443536080320005847018518574023428778813737001979596613965422022024420101770485935231645314889093437390057674757543821481345826458459759379219346442145231236157536551356618643843770134303424757124400742266069266491413662228162599894105895145802359613462970486495039558482726636180976516256115518986951035425828843498708088308932252959960635252889059912919703978656226345359104492255586122075525502638317786252824961953802465901173359524929585117109132904692827262733033404926247123950738227354814047613049934197201321083969591007753673818278862995908177209806680605739356548641406751191760464616754675176786480340757557355043508005944523272858028554049240033894365455676306482771830215570467304990748942031980249342678290034931717325496230524676482814760557790248306961915573276902729504893934543199902716420177962298276452977078164298029574410846316323867763137047845447076896401953555373091361119705962194213431572090932589708810960692712941516375488856757949664960933564445473116086515030169156865916204651500369801219635211189412486262931217137899629762030125195397106615353537095060588790278538603275598695701116337832258586397809343710178647645971894172159100819742099567352394048018050793274568932177387883121522691721578560394574915170838860137898533692668551053712680925718560078384613948379382312684610300657493479789291114485834110023521859211349571498762565554553937804085875620944325038567179137319408898426766754995596870092925555240436568912127488373450736221201462238450476338185288514813032809736273778406140574854741384883959942958580573064514939692301541143582336034985152316219986887441715553456338910339842080805525719058804872952530403782495402583173240600144308854652327282091312594312488919861644167218101316027341886086414146592926876886768580849741889818752445784529831436469894804380600808636369407029054321200167359458933590561834375354269417901067537122875659820531764227907624676609866879527905570024556434583196435043920972687493641174348699856509388285118138419401274720890002434137526809984727627635886896911416401077678858198058017544058807917935751332029997631524754676050141353399642114603912345026230054652391588626616034325973921837498997193346326260160092331778574497371429149990396572525719323875248655799564401381097115010520797801798110569485999124046028673794602664155700126502304265610335894972040603520336408141709393556650637019123812062568653128293770074793280413618038378842564934648368801509658792910843375737474305270090208549760758309565635634033838677618617034350957172212538613410069306897481604287521557380534574100676086761675001903738356941997525134938697164314171759389166791801419639165031361410293815491019781586571794480804011480258090401957339048930808593245802121487535458862668787050256855510383495449629819259251162196868058188622904208414083773407549335505397557073453335984287388407680225897075856677287580720695839974465888060362846818078893991243632238611433353050295575765658270704814713538688680453626913668950974529533314537640227653356734206274011552438749180101458859377706990917989430704080491199011956508873295266267764447414798791397590772675747398848363397536237210393551242992815507555250832370159393545308019808807666321051515715358986468320918622975324894836688792896395164462967961763985367753226415831540372346362406934411290521728548426932060210375980074181198230563386660138683662924253791120526877343661197005555404404819381645935649902872931598165853001309948385292780730578859804241107421700166165790965095012617750106002605737064976169983368744795718150313309380632621412264360232300358415948306343038543715565954086959829643532289886108558539212345417927743027061360071712068927580483806562069374916230232721304698349769246817593935703175172148848139910442745768106101087979556826386566746560288302772990302369151151843170786144883923385866080265475379613022769166278855823808605073097879787903333702593914363454016980592454975786886205285367975091289416579060495201206079602408231797692443219600918513744303321070477728379574655468052024751392907077689510806995461187263492276409214964257297665639361456785069270291228758708374560961860781429280217074533463629867868534431418442068203428072992936830789100868241071648036262227431406763515085682982512163177278920158366172441781475897516622294473651568959308037622424766233843326548213472451509260087819098902640575025747243730854202043611665221934772764338100181599449080956065814047266682278380758265352996930024759535777453450122493520917250468521647487360072320393768337907224084386500795961997181995507499970425576469134047518352747282462830359557766269743645947567162439251961109738187069358564808429160811853559418570498369990956143508066085718321892342386065586761581939697223206271860666140197513656649282203809784973522516241743168267589966684337858560631423718888820997235835749402490923240281202398348067025503690760080605471344305788141179385520650075099298991597353399436283432472957878139613270438001738986401253230309983857779942621699472413480566652508753453055423504774264243665449614995782646200091335328011196967817122737019242653963246275115303427119936881288856748199836546709871701558372429690345038616320496039683382783077838746412935024248765745516980313983886515895595892486625066376067472385475956069847917233421804225672494112800549242135315114635147666066836425963841908523673925374824287456366978509830267480210476466196743679459363928360291583142260783943457004221877169399264380019923578648834618432363746261441463457510312575019610753894667275999764789592119925026530862038465058981847651752973374593114888596068397305231782154935347884583897659958004334579315007853127770877119268918425482113339089294582937308390903600543592000290453160913874660734703264183836487695103978374346805248413984030709440854556579412737260650501955263717588996057106334793291046780371587735398633835200877107178017379380233134148210205266039903537481222898400701171471755857746970998044163764680959019912327740128377068292901659025987282082795617630070355224560219140755061939880319407475929436641171209541055255867724736662782751352912634138118147680085266637430791993590141202090315173476896930974723641416920171817149535343195738929895897909804577974960701422713964851619931774361803598113861408083032087207315603684313014196963631663716333691078778593771547801413725025428022796571381014345268945966064224153844659614591767308950553980935669121039574935007860954314027993885931046666140915886064218288827260215649991168511397014538249191980966592070611538149633117778401276824146207020292238807799177228018901794187011922763998466961631014924615424573559877911128445264635052585939530782337551452235063886056402016036080698970332135981423344119649317376445875754325330489884354151814630392655188809108514218657316074757882186575557632888427835834705657872535003371959470472870753826355395150726198660715282604416465586104324881352169973912254852187371344301739829400164989134368379973036246310774979113482948601404074106137188510976994160405539570882110314649958840586708509046684698505123634659439174800108501869944256412305540032981297485383841859938455386841779423625793932602611696376041026694534321762419732705152841480390912663798959730151202667420636931497800441596968269605635603819083853351174963580542284730860287894659425070215957542750980804880289181856754520796505757594901219590661055428542468358677902708621648827628779093620268285997741482433759046544849011615234393181398193498475931134451047864570816777822039294937855619217493599750359893746437819620321311197924390137423892618574104549382027675824863924093326358701930036553917797130514185617305776410839862282183305521461233119170388498761464318302335030954875143259121525210709053628050577355066105960731462927247069554744032866586082067861954107062847980115306990877874403257570476628909847333736804722879042451297022941625204050024491759192993740550579321744793875949012388811844134218999497518202743714232917572139460885505080592676288547034134422304099982858639342499772614269127894525143243474790688891832746814538943428071967112569915038703860753031592174480124191368703236304447394711758808745767404062636037538815198415771144014704691316726992373261878516762019703431028492432649102956732911373548387423813403670763068697120785235107953746700251779740278167144562544544458618449573460766766485105760084749533996707379941249041043082173171856574646749350703824704528377344636826093397310234650151443808367943876716040746249617330401463360897593785653910553354273779617590150195534578683832115618056478214725241562907961323044050388869345365656926432117530617512410372548407928361175429002052210757674456955544346579843819665727734485187630662779558366872561059650774541093389490079656572861395468482687786442836200508331733229158227331577587758987177618857268265306582389594601347996777868215788299121421133802694733913942438540557221688777329723071078447414508720575614378540972432278068060905979070667940387884196121844995875824340438322194072316781639813421544357807856177766081709907271120752758680378431070291844446515987432919391694580626712732797430733882305763150283024949702595695814483380463089901772762419588850175641728882500560195588234327971548998170155838754142676822397606493648243533513267392493332845391424389801401677354316049063682514984357794313085851357126578625786059922500187803828760232974748998123706993497297431411604002503217424281670106249489290520746355124817522526333494081864238370887303460705508758569153029553893632996509783703173338443784056299188573988170536550446704570124776798035646085806063385932619843147680707716859538203157363645697484956098227592990103092676039356390265809078972138511020417081512491289116764912826765294420051638724302453077205183962693310669357319845025465648177452373619577484619872696957252124605307273366143618353089906516442738399052215287057343391919812266818547445067433311568023415168158663004532289514598319127165711962156171439184759764634466642435071362493745287572143499561333158326797955982826446358224673502401262896956290348140562379507321616891699239595428148480614292408855369475921966895279382635173086714909640829425267186757567538108479762030207102655555886901939017902228570209743239541125210207919241729608082569849498685418629299947359633418638149616370552862445214359009408445550667244591762078661761224687854586369426233252471206140592511332245879171249265596144410845014420870516192520912599959521797096755951474759512218333342440531024444650276613103271236577290497361049881303803251557883749318142353906726127555268855174500751154204231008911704898683582729569849631534325892661266660939301995700635195031218406093230460383060703770981268138113408537228683320134966106539737194901273306578539262231602216532804766628344867843422447263395816449936099974401505133404234729340718446725912724355987886718415810750010741345832913608098527329509316819188110276683361214640141202293320634970357688400331018782530273903768452137053948677124668789171925681432895706613918105759696387217053556081923730781395000267189620982314565300771441018933099058314755714143067843523261344120055142599845838836972732406292824748752159495792309397699594121528853502809084163569798072412994643154157836524003337800333209683757073514662469684131113952464615703360961537885768991968638598297916296772749929019449501507842872810153609321649198175881356632205700266259284607225697768799566696034630837615326441533238632410304140468618777731016192586776479919777623233593520630006146029319206720908010274043027479700709424527499968069659910311872606531160209561931500142454130149057591618075163478118952611018675635834358110079328262782988345055330876691355016921610410664185963692436491090467815614971981694966542950804090559642792320379134405885211646616289648424373079863191362844892292714950518904141903797300825443671846028031004783857459326227657075428666728215518583695251802130067158852898071034534049806547788262144670119364337225821910566513291774006593811834493265167033570202141647821832396841092937411287312526912796211344355092071685675185524994992878996560025142319090479934687764189906759917962318633625283722565287614281087693356051344697162935120667583033060018789450532626940562449518702573990746891760429346057518297429624699649169875697227777572344062416082397094824055129381558826611934560374294915221015889738749466021007596733180609486633038774071774377604588796647806583764822602384313861707344190897586259913044891556760076662362875160964972017123200709136526741692181250850327198996790208475213676208387660200183099272118567014959060996021249243325777810204177019674766923977017678141498634569224948465316712476523925657932769087314159264436301367490339080331596628223492819844064697567436065023671382711284437295347421458365609508042390049373336540574497411901549802031932897510360905059520014486093652621276295184697437601733197440173904136622130170432188282305564631752982817728480229694556436607483217585575242134810285401850740144029303139416674996466831827608851375445233600896189422222924769276875181035523706101773515741495556768985789668737312578833094584752685435904095477960424541060388310369774197053586059817487319293602082795249774712928537640641803521979205457414111704799164031510513474443454055917794623710838079958642874316813236222482647281449120072055602626677696247360122277914522536663097727680953120436008161407930897750624704665847341244291708302844306166335594778211437616596845872086009666662252373119291696169003917955779551694127423498615480882007775582465798967499897721757926164109763290864139301072750952600334482233228068823195327932475590159494984674416245730241154194551851179190733133861211335250103846348857894975220748816613323788318787877059177245591412935396809010666179252695346250392592743186453721391332844773061900659749082541350332037066601532459170274730469960793569250553071330361580232273779614697521617597257359499885786591958350670573465467412434035751908854191044760451556174333883228052370947122427190300106058800016533485651509716895013367217224665218532942851562149502249141623443334400719882347422430384669954210032872790719567616442094862890941319442011927966125917067043397591851142796369154934242698477195704558337036732660716402537488640075996918497911990373436600215633221772405168992998177397303084947581521854693917701706104553275043720717498953530802451333827713386700095831344474789982490173625271340872944359902960337727844998742365908378494498002846432415244989501454827319338900776916613035421120564064142411146546833293214943827623308925532094509576600504929835820282875788809421433609240633070473694347259534653375631759063701585468185274972861530157981661579243751999969540019276007495469304199836094839958212246841615438402158763443681019867685705172541200611732061681390665580638023858062507858982122945595469613293694570355745919901687274090154828092140705674054824815331919036267012775429000966862422283757183825843290518240471073785097203035768515674808366678602344540599683200410442643201658391332076810631032226084948495317777033147490824603538155237065667579111589880566572829713384052352736844619869731383037758500180237817052748105923931092352572901812762502356732300091348661159736080454937325500555444495247419800299487796103171890104476806395431151852823806919643651636204828622070466088384234900393537452857685887156732235412047003915801324112285477234772815061257880848172722332717452862654897976101085250363442106991229174778698439030087983785812508580095160483477471069562938255214700711972773622056354782752027933637858442254092734036157708304197404282045704636161390874351788272622768752885681306960103845121102641444066212855443401365975417597401911778197643911757858809032643394628657739202020294433089988651199077661116997625683427227023470319831029853313763644581347771508609946770348286974027753972652074908386241642902083937157472918097188572703984938149106161050783402524062658214013779828272951072411070832633694350066396753057023112786618063387446982567501908832523337269056627066658849483672812292610490353460743116473458447975351658643727186056284952646285938499325229443790133300868868813710926378877925954546610358402989154942310328821015248510439411100240571154220393382581145087700711386448367809976921246341582893403712424399276141406281375921753944832346202654064389602135496235842058038210299187625064658027326774538731112481089270428562896003704830178344275064655309976550182978276225686493039584863458729022153905285655751329663164453760836498238007425119140342625136085529545790948728311529010942354768338937534987260674588042990157643958070400006388243240362411750559672168811017568636416607464489638695820873673847252600051057990944011584396871773599836677144714523270418135025423238856486276379578467535827038377206678127268225319680965680852734679027089124493123287502245246838042848643765733458491077461017362981947934090937255003607278454421490242889001647937457899013858162044665548608079001417795755667817664208720926795683302529842804836124667486142651957168697245550746929371844214878879157203294783044174227414721703686416738402154733369431359352174163732615427289858800144169624017356412735318287062900969410051922540633582715992607930823837585639845913793622729667173008680971069653147700115008672559465774177962123971129497418658940189742740682297465108026331605865141342648137223167454204101627785274614850089701233005712719795755436211237042401655536937691668167576485928032104264348801870351287930360829579645438925468451560620736343923980460805478072059467190453930927632647040421372992524778509352098957676655405523979977886469414061043198267737124652040473143654271439281641633783990211252038531055660194097990808657417347983131786196395518122290750204576229520168740116953402792772307823926104728990386154083305154174140686196539227915690599044887628636226646140832728077175011917615917100702532778363489279135699957190237995390089511814736095646786045598667142454003156769233590648911730681007429637828136116223875669202926808684845792597479441724846593052126078281022605165843139895208063183271760554721728967543789296517850138338551218591040695254905590273437147443384361442853546131518465603832146089720652466527776687270448721749229457249463287525694011853766020528181418458963479916237820862987899406057786775551915203347812385945673509216877839480416307752675862462846684430265678371470417122663958486996580553782070089755419125607508777769970000145306192616702311284614004309891091091004794344490164117072551035981829934098828905262116427728238710992150620589076708328852514339692315642175720522387864518464611550445205597778994024242994931386610438819294192656362205720867882508229824105902916667470450563174665411969288345535331664053417445779911596336505444863217141907597683255613409901647884379797212619915162575941684800264649637496701789151825182173768083086168624574780794344755939978481047805446808314949452913273444761037622704507143991271419285429243933920074712699359174042151973868953510639694322739322955695759849251107894235094041151754181577617007590604094073256026344354856677140814509141221261839592644118799745411838496690432716354454387346021819646382055769155572383506176277557864611470709991433684131580364338635774842174206080375717133611865709412750942742714322361082237307749678590978363235073022648529598221533057092719312278133799180481542687014698561835385874443494187898706154697429391824657731316957016054805980874082529116893385892009297555196347384767183713637787824358778822653491901956223681088142531508143623761277865658597602385512375488471256430878540842973515561548171543749887682709735060568203516367564529036799904913306906228822516318797941841000595600738375321876525131092503840685780369904480212478894708280972931180866475752574887653873566458245191721840762192445148184024068123288010182666442397460457122572945007923658500688334978630133286595480883770799719241301075814060275194265219235900081591501170608799540644367543822166028696606213075670193634773958429592804050794873219902971982673196202472110928581107208282183406129914179425957327733029066223928811245936417531275262224331714039921004063315498245134495975572962670019611275827933228526563581684626093678465399074307090301329002243668573280228205753994085374214725462345779077698173770009370343100647836241869415501595640515771289793564724040859589800331678273188376912954916787744514148080805940115383654199866790374359260606858164046284568795732335630974653840678893946055915635039113647278290119220939031909641580936009029641825787890696800669307789652513411043455564251081767975097226733074117283051018809354039314730882984205892885427222764755821557386739132117198938007462160774854634839885531491570983251499765696615269697266050634364803924664036602681945897812181386089586715076629444618892430516807987535938631263900515759900817114167846992583971913331916949355402233973418430723345206345918605443741272974106219301118799042559303750972337462892933495200849941926116988887841411723430880122977597665815019656180774855164989707082876439148239328300653687804289915081304326968045385800798923835570055639749702895069346567644779508247384375656648158613240440956160137263838465021926348144536709730969429985209947379479910892602108191829392220091892939931811194042442578842046395231298514763698016495249107407300777385274123158640029635842370729037548075050763701741511331240834374035579704581086248788428920745409074450986237579735224688710737701803238194965559296435784193629569586782663718949763160557674294945246915607190223993598634790242861238136215496155391455967566656342922624480243060356196118437106574457926299846254014525861518925902764269108713838667659680527477800757232999516593953630670216420810465880239850551186971830294162932555958320247990949091788280739832890738376084504326393289843088623778292997408226657587119389811783374182968616949669283095720304428063910671911926627250456120768317397172245177483482490033526691813543493534168848350186576888160422483425392851042980010380302288830071648042662808915751311880585565407867907255619816970129314376088298156141694132020685439067429909279947178878042341502685953386756225140846564554497550772345853784641042104725803489139423563807301675772863696905136726547848515026959690679125168794093350796152839543118185021964864860129193322107421228200184707252261029099946275054933988519904899872694706695794667900376655028261396378556601097452474894918635523955689194151370882725208039342224742587791911942763090087040266725632702752047662439986167562801901572903494767111947377621091824873270267453942919477607147105437551173905981168295790812492080024440805422682193703089236864069519381851154531134371339856496819851071537514791271806390088853266342171491689076302915688823512871653812877775244347315010046289256838519772154688187193651645063873969968813007761493561722958949123999875133276781168148097836933085476206040659833199718507880066878732138123304645433375416332721414553285738796038229892628688300544815704919401489345679385300450388727389532894392811188264825092042843682228724584026417136603651724405838292609120307975379288137322025155006742138447400308400515786505352322118492875427511655399163096466409693889987092710178605146112309285736424823403029020203822405722175188515647194769909333872029883374097256167607051911622482102991706708533933224689160764631949413113312691985340855754859819054978339591234473393377802626070977686973956652402700979033935532700772768953745743139854187004133700884478812877231632415376946076068735259551586998374641584884498358541051780960143990032733125234644853895220014841381584516816740390227190076220093294188077094743699330946949019468037034097626409545933775712130420626660448488985908763349295850323566830485351792126135615751078383005341740329687406741253890064363617594060801113306253152590297735453129853155985921268216052951512015126116878225130657168457954823222890442690652928633188508167572902397908232565705657922183211727046470756653795486812143126628171890012032587742631319878940510744686012375620443687514374142244737509201186553169836629149421268892300984379587739223016845443952997641302330611639088620467437825413763839256457124290067068873275759522156452666361252533653289946342761604002868365081553231924121927136279315174854743213677395311744187621698062498541781518051949269514247249919322048025406155906706896227059362779381474896650773346251182203741241055131604959037622769333145241500416185810048540230237951643639113283868867126664251375406176244083721411256851576058245516848437939958816703081092937657331580457094898648234227861684424756042803393149508537751384350677906479253137249933895212358786911130090282904418374537947785894390330125939128718252010576843608995221533221443272156402151295619887258308481651387939031950149796747125183903485916073318705658356158937234020112327342219363436908641341315240682096226337963679584287549402859957520920622845967613609950154863736213525451971302632646674689439096835858298176900602146082651291555221978752096276896682832986936475334455156428680554246313082521564730056150998636621927072508355879879283234170998791243692815076967461359959910016263829901467396395989519437919914042245551049723235547532959666518370183129439865034606418093861391543188372098240940675082720660667490798688528412134894984758315713297853513002342366689639312038125636574231933005661644836136653602022847189229997554806294096096706485124021872988576574126979632036581835443324240919109462654556705789655481985090497826042046029870689362417506108848564773908761779044057743444534661675029960189711824394970031613179493205839323079572449448812358964262604104924237930452733254686872668534414619072975386084367422542411855555538307416762261925278407796348269658416802602732049527452612214326362876572209808236549146020766221200737766255588513497512069228766986637008119897426709647292020115025884354651220914806770676480312809242896781621247335398006043863716125511860883502369332173663981648593461017004622351198313483089733357402002702611714814665135397364061031934938127582702640177924559744202042535592103767333604036548126587014422177045631188522862492423405915014168267432531340563516432157794994462776925030068742186859368361387924379384650607647533204028693648553101799765025639916492639551076352078126893775588236860888014861627827313913367422590363069470595562333230855251210469438867476249636877979478812533100927148173754242041597769635425869964957961003494151377176184571447577141648715847324826764702911627790592858913881337298404637652626298091095720233755365411776452629821027792801004380590544399871506514190447363381858290772256015220498986139767691422714134545454933003349134015665377168828694336682084034442827987904855263272418177254372649045950305960124704598368699192991013116872394942358958249626820074110561838952689319510770927025001714315128012438936344159995220732135801015376303978766220573392591467779255476352200238717230327012878433322599045460166929518633632760766528606643816414029104150641313502351758240539913354357425294707159527209248128447693182871538918877608389343064102789174720406173122120493682899109910483251134259575960110288544752858662763715393259326192577624964746374409141266913466098648455263285972182425965516884185642876036110730491152141278091151510602973067510716965847788449035983950869078367956769547966333333524199782457614037260913952000470126342119848176900890872514079288979626123775096001360784236051567065042280746894421667331844802093432565129535046451052025610802688456224576294528470329137712105851900762742602208783497668958710475734037146926775551712119027067905575341444822749413927085843140693118396137328584750807050740108489343266899013085769673695540492540737040303809458008335651190536416843022587913911206711157163823163631703558294503627050363809990572963657386783568098531660244782432315975149585650786950321374303253757757145282611255322009749804708761206996006021179312804598612189345437277527944730738074492280396177751528850474173380964659908236928349748230476580586622392662693333526216748961516801577858618375077200551178319378287845491548508138813083508466641989852096964337826965580482275385899131843402457498827336921465394292298368229825936525915749847807588648152701385220630195092207155444856379583006833546682231116448114389691628810644365613427964211538391467679454024020818547278870563783502564832169507613558466581692144524190087269971083856793383110902655558416033768557647466956788852350302197777150485300811189781119610654222439546502362762408241948158085440689683994696542413957494779535160669968464575735904394194837817748757888945324909941206805273581139691333862035219016529114550156037071730250447059525693827326981744409096577289570854620962622429501250968113465571502116108486051583465847577942197126592941767174608972885217950936904421134628196471711785911204515548251847469829044305137849589175661553544228982513518071660294080076144612258479627468475776370674094549670926131089298533595047331668948126365742040539969685664580739084530056453196142810839460357583735923937811404789840586172173838530388746447033627247041596090941380947442164513585694883153539026245686340844593214643937288930839702235637006660021943255710078346279100232004148422596142992118396047071048179178189262736485437683940510880736565219248220189219823733619557092270660829023430029226137526851382744846771356934955556358549372194246099853552837868106096835285204250442393486622736720266176362067258782793368801525926391197668777758030493583988281709596817587789451155519316736240084282842648253201152959501502421495682631874469816922150158444768180906072302859533757715278801656259926629962952099299506866656669786537423215970480284062504169003981865292081216374758414477189970747996905800426856990286681247408505061108597470971405337708419519338861836526328398780783430734291778300800167144780353039396216987622513132193604196536469619974868216560590137678372485704430573234348612870029663092399975970478419832154123421700648927429828650702392966801097748106514726436599843535686341842413200781327119890332354409940256715433558047849449743800407472027758183052419620830995655650719338238289974420818534960645144936579467647109929353233665425077201963566854202548058399096945831851769410207380059487138579829868061361407894776103240089787406566523744102181866136908213676145015025655819636970938116636391593266867848804838335884286204803280327869803954779388234033031778890639611151143233809873763591561960228309010842738465800720200670195145659696937807746032547595164498804328041566769290257641924109585189735672052816603322942433946235111107298028907765800417784022728991342372382496932265817605154240552575012732873920241296295712709390202654163539154779361055916254864063598585559389264551846344887605913763827482685399303846667279074669579836211776588178459321008657487173528188360903954426119795298793588675132122863256690108813383599499565372499710054289500053266789814981686320447370237920133632622160708882448552593406690179066104799492772862627729237799671723369406257616633109787157945269114118578104073234042618808107607273604050869397274700053055355207237853227586570748361534511194532798273962354240071966239622052375718016436955834704198504360521616427921938292979451862041133638593977541061509322066012195455489676461292511205737770168227147880550423374339382837545038534086075789116224320117211489410647753330664576837989837767035504438123995232886857851783603195221281394396128420531773311088068440410511475070324378320491411183327650149028494216513270463693497110549239897343006378350895214484228115235562011912918774884526105116231901291762112565822513765062790533952866080051567652486404164666899150360276115662760258580449517512956026892597971042787572053508320928916077428416625552829681273059231819532110485392774292867700133313155635312765006703077208242269019973541313068425000368975987514842914485063557919798974572828636572912734357841803829735566869340985983206082762654787781549619462367346548680168029690733085343818725122077948770965827989161134261897907670120137888793575562047712157498079967703563247634223128474843274835227712185928802010893364904443638213090086801492107467380150893574264533149736731874760983748756582734796906786246586491259449387115755511655898250469238448407749221119816846001138222396468146582859500391732891713629076162299977752750655157143167448371069820530092327931140471545267198316708838993663980052845743621409777998300229074575274100246324085613359900108174142079115191834722916332066390660876721744090342570061077891780642677651044260791540951541030541789510421382896236730430518581022784898256739768412009185888781894177834537079670213342115995373716017902130668414914999181781445623141253310283801084749873600076425419842477782755469524569182232370575587566977432792719620779765370987204463719882978382510274420885645985921931864298471496935811776082045999110461354861607467781082103989831406986088931086011828890227111656985295725909786123783996491205560134461168489344347712829550877948398140526362657107711581976621499016320024812405288983733210371147591498283984856352439578066112289595407448313929630785582828505117238453433023879392896344700105819681093706340538175241541925723848435678711979887727262341560000257409121253964746732766079237069557983961667367785243001961814364190127483230051739518066202058045898530562723356629131930778922588976189835631820605605592206358810651644007040550147900309167034323233656098574644189092251035380579825692443311653064951847158664761601060703333943419711472759332928441958482121226544166939158486341172633652588577056022235588295551670804634641347047085588199103225054385248229256917132169269343692656840928217348372800168246332208714420930997940763849209604611224336138526189918434497742734231154071272745917789850769505966815652562517107813166500587787549104079477835506268087425248102558144302593737400179616478497884969533410930036203012323230064211544284604798415133630400272544861950974188164270722315056192306628602123619944841604031539322496933907057286148704671019023463057708931239292232880098985097221292491053683235216554728238337716421856274911215841891217963054655517979287941114577785682905188828173939196220260836072810247558800564732274395545281438082110028020695507723635539508428290814281361974105639034860442198959286339730752242848845621912857932611076589945347533777580579133925068511478485603972801898566744582284616334351132210198623226857593457087867713894045275150784425583115442549437903371785916291626549094556419851191977493062832741187753092697296061435094555123553740574451529138769353083586983946666956033988937769576446268179309064163225640128793254672136682319631083989014370052363657980775251197669369191145006229296676791119807283585073931538655730934604716913674102353056044482639620532765566594174203630927364043907275151365419379628637057099003823504384407093074222964814386052147213436624389921854877321104345269984020438664412854853500706110906046669742949454365099121462933805988440918871644246015836612047131067019450876554812363046639385272250665625100269363914582322145096905067355689913111246094403825863636685292750233379896767583954767329682984374653442443937914789966112161800069886211714386623415805503708083021557384318509838452022061608768371879314333809508405099862417897884029289434669731856149286062601172416054918495947320719298173482489357954065036622797265178160968042169467732090860831191855295790712395766666662412511837785187219540964140712778772261968889575382060862097258613480812040481096273344393706598682447027630794947370639739386537502249821941425616645327439595701735893486531943314063406765527600513373003651238220889052426075777294941359863244427519889689148678612451619941102200837099101328123021110719087586274641547572606126944748729509314383826798213583413089451824764749188246273892338698425852416120708043556080819532020606046855103864595248251507378528009164400981122525926232093110175240958156424477116064118943955553857527261534276505327979539657846494133666398428701452018491485148251308394658069102697203029763748590385080614888298886656296133018467178256094016083459865120174488846759417292425095849028933698272673784515130781111265535922132635828942831716554324282513258821852932618878095059378122121671027451699494758375489786135746285536083394067329768723990085057420374694066894816384762171903672521056006978351835649332084750855469729177408980812651129611123564928544257793514460217826871076959849477582909258752478994497771235262262226523677838199346140734468812351710741621546177842970303837771414732819724600570823900684213344533518657838827495226283648333856820427464347653629579719703270740059497025122229833301191912431556309858897926818079158674084315951451140171363633885725109245920829585825202789526558092374219114305282031127329534262464457666999680618134732222100863916493538613350439702181336309310912960547966891656259062510844700255724264410742175029946288963724370861900149883726824460474208522418778213586621396223897109325654688828214781974692716366022684201480417049020449561979220976589582737842281977091158447686945270040977517412616386460519272873455447906116371540625714539051282584906448074848586986262670723451295674878716752627054656212026385352376088226010743674817607294959676989035693080422088757964748358992868069564797251223660252460732849963219785538236679234502394865009071548212381877200184072723462719950042417530012298306844993002281119229229908993946699290635993004710496951016342474662504397276665815931980295419182934056965840849966086315081202256992175554196422015698082224857171544506635280600780482838167379958861741188758137894747325053532680044083800683955680651877738836242688238170076531014698754953482215777378764203548990503587874740233370929386812784691856387289863390462865340957343796944897917109074830043222386703312602587643821674629846193980854981886114128154576214907926932209714856367920299517491431307922952754656046116753586238570514480775477025134714327299102478781089891263304850864549524047906709615762071123512810087747727099559931285568481147342489695133128177453099199684786401300207534851913014625032418595823782344690227422876105155390969963546780476949093983748798805751793303820384271541409285508608396712386776980516560519421512185631146029659861040739109202858337280294326989674839173471626122046871604042230723288064098782245010480528843986188439947876260444334236182058824060061959743965447732991244074511813146981154466913658064676856766845541502764563472908779900865843246970723403862740374406845250544864684447874350694951957463689754518954487547395763982293483790807299277347175820229808982399594539112651664093491388188145885182856136058519718959123217626005991767575621770781177296661486103315557394526652750075720602089580325051706150535623220399781893426781077779936901270003276700252247643854980572941890609991609727413736141490426015273485946497370462326886985051911385411395246921229995817263090328419990719075481235113170153780642315854465811816762503778346570654890247797820308153237645500132716163114124735747913783001708534006677453505816408576954961149540840257967308824044900072435566295029831356694467658868599368146787466641317882732213540248475425445714970628983700391983017452253311632870976544044644499576412517860762924261316096104143219129251696540637567973201614570609016251199291011685425810632946169450292691571697447475251805920384003757507535809743997063667264689658989971911142803489641683349331460242515650982013440114014835501195681535440861396909885114279070118523132479046824573735329080049495330040186513967596663919841049496903745181734068032497906045993617663501381193478288632225604060691874972612277193738383597052131404553411877646593615318694892706269512997356938025579208795741805991483468816997578892762305178645652819242530171748433820105922650269620313745425685754960232274283843454557073249759925704620988707747760415307938451713303423494557291426391156558729742230380317744126462020854621877194988093729294338324667536496280683843872806579989791663519705754960080892529000237211594897924488511630234581232115480611245792680678801007803305473004439955638593786844576421059862610953352653213896828157531304391376076156274527082561659633004201917729257133326610456545311582283437310008839024286640150736059077423773976256807351879859048199149904924974215136320091290295745476320306228737434465493222020474359593683646080946838496175199917164336103779627065324345971197266259210863679205745362513578809719435338132708587594494348749554373978422394570145247917520167372683881294957272344755614200754656059290134022012426459433056777198796030462487872467654731685507721537185273619778976389780901940054106986320263777205966580109648383949548320387942357417989928522440475732408324739720218768424739341220674327006048384438791768001128313980725490152029625104527783112394223621037186366669478165023042518185487234237300064531160456254641156044256829515079834790129271249122015606285601270461127250471458160576814989171486560022798210075412314823583668654551357859608092851075971180196617035800916969877834499800392557738577064480631938776762347905918994124324443372923028565439441680580883667381878357891459710503303409541758626240784160148474008083690246720474769305300351812533761003760959917434888493994158956997579121765986197059210501845867719514651807334450808125989590402974331446656525432971749240860832157123538425398972207784544628714493633733720429240046722262441054084007463147073662124063286839992772120799709084499423585794925160401072141207372934937408384020744142449244153307512071326283352511082731087386663301666644500402521817887192652935549787097940103133522031899803950345295390114013289148583341203813142575440849776470108988992670047229453837795081316049800475135068122295556035777935296143628191648412598845313023505072808259443335900407909921711339242070565345119466218780079019201974002580425300043279349273645044510913817503095006684361490344686147539884567093276884335534516499778679591666802611950735423698395200442036250652184700427467591874291821377896077962358289800761217320450969939550235173057445965894224889308622501239910769261267417467407531384182846947044938056407281721985447704162599986548685186364360639360379675771604420183354487512124598240573674363681974578327629355312966610976773615279245020829260580107225907294911699828511131595591714539691865000100631458178427452407650000031046877702901062474273073718488941833673798311176455977714161617354964531653832957260698655854579965232579670538146158973625787527536755587784969910822182658097800310189815497938535843391240067342976806746215629939919809004271842839985572351388895790274780638627145988070402873181910128243640941737672245662168677268572509854018171893468589594569329986348738148679507159020155716956985022180382949963005369381381942274681379364247046270965727530470318304484263472594290397034475190239054028242649757043260119991957194268285545614934503886530591680866400427073206787906663173146541879279729610344673683722525793097507554281375661527378816826437621273001717924536634613373978298014025828515451360728076238398385269136464127777106670618552009536963367931287739156475501059146821432029093506045904941476812317063831326861075363029019458627095244173089236588482044947248894989746672262111260850532947720863972044643213995368664034357638264066736355865334874861173644960235040473763106234757364746990955461777615245680062834780671404551710892214748859659503525952555614718626281686941515238536260347210658855675089699109587832131481131706416565396860804494584969053837411009544329757536904256781253212068162278353359318469811754963066526504742045708701222557175952408667260766779969319975432898222744607837845015433559694645347099354838716682996774349099323965767964095510734380771799130701827152682397287269298387666873049824019120602909681567721586846675632290162266166485737053467742037092239421645193178447652434669867402842860231649610645298250700281915407539253987756582844034468165264422972762989538490496352197934318987356983744707670895367868552140235132203244490666156992506026067527994824523568411633543969995873597251632273218447474343125420956778931953957443871143576751227165918787688198822070815489492882228382344905710112387401426661791133126607629959912142276761368507987367857501956570706395715769774765834159558496777896380696668920482411271954698116664663379949499421361295922897505479503315372077147887461901314385314640634123253721460071169904028493680789181587207726772942611922141782765441753296379187196287366047211039864865406389100278547034058370586896010200328353997371492277873198048282154996761887565298112764389444816557336298541693953662573175894387998692457169946775128804807809176469066460209577686825033407944795266519391839930559674974570719340954715060827644998840257258404778741550124536289756971743749405449586085503878798510627814459351104246105552759008828754579263407725279940696935547610871491268266969882466455643956174468942329412569495558238427261264541355189569436911858364349943151497158503401574300724565745152999709357578483771455984577121227580374387769584573861181429978259348602993261723348817391467924537137648432979726865542070659624194168677779281362782573777301462009053067386055105112216738662635480224292311617306986429825282470680793416534384832418580626722380935149210769486269917823600720070500201183918581270306448615111083559693040509312277817685733021659108165431269199848351476166770167215700244834377119766087748580931622529561449342632496787728109464925009055624080841276600789718436324365315848638766144188131992674466900982822484602787331988869999063816444496999232507728624967631515322907363823476940999729896187199699876829417256478543827118265776886133765216210912577353869418678340531973608132632737245526175805155170649038251019681988157709444688286185428296668242741022586526449852169471257336588851369575367798420883885384971270529557933440115093343098089468472366903158918362915778483881288647567874305073595517535587291597439166412968184210160818690346145043854248166236945139828123113374143180327407422137051603181875776723064497974742909512939170807584070716576213480144260690964219150263485233018848302323813590571628956150336676902972284811034495107644187331949695569820109257396608208951213890315579792342882210518012625759990881294069610505344532334832497323280162790642160144711614133448759229592902855053532499916484755395601634931496939487193542450354522435972461675391250851039829255550419735906857543877377747657835795480427876094574043535608848329839557638495181476571170423639536562710534765079465169845635157563374777676619414935083022545850246770537879876981310490816718796059989163932881111313062282645432670331218163643595553165853492806346862840949350624750929159889109582176453392554420226285420643157828116626759690197374468735205711294868050661217272435461272955579701894275073978675384367884459178050593546903638703416367783980922852727307912318110965243508816304256451482398374782390130560590189039791657082233637282675201028281669151805380604378335005747293304004427026169118544794125260746460450873643580164000455056353451786552042148297050928667206969674000990585831860705678596451219424033033896299971048122045464617520965035111557978365412169205601540237577760303652317011372097282871179622228318543734335626531959021590474769278028638623648602975841522175512024195022031760487343391766353984975811908940461201781655604689119870919473267573513408113144450090468088636737732314437554036953466512034127650195434368077387571465729702652666825871568779477027195138428913698831222447792155204977109919748463098074471549468424047109586335603316716005002688216731884380348977920339949386812745274546726023647787656188533385266308308969441815752425420798233757930259188770132333405213377363902746882509758510389758862451452535156939959956250496686060870952021652765762878506526526179111132861339775682582690427699611477653192731885938519801570886673370975889304780239854389499839237649849064697965221973133273775079300912264661386042094162402304536617541591321058136524161379379564591189390433904666843367397875992565399619941807742091364468895066212258157137128574887867964141830950254294097459340625156419599077855979117739740501901419330039091245394992507343543277564473822076763940532013098789267993193932231426886655786486594034462472575515976074390544900997181043225653095741733286595902524720356395548971511928753374306928651034496007105333808356378088478643937677804913878253706331839077227007248781238623836066144203716438854608880959788104465606728030326869270420754837406888937983880545204562369376462218292825108550098986307262185035826141417062377561990626034971161599122375752159027221204916105140670594859348494529643308939217250616169083765414658150448488857331649043470009256196036377083333525032730389684085833797742780312440828928290948919962433288032574781031215123876137847569146149627861766882873553150489468972395028949953851799561821463515778659522084247149532510910784986774683194499412139305536774545639871139070393042776920585648047696261283552550999470871731606144445450677812544416906741548439477030617506153437011015459092807098033510013508567531429432291712657335429766413131016301945297609210426148773045966526461666935946524227194923297749510908065534696424348930407128314431519362122038574048303487482553667367730383971812802527107089731539275389900415249098634520399824798730655145652684033337842188586261091145095154186299074179584169811927978701110486076947710462448755085949884573033497450441508121686692003206383832378045252130459444085347008849819779297564433611126466242266817608619879280745904095271820591095681700669692955222511530910581899165534199094089425059831924511480398635071620758371887595875744647894297936044965089182165913399387629322173425447391364739014857210549935891739344071443952620096821814650719296612868677617751995122848534921008645474680941502856332903020553214173133194669827699967852537355655239500226616794233735594239492204775050420414429315742628565597000406266610718240864281397647887734391705525723579381331854174799704003430361775416742089410019031450351092977092393590139020294395179835365042082404445576831072371465194378406801981908144507217706124749084534411931513402955089061792667138923054422613245166327065324325681677754209791243612651729553727631295958636674348478698989934052182082625041952453184042644381227261952873738706893632594223731730811572597994671830746278988501290790505078696147454240857177721058008197969547482711758421146531847630241937668117578950711809466652064019340819377429689500391272342668909479267081216636937271071171597862894919176072934317269775261298328510039637946065091221973854551301782702746746111756340065299599851623525568452005165411192973048901423069114924978249248653323017074760675327678492280330976528268217784263145505680947359985758143483597481325517993811815335792672365059966179434097026961898328103451139515096563116318604301552379495213888975307520807617078277020969277129218306107716556365206525538098856353999212317672623328388820704221906814050793905999727546987413430074264463757295920898975085193048308095252485258138107770132595995935680715164247925334594433963632501641595332579578469160787213088758387772006763309240429509444770213592601390167618883466292570242479270990415976243622723256930757406573500742267852981411747860172205477664090148584009041542811025865234837325449482035871418328575122696171237816670888486008360196231028013985791207076201706008569389933343929173700970058337188864018350733247100060743279232971341903118570153715056041069259848946204216740743583314933653264646028550012525234705104281797296085623119200825377325005206902661276576429475364567560958606982646082770378535774995056818668716179136581863290783887845565990248138974834627909835370561549093732397115607121571218629481734869707524585655318650650868389490982422651164435094884697422841918350918093386448146540342005958237054136328713161544573404589982036575544414458548220851689307462989076876792475435010208383574242617074532508654212793242775224925982653077853579461245838602410373491757774223755852232915368416247950991248473225561238118775192912520848471453654423170056429236715121293809867931127022120410381395176405509918973941827469468575798547283042071650978371516554874787365680817634508634508222572888940575234422163545699555209426482016980059350376630496912928710587966027289857833738308343947393779451948225620755195693299636152952397900275414051705174335650586962087004112463725239424596023912853029430778504957864715864193173483011355179046671922715771713793150249928876327463321590411121845767155298711989492178534892198151509579894646094256171642372659871762888642753925249433762053572192556463847038100571496480547556278868258717639129835735099562821369129731335492068676288790039309978629506524822284598467120143406904931154952509818071180283101565990894151191254785385970826544183079529436549403076741622813626989476851928342358322205929378573620309605891815319193018492168188733975608861753596962665068242583553773172818990998941397163222999773619365613174236415570001258363546143873790792093072210996446319435746380656805632089811616159415861069081293944659913916027811768156380752098473047082283655536761806996793955090440579888391677703269759270622384546285034303086310150760830541108007958840470270741087954696489633567836494236548684305136613029073243137908847620170844384045733757766842053529577104663409522014025576619970063130014600661487599109551517776683726886280155376747888043843731971533007264716536145151354593276648207329824481081686565851483973261443250239707159900688912443213111959198116846749905868029138882332357854353362384174656175581359782825781339361989069396272398284078925312573094644013961238408102460342784177907426036320819893797034341691671852961334203815813282978281185980275372695671329607778157199964545299762789298026230957566761532082203448875625496265492924662333437970865250092062752418151962068251443181358576740594605414892167395017879267069594355411081618543341464609247108022765583784692764716391181306424036082225146671098547536160356083291071347249187384156666602912300308615037376347233515528378093233699138915022271658829309852305495343838789637639210780426846226834000400595672010667555855789075629659192116037458173957183441219983364941631293898505528461803993265446968814584758210209247129379035120621412556540473988249314152934848986022724326254403989325086437589240223575820350330999946329440435035680234947352748474398637280746952815411196240232270007746899508400822150440876953638809446685464741233276658736670861573019844567642083662407057831934892050305514925635099175608048750473178905950485487885645749440722008850129621657677874906701608685077523971218135032479117957758800576153917382586504709726429239865063245566691924059809831534968318816959313446497748646242297704824083854200785176712735348156737810465290729266063180509172482779015590265612668520943492719740000751171935605707855137740849809121675931839442967546503017308780196452356710239037336881624635356387277887762484923544211787915828621040137589754850701202091829344202704466170633473592007817646589745485197826549842889349810808308108575679480410608468871297885535500606190706319170600143142452458580582314731979555298028459873652808785862063958949819480927826819877473284611809665457202176397039321897474048143795785196561816295378289223348098631059965446551523967416351411942977786660466361407179287563233443817388255264738886586969420130061720399117829044417442004244002800106398076920259269642369899797310942075484938808540347753096781001722569005537766073700484931325881743346098428588513300080983474679895588791899935768926085718396569200029026383540962313058345240486280093651162017305571728116733278217322001758428084022983306625752914231592676086291598953163111328802701440044195411006775225751597830766302933977420168713301409332070917176715969753338455038657801912772795802722456084410778340937826048976571919191922122269864183307470899063946984951197844751981347830573783677244073588217549716109142654593606391473060658303394479072421582968380347000996771427827364736606273021753616416830043608791657818333830083342589712252881043254575053291314658048489574324498669114737196563618190926405125071352942438102022159465872707594440018070852593781079801869472049693540032962931076668219843151697242343493928851742913984484476843808146733244552570849506990182178730734231084642477292656276012679650261052863398642952596603605169150593983441915800717172359522414844911505292233739528886254623111332874820141039276353349979794882570908524586457081910208739961284572224722562564598688555644326775673215607003665284627059815188354948170007714994844308079019565456573990100956648654495526557333410803432977372899526406501455841370094746996988391386492309099266536146436737808202652450374419567528721828506751815628587990933456519672923519885725086201242316685547600885328337932990420921921911305624117662360546024829362855382513315339257988855070575476277744460167852650837900281286816022852352984872717903156877273704673288203085489378566106650858228387630592030673466748969872849052634893239822151822603564849016594324385090010215216318860063036476248834359231227791400215867175412210722625037626830893637993013578496014433024289418573803628001997519554790120697553507367734844071749009399236775826480933736797252854593650500369771689801504158031321341222156174461476468232874464041747942713142090375194886262356764287870321526318036639143221356391521319879867840107495545276417924003489026734065803837805547618542030663936031159419797185463296108540508914878001201025516851957079217195615652678581788343673314848689384211821505345509248820800573798936508957424736128748007210650699420314605805965712765645446725763959749297595168546264397583836103561415960120315787077153340887340369333005944857683497805436411318282174905488102940257854387191505486850048819698458570893620480884812062726353238197427046220594872013279902565821871149989887812473235525405333079059052890782551714363114222185558816567600008762328326480454874369763241432947442400077447391544327157391612297832256471235379321799168511689662152854042039769297719490861602079077074472511134747130396714200242434240417405319806839394908233949419429941204317043070128640663523845633044202884717531084929060270143855085240631602196327133678775980086521062313886208714775636148360914958905538337185891067807995967021032747768339241036337773512078994690644663819890039962666463481078094679958419018253149572371749226461693855974265078092096030123013261749396456634521386603682108570124351697784860760708447628954546596647833353974061804091605071672869755399056994817513128915701959667756007463149679685041012446626089046198075103660403814344866941608067896593112506914218766102412160628168152254277967154604341548014177912910759792581256660776489467877752418018503136187684513219022351771385975235428360164783512317324691830734078428410643816744350228857264307221407695330686412233228135787204127337125672284996510667327675690590944987723521680431795711587497106800499204671803916036261809174859647382861892931602147048690091012370340908219147473893110179508338536719313575307774697568341355835017375563667039281231669590616395103497830600037982273411715468181207866404936562760514986274329206227484057741218136756493569041639202884996083420902864479290218079572490442356405606469144383944979231856956310705748812051063248183341077566913675790270228889593049194908510852754371001196848559515970683583529224143125486466742948548368038619664148640717200996513461905424253336745285187966023607343982383799435907881080220039093086652555693685444607603753213678361599289173577270530227995333470380723111636628118712669955842174201316342018834153949240053128725134491331329592725538244852239365809592480462273486508144982186102441770708570398414449170548252184271291748013411130637852098466854443917347265834546358439387308054551711966697721745257061205633759738504824831554009050816303204604416317319434812383559784629091846989371036948533829175217814343811699157206066222568365523244952965239918783631469364595978991163536645846808640481992797203894635476581689690516265438553975563225398007010988757205783364479137250410392144413710205148753729865158806892492973875317089684520266205338048904770702564003397039268579564962193825634661679618595335808923871040224302091598264990711649827980676944936155769417441535253640431976675098447968487568263328346389560506484813236892898133918201475294398410802094210500930951789796522552396845939434548255957048102071214108703634018557127425254157308548625677969477327008391581587111773266738263205490854733701902956541605764344642574332264258725282112522358251517247110610123155125908437207561394610603144564056833942597698832598577270866983008583991683858373018651990282416278036714171391335948297348959269033268901037702530345534278597952748125145446580813032632056379294541401015979039283316591862415758537867604514755532659883148864339331660461734901282589688134599127587929100040133306711549667050039129944039148334284982455830398679440476498020598769561738303038728860044695187035782775895180429043169229005724139566269272285336893315264247168283506155981089665706594146448796257558111667690366099439416573127601467580202249515134643833481655489496528328948731267784454593886578601533345753596003534219198784352137115598358187907005971591950739331590586092824569764318634625089911939881498067288139248980335203428440684931804433224445687343609752116850486010959524044023276517597764151816783846582007416753822952034155937100568831037809514701505945996845648493988174203312360346187422119053436978518314537764624003533870184916268462288485885453411666471619894273413235091761258683855550739328870351449402510999387722856803393581290502647320290308644327880346424165701504365461175062606320508449008190304250468186502800541607843166912069399292463062888412210753577326934766458274574486946571859165627725684577943727686753806524726674820723792646221707159764309360868778918433764240498164485923005914678480793452745356768082324151725212524102680578202534224366552810618342409235503336082008065009276675243491826257648483152777309967859240159243499648207265546977709916978666927637531912176209921684464633167833298619975809400587722226573848892769262431792027372393111378533419783606879454325155726725303997171769499207507753784275088206489112156754306886592777316303229343995481679542791365700447440685952828847028630816350734631861030172689437856570499254226240297209838343234938305194672773163455619168271114239109544632246196222240277434568060771217615015188411467976874190648255294830071149796701591569897134642515333314019655374725526175407162012479292754496777963327926781266214953291598337063257181541439631118936844274658422396676086547647640511134234591255212724054281673737585075173251771218489999560708188487244717952554302215845140522342906916065109059051740002213147432699248520983030472532501410207423564143822043917649236422589445165868851611502829934156640112264886128627574189833624087282443717533161860797930466782874755470110327720504433720740291518528180026670809372120590883264889572080988278342417968586888835975754430801851385829402955196537805889540426840427253936050213271960014403085040709460638018594549242279303344710295827175019507757462396259166371710279183415510492005296746037613185222727382030642617781302559247013046674369370709623343519999228863281394878003844693484018690724208620908565798537656939794623446210343521973078180762176934800313002311618026562969724310470682120705468122742712546162139902244478722464162010462911335130872929490508082831668753062260409695889667746747795380013507897417960199142337446216083800343748391488919188110790230526344447576184271371214439577355933077206585923726174240964124489639827651666995254560201940872869231878084131478391197880887161703926100743353183426904146582755167940342169282209507987648704099868436091096780419219571832653918455429006241207804716953469515397790627958666211947508597215419818026597327526454229716046282817229992264568911401115622800245266528979836463068688244785081898068315808813217760301611375208299937422992071486636563722734800211670417447090628154888305612651796823225497056648042646156402655643863746383824593140954248281880317662226936487993186577739506377473414220030071596883697370735617824013170930895633039869361371207829602986834303232360402957214328220601042399505099147467365843281856376641105656308397188716860464615684134562138391984584728356868840636189517018840915751788426804304557201779695930999851344100021064567669963926328838980090838153359249814845033010375985807278466941187264145782656523953972713643272532982520120711847818963014704930007344295346521417226174398562080413165670663786979272640331094988464924708374327645424740164451554952065223797098054628693471765773606652550299664619072561983159394593241784792059241511321064242643266557889360618746338228364786344176825401026892063357650894701106189766942293972967251512380223167402403973632200327109119275483256157504563771864683745213288119222426911558565914215032519921914234007427716887335884997382306429745642591229215459865461240595906989351467644402881162620832731371505343931822803958348235425501798399722763657613397352097985122901490280280483955140040088178409422439237206064994850007145678287881082500368622749884079164129944878807623631450736744033345797692520458997126932247000266873173104272673702392665450504189557754133978530334830067124078061078022587083580857723869749134563183879344298202598105257477203657172116021599730719827158456971713407231280483356045745467528121518517221089379580356367469372032462448498981129812269844040521781171210714708752160975948545096127139002529418576460521031992008252343252958135950765990554437878267836569923236793906372439618068926988886631084548534493392524758921207857953708013974712478920782626848714281585864189496608416917421464439946916012910317999070842130024130466303722077692572540199683099736536242099081192288282627729902310602071540302467150660978017443760549827194634896611021871186983934449916556778080935126437672983835878004597231234682695874093074796379477739942209718768066042110898080574693536570977614426891363000182817677840776517301342202769363512106606743867560092467076563211312385421728105390271144750993644832386607952733801612489143076653478519295600213997402146874716636401006623737418849307647117578495044347237369011249249538460587595588204645761977311342839552201955611803243023694241417107879034192142076850967033795096143667108016327148405672575229409674147773498681801454541352677008072518765826658902389668458865480455127023792299343233273919020800340197690601305643095068453648789363428081357434648390668126599336545887156398890346172722891423279326026912420232038351068604340955259258149633065900707168578017797824301173443639889740182907516576766410963606247517254990373972667299163793196154331996799477113519284637683811340532990137256415832482902398723605306925203168701208774427487085639209980982893325713399169524894814226403149425427580636897963824847356467818215343408805963031786725089616638273307770519743278157410498548786729401541796453636145653420927997795340915560937399559244449197541475782757265561514395666319328696123299394629127804966764598485454749384511983590239912737136307059269210367613426720789872445817137423883142297035760543080928778401722506705532697224649582339841350701195526804354425529012303431242378997826217033423196795752043474537605793761407884786612995879713010882745693696060240003797778418834391760498551945582989432700865888917455040300649267579752110206058497390591078293580491869152952908277509862825629087866408633071568571317348087121405977287194900644370063683256011552211231261169914238916016215932482295284447415059705445039546722930036295900777222208137802336858655898114084845516055217992672127742255833817170535945538476262972863339572816436062642231623943682318849314849096609235175153077669837468422341970075325037860509409188654971472720606291671551905179327037212634051619224472722053514256124467955124521668282509502853367551018350992723980250421902562535325393451212313965562807847971236788812057376779303144355341296931227471159398286921237717017461595682028131348191823471789458890522478092736026023544739086425811970755689189663615039554551954150971104199107867128477517027977975698789157161710796412575830791812828075558688340472992437090950690043231836913903550050200724395088778671483748264150711657794153176763653002628856457523578704270405462668915885953567542376613436064911817806867613622353761483594359649510382993343896948917347405099138574669989172739592441250081172854204609058636634725284912622732667120180387132084992071206337758665761027259854008380932155991259794669884914230393590658723048300904370016975972243284629469574438727232181800695722997105433077922757086908437841705443286835853734147856261158338685379124808127528402915509081600100833642206451249207713853820530135505894470984589642335854127358765208927119859805600649073489577039933658102904282128581173746225945699000569330936385882606461895177854675101479976824240039333533414222321703007997954755181382239581812016238526159288733868406311229152540274264520602195267502740927116425529200680668248120126220368024394713280942104747615445962266667037419202557593057963076887017217668206178412920019754770786697151196904773099564432568563508151689941687817631907588942831354956761348749225695297075106485916461254594649269152539377749352134952937767475579357303211482712025510100335248550105777868637614154958402423727224403148751376758182902066044489283501107615288647776841384650357247419538511227756968492386982753210518343752100461199714392903207990987632525146959595482041506388812725493842927000107600817193490817533299731147886928170740081993599424446754236500152646946026577837877999177087948439377316394002280156992944829142212723649296751560013030499538113398188224937865399332129245921399034365773016823720100198858676163235930793252215085563011342575477145253110977323575149093910983666674232751533553975200625992145059575711164692722333265855086165366959096401862257187825233290948475375493413837346835596789334812954725543777851748959017904228995032375310451463926851075787941248720643731404953019833371121560418636948578696414604767679167603529535791301374726660928849479692198208523778396838455973673585635336946207098712737307847764220834496784515506895726794511960855408712616517624634709106966687436137447290098112352716055894543226879961370159678158277012393985413848772914346140493487551618101522085598339827786338562292642471316437767451775096089416961602738476652988266726925958195826482087685548332710030521144114376411984282135767681266471547334984413003517888283166106577671072956106170576152927627843321240988768276342381452440349738567457899977049601352875306360861472963106342902825266419314649420512849377948273979338658470577438009343758443195642451487624740387932533487356974981556166277443806180191359349612149530100841415463868334170848956109560270514931947570654921943439791819113324749207384339202857993503576291617052836994996403624174423498823700040439857594442140267131724532020251274026366477354729875078247157317183028319382114037444162853145053755526991408808731729187416139958293917541244751840990699508631990409030502008684937977809683886093895359977512705975498888606431849106063173606019438488612890488465855234752822982711825010577653559510098476918112385631821967151460393954156521243153946616375893050101378905836073192599890742198962707644070184852003628436810219541124421446405357023648031889432299537592259676024766833890564585813868334539200902385247109505551686129856717006230709003631989655961538174911649114225031199942924677016971161985208182726078198739729159873264024923756754611126622100200401460148815853138067852782952981688126441277774208689807541664020637720511858045532435709304439522036359326059879743823342520831781626767149004109752924579314592303427325529780066781298772066089655501622688909876012811086481386220515980771530850773990153971613592520070679050754067528370270608063018554441016602296859397407132574554847644106379768002565644525637377989489874816547609352394953375041405518461641902914487339208074752199295269236536758004530543314571853267884895754074518807272998653442605091717941033933247427448828707781667524389579964978328207157063466909375447721713616975365080590964397313609047822701156440045034249381405963853583157595647583293313156290670375334996539929938981182783405856744177524336503971717654416649579755912957609389314106287828739676095496497325632804505810611810454606682906014738108020476881138960963765371140903098179593280382724638630471327325666664243744888635040002611992754740649931255685111653431167469367541977249150580861313229973821500271030140760927218285807475144694973771049755686892316548621235685932708508472039107877836469917754676129439347210305394717020015180472737595212344650428354316590422833789573014530649864544627518984988330126428873610592752091143671539659678960337923096455478131612011152657483873911537701152865449435778256945051282081900557022269196115957462519732929498445421134335905417286169688502770162867407816006633470224057825638392839530084632537825382776193288671386896292186547981853200686712093299460171113690972878588249393001423465474565897943370486613142100874828759146486415414776427168377997962220281337135188954289266534595493734165257423260201802468653490675411041456064840987925628362932848078077492251299437296623614819081520138373705853471207868604336611774409766842414139469553364890265698974029192126990697119131815017486441738756098149608493458058027563637564535521510980939956896515299049431884038534780228281205944915295322584706971841663011147538079151629529427721039359741744465141065499654268652832542885483636048817240639509966368480866812021335562629954167859001918661969551549290873842890938249870944624123485615158776843508542131566718093719948080713134793664723571520940999907842195066992919988701894322127223781214336753760973721213811215219592687380472212771753091648006083043301165157648876995523422737246339320819476831955994847596374433244662431598581193393851750666999838234098068510035049338955056282688381093968873273222464822660241479588636378374963576721290955233672096708233079865152070807382212868786130413372372173109489640268691608024775180045711171417419692991053396302536169736055875074104611177852596790529773151555865183652612803176491011185194086750645214286901262932857092552744897197450844107675998717279048208105415983208052791660677140992573330351439190480556957689474294755200885955649852352180149369836828709693861567705612858758521703677637382267252917417975786980476986531946945473703670535262554376130560859648422769972771648196205514116271130479411333091099179467324156023832257498196810939800022958622619029632549515654922816114707234954926521652102455998118264726652760353756441133558969424638881253958721606097278257529140298891555275388427759089438961361005987704411043046248993087264980959488772273528099980199402622917894911023809915109935020527701820079603182366162030398407778618723752348840737571967487521060883638430428962083112883280004809350408641100904477428715515170029445107788420197812534214452963161743075794678302820773625445453638117594459307651733886050381497100914940849519479986139816618408388002605050731283718581950585807724984113270935900534311332083620041782968194919504984029574785740481863372454111353448572918393210670368816098692848326507164501632756577511280297840715901804493728202154171432599758500827922591320926465026490365486659941359109631798730650956467472544215095787000952904672196029380188349586090761409191363767991182039251412363772095109076345802910357150322856208007733701157232965864565520683894090315266418323429118208593149558449992026576310269024023276280795802486957322342393730080489662894496339404670746610602070394932283504747360647318062020803757251266051271061345245074982576732730513446257117421975935071203677471691552445348085015727169097025427885525042534308119221325602098010942019598068108033835579084607370268286140302153380012808705649855154923079411551389864652901758996840376871426477150232401855651782276313700869737697904615975570807030341989591305120830413502087816728825171504607191919583308189833501289713396808002543573936515149378318044046796497453063606093426434670049189921586800034302074109011805514657297961022475027071361873227798664750727930472009211109715012378383512952106166913068865614585978328666934684580548704369741494551661116310800075877670942479650548526084251746979273530811661480765327032417599021631918014792718725805129100672626471658416745736400448808034980857119137548863336277973876544894542645706097604404852868133925034784970088138779112558560744992814511025461270005820148746759278802700434629757124294340782419903470610710968075411873388233761117390450293632665332361142581857626126499306592190828214184687474417604803610563903350551980157407771790456156302807075422570500696262920090841540999294964446011167553988977189500472057886377729359138867926160997572419161123928367975258966141132506733773263536760948552523713118817797321302701256814346276357649862799169838650694513097791704662343680335857322248002995401859808147221468161476459616508627296433112173154940494494605087668743811604432767975276113480565220741705525178479133636999050132111779104383727877408259421717781223756668326499226654769898696887088614355830999056956976626262659610716131119609159336549066593965950506033469201224446644507940328882559408878543604921005743770481016099251754301222037920114022743877650954294792720687718442554329061608673152365325087848869902720075843418488490372784814346794756990850264718625510163055490262065384299820225869125150267758657772944618429683525630152018880280101418820036808631931778761368806695671529573105658209153754579468252220884266819428140715537206071666677923497158173634800742813558730426402211186997558554680518403090512337916213354123229736480034396953858765364633870532474210188356211139558825249445408844841214262160616722321515433349261403495410756099276333388970198967335891291203354627674928212539125293277989204241803639001179645677095532941884291895699660194511078885679771828417424522008989256227970353648112762188059154325728808050515226556292439485193619493542216920347100797013769939766243137585987147107692774037785574577747932650482054646751083230512820515504045567746963656931214814056183043807129747096756005453063308883099005029082102778985893702579492694895251336408735581263210068813214571791253910662519349338069799762644678246688303265847697858588316365297294911266526566814524665101629354444594401870348972873494264759860861643216779666805582155578776727466864274090743358811725070000459753995240055683322270766331623236165878501570936524280727685991437277464791921145920486257860847793848741334801401114859297304967676005617885420938194484110301968533198021090584165380527827972307298688672937810785692670422668820925967380036290878209773808781703591736787872094262059638956249790259354266220078540771967474092797052234278127502744960152109927731651258258799833773634586870555275977596822048719997963843103060703777939908439221956205372157205144045949774928430223323137986854464069934288300916750743451405656454225189522140120612457868574017453737306113724355331649445410222375366995566005459106580032079415610717492029959903166393107807330650590166487580612754815994705159510480695979797353562390161289055728908326842376409840623767824868655819940955013116226404869389267228634320544356161023511223545118359524007323855220736332852600227998824594107676842066167496837795767451522576182929794916990048092429194600033814455950229450966279229047632753710118489081923201343114764268132082795302247696425165748137390579179004606944073082749900781799817388313772747164778878960950371206201424413291275138242869871751388991419761537771742757109514278585241688422317784606503070209122368202721189431576185824245481775820481248657672544639924918748873974041480412115586542668390210545192085862893533799887427446442640503175697202164514126622296151961067678449850502160450155808464647029713454052215841303643610033317876896074161345833691731467068736216496118204386222749202844582444896179795048877166483628879805641282444184508782892394812843132895212208123170693923887271349194460111283112836463987911446765913691598146722073098265342261144643143478986524418902024236432111611722064430872608688283233142692887763877009264909027737298928923380578862898990239306915465463652300104415050128312575246725455958820194442621142293569534695233067993939405557983501039304163394127193957309801320863797949020074661421482133953882101020894252096024224129881043210295815486558563465587809232256962850452719994687668736432639917401905970286641412367028285408878134239047507434033618379893443458790629865202194749669905812560966427934156152753120063223236512157639043476161266926255725709815917036595196773540390801557982325852889041299903554143456861590469813602067078690425028649156199958749081800743982982405355780436320850503897755156514310107661613138427020505918061528282891583409264616369608529244625541633820799060063703024543452529331202826167434781450379320486063454648920791928851882053632359577370880021035729686635921439360677549568940101492165279453627972258295557042920718791066607030955839675005136778395789387938293597357440724000167228301178800142012113721743871197624762611447710099343732577929245928558888144558283417221095133674382775234448142577728354387856393855646472803691806105873292638336076262312355393960605328262517598878193011785707530940770084495796359555087069041443421477028072579546652285505728390942350543791029960862608437533143430756209483696172941133235319030846136802151188790335209880981551667597168429302217389325410737884048480476204141292909766787788707925069649254639232578143169201484766831072887017414051643787150352061893151769665869984946630761280111353145186706742897311368092512302387200065098812412691079794313070365226671429245505721776448674655000472264979212383858811945883456245566221331864937889203292893753202069339600700224794550348303980253211189436637438059943959768275046212329221865099612837378063579094351455003387330268289737396815281443074174974351589103923260715484029376297857569087509579103122770430236591449718856888631596255087250492047624994201106338189035318676199648310669634808154771258686376253402602653237794230130362181090894857504160071014320333889941114361360995130485002710805547645064259730246725290686290598304086412888561479053045527063564705149172007338942416502245111867278551946905653907188698856283067473885194218040385988590930807328141779389187098146550608486831162570581841056836637474860505364961690839933471862317689954000062718427644381047997268901650471615691095383056478594045663701341747854470703556496258226725134820684316574212172007912848842694414576428943553440870052018945576975670895858524064901495635218577320758624795678179123954860178257631446184563174476863466706777207953150036281127424648208958479445272675585172715364204634543427601742018330508822376056497079458180090828047511538810631551990649485982410692428287439276084221869771078625409604598566128156479496363115778698584454204848868314282512574015418406299000001435963247939412304655128553968566685829567389375975894822179021234843653431127869895201602487197000655949286333523577428634078491118638278372222898321733896429457651413411038346304198301660800561888711087696999222822292891720589512612122118640554085395738985895668779282393464831086450004416977613731774206706619222707554272583229131132164520793401751501885889981487150144803248547550671181360429983711278117456508761122780992549869894619858251607228309360830843783051726974649917844412766159927364298482376657677016808281574364920462545816390406987491993582821692630307628246412484578351459960363635314068837168512348632452289550169852916429292575330572403319673450661153720293151430179759930526898999801068112844817853069858665069990304778330953227935310016860325264897249056450010958899750919858859886238397603716036553855684164096983381676814166104165946582362480609831161835529960010225798690860236809427700367867699628718553235269419211119371991923765964105002039650887106657934421273060481656281614986647364137601444711831865484634821875448474858292214176452068718489381632606081317237748424625784978633761089549567601022448982619980630294437961987534241966122785229229840559055783400502951410263519316224406150456228609826372774798591276762248635973573417368757822027550640801931541240907103351862248854939896514066048840136951947128890905810277595129597667418483253888669552396042722906345237492537767005377384959376053775505116606731737359203197614590135467004522467130360089191399466807531612070632056904579601080334695057388843288379836393351396063583605085200389416958258003787364818165081704827976054407442524521478834407633864277135133537070514532518451508680697098018460025936621495032565094923715044028763963728706517464255371440181766990206123294147468850107551817085772553983939581840834772916921368002345360241152750937311233914401344162304437220157278454586700602813473782417336721460726735885462788294587483196026959953936128815010948703798475505581886945939907059876285835644087245122898914246804567365772728457154408161957540863127408614071882084866027959742874281869658201419710954712491439377180810967550740428254348192242205475822749742128028875212452020615022655323521566147607879497034948776244393998100475508614476171160826146981328284815469152967354066973009749927681696500649718601143235605851186553881091795779891091259692710615631847663649119269838955474809954740362074437591639046062676761609499099462606087943385025694217104953032444172703657556543125823690124997383957758033635235984775313297699517033857741236396473459982008806297358747937678823380535365132311673577241073801204138270605505217981978418767174441523868597825114302969542956737190071546669415662065603774221837418882506507175460890591298374661715157032831489684629117728076963314077324186733098334062430697956312888348550540397590416966491145983627695611168148784792057718389305303140816614299142808819401284854231079132296414449179882630282873780188981593230729236892609669797065968792082992551110404533927487698469438948264088301415554223153894040297946899389963092847530095667861603768847276905948008721901694722869728089700596706066464879989110574647038535663934625620057148301270769076920157721641614531532681869044362075717820869353976465159179970777031119666266726543772580996668970430077838119822883835162535403603852935696439635296208525306952811351402106382596032124976390675167880368918329680591715644643272352088511826121735615028757948349010119097772044007714300279581312088815617245371313288963994064396187330301554082596575973028922679844417773135330570911357568084189298796292547251625878100074107568974149852453798713458217581105923799013558375868156121534136245264969639226881081492969043573126482265697859246964265391246642378520949793507375981980498901285585167906281034416601303491815175009325792276697423368996287489926181863554784254897458428853953428173122228469187187824696092369643655298243561336782673103898464877611243552225338850956280155375570219472207970265382090721480044275215023252610796790166762177804317776366857523096625350064213538380366107233391703300590909313464227063294775905597205955607977463294891069759056219734576169935632103912236252571691690749207579497234905095703347151749678511653757573422282928653039531787300102292339783243684337487835413385899649020813212503570258799105882713471045447196718879905004574852931629326072737086529599521848634389277417276656205321159032292355967764777779073201054656086686041204350883067524995219236614958455688071783950190394938359602439696651705341219538580963383473048918772034736196692442003163671228920738185082788466711548578804557415099029923343320226729503600903890563533481530453636770878054009185235988381829302844017118761330055599045690414771619215985446949343090456461095540233604545653997072129544464781648172116166446466145332002696968114986719957012671407888051924017146356557722303137218709716065461033932421834394394243621800594335827430654823960735184189357207132015437937301080458861791775861932612538261609198480377905445394558814147854831293603745223375662248017698735181451200234592867404116922017530817301164967266085253139416702295634236306635212027412626397928740808885100670460092731547212607254097580737602973670684733235421392254666137099622764491067518792471533810149666485520191812618114924560053951641493466327585706593129880593186926404265534297011414210079516625460112692386861282646843733818849723960168974966249784841105870495101963749581760324926377716056027774776575964001389384814734557245008882673030995071211538654667357854062148197105157525731760154213426138269726045530586933164404637425002700053499497027931968497242746712070086547310217219150259596452650842696720115876912743256071055565108687230712141835210387905320474118792646856517629321631338583219877371791349521062256694350508737329771657923641923132330589084411168629501352391099350639909355354412183504159730863341969667898966220302389280388799332973767231529250183892327596093042446693142065352742013899922099238756377972205323211397061044521747210324156445399237900016246190674649741565297213461891915922003335009854497668573276690986672088088603942884817352171016904649286126673514197751360229653445186910789607720859664238622128718061150317877252686699453877403109056499665271882085203141004129916366780900086658955753118322678255865716030019054047643183296101329089447830970950747376648768693079383989270921954846448686194612053676891055762619746043961151880571686272875038605691455570930434633287427582759621279484756283177306301215911846593317255043636793096069443762003489813822432379931420758213032804456503935440646823482401795793487808897195692298781673562231621146955789933278917777954226720086648723808344077429579636990147937934467081169283052052810637884977666879886804077910159173024862509394223983772309643461057550639672267495925836050855606133035915716382082253634362905690839320833776931870827706490726805769027202023021176063045547063712590377881126260250108332558765679456599626368310622269410837822639835363482351979646976757411778222223199555920850711789412537401846741362150817802763150253979625400930777964162077025246395092298599877959930923825258604166698610991506936610466467577050311869392589876401122490829622079676812827369517356990515991586390826313000667724062744208942508202770045169202381905793413399876717851477120749951645471896452823029463687782361106442655853076427278830920727472927417523698686974620016065722611070938164579132579968745636701762170920821469260647672162679887492274295790191232263736038121389356445752792861083096225436461926951009197916000335921038836802710143238536325858874917060828916636994983042298422231410776244817427465722989679649217882595233405244813602133776431842987913386841291096839822760972796124453214157389924614709132626195026820460658932506278111524729811219306638990907557231153968339519257053313605846409485768450704514184581129103712667612526917497080039592640211065624953865257531335441004864358553923181601832515039494162308230389420905327309693767147191495042540207101332132484410332387812635503495647658849425448882768803943773506879603239885190848997689798979156539658345191030965242087526599429317453401250934666276845725719896553648800542226666751420377254397472349009568868123096710310234005303264617385987730802670539869124613516635877515301678713363533955224388926343616532579219559239407896996201317651683246916555664554761904446814191454324156676991450839619000325402654059997257550785464962888356796386786801989201000812820022801973817290393571146563192176447431721491389904064000239388542269621606332452540733784402902656092458906656397974560936053777115128676438276106549561659135296789609879483607282228049622159035441173554399348133851459306130878190507280460922536311119507154768065722409815649939607022810105401895395002237938388314253133764580189155163604428225268616226743984688287931127630849409027679123931663463658699947605205604627232399942118339083452616160637646547070895680763624339811537252757163945208666187602464329652550112230409648853947495226251537289232277193213551028904741149785660496575783993327997902478924572853627011965775047852512780937126959046954237648994696761446995344250252378549555503536862621525061855723786491393689208984089763044654000916740786926891523512391505005069248599334936593298694683576931540348810262063623818251890135689334881314044595645890876419229941292195279488847676604295408969558900893883624890101839650102062079106225797364986238519528039007876108595398431770693039883835587327292777561037527726894793981714500950073470502362295645112999871345294335216829088393825168507221433441678223261280575323468945229900379289347517774146683696222284675770036072626203515496538940370542116710044522527298075039845188577181282114977025926172581695035878404006271350070434600180658668449870372334846303004452188969081783954387087805443481297455707026099452575457163881112199031120541106663473830245585112745791088039526448391999026696719565118078936669748340434024308135083560462089046378666312384574191026364433336621890531740900671106018865519507956557688266978595922550456587553715569050035871300487328142173809267583840430854497202918344770779484637649689425983787239694190636088766745777073183317257640572503158117982287742072000325003005795191930814072994198098950572050354330821539530222178201342067229624444100294142622651873002447737066686114495881930416626367934316381332210420798902779810049842049887295897577363452106347006573388094153989658130524573225326330366021329103695664042888806136476273567353965773200999279631854730743606922824244992445040063754628437799240098263168649270704805468056970621217566815989121740560328501377159048038761387455149660582830833223915800021158679708897319726737848408516974590134166108701874472152424214955237031837261858621663384146221151589993611847545340193876196499285878901697268872680404458059301528024449646832544400592892392512605017291380517914439120867068255596509812346941702375879705432877146565304964543780126921853084561264897476021751638421848423367209366412318845223678637536286725215546529205161390328338402546232535334922026049590154535080793044385204916360144899545550553645702258353674699034999598672251902112317918069707765173391108881207964290719587134022020086108502412098266237947576048222662148376643250262377381762337745070310498182412202377782059848263685256336639483560742444198020250237699069997482166460736061964865908090692090234995993262724725465755184344714599333231111419495251751187789026575823236456314286842712337441133333564151388785747875107021513445125054897159661624501292041548684015681876008385973108102354079927376114570854501017583318841419011455449089470990877137452156926148522396521853718952656695467843746691687182814295061840237981562939366686693602896710708883952133660607770624735506371563419359766946153382258467995124515788664831836985120535540882815402645034584223751862763234575447706148587372567645667334907255985259554339807954985218533080987175324394463231159602028883541688105940485471280381056933467735569426202261449646291388218362328331435589642981917192598529838559815550529517293959411976513848289177422974083118135442918132016146140998281006970156339717471606738834183369663418453670588513029205027865451792271137621001967260725111293575399658000306183887809384377765023228348550257703897806402474126801536641015907567617726546157104327750369693320011972256367055082728587107136571639178008090677681067779473191939709162337451682676521898350520154123704576448196233285462226923755905505164334464574089789417079158201093448910186020870141768633309810856922847005342252211602242512340064860976212562736962109788798364740862445862712270596562112630896976357253870530062877990379197601573513428946091786959611450689919468276364758137711755506445620623720584823869835707146164372031928854863561270970860550014560810762183571026696377173054378309609823358176619777933617299162633096507009740974676810349914193502085494625191934287795083884278258012531278791640588669750870013443776177342786487683992671905611252996361940901475767883884774810382761075824215848758907054964439212635032284287966047675024046852656228924661180041038858252475789565600914859186940338457830659545073537305769276606985719179021416477697818115635148344070273515233655022650132677246251985621163933381612347977989093288860874764507057365161486581132319445595451017044091700581396262774180080801126666668665397427289190156652205993068994935983739792576419254725570732594944980354144181526409746736178079965481238395223646478003391754016190047252836675426628168933658920492950820045660822784107424781470823411794610435359314317465192872841690515237834698034545185742973890521125744746459142559159048805757332971104492718215845021116109787584331153483081472843114521637702354223181801902403435889114004871785585144995807839063922849158563721370194989292741510799078303419020486747233368530449168289451591072931044171869584987152378646334411640170832058505125834922269116452384621890824930117206296551117572599767406101799508823246791529546840433637567041233965723857012119795565482107761416818961519390106162203555578029242032822282653329146522028750419278445125525496791657515255888453133582878494333493195152505567282043201857324987449298819736063675096885952189312636605095638162517447805766653537940261161723599413130428203817936585221511882820605722425723598437648706202645051435345933439561687464936154822788627892259061682567550816351970251373308666114241963101057405783212515909568135272345726867304057744625281063818013895143362326281260864617102468560069550629317163740926315448093488573816306383701418039563228601133591448387618631061627884295885879588935890619702051227189393467185654997728930936206698288514292441619909113156997866629392006740398822475216704294660846521860525069673993327854153457609000424643202658933440868323150375255356173081555434753163833286997547118450411823353048452650562063953495847938380884182784454105788506065671227002889472933831180638744750679250527081647719318321215535627818758129110734074259167050989280102096966458604771231010809447543819115791715686911621464170704397830725518259533389045682719193832472266979961273218112816154324594991132157299850643967086104087962880375188085610628711247523504635691550893472697730492896077574536623970404220120199161856601549027170798430523414967184301013599728048454634140304190235095872359407601993109203146527669757647725124048473813400802110444574803207390982997534760925829349293735230614893289880189527860260505875202009231155690946485530577967227005810013914531407860843491934917991972872681977222116467882157869420401511448227071767192882407429221306414967850999377581828330711658835919123392826052724913138604643638723810869750539042490874921780383438067412580498450304627532648187710009537827958653587779976019590063633540519519632132200310748575472322946793007618398072283584190611449660225206488898571329121439335768078722711114298684770352661101440048351705603005130104092991248732712997407076991962194378073246627193967574629802860058389688670174372299900883683900207291394598794022588629536555852526676869322680461985765645121437484975983075050383192980371785209387475688901125358195370235031268762540236981742984550150126390599543656380573145547529269386874202553764958944864479694049813442385767851619641133501470010678800571731059471286601972610338734059591243790492917690882012172010283169493066588615558399334415425391702487364064984925573017614189236219170458402220372226945470006925025056903604450061766861464621208109250451190786440156344677704123816107569371101679678374341474750748921237062891752762646904653872757696459969023927100760200045537331742133015718521510742077674792633166999713145314044312633960454453971463393087542906911400708096301089284798856190543703400292394775696390118150071930575586838201327345300759769877743822514610290158911816142207119037360729525294317971941180483232977017769762011935357127591981099722986423962114045846166144088596313492593770322052366855018607677119449053943475585941634695678855669013771247518182756690332299480913150872492225149822670653283305001802880990806206523618378000988869418777673374157294178379622338024799117660888951695655219066392567433097983277761589132182330511040092826429930647257763186903110255977872132729594295051956382605536859931172546535662601186143075819502501545602026650433005353513239621065619039425457404598759891805234927758260889202075433538024434469259011347702114485067383774485888944491131686543722933941975280994139294996301145125410730701415879917016508048219066593141627498111531212624969272209672944827094097893128053525724709399461883250403789662826272785323679565982465474211088294258592760794632967497636693234714209639774554481267041450118531541339325420385316584639345148325657554858797870115512693655082867411685315455649910575157748942474143989894381830820865060015227353060909454731557914276052940543697516455937340330399629080158434418610505075416686220866104761306507494025988782184215258811584139430111354915195670996176981644959766650284775660374644156181874667999298198691178042780256626583947097176242090005810209640774348366054254594663433603768652415415719889059802256534292913289944718725617474392954394418328429572134561342241145321375274760693812091227717840951663700398084412586036590248693305442570258004050615886293539699996103116481516290421330116395400026965239688815892293750741171980144918200509434123383869671769914976269458712298937717461633310098317672600513291007877965053645563086091579853687620176277753692725063667426114402558477190205206755686859574338724947045083832093361125339245834417748356729225081069620058535050463023836852741569831056949449537232389766271585176771063411994737184225214335409231142499713259734490982832531885806008559627513285280308730744759008386754096786200381053633770590647893750085172037770044075499305820177015024218468109217904586022173286657291502398822089280370736150187332664798643251430521928564214634986692978596613792472054954493046440279538014530611118439192669891637402296880776074089279622117152713676659703353436109665222144818429905241479292119605967648935701595914160746804216467303124256532341468341454259694619915437253105618424922906294720533403867434417571671537375175543459540975078452835902108531635037536348910616210275162597471953752689004424099532927262885435382601434469829870937569966186826601120594294668045013506231803180005980686315257780305153258322830469114254736267805565843113942920377398658899334951819048125991008735641204364288220316760810814279382781753522664118261784409800246610293000562433423289351668037716606429163928907142318169390121275663770373567676899380870779443187712923076473294062211525829745371815518167975828302310644101295678367143643474954149870383274183465826909605811458757669372881276764846159845518745528751407203834731060597952585205870818795123291082460143822709419270188043578788554560068193861760396255482299203584025940329296582037643094393976181045614925067442610305189636890186268931397821245791738015044974124613313971112985355430430660108253723531205162610822321985538926136517649175373497934488912280345060947619382905629469419028585250149199060945184122727946323190421809846660384519670304705271177135521782994473653824199300512554701531743863135989295522849454130693217729346881590146046785361034016055551020270615797578763431854838270333574762293515712789092685286446776378241976032837556018662124133600525225536318910327749934888241969489486875700045110624479576357349022239038411698825773152480245682866592972655809051841146316671405629240242787170668013777154535461909016007015750265518717715848940870254861274183273631155321039864132929513941590326817999987988475742964368679553133759490459256312432554036601341294776721628723422366817851472489391516411743991628420349973348649800306738847343272135655592511317768916359765150248296960063852535843764512414058101346084958875769386157781716954742407501210550684700833183438724687362427747385277431992830154739237070549244666128059590381944113774345010054473431210590154970814607504672128435677783897674265085799949123753157108592979068382653062156306168894153883820255905606032509575403446010480629878920032060622039120480605715204579522679668557319227442651827501289247625818901430871510386808744440169754461715972738527318103305884074008076648156535830849723124924104410261522971026723135568573192171444303144608614496121990865633457060400764170469810517508476304784956764070648729138610781197638372638796727933765433208198628222064587082528399386053571309996891406086584225490263414985372720785394616213340133513357983295072332176892797387233384680765261268871387686487657121839332679928179703142479632676674961869941572253156544442036765446772788100682321855044950021803565671393753306871633342528200467770211044377813861221819912854702259880624301598247848599615293316138318711679607921772911352531053918212645535453162407149713555250689890682686118463334348706214745762187698154404444603930659725262393985064776266534627940244208379747935350848925109088263489104503618411948579419466643217729631968581347569719957967580232403462704164588423992969083078606748042014152518495395090841753102739539451393366827636884622405453547716788165798669837222063368159347668832175762736953184770257568107326680523206065297523423481650392713801150815595346402223597870666096525095249749335370302382381664645260397097036285395507623767182459741004483987831274700040708364483344865198117101586431322136649864286489873312397857917654985025099986176812258798672665638602795316431937687400901237477541654793619443355809074722820463447091800731430781709913945137667064262718831199243282800742373293432950460528265575460025974555657229089897294231490353609794002668807791201593997619430898639943929919977909145993226351653853159875084237389198534939523877903752277786054114157425092491260951357003805426845560646204856277143181084247263960423387985360969401712968769405691518238520864715340154459118870349214125337373551041542892601458244028233510346662486923929504563854627471442874255812120562478667062053654084949255651985166129904586970926873591427181586301601822958529900981190215471735979371539471077382866950032952998898477542870510623309705124196858417262695484918256288217950151646548046222029248479991495249467675678342308078494445100682357275959466031335317843982928671152083691052688395774854950705000404876592416257536779407415216769852264233333015483763043379183347978412932686217676591771261869848132882651726397819373981331350156879583667842590522490781720764167179242431903973058870713738670694208368923928916469823881405465391562698492802124702061652482954783536927856604697833748108672401318482242662350329064986930016436432827923928984909356243929209064754023693310915882085862566019258548771313968445918818655457104400059148015453037572626878623228568716786989062019667307478158281971887493341684839901249307890696729088987938096632535559378294169559185016789868290437375973056879287535510509838801090672524154842510259479182621142727593393188089056480362287405980541166469596740001117260727167241002169784895521602622448998606953665414498803033706261509931102754988156803344568579010550885203665909266945970804229094543548255430509882861201458805060836231748920390220755169838080058687079926947980679370181687899924288457212116428041034506213198347392466032260943669798281077547067302202261494673065061667086618800465472067376854152407919902497902319788011709194074305307442268152758343388613306514363870503980501125193131744991280772869628955770964021354532205805415638112295526426291514850430063818984165623458180890632293756779385850941975231907750883479679745036262217868687365641536186892105766779526743789268663397781530732330288161915936646549716031755728176412626280757348114889612822159602030761696830458021342957056105655689587315382761613345401502327731519765999141316762795003829556339449152045461154063986365336344601861234197798558005745255609322806224613440281102628238548211038963857583374915752585668109627162892027883304105865531850136777029726228936306719127507816638185866250071967754354837369963894894683407599817892988830816646088765641189442622687918656436076095442006411173440850107130360954537827288394374233626920458140814974333433650264039562143681192124904769892372403729538286655390519518330190924313577504288041764745046960762188248531635137724539684903771529264449762294969690375642736308323722753559929781042239968570742318047698254313115005219074364896713995234715755206839979859160829204871464501364211521082687350056229439432888305786195656350191844483745670199132597814193770005569105652405721395383019915462857369431087127609218399899814368189817030877686805661391108227000243094948186883826170113604336088383143726061578304374553332069143434025229425568530060521783663850895866851201446621850000674058664159844384820268297177022743928712184113299972921896138666465027769099832098327501282779653143708855634248475192843235282271703137752675491367294765600056838113641503913902885715084663518229594268853673806816351646724754495052675262484826371210207373884482708436000538717209450929117399538100616180339908999049807638389908788582118475175244665813848715868592174106335549003971721673716076927783816069025308738507566128317349536642982246536076069927391437858290335834743522435473107523157274745026249457007994558754550271573172596585194105230140583387623770801993953509067842480601707463837267261823954694611438988851423146682479358757532763879427841241490895416569509871593357992073198983273870585561889996878191590720062674432719287589037718423450116419544694150195657713265864536976607340806363379599640062275062214281818353485430244524116439970996502879937738394685298516345989501488416633328966427143562556316742170283033601085588246386280372464352598457858707845296602661559167187602835181301796317711597604495548366292539460353870332440555562163916422445632152458512922780062583398118348714595428672593692292720017569994241525406941803493582948110500182651878776691822283679876659131207284502450017901319835219955361016557244435993521861331427884553117586659476468247651627762124530384789725077352632048573860143144982250292039922865846019122520536195872839718676591706645039177070492434018329783483674792447192212535435684190379964372616729659240515397978439396501586393525928961672673690278082646334756620880308881897951497664674145737324714402345989968670873716579070943838505250038430683498547440702160454667795078139922530423281002086319398651136105882940668046967155664934694918532562421667541773311864838498575534384476677634906062242863433302262270374892008817341257154355514976292750688734818784065686684708858564275348845552739880725159098154765569040525188767555494318209507473146929942041938292422593525602918051844227311063390849275284012973953853491209584635163047821742139888199723262733554928750213035620107310983129490301281324900725738769469590006128403967939676720618096366461942545387557998558764612156099857281485487233650213666720906482535780750316984332256449683105650103068053434763330115736363086967275441817067839941475551829112280847396464953607389681519263017650992359479711350064736210103185612638909676196382005408215596748669741071002355246788524200161547912499500563224496513471122187442667044502745995316569807165228845473435282415184489332079825180750475299485097574178450197327651128265566134903966435328958615863548391431094900035429558465421938966296666839253546134544729028880597733385096931932057822138487454646330518327866684085202605512610081963426522767067959712599508444740117424604505863349619124954265949164685229232639874978395286440484505338759875572444867372678894652688641308086469336005106308406757822746968137846768765490666558594360871752660609877609294970290642478934555539950148583286930422289489974794886320518037335339185801355607008274542310372781699315981797541300656405411495465554903736745758582436185462138708632667419333244410363736270558132158412177904164288211082885637390816902487192499027692277367419383936819966241558207514097479290972804055371233521110913853729188546789350460141816907850013507841547948574086299262532687936552491829803158520626854176649679001570510612906263778731827031471417137081640413928275009954417108666710336049515975600340213188727042757366882177876693177543555843705665603619274400433324821201666188339672715260995022188558068838578384444072167223122579713808242356236660873476244559629779257471332682954827679698629051614622906117618165654674024604171294756044385948829017319563874600412482707165392991858088504704819997878264067223525555438104096404395737919684153164522226072180894581405512690072570634027573026543954266748182794026827910265619277122537401266756023359430911433712607870753799242169051198796211860994589078339612423156091919869006518166173240964309314912217965492524691856539818861475812612181038482063674629712656087390125078487223723888390807710512835545101779923839524308115080198067731387266449161937381166595009341556261967369827113111103040560035238266998486837016659278855581322596386959189546870510145753607077660689955283316594701017393089862255415838605461017342494016481990684899385364207508786020194020321645856866600018974365408506966460405066688728900723920420373221457596834757283755386610531543357522622815019314794097301217934698479596359168825938312244430079327296723477001198600071175143597682346425820999379660023621983285253735173019887994604574707249110264770191882198123199778572948695957732325463175693701702224961531452480734928477354547520238145076249405900147268200880378901429436188748183983533653208869491825778482576499933099598294753928406982006405455978528008488407005058443295516478502416501537202560354590119936128987290149749374800508499518586528975480643820779372003580102431441245799646649127903390097890481546648343236742916993689528488618801431493003730158688425022346237182326129064737629880623659362693513850989310345426881657292550841377244299946902755732399646609535386359126688532410621206511367490104355373325113718446710600196955194814026284344680907381817716381914924362798843773047239221144361295415944259286674889274897708981710937909738264163988442743866902596737062538009270459062023990642770264644041552582779200955290556443001636697998382156530907188525654952453579729699911514073447056421445106036640608115191660812291538106658372960301728616486223161474753345840164120546040015423768584612619205471987429226213201434119618135309016666846666877885899498841098171671969619511543950989506241643456761157209247535818530319488044244912365644162885182624918432892963683599244753754189732400149063500437654224019834452198227044871536134405048788587346833935691835553496675433448615166672539425080366157577501031128702069901668443933976929324942748607749763355270189122534035164998739616972694491716987535008211737982623611431100200353885448283074044811352131616090664243470891915530222377967959415477482335697145915165730080360567193488145424201952848222013324407767100406102967293011093182287692480604687628121015064422886845105107669552405873109696535964276055061741714588817801524176946010403986541464427987024015251835418373735945692016554985286440863243657163539350924604532240414011503576079418763157976614611064640321461340639741382533076628390867131885906896945120127822081910728444452219417111713825514910610488945694257573997358810116378173407035067364480077930057032602736198910825844807076029437398263126401933729942007941356422083541554952206952923212895578278493352829208464131759664486369954418045266458103719767374255163178137223721120846660667285020243875057864123901144711734921867242302518140374641336570854771037729425435673143039355126136486335365602958311637726795502043093492189744975083884517710030866133516866603207257827816207105857232858154346256430318579888433709209444124556934809934603708847917415354038055215888007923563657091599012511431639172423925932117850063830425169441450936797615365885124141046898070502782535997241521547213412389408496892237950951591437844364727314168954639383632573896934320120223216071348722768859797167997157161206202097050789278702158276206194599568990223954200805478814463655079789796711987794502181210954745380770785657088796689057560965332045477812625208850484879641748555041291099463218167391717789272940275641228409025435901924210978608055300640392855549097503256145761867364323997919495332681593208481928543877115142405922729597729352211006559985744598342329390233863844971614609904102013553322125054604302345449561494733916712272295637774861685393985330075358763738617882893674164438763753702012832215003398068567037623188819057451875118878899989723809935988080957600429241339183454643346733365180480426262615482792230770867431998733723957593736553549753984033764645780954917734735515714511922254469969720254813850044528814316110944040329263994344441472146562555836548232355223001342622910953893563180039811093395749363617088777726052041923346517847119472170707676212491598541580251106914919514366652645112684577705133060196368814179548871768657255852516997918811962357271545822302273274190220046437135839612893585538929048095359491690193020727882230326413072750310645286975120420096572616390395863268960835462037714728387493966394569840831197141639491897692366547276980747617984490696035604025598815808396599274702331087415864383110481717067995188700644294558276486058871115914018015018101816118108938426834569341138297887447555548742815218525698798278741965314040619121268508416930079655551106521232096590169975905072389646247223413457822507922866893147846724385554280606430969930522405309080719518170014616587889667806712346248989352327895948059857513143590940859656052397749000873696187835534479658172797888809781591497209933651503067379806322643345116168501974449910874806630519658658833764650433031277807504135628468081095576027238114583600468295838069608930887500081413979899832112121947296767397261954838714799521083502275882379252794799226904180272140055227558478715747561008079708996716002657382938024011014582637844349334919641321502710672718152664602842262622452964105809550844912021626177227464289566804854442874432829148965779800500632326427915636749623084880339660560693296567950960055561451354448958759890232778129110612241819818323135402455875752340788635163699659493025207832566331976228415478938789925307564911816188544203967484477071950662432060838063033745100091292870851437986498351760743374856490900436834686237213852533208796537742456953337929843596129074124660962595549295879286337480969059173873191716060701947243236048553570835427964281539894519544728078342777223330094324792074871536433442170475063193921055154450471648130309516116201182374290373069700226051883055917609928080627387060464264044741721465413049663936895616263261752002751275388845313874283221743030169152271333207177568748438275818656776324651727239063755615869381617199636902021718144559377802814367853610864228040415598020991820731317187229357724538368227340318514064461498268190096915831171553839190637633909098648257429263231346147152605684544875107240483521375682169912275306645673068775597234343500010339430321740623566555849401963867497337347692095853453815175743028898629658527769876077181599519483533847831147202360654413838249030104930749057516882184187626799570322145063302870097224984483085546593643502431173680057961515228901030647318780046439383851247218326574946383051481443119437045109288188853820912467400684173332439325153105147319432343328187281240881474475598918552634063050143310588485123982037999126224184463883848316270889970057682480419317630928274503130331268057029617415202936971719411927281159301214635503135493543159976534046961215446328091762878529773204691513924212628756233404684027128415323395277119986082453914587557991574090029960299564153204760545962077139299290680823581085629351424454848355152083557030539376898910727187815562867735503318808777166925066008211392353504345563364105897156303346004617599458843029591384378695215646604887001567187497444155679049251992415757049636553541163825125826055531917704108018047084665110706397144573706892835563932554711120616642502743302453545410528744884909925382730976526805777442296938718843726749939157995165679177593287409188753271098209097444982412415221922881851679673915744064630482963545974823514666907867174886965260192431045447142629741313927303935118699346383641170629975216856639702033247659647801948113389722319593967356660294460397537219334742875520601332563074294212759729268453826921166646928393602342366716204564305335144657161324144269613721194146926218985247539380710853614955241515703084549498252470264031530311825322536144879192765638368557870265061203164203793912178976293316168938929103366038534874032989699263969586561266144594160846532678890000058640209714145369808274419603934639908357851164815827482541175063052573717360966074900585646913256292019733728591072315541765005691547967134302574316017211954215550197896764282444657989169526816375205117056478029516130746324783606265356577364476548852586965454912835300108118293585982359383306755634221725853674422173549800684423680482262864387175136058106004041193906606627641710232203765183267251954698427131582331795279573566371889755856948518403992166368213192421927976802123472997482429872818472048633282278228082879095896086233144109907100277973364422873146182064656870200939709520194034962302675333654347841407037784542441932187246358627510396847995573045219746785856735846738560376691163226932156876149998494311375257012336526939719492172084329078648212221061239768515485663007368132498882757277866541308055236096290070332857788400244592165019963218501043498466943445434949607534457452492513749015834177112864939438492573058861842810491950369965083674429049118157438452712755930538736034605979395587324758977085306358012651279917084560703949354411846587065672859966418492697984099234953736039887586464057758055235187086437713261496749918479480622471754167844809941279456694954062274748209762075904485676597797687267688657039839723715921164135387202665111349175735829320591562208505548890871893422219780881359881226564688903258984798137222501820210625127781855623234310385432238526816058635972267512262942565172914125885892559932827462371894883182298833146048081154631630215410416059215727127947234181716701455102673765070264339814209844562394898887380928324882863722614108950303750835961445342059312917500480269663279728697338019603093454774826143017270953622814498650446541971383575276564133336564569242083782634510722089186357419010121489645728105866606403943325317214715208994301419955805885058134284571890892992440187994216283417734983335800083823443582233083031060451230604509734861318394055469799286281156579502216936023911642768602437230363089125240302576171349317836946076647920145279753699564621883043766359684910492091077919257499416474852969986479039713445907688223257222771513314937773670826933443519314926377472244194486530287175577374501720060104834765488222468021581806149482868397294724571125429166454575894128237055840793892495772226904798071136726726614106916593171343453909153753709229628856722531539265305622765608294445796228323245140577520617543518476707420865142866149679649667496392416725084195392141992276746777251267990557204866633107177739240505688821512587159565824107519788428002725574495931758702126036609138194497459387305324394894545740353645705296262689403557716996265774383605200944035040251414489528826546709258746695920538681825096826407853975564431560722600124819596098899345070387928623468108257881923188026380836578773035939365427728405697257035721806441280929758356159848620178335339347126934792664899990675102275972584382864865422106814837573790586619989437073950451801009227784317385786354547906737201807893190749523565071218191885381515449458613536773403856996791147827518439077555676851503458963836670164334529547862607317973116584080154686532450299936105526028762187805468118485938493836128914750741336686926228124616199718043052510870459351727705580254348797418500347961932116239941811005151120603665384615793375249283176403647185214750075323789377577844026370841419742818470711516583670702337552421846850484959139600294343661834440529499354203572006724794340373299446005490489362164416911718480410561408010419430077123063996439500776449369667020592128925865522981969010870838494640603832008716407466129735246058223397728291362253438754421933270781804687977268786044435439217381032520438114325102455172036755368553755837928803044676267827909887898043468959996806373757501387245117948364454530106965282390863480367392909629948770457060603886034705826357394018709971668206224077285103890703598244065167710867551003148471931685764578222207354540357924036930678951733861582376421785766735300220134638379888672304412382687008172404470013260690442126479803100908690613050108235999109295658207505286731232918329687691342966399504508846385107417121437873472846054223882020248014962223085760859714423272963628207929576491255954586104473462503310052385367079798015024393361988583281583326975390000460167568542871558169690641352064102831431948599113162216142597763251681309927920142405761504801206361276424125924281790837562273091397921012962386308101568508369193717866345406864747876383780225624433865521560712984138447010718302150072388814864932853449833522440844170938247841628642490073447058636472662490548718781420010648424143571066058860641661987541773211791590241086833368351268373357367583833097822007572801114675425875942839053154053583559325746600528189116541182196659983433365842706853825011772462473142184674744601006871699154580432296061974060065292696802761217819493210010781899525195572724486482345509456378618850706046533536146742152255156410838025707256141401967773115400705258252987970299278123885096215637448886044876175761240295873401886078722960492064072820947149268383266560754521484862349060863587772724256864763415665758439387641227868899402428370127865052426794885845226667864590006015280110895377680247935972544740820934643170531314863072427593083900875208569476122411379563070804959720069672695976236771862385827195391749384481638384053234698580763719286954980107196181034752308569645162692540059111942302950819733843239957084865915889655826286317971567356081130159021030883188305904596114375108026510232036871729969781731109680689396753528196654756943817824574797461576652873352010959781602785918659553454430119271445298963583372514646957517296460623249011017930614021431008269987948469490036461022502066472070189330123684275669577860153320387500429836592015893627707418438350877471412186664151706524214980482232251584463729254995910733165120384279491544525817972232904501846770281343319430185876484217123197820489120024016216341339187017031909873222491951626199153030880796689227476381369739667541835880399292608429536321716295414090800845272037776020041296915867685377971810287156967929276682398700248793263832375551334654903076094703654040453548583042959733309719616116592543436005013486400365637152812490329814032253052126437193739296481666855607670618494169596118447495225839828411658710920092182884398108654683465324250923002981586153209805216506347385453988299669019849840263202575928276612042378211706405747825588786171906665561488814457518373756442751649362511409214505499988905295030003328042432103306654397679178018566027175943831499073639008573024330225916661089066597362816572722508290826336116249178835537489038547951424102283423703693760474453994745670473525432947459092618016358196144098938776306568748580194457729921577486088735485133160026461097204717072861411118855435678852451763941778994009627183391024599894421533321610752184014618260914789283548706834698751063531656526689247767480851979917349102054918893075865079710657177781972043846378470889141262171279002250126930848247639073779995806313643178486782377832271760479808133378342072563046533166165010520484302543104888756159214404441331798264015896250552148371327733984460969836057901316327286510951577969142234595476471289943687077133158009231971740353467793409515260088047557636971882704681666405812554948632257688768030472825815181697751114192891054227356765691568796424711759185476499152245965871401086080450392903234063454166148544208357980947543316320230835721771683251073316553222143476241679039620526094171398848982505376535876909271917032351535425234782269499479103902850806155906850168263372945157517107663359219521867479571567406033256127072778984015546738444750675923256317774029493982443871656666307828853316849501791898503892500054985476319632282102977442466602388396758371946892681207783937704078702025625246230653304817572362125043996519228331268901077036303958668619104085991157857631699287642993281491900163510587546212072402512448173890524116694794083914258442249050400514325395534717624270325835335002804300512314294235858450057449797760872579552112474174473008855823908602319967177008969426883238119214331438705272840473694115882124204173766100219574150194882153100133105479331398100114378298358512609592412966990107205739602198955383716914247101956163729180138836031671003272407208610054008202478578570539465363273059627596501367668950308449493873175167951452435463677767382771095230762607946747131703101478944477954147989312110000210822748977165990205822322607564085157677573084562810338419499066438485786085653483376479923202472258621603036177578031622442305231029283968049885622321247729341484745957980495432714871381699162161213837157829160065923861121155402536492358912474347634891621913985006109216176593578981687088594064549711851212864705776311967903567300956929586229883635784110950634139119716831853067025602231300949342748674771764258779285308513686856745398549962243822318767133139550065786971257201709917788488696551896995815387612380893757488895702725863687743649809076183017264194635666781708326622193775524982854137879726108392180703258868711326165505808476815271924501166094201019349453097412623210854071300949263189097686974997576085065852875326608772483150041273672003943400974711916478411424134060035418371589640018484206988962188218127552483026196703626340028232506490349364928693712519713881990557281659208116110754001602349643400410703124186143121696863863409138568951121028188371789104862273964162520360126666062944527025873886107836273829210819267179694759151607518767747280654991297535809048834529232933864458479312607947486185252182007608189085427164381575019399729774727702243549427048585776991446780816731121614345939099569574604760540107152999637939927321028736677908476915350222923982558221901638110263656181913802910571972967964120501820667838316905386399176565677101513170938729390652261332551901712452031842260233503323752763451045309894783406726540471097911092290577798725003745319545668094794172237999194790356558115499220742916896400958653984845919903065324416819976886052330438922641770579670096149003558632270255834134835978434606044082641505779223414617304241744444079803486714576580707011873700268254867162152782355300460438793715842151267497266446089514065282689109199418006359054814047237326787337241708080989195256787484871611354931924682399300059279881122108878661604013667471247442666759074754169587486249525500180900100873994259927324540157035101725404752593172922321864113031630882323259010953476848549147812334297358305547266047798679340682641519258816493631526831655770649474031629176847516084521081236409186911273724157991210940876400251441247553520295516979396507891366340569565942676196020437706371049622974625948211455341030098711436226468522014050411090650146000037784075910328535902691528438665624236418020573445210527417512813082239427912569390298108435013849902011031098612809902746099131846024335269847915010397215207054512275060247034622386448741861044690228810169900069172324570003815251352066404724091790930892466938791105678001053038138788266586564314218475715326174549063169140603232454020970369632747926540020753500373109047658678317697095396018275512169100097823325791189221657923433265063072886257120509792747735345707938027171715498337443987200797228938378053038898507404767200765026385861649848797609906892157907287503098740258789987682325742096057197007820361364201027242542720312050833275395826820393229551905513136516529603750628431394525185473309840865442884726826049247211786392126524967173129420639038957899875200134948991927605610273900795614855126717367907965590804537127856522053796734827016239657447941761818267973489155975801113276197234820511447873950070066841751465034124511386913293261166337353244403223478270324472975153985854715552412413686234981539824679186579286850272522821239481714467888298286854235691112260021284141313347524895620002127061865306841231129268793593489026987637846058179303922020815506710219920183751493513286964360781634929781242040986195684717954570972693620935610527641835880243220163155256080822294674923696737340478868751935206766797760770027333526496731765622996235469312117440609255802864821551408249964763252632763946814094905397152114388412426295665999361886259091457043462518872678197657668936991009540874810851918649617667228439453191579475397742405257261608288157344044214084228392876877970971847608380971112764972670965195086010560054620905735489842178377228638161932278038031950365019368207306967531406917765520220246735048634525341019761497319251111042218212492813634457494550101755400293892477625320111209269405020472776304954942395691618825375144953353072980076163814590536614990444853925837717479425282869005516044098881646896417119200955523661478824214387194483704432980581150183822642750101806328703872624089825323014820014697610414089714676098247579145597452184817652016468504313892108324945505387966500197053161095393215953326113110305093051041971891736289742125561651807421519366031290385839826995167471661249683765313603282082945670545664678155903884966392525883217481243338873360811015557823934530289627291684726216321359526364974581163642111334149666826323037642749170892967883594348574618223548691102724353625537028090579427810930436525493990992536561745759561633336510789430601388919522878539128757604993581306137503127522284033314594305133443751499885409865098530856504504783403512555045260109186532581357505528511423513035251977212615723562374636355041731202067913688107379532246396840005830234730011783620314681581815956327424566703817078113020470778109566768824496861712026037955675285627228944719526361486247924834591191360999744450207854147178271765203786067232994338806462302901789470617243209591782881829333440215151467201180818881441080802433989238551202134703060848971654704891146749590546281053647000739630629182617914388500875398133830917884804559970157192326245764212144141189885607680732494177495310288457914676855972202675894424930440228999216213604306571125082046931425916565365045590743927636123662969688050554280997337448545353273916346028609665525297729152630766079713806979545184269497040744100212857745320926895690696690925656217767442390720485136231046662791698392093603866753619294343001135937542797375442839684084407321361101947813391167869884387578648909754798201821922463717030261297547194526189687144783095540087470067186227915296427217506762077247911130517832842427881348217057633456089661398089899596331743764230995530914325784710169419194721824865717266238716564993612711787152464984390796697367013207220772299913305573424327070554291457895340790526776476353236185047975163405518086024388967825812744768487012408439769183745628141899046723757980680084607903858676505579080550045474644118434689358128953292131866263115454933692765419883212654668706825627145166668525941241583983167607116191252848523987680935020877922959645902526786991672605581590006063707665690155670130658246007214845131952845986327469949851271679360486095753078329610696832624490089683061450744833130337666005605658116683794644887806884850986640319669759543162682190554503856980147028653915931810111400343965131639820298684415168792223092014763745208048377924223468374365228690853456805072952091745934570959653868832469917730545961090507987727835710865487782899278490451609928729491222381799699224984789577962926567792148231924984163681206488412283205956236834017801178858210450498211499272368742383415986481132026067008313947488329370572173995303072351338253131562352069963876257483908675301059556410089864681654976129596537211884648980266937482195578763096747166963524128539174684962723188278615656125878063465882307812102064103555308831704367849679850679336956820770421595171606054963385425426049385400747200832242881972473323717788795907017776517851984385756688299475108472183369905616754675955624615780231184609728226343084924918864173997535998227068382667426104844619645452465177113934987273752468252709633623590771913120237756507283122388663161138708485607034563977575655945906290380812547034585819770843106548362488407660690787837268103804569202451347570576367025043003242870136019322339094157477988400558134040095338338760052851786970356326468622435589787853807377158875563391133433800965689517644493938643119181861098436532565452710824250999031734838480876600762169327255705339311017408605186425433537428426681596414098184595452001691715697065046114813841636672182610606569643059570683505876915689220416841401446389841763441861567120714643731428046377426217124534424277988838401710312325431287521213970411070084265171975305310748411961829154665111246742419351655017258505169027861775976254978727330503747361275866531874341951334882686787503306125230264688228894213514659837681210540399308351735184084558740854227334637130006184650313225492778099603566660534817717895735083824016830922019440682814748152828058215097343459517249070579257760819836827830138034215598038081642730832692263849777273766998795550791347318054326317846919661138331553490849918483680618221912749099079163401465401854060037739128588489224033365745650455087490658820184405838808777255893424743998496436433528714875413931119351660985973631202246661468141321252571862213573456764115396178801818049078651683082990856275212205601766861214617602241579964869311197279196174278699918681573700385162992635194386037685627956338635134201479614284480471303092313124562155552888609956671573783945744797351017642529937380211999604189256789199793470831661991780013095194025668335893668774411254147639574656816282856883945806709263171142928641257340371571197488239916996097310071217859525015398118199986453817879029352694144930904554018766909419347172741724056976407164353550620286988704242808729507557151825008459905741108284412743168379822999394739844494094104028529803321698005964251059477565395376257483508876838479093334686267083014450658444409359343675369216703236301907486948034697280829488085214238797818486224043379848642642726581638021609001403181560180622949071507788801899434063054039508903440977997996028833331860523378880996618914283842285016774752931232001952964225038833378451903617472018989254319298100170659271309916821654315843881032984934909722403546514178374344020163833632719012891531782249590571111896728977754118538352573185618036708993786197377711047383204943600566546431434428778797120856803194439738110814084152871393876525400384835035029043626883468232715485002090520288503561091697231477128150955870398148930840324581676966673480655586028552915439185058340410233987591983129328229684493219930824398180370376141701790228655540028477907237979386019895624049726151770567326405235604140723836330720558789049546665978119627902928780761810608420350031317470750021504056542394201617298958115421459751647586104532848444799112924225583237957674881251504144975550474344262694544821694490416570359981622340353969627598082029399261949954740379208949558205997181078612604843169342270569702702018319983346601148916192569925689365292391688297745498602473068087065073281783542049311438979600759081387361318191739206018837337187717712300978309218675736547960454665372573420541674343477859605335239275529108243364403076588165324522096355546032368847249310993387198684065719519003747751575971685945949386956629816817786814956947120551614458144036252107604038805800413577079266377409832592106393666733690331421457595791456154194182097332650398522408194538323955261647182338524718881407034464208833858589215490173935147502908424686137052655765733557654263574822856054592635621598984494868749631639695753072290444251860401314870353953044049891667094584831474419222063172022331509639474052079142152798154019807241546669557006290144809673675902315351769931451145751205054470431394019573451349005148362942306349918193772924199776207891262027058025264225801605982433043552364098864266084111664736081690205315184527056838251644103076440103993943051922447916698250229837499458159579953203092442907726789721087727433956343320207916801175222020316895112663935419601170963713088236843277823996913272459426246538410404363846680560806368490517539115603773194822941293856580405823911372044895016690274186452001774342748857006279264810028374482997394967396632535299011944248848362214576754108568508512724623413005353636880291402630434202077318076611074702393022637147721782418531954843383576156325283582062054903128616205771922246014266612535591698871525455020726257259359146688952145931809736427836764009540868588366941480200705830216471767650451560908973918034705759991780710001023659803516482228075372436107849310246146022662992104669008732412322090716161663658608317165615741248945694752262677694557919123544824019759108372439280134429372246177960682142450740213763959857996899700582983378906263112067089159856899259665096649053705175130060518619350573526802549776880954118778176872718658858530156511227930627027238022125250696087158792216086478043731895688399061316707432772595058368157851272145080901146708150250553957154394945159801799530591721973118276511887755584620883583902314470439250351641263472415743247808381420659368250490889738368643940654837885798115820850994188203955272150089737731055538832809468373459999978840499959183387666087235829052561078206229522968614393648751783883997402405814554776674409359343332736573440367632161198520041119979827927418248557361424696011157650796538471248417017274623607179889044902614617081780342022913811912097454467712170123365559967532050105495736828238027867730177114426070705902663718258431486408486008884158474314463707403891668701053626332867420696549148446267999958566588635136613332522331050103251323514930756988501208677242729496656862431557786607492802049276348698522549679857704622658610891282524512126778723757165285030219708311684668097715222260026593107009878179868309850719424128770555968899623559394441358581595246718436352102079922349215197617327788009097141289308460204990841897215425374371460205862006769437125698060547956962513009609998219960378826826102645859073820936046827495339236690156517918522629058958911286284490912855088042599996923462045507033972074760376163099489661159201938262310932711175738670126663422684265111571884291451151721788174152889350055914908359232763534241107145469257849083620158008304232664744901582659854389662101430838173665974701153818691827038304100103431023336298350913930504569777906476061020610869036598567689032849321791548297427429489617941807319124249584535717335395399644993104404523952639503817836014317241595933008617553212378062293570986336645798664984630526879665649112921361735327382362592750567083585995232470761072728264275093327238805216103154762966712467479249674256706234272724874815907367762390340247771623200466629616830035555036836544620830020546249403807531605426972671646948241434862669630868359460901881235278791019043161345915918633684107405781179108307926339711690887341119251660485413199646328694224228442803582624115726782593514391930011385363429569075132217441377136307709398977239958570215127025553012507624026366116275777265200720707682219574351823656097806007873014060900026044245293548944636048664574006981882832300932200525037144186571117495254116248752076398826317275831244862500869136501220174605768985910352484895104940595809074670304873120852233575959754047037832267634394073623698638720746198212295593108517687600324060802298003964831396780262176909096059079453440928353268397909155590128917995146409790734263703907825349103556237649239762114194807963075892075846149183162442061093621643681242676385785019349924769873734801066118366590200227334425146694394977372535992445025710542833039383180786560342815533665128365252868815563623731526337927928006999839279988637144287421805497545434211854924548283079665247018383785776261698067245291844463919521623790140562946172652671693344504591155570337775433535445243070296840302525895091663985177322048965982281932774461469573288523582283601972822583280775572856741345289923083238696326291258976219932276884424314389331499349745503798723450841901500557140285947037429463724547965341591091037400859264564342813035191050664656555121540449625213815498690735435894949184907832888076254193653142447350189700682729360122063170355129725695696434074413686036005567080634814334391356080937767012701247069312596170334366621875120109196560582218027854912724440225309411949627324621367083304672982898801901226545144423803519240397027476499043955614355369061950025960418405119414188372057404677937140498125708785087134570886630110969222384914696364595914877315283053942024823467082271739885527352759786628594818212147031255160656042305366481707246201462482364509079686274388275902093842376378482716250653070782497440916979078787095380511083417468452923765305123411275453723722517510116988568475043075127429593875037333044501034788275253782475720857154030686911877232395330767743462857042254096279042876935091278439452820957755313422261100279472720402185150643966405568000087019628317744991564931741931439716159283637795383225720287912327862835991324299952721128040745285009086075211226805695565570173296512056287054895233543703840109414678658530628550122343881627197310820305988014664323630520758857617495247429355525894522657182348617475903523243961686768676460897836823204843519165123663317619528278741992151584317452203161417612291029541796656378614960288073947167360846559921389373002551244515173377647021598947105738072214997222067860837452808209956106908434016091177761835109300123370944781088944175823264845287809716907977159951994367072976763394211644563747973167276031066991893048219739979980913131610483537539265412496565245159511773797329085129804696049003707650937294154300999470029136302460749071723903540836294783238475981849420281269821139006652974574450158458780187712414542913451198598324172958548452249814808226467092409701273974687406398760934892149430495717605575511983959051886032347186481965515069732389020608736080785369463413584598894239204964122929681355369291977954833671036129061894675223915851014017946807740647058230020828177800012866224508444002995567290579639506582427651961592150587481293386751169053589661142873730015616299527782580702607228540501824617760580942658627533078964836207083297067049508092901083962385828195874639368060046238574892308771328427322029100522937789188165319508946479990742506992573134099158824611021500762793415195078716935078010735975564366725074897698959262758903474454027923508510309632671367886121499224686152085864297622911029980994567515291254306225236396205825087644402476760392055708625760363267769412905880802977398681713948965442284178152384093878693646337761022204571179214851194659683110966945769032834970452494507612634621615450509897239410531121867042220900446174634055657330334881929454034129267303408707328780882434690673157369788504173013590230442463998349187596741361048293980531841594798865624121124553645907389459636010590162125021717232189039608032645070573631648475027707763947256696982103772787669937144612335893163289358088947364957202605933075043943601161153491650603402525960063890634674954999372414515390740085881876757157916487495665878860967901333312761609341123594856492928556808349301102649567274096442461695187484503488180863498198044380724369477037524727446792593421514020800343785943874388296728943847809558818090223669880898832559112478181046010674766109043442727739832693172536842452813686876031238516958348279335289241812972178426861839328456145028143113855735590757118288471961606357190425488288327119311894019611296532063808773897675079054865931207782562593132928922693712385869245047322316856092267669066130690882073715486843173459632766400624431058296686592184147246067647492531911627355573950108131868564786600767050613783655451231627819059621829624040283017668275215260832411411875152924114104774120752374069232674900711251091311074422574344404306078630053426375642797936841385962954377809651737027683276953723235277599508110634833404254924225773278688258422284041678732839720560044509956087849504626763642397738114186720883409255787264462289168167453945564085009087310773005468455631184559623197184884659590976196168953531353415770800852884939655221709205290421008029489781857108627744794537376224233944242498389510221467464109457744328049845342465087346207377140451006424340932646386174716319647284202064384432826438772335944654521312664233884458026260315124787735263749790437592987832828027244979475018801557761480914293929382998486051402553363732291404121887360664683702708906707718573807519048685095137311665587484431433295576929841412360212409559923675881420399194818432242198502910490127253891418629133217441524524868299258730351130043753517665281622351620247263478921113276675145641371027651022785176927256576764587963516879433437550613628017931301101712050863679458912018342452833709944985787661583698321209497912575201233246843395478204905926584264783340192133735220138771593466661941101415878425757808014495809113044947411486102441675834369512744282571340720860960414056730386728235487483586795673187328131618058704715517780213564199347874447435207465230926363787889766378104065816332091540448535435536187736152830511911313222990763536057718159178688184597700768105142642581508919611020538510644806920138912731967763166466964125782447279257962880315195443363296004754970816029945568012380098485277622174929252009600739203687677704998202022729899410914966391890063894248876472391978577337684278272357532216515975763491025569745237019698293039003847719990581289367761287514123711181622445847297515628082491710608459548938534688641625668339488220145867887454960356562912115032611017260485271498323652165339143483445902229136792422362660094331751442907550579973916122594618799583390869051773937779430323649216769833237695526515864802601203793271371351829370236753714060952091548398799613052150132997731761206950880504502042122599902725071148896405649661481922878134162373073133563309480519162948677093876751956798421775225531800435549764129972624400850789430897626895260521062051368190506958983253023045426122723371028555911550480061107141829475075163024545600445022738903319186097637807717179293015740163490480440308862649157872397040426808343735748586817621170795886386912936761019115566549751231384401138172665188309201203203650042318186993487511446969186892909677054216994705020019201372166545184166356763669746098736039024026546687266985146564551071266509945217062075226786748965831843748589355366541080282519283760458571048663335649081229611505772118185308499706160821813055261643280250031141478697221889647355044529485852509863499992016818270655115217266785316283499936861294108633100460341115473426059481411098071628742485934151196741179399074713516262958762396178674033014089229310582781068657388610480511103360515135136633372013803286027113202787182479336191913892398171710083046870218221945254844469139797358036122569763282869694592533802003471561752722065583591673338130080572172968296948232689012730537058335739640243060697019617945872720700415601447003274245980686847612423668153783232255499856490944787466602403522878049489727811300454289915519916703902237957101052608841814351720651451366156788533959500674531052317223892039754818575217902229260418157566425228722282721862117632437167698897225826187221650329303371301456341947154477651417822833967574874085212527246763550491491979885346239518252115411498436391043672198580478864442872803989912555843721495426210714511744753261517105809918911509171509726846205680838343634185466782633844694240820565335960571623516458260858541916279616129912857916149390800834758854591554125884028240863241790595188446250463152939492291900850603192186213177028232662385061461258119608568128035183431557616741335398677345969587436078621594284156038510453993947832680914377090424204944773749933774461456449331573570239865555832353695009127939747411467213998174562932635806833428522354648207748732439439594982504263044475494403012905960866152886517718003001834461783709720195517268324952042785453832999424446667973224373306354738933647010052676697942885003780345632881595532175278834968132486854293536990477592935539096675335870924124458002318627249765196435864710051237225152333146033101630258911262388179607750863437068617090500038757159161472302872631508052744751540981539723738616965717704785143962907354297713583784577709285571998564268242197077565113680211921582599391034423242300424794791604454375679071358316189208633221838711385477036091010528660421663419084409272890633099546745794809711657100084152855221068388259476169160095337430274269600521423268652805618666097391028499985881623359130747249939407950915330041228770092138686377315445491668019304739026899762423095503151348864337839041808581880617274336119719261740073063389176904016863286105464040880288168359336320239174669772536681376549803636821244001352656222909084230999073164317254531300171832379024725249283461137582651766274819564121561835585716247971835331499140831853646408756785361342391364014967977765693739874208223172029598365982322565590106246361689174775222089621216931234560096852639181462437488651268915008601616911298248992630292841979000927047713090442641442986909473205651731726636582677110310916664707449156945723204568645332569528249935625840325180793051886958518980905066808998592761140571025039872734696269318512463791986789962822869749144789030194376986767314652560535649413355885240318925238887541375473324005057723375526244010989622144663087442374113144917461581857995107841406987371618668600418819236025169610492862604291262007825176251198228544444845981139218087422857524559202185386592528470294196172600454492087383214700451026836102462886077293686385996113845177509944152734241630400674089147014582589578397400558040912927273151058671577573109143118792352790532239227157117510934430521819533144726198870672130383522054858684327288486393177608683851545981741370415413048959587641144584337959552916125974412466910888100342014810989369149051316383599627093827669659006329085226150565777768835930829652402636298275439100375869760837839742243034669046420791617825023600111218957313401077494830946046773895724550857430557260260215977463138225629572452470279063480723659940408210166369187086416432708008077459097389186289108520785627095904572079014583104248473730738564797720631263749812671832871455035977285565396933124900915862469684097990831857359259786770306823745610756311361563379200412863637122030961947165216460103190105319758878919546183279273901813008380857267299980686782125056208201222809770975271867835836024670046303541952859642081957611504177233256488425337477520394729649089607365062207235266593781414340820482559091286596243020233965391887780959226106148442224255148629988968673338120036175843131769416479526656034499147890692453497343572031993371480019466835755269588108021878137351745792824705377884204645301241438016982728040371914993837938647687406945350038722239825166988402657791773742946070130230052023675039300192142365941022841060907979970632124971864837647877343825698243804674789617760119210239857050207148172039303255496659294620905836966369996660324834382177968175218268108795247207040671864488125441733109895709315871805416377757995887610494872867432774768555023393958181862046145251787585051041253382040477685782581380683921620505095932061366804690311220314499655363751206290366927592915096158539249832116585529198077585682754304231314733186997595030932528226838123823591697414769113198716142446562821863762903764593358412009003409998258803920426443381490560515388114029667400694022499276753342672686781730335832033747470156479210141093518085749838353655138346913359392597631408171129199191209208700616378348862250227487988688843583273873073345288652483042403795179661865646246942142057396748260752486944661240694251229996246337221449308255427537281988976738607029411948523755823342558734657359942083401969617254588563048055475248696615001954271326275013764082386907610945142570470769439781304454240498549573630404513806876030915742347180564952462074934898527134780684914467034684795142327840894062036912793934139148055533427702507292236018512285093456470794289864088017883038042386815476423640951056974919218873671413553380679682241617330196370754024516351124112580534896766459890671342554974410268240641317126084138721669787307153544491226306710907479893532690902904681239727741593089971254550050826162571466600868630545648977025106045703381716485826697513105636459331926555792274831355970639812434693874557477912847316401507359916770954468773838675952381428707125760861682515475530935446459683096511643851590689287506737057051844567842840550021561905671272757076595769059131677266755425827582595226720042101158644793578628276093108701050921320778860102905295745181624166886761290379938206197986108263656975098727016035024888605425448020312235512541868224525884664535988419260237681866772554936645183291402714540339727708993374989022626256802407101538821098952207507236156805518056077623659343522579359497596829927887721153285964516526509846418305526710389919135819107436564181587464906484490457215121803380193906160097727054964394314753198134205688215233024753418278907368285538100271615613905627243790322609709253244069868683641209098274576607943696297983375510137510009486212317574925436784235307369525774190119219846104562577008660055270736139222353930160760522132895728647925739959123412901989120265007348428269635787940716136118561284942530844850500311036197149262489484767666533418927514932465648229307518947313139863327690693155463678115122039472545300730287533673715739730812125131362173629971182004448606625513266462116271243496385811933157808994340475803160334471390590945964675977583726120815717157736308540781218974430691773319560621334501892329403179370733055213451623420795248120911936150874253392919171202834706161768453957052318063549490618231295103877411968147989112398662683494294605884125326025541111853376155693941601500778715461229266953180128200418201940326001147484400407372582998793038115079072780945430918863055198867909474527972570433936420255380844599071683223546430435132034121252848539335733324390320667825749334590324201502198112702646619534482683850470667247774526887964998591657666018769883580233225124438697718469884908731973867073582725380449866010564974837095584579762204455670367626618068242366796648161207441506058864110773235111332789322431901249449185863518306285460979213660991792582452385850052667279851296636459181364885944952985105041741226168009536357838177935028345767196988121470941520549239472765686654490078673133975505788480026034243314303285957736529736398677927971156688039989886848221820669952328077344410888978621384871170604823399115788567025490202684828969504480648330866560481141768893325574053314214252934808594322842277683485991459585224011765060328774798955545683747480082007742592537815202165648204095769279321814923229098846927419742691036995783231026622635079456508117722410751134783969852739121791623025158611731594649470558532763704694048002323592174590323895919024941044459825095914808338992021981122517892230860934045055013121109066663848712751826289620879270307345490897063638440222126885419372588147646480458083007040408262164891027472330939710283624431339705297143135389172632169237810516648838401931462467487746369391882951077452808443976414105512675542487797757723480314453847111327235859338654812727540856517270812572519122311801847026121875127190105543983251059621518906202275339832378101955505562885330384913881669055502510550501084883160733613084754538741454643009839442134596866250313654732750228161550091431678714774953875857280943829713663813275023230396019151532351209520218548059684759959098299419082221526443385952630657638248033788947827492158629561893890194273412016891196252052240874619140164889962373558824362262758827055833895779777679310448721449559725461282995822429526559438371636883431100001387311208585391292471248020837312502800680455807694760336591624032170793303723989673461696456697638965572191852240146044340985638572435141731079426873680782775088070335907533461561486381228450554838508764885680387422275472684030591024344181037620225824333765108767505643924199225554058228176627136954891941834895003248066049875796039335296795255853481955034437384453894942494740829083808976488185534440329985776041696852785066923080364201266309804267624560878581787074412788113950583987071372155178640382376392347439366246859065793306584467255372347404662980079223569231966441697088521575844540778029728662576380134746922403331098237747823470133461026504272838658965162522623550827433197395124345944799312114630780239597822084853128893807273394215048159634484273137807059449017980230105180457410987635462884067783509901691334759519212045787962788846830163757095354113455156783829680979487520599417503396459441200138718157093876992603422858795964993717163893966601421846879580340945940744993373713075426966630856029966296923754269240486849236651585259122601216218787520071698504806672329775149163180861147250357523224150635768140100409956332147990522906726283618019482820284013561317274810231599580113310025457391400610866873365569120171143394039368437711801008410172269364504091458329156414452625809830158600225019828673100858380317785271625734553127626338823538984541627178473735256507125601574338235420084938152429703492011537851504493649226950980115158451911679806920455101124009752926163159583887210686387898299635442457424677303327376322855762159415469281030367421294292616348182924903607782148939463005955982001938181242869366189386421189399760899272615376723478941001896197470319641078507574108796531772138675677985419814718654203593218689929105194339628349068942437188136062327443261797939503872303351944114778737691697890966249932578834003890178532169435087250720163995769361314934242109385255266087894738271381351705797558066662020353187139759259004430168066303743003061758568890471093559321131187617634898912489494004011861629117562406539135357254735711070856348645294552298815826047503560873806876200482241187546332936025131039609233511796686754172811481346521322521851021615728316704270444495795389413976906857039356031254755940792951621400593303054990575980382654613425189858260387219974200241932584930919363301966127691750943704599163685594967406881397566355091121992729564040121934620710835308038084881692346005385423124306239032409969992589964869340974619483730895341382276684316700236131610198799349980079547374760898915900510494909770114755169966316175318322623425840795214377718051640248336812578291518517765058444927379476967783199778922568755693610270778115198462023500089839787890752766201517212403648058345835203154491112252290943351124694090776333136825647448127146115629008943066901889125084360827718032640146910082317107158037259982626485845077673716553259826697075154613646965735479192988078849260531014439979748529638173554074872759769488467398809177010490309991451536681561791852291176107173293981629811693858992989330077334404192377875638896469863730456078855207574823742617683914643474057145585036218446053956969852009622153250706312974874189064898234710551115619464313244267425774088221898100462521587713885087832468484701086646286410426860424639863279693152644799410544208446842062993247015107361177637774052003857251813301168656649280222862455490498068278492939491400773694920939995865480362058206146463619381902088274648171750014887529697417394727018495283528297466844282335636765764187263944082298666015962104465267895373924771389447859044962010602029352111412863833230194642779837652497760419226085649737146273071083488660695388159121843293966354649021859252257554679469489703523416736920223648402773556886191375121480654952764550050544849124604161196050275051945140773113856416393534861971451377008266446555878366073589017458218674893480206730499001884395182441550563807275949122477412118063214265102516700293506463472376177829786631991757659740676011698676959734023717492040702705058055946903486276258136984726684363504613678207775404005015973589301998261272734361371003295842104224601184634375999172202770175257119699029049494290446314760971182423724114768110854722518214946526536339191318808107203330930387263574111463905777418957198389698285210551356886832615072996271788981330682044016694422932322708149083810459144877181434697037942703193877138788532317141554959810791446642603586206297808536852191730347995787201724636480538585910859582100575622161352225769350522080062058506487461149532853746876123049448043868335755264759480140397409352792684945039687419781050394288581139029206157255346230215966408582513554171020272173499192697056838607364870483305929842483575991471952370123799816327930773592469838738585017658186493605327293374713783515307096472253002991492028012942320869066497782144758430188043439951351824470145726301540374826573583696672540748928645317735291992103858847997884478823419784683406768738329455934845969420711145307323443804069517934633351606732919129150917268374466440922638197208694532347244456318465187953164764726914928643538070418212453502146652232871523305394525373608132786090274407348143057278186532858397860342011516738403823963604892609700134512196978029246176698475365857045988098268642586866870384090099473573756141735872887727401811428076999346739609990137646661275771409164346648596584688485339627068315169625897601252053566275081415408403033442588046417856068019852763766155822028821841761898878007995255885267125822999288018701735414088316829702463985681202540978255272919753972418687101262939525819136322474153240827118227287443590799640788882378652146069825404826133305757220103736708369233196335874344481412044861218896753864434997724983688005768839123201669446417644618388658735037427161590257044770969472185292772900939032085516607031902750394070937503973837347612657916969944734448251323814186024299372363219747318351660962899926831875908135119400459578056691760466241470636024720745905826549742008498365473428559595852895308935916834283977475831405797398749401261798214577168523231083962644818397733097596210216920906121468596403447824349490985195316193010319010462417145496733980108225339006927775833386209953717187697971567356076233900350859730397741268470191720765192242515152825303477409224483833253483993222532085860737401881864040003161330935713366522690969017348916766006322142572729935685098497165331787154289201673923747440524104389125062787034736953203836609581677581928653009457942951630324762386632313538862461323634390303512914160288323668145380169129069100906651668089078281130602860236848860719418683497283562817827683115975136927829314780723954056604197914492792047016454857757783281455195291029665823805604698566913512996246327869682496277306876692392830917577635118763950804831136534172498831726854328576691906984153556990238080923753461129538099755047694571199961654382487475481280986245978345634597693815266044780193259168129880558378803475431790628215484068433884492233185009021848449064168323255562554253387898375126485278384099904742251123415560656060916922358250096773572658911751153456664647362449652617224095735145727261033689472694238943593722480545435903482999131880144402802719329893434088032903952641366708925846176827422903886693797744341699789050077797182020824119311011001487673714126921804042560385532262174794665237274303583344116894042233117539298260251307116160401460395834274439200224575765300174959000396008654208852992055543813128100525092298418187654204915461307693445823130276081525955327233028401306261288688462384062379552188841835254632325177578468916743901054878157588802512286244645892375600395357411554962204634695696101368939624782191517328860520167023091976912382104151947255191728045981526141258712093910116215398823775851823218681279379159073915418120465242864956222958010636943736218759888191875200593119462161977989649002931141391600168463436488883539269074255817172486633275172341876080511154006808264467305232387739339767753576772239676460452165615094506493778038321601744739416496345012707853283464183294551989771871879088969442552306438087369109872640531010893634371378163787602411279924486654984032923218196603297529239410657298392738214225127887841176281622030864630697621031105739908987833868479385818200506399424969308789597666554344873782120761588975344536766394887069480115348231845281120581425112811331797430169680379554654563031888627932674240475926301688867262943233316390312598371859517305674056917841616513860100055855837036702770034486761632591206244453125317418554683108150583288301871837352156276435069247496448751045867532344699276919710013162607988810913615146662908857595059030210406315756426745656402667970558228466691747367593721068300743446209722787059154727809473208128023908724363567375725458711687281757550934972850486259650388783750211835444355253009139759517955478268956114044740193529591242599323735891027537984897722122627755249602186734724818731250360563267231227296931459950191092702411806957995653285736304841982148372357532797064114200988041924552404404616587080922181436821713748519062811733924812002652874099093613272398278363816133113802821152657417532144582791451974163901459199453703444345239428893084066623490000277513895226070710638652154949916723663148910470290350093493322705213812085740376382455378224469810211005160549273668750054250077791722519308784377577178525653308023159354313225608826203205118902684579305574795510389746701457849298659931786375575778140794921733474582013354026084693201411198321773777203960478534153484289131227686108578309683795579767193939585872655967809499434109385023952090458525340548940614542206855730928814601840836385505725947396358903472224083836299550954254545502339989264530912085916140077363392317725544797614382720017315527426468230394115222924883193142311994932338905706629671993137208288313957277320490312478970437841796027476270464296597356196465084014877503254726011218968220364600561622975927164171213225470423441137973997775420306026694232471587310771162469025646655936745486278237359423719827893765940649948275756168545776783144664480034043625676324595858431313234742717276899680387173887823675710830051056325714433269242511610001644310641640302138556506939999122684442959108575472643150303349994478517933449504865598423111262460715104082546033916315935915902348558289547322270457705788050386718931357466220279012878300592789938331722587378862465501129798259006689535687930649772346777297521462221784824165314416674836475065685664506102285002855896089920479842985235184304659439680112679794365227334350262454038225703652500515534589511099396874375619568997031022766496035301355824538549082186089339888687348456169709003987483769797199432289624857968968118062407109925996691712738130880083433059784713520215088612944565772830926827572151076744157988213788118614593386875172703280309431073771756611736887078427164649010408667200216426489409307724684013553301576802089066390525911258750455422884445446121516966584483617868936855761954487876847124304807714988252662295067519728658522269857684845088689989997822589662131392271578820050312435772612441592911372953505386715752314273495793927209449615972346175600660293982753858906853078798027381412716574392444267759878702004636513586927573592586581528594702739884746792973397609854316959257431652715818976710218772427845242832070062154475987228807042358322789146521526307597074320200188813462778183342089476534825802598344447443763691302267131650771021289689143245536887800418514842700430618190103983518261688928844139293821033653436343214065172312642962285678910053862097421905118596472378688292932616566148872892262839583139929794229140915223571957394109120123499526561560599496297684395815009807177482952358592262428501879454536227964024402474738066389730194737483470085399537593182448013911627862506288444012155374905821305008987376408859724109750192528652311793821966811393633382473614713057909249255124631351322566787444299982125037135659705780916368079574253755009218984090208571085616763928993386435572904962896959731557321558926151968440634331010888334819476794612143031605349534775496987247464051438335709353214264044797023154374626251168377229937427503724268394674896407612031170330679910529617135475175087631502885025243906280254883027908249866893188409875725169108656662799677752587016144442286256457365568777056582580466181265775006565308267137359129178890008344780410695048051760751179268804346659080223876082596917184106136331998977023530244541346507054976365565037500476149559686571472567499005556276440026001083333014687468735190556261424938753670536640083726287584437299480508810683662225392032668201189115842839154446890513084086526755387702769575841751998732951556439148304953476417185958821190906510910857145230766802095083058608024279109871347827493514254636692878290126008246236440548822911051061311048891949341761577278622321247410984328618109435363658009689686248653033368783687887985413756495881887546822992629314094774350882900491521171360075617437486223585337013578320482649842818308599194094214943895642813074628087813318477603800809309182335977082537627303595718262889028133654199371234134897252344944036423116868069019411897631405450388439027014242011813141431718768174432848616829541934738063224958401123188426369392628274038225309792297245700658035011561789836831869544914242631229265539746037224908238008835195611402058342298536118184609515703752059310295079774281927946376678546465802523437930905184683404756033203218955496082179614260645462620640036848915756372974288576449705620706113698245939908362715311984055687839514779822152762549981729140309682331589657032205361933313196453010777053746094668864847190012615655710631803058106477216827381015865878125317311123744607197757181886585387237170031807120539243581773751369327168213655277853074410513445891799443457167265196716160801898563981834642391544308062304215356435670115133387581268445484929402016355611074893854212409520521334787871222854428870190764072652611123805241684439937282783798898048844013514507727201283444434897459114951431791947321431254895227215303934238548196388381948244414804753319569054732292187154452099203616237459408969007686945496940538670954509613334136192872421414631055451884863160426396798216450515777022535451176268328674926014599210062936184143290530604753967024687210379259946551901642568650856336051284453660878193563465424921974542837026826104925133408542053495741969766864941229264920207632336607336833495521816771524926374935240490501961019546829597785779632889269967020926604600003722850332735969092645700408653711479312677891411916573445786774443933355528790107024139977796697810512799118992764434530549465598462446383658560449757023467064676356244702984190091565248429437111078430232803592727805314351333599721790189881806184705338857300098770601449874922932439288587399443741778796714792390709577802659216385062977795495699062977619980313989679083544921991686315942322499075945337068247773225460590501153815428291968830734868156093222062719484378608630558800838435452030480159119520486599865353685565154871776350908059510185146732291569798387482631552974893205101612660230456649667403966156049307131434597172001221215301904859479189490575702772270007142002316983883216050171319848665021589288511159855466466174684076377572643971156259704282731789169504203440752880960554715316023687484812477678928176263083753919469966307042492949026704874896330269640554116167147108709725219264316129673709496998759274004601999074703049338018259907845169470242741554584639651095579989920010438518824167851531038366219357016974978627048359590563784572816380081017819054383114444637768215276626158619983326088931555685012278128976230301297106351573573917356805975840611654211586736701652695060537959625524794217602148159440019531903150887429323559415648505928340397581977112152404048648416557806377156291067091186581537334311856107912200863577420415595004152738834126636423414564377841945957715175009996093433517261086395888649689896483328710918181094730140892978362861463110460379392326143328897632908502865756042335574396462554252497510890591780066860837076949862593437860005827947545029089477569638399889091993046927295522687984036882309763194375916153002159434651866344665503050006090750915181198767602322567977350060771461009769643520883471412194176850040897778273278804846006772419851496130555538884219978713294415282067736866004507266820816728236896319420625485658788716255688612157781607253318920928406224362842955854485752157895922489187355989678758434113463922095759838874765522649170333502156842625482887751293764513493661829167695912252379042764474128174689586964126552365850533137907428373015688147621844060996286870056609917409459848406993353815640959683755828233961755069372707854603670565631264910656447500382272870727187178399767646695040551769741798671732222074937500040953907956361930045521496500945979058472103935957599429130731556645562717759886048501219711780727345689147669187391292673739270346865200438711957040866692896953801297813963444745634678622186086741551386760136991250344380223073800545879090641608905556526240646274593199239736544747973297346752009259850835666299653280673293561104285524905540062315376330408073768262923460471600810428410960813462296310880058197120144763936089799939386713539064525228605914742156267543389827346042294751345303244494563281169890341327841613179133450218592710565943181165653636835866107297517331716551607947691239276576284546185868922867944851355227279864332806328705465622069165968042870347422900131050220282563589683993285704397528843398644629109776763254760340859894015396901155442265174994295019696855597478304186304239712211381918382798260377313372664613191070151049739767646513863441508901584694410586533218667726970210825068819457886568043240961235067160802715620120634874656406086226845279354191972135661888323684061833573828463296644683857938941476287006310014339708294746704375455198660769253813417135030658260249623829954854121445238212225568145964685781695027756949496314360810653322548917737057231251357534263535104225821455547488068674824708114749359768995338825501036576502804409639157231114473962563487575394842874177054956739648677254779261011673538892619473477079784846389113104894876113219092082494041538100850783150574545114194129540266428908095251171423353015955457074740028045251229150062606329800027874888037365117398391334873949021843373709301307255985976848635897541947645671177369160108507131703729181760426163725993965613398393818606292827870389395472895030378361609850473706066709237871144787028261689741483498492318485949062882737119112461177927743645889326574532805563955456295839485824767435736473058564990212297560845922576237210531291672211520058714169474393999714489392782844999004814853687356643413231748874102283590476015755466585495350513616131956291290766227826263351037102794257518948092303749840245090180787093409126187705209808438828235394382802034943070860765114495855336551965704594801365043854469446911048877647682020836362087466480356420374553670990715562424960650299257877040482274850244434596099522390573133324849415800691945039516863559822973148181292238635528039832369206291536872542057107940576690244299492788297811377755353504891741849841579355314996152408489888812198237481075972388053705904553483004661032353288912565026403266526014043002225419664773225290869783069325555447953971703739139598182577109764776728651533278132866884029267041127725432867312239131035788174709665575310412875294957258219832795839628115175591521507005007257144689339431342976121821790098896285066912666811904137275206272197203914590027355887206659765820534879109631735353744587094868830331008763838312819423147912853876274457638076320026328005012094923745285729692871003458854978644438954734680632290425967987695283107343346524442778269498611955658194984041604266243824207967821693994258335079899077795325530281629872224032983890149662809103706124924721000240843827672709640298911642637562733898158766736414933704943835472116475153611825880081521922966346844703627157706843405163995202412948215179350218291788356362266250475231641573777435867543885717498431027464978084507422294022303210059682302525253011991612271060386064164036005331510620738423413513488137404310957572741879071900704808235187349719807638479121506367403489605866719826927567944876635429730457483028978491221966439969968456271530382862361503760559060878153091904617034566892978536585660558626647849974731760624328128847745360151980037708131794693826651487367075892397296405095265014766610531677351680856212195500468467751148369029711746912217784270923710315169655725042994211836273539634374581346430061085062091363202775085300220924160037490742263418191488934023311587577154530785824275209980807634796231032711080810533304079052939486687391725690088465433327996661014797706833262292158710382950606795025769137447349075216899581429054957782787615537594635029318753359405878752666420281515602465179092087984396527374448157566492786716946152489204202922034280184558018085055637439011106137440090261858919616920492722129997004153570789909240406705847510974147697210329526086145634506828289510962402350766301146437814486831286869119104482533143813936323926296300533652624074668748564661533486560283425024062699674714504435783047603246637670085404402712093759167141404777307171044886823524088048813203539360848350945320017361818771310879210412669019633890692090832930633858007116336167427987267160809392032076561797657475944680421209801374668231724092686505922347294511114130110804970926611311422881492788154289525182320919691510826406536397468428461208786186813107896364642925583289382159887333592309217587495405246733833600041233446048727712857873565904417112237235743523566876005276432068959587706170772060333405168633650921407635812219848088588633439925821672208248017583386416514870847070186006666354597173088038411274155214033090220618389106419911277234566763673451126189079813715346504670016948115929841748647335752185256020251683299759656424523933391686950381301764244226554682149632459363977611251810221126241388826086387367019117588043513080083307143054763577117290910623900629905165650033441942210952467800628829040619456792809536345607844255344018990494917241273033526202877006792267810568042636130257141623861354653403290098117185823916374646940242993709749310416919325367514092384021898041423106787034010124447221603560326712112336245395598823687293737513597481842506775313305909471540689925591016143956405222126381380242732702572779273562252410196771187540637919872183123012166413882509165434825461700546008285935471051133277676459907596367322913788191423617937727108610733581270489716428843386724817772320927441035030097198250848947531621801846182190342056097920899679998345000575158497709280868680911729946741062530625663252048699291819538887574601096193997399881878762230502187311742598590385589975981755067541305972340564512098067978473105324118845502436059136762840246552649777752692110422703929878214421394729658396235444358611582608383550501004537653414066773371150647889307053971046406494276843883292004231807810382645394356996208810702549117880175301615291792242774797510168746863627077649050827114989711207092077733743970783467421870346204806681603090673205625633535905954760676413203072702732192583520527749624369863262121527057456273793623703730867330778796562468506708970460669193374045331331467608117260202792045004897466689972126676381526542959287293160990727484131432674487856233784956736350664307004698699125437326241991671241650369797766396545735150034272611688362959623210223279506507186473494356887098430271119258907872405172609591054296839015579830948557299730997924925963519060435422505429346790842897421970368118198625519029271192418288572329154593070750454846645422684736460766640875812895196536913250727698797921670749682764786992316483013278509459283027881603555052007520710313018996167933888291736572057106540054556432485508095565582086411760474951380038539573637983528793456815922552189301228586900433163729193867725186163302327313363298396304180523512954512801325164665255577681668699269415240781903071539228188799702943373811713662221192773752739860885695042525588825775253908053413487746906343206060144525771547181442094847089652928065918332978955997028858735918185023861286726134862707097906345038854231330868771182437427862696804075079951682842184625199254905091760128888532998733700770058539800115477436809124842320682068521975345261344104785354012064733599708977547203468717554184055785862134068856043039975619077431456887496947071684891118950900292545377627939297248778531960590241712098677946415830037516507951762786642229191712052132863261702114085249219762141670634323490997573513200901053035613943333960409791525294319806553797523053336387247866597159426107640592813439916961884018087055182246256182298226673790681951582599823535315167029462603083289727735435316463591926713187795937292682255208347356492632721452107983401272356603718858778581947579955232301557720327315685142401428514513560720361898374359663798836009138571754813303698142127060559640252552989633051962270531432060944048841294279512218069082077507125300069740936911346863133186544801411732158619470787001021461152071041831419297724173837089145416002248172075793265337371239318267249632580229666895148540059007557138987530341117204995931912205339530377775189029339000352256717675925601797327871332170147565549471756114828785026406000956338706684126551661532929583303304179755513478255917536542718401162085716231814835442197156634689483421822122718410394540251276376591380747938641253794714938690302715931324051496953567779244633308924960903032578970114403323945142330723649859036565805442415562901474173398975166462763755658749583271426675392739543609068967103262787180739383984846489668543585349481456313730598205560557470810490106939260878610060947485276030760055041663276921033313020697848581875498457119604154946181716160696071270698618290808951747852263612186014801368396994298987666938384130619395334844827583917153394092331242671422947863076204517943971426736472446353203778250026908211563828415141621180365765055419699401308035212743347938261034295665465855173569701401687915679314937644722639480712208829413264578547024745756654034350755819347655929877767702033482061988112636873266334591697048945998613519451534088964528131789211182355872645677498345458997280707116641032365840617288472827691034911202268323385936715331612705656329676990951831522095427185841324942373754580114925937329385929869893938635876839334082961929296713109294673982671937789285629800277012315063908254455175857655806852211487986241377295664162624402581169502870417956286290886481161300016304239636794799265635407750703669031437327277804498536120370963420143948315363902020034153204507634230294646004603117725611313314537166444812010821745082830260823454097759062436794471022761168165684496607363441903740996045608051607348645858497882707362645566278295904458455605098524795708679770602665316384756014939527848968085759544675580007503951854933194028080660482309753039313299010910492216679881518128778598416135086043940898877377864131235654509179002067859748388460918534097629730950125103065888586314195948669554555577087155805607696185374283327856724976533194551918397024297511249633708408630943016800780503071044881057810748020731355826854561738953354111434955231761597776554344091435549494452567189221875707276622821825014170433556036550141281291046466858064438883974635269805811648498285868726465701275081858188664472938447218572909945130241631563684140765056064489363659282486683311953060284263890868672699555505972632226890866703508524277781046384139353248975810566443103389508396881124077058144887502262670222920445117295101219656451525937311899226424442671107488523047467940046455070398069921770816053476556536199208945774796137527169258172340760078067412904706351342437325599411806611069848065115748961709587936293375723324869073909046827544158370357886417476128742256375091702369045679505800028045275358668565267577873988350971581205592899281969934119119425844080175551651973838560965059195768087800110480658903676439916022033053982523845162222054084084482926050641226784299968288185514650476998563303400745512418868987990767316915852252969652142021779638844640533457676893917982774736106970501930658124111204250156787681269470445670886747284196148849429247440205641636108135564732501889151636141596210958901247415251909997957939698540297671119727462985931560110842041894933329953353627445485534076570178853449186408075624350081438774412329688739676040842483772354311790266339361736049311232265398306289990772685094393988665251972293703862894339278377718189447419964411146964536652406564739055910442082419898640198008420305205036708870741264245561049948752567959352225836351333696826790231823619225096404809161172219494759101410966570647514523036043740687233997628120207517402871179965711464663596940002783817416100249432484372229799793619285234390202145489668261715349633236209518990810785365354200200943380492931761926184585903998227306047273205687674429734746918157505372284223292060372957061168331385314265678805222211469127722927219242686157838112909135547903339251387302851734754269880481489911934132245111515485225037847947126971257116934262820089194597714241770400739998327519139882886236829760282880667384709630709266329133096230717699331874407152918517391398707907658124364814830014559525657697027162767396013757718443540336414290819157399918694987476062897614925473079940348578207606811354154165208245370029046300877725110827640999933806442717433379684723493860111303608717166783104272753804307488049280286569965723729538174516165885603835719983850497499684659057545303099228636068135823422854462735703579340545502821391998537509129150809194805000519510031147041969418270981216474365337347841614921330244544689867221901171562129234556333329785454202075949725269737831226855720341882979137605737800715011922219818862326752241933844079458302295660759392929573700289084279421724293275714926232786318652621333574434874183538586144290594667620077356756360365267733415807886319284359629660097954136292933955221234227631393879855971212043261562514317222471155668302651050428327943628110855595570929196581832946827553465056032853207682847620396562566836267924514799572032587490392619290767799418246925843693653572555268085422161292136652185274608450757427276919800203288194229731600621106461084185236102736678364990798259659557327122825182625175020250160449511011250172947106821398798342368190686452873978987995222484177041854685001865469503611877313174041115963007871264494910898389621442396768349760522531824074291674838023157744143496020787528369379488066651508318603386156802233402278445159930957720470869278085006932667944289205393863525572686422186238512256464454385042180737182504498714998268385184832639606592261968730555182855767013936436914565661627543024677734337814832378032896199031912718982897399365648046980181067118684174758941109437403957460372213909893825522701218301984103298635472336661780920001066314389101801035155324528477736621750593163106237984264037182469431228522128661987248466447730450831775235607965214068366885122634417372252788121230138688343079106770050242046553108272293056808361321248868675141110679869266218254731858137684561008152654682657110384766186194499209092533249416465535477656308446131457271612144218332511406482963284250874444544067128336687879995756756656799122810182643142223916242273573620568685137160654288657457255677311875090490713552700258792741359760263622007721699648352420065582636321810440722448708762980640211243072968738236921464396835482590094932653341530169160651163924551248064263500332129220349294265267385887400266984005745902158227252987772495276173683780196216083366937823670632008296487681482672148989561581515570587329356763039941499808068563706888150544977801070862920388536124087944812509411412612115291551567265347584784066326714947739230705125139183496315738773786073603082729402428741624955530557926158339979450586522595291854086543179006415886099792239802953140941728122921915123493534254212061131666223218397962962144249830683284364881357764994563936474033909475752792188314480028903668671958838767765441414146884605841217075737979914644241796608134120908865809427565612817221932006927383420927877611722714649754604662653650953427740683691428948104835868694817431853654875912477099176024331213682222104461520224273729864276556310256004972034036975144067731279118765878441163969938254068501374902673609766099407243379835846955106378924969255740226769255799793390584288021640514632705694324801720701800799361199384831051250344322498339511666648408322380473918530452898548310717439379902054222546620823427663054338623815186495767053498280866165938743319393585330887276802519493496060403016097261655274596480075903820196516186388865452866797693207184891517072017552334204499667748448045002711284475493025884562973496331419428554191633546386710311397143184882340410723291897671922372215541333916589405918624773036230698318741270788053112554683443305154594983402408428453464878199994796379510216707588294707257967422007433169811461059055611346516340957206145539319720693135532370927271179261441834357833474538547906997258241215891551028178211543141507461042483331065589991209165983685591635340811218803707011223891078967170330491933705205094634969059861284681182497755062962050189631235422579752575185697937878546359323207545349514385268874454332392039235538677749279782779059190951054443684020330235339766234546073520933160513737002613893080122718064942282352691554152555146900254822615377995060225032058000926199478916711976952387776357465337551562106070162344918739418802163965242824013899078478409241720018239298734713433869184328304578077806296575770315736391131993232203794082231745193724665065795956090389547852222039438685905555588186540572178557901864920792759287734529921816892256267794100030657967603494667603130536638625917910387942553904948787546605409362553665483520245523556778562811407257372300138267112289193471043626820488974441794087273674936100310513754851057433402383837877950791388490536734856740993845325673029264771989598102989554326170651664026758134647005127357987334350397717260940691379476937707217432811295377047846227357129941924734748314874184628416561398212075683487797344192481402075849046161653733923138867878656638621016706863005204377969293203509224672136306065426300147852932691801586950876375985787225707860375997505013833164741451830054190335396577358202075564441231391731995319289913664760306562402405439906624127181158620210810050798462749273935870708782950348529460501539305917377917158587058780151861314838895600765949025713174986887258401362232667794076323910920283639432595614796331974488909835719999518778245183186305572824053053570836525258797295544213467948026496941395860342348997496092353757147845596114247149604945379002214910343052755746403424337001330678491644083675039717861296749210957260560964325875204390940568124164597829170667380710310784658366127722159504313197940836631319866736520989438565716260188816978621518230853166216731033232094959944015076897076025448802002714040161037588980600382971922550430541705642382966726383791522488563925038960926042132396122116263615342038219711684164765407770719335839211841367833027482851669417635213096595653075077617900631642927680700015869983581394495404851636786577524941641577853623183546848620856997058683311549184063479771239511829647611334958486518806001250686403678895224214077034222170329922690410557927135847754733317740666530506304006130334885703028464538916655970631699783552340850948116900761757392706225433852387920730486121626273283509922195301551273658981445960238086246772812784793133331321229828362695982260440438075591537117759195352390576811224420812240674898973373279125061825861486451408491029178210596772880147198570619540243888562122928885196242850903185718236431689838233659804190990687354359887500576105376872125509266424721185676383384463093901761896514559187125606284346221496533153868323188417522373589082192213088573670884744758164577958945448054133931069783933671750186887081202084349667972464691893041680026059436557495957395574467540383459876918500531567715316257221017191939974956678647263304211827381034347213872889735756819136521565302880721073848224444230427516400024788680504330076131742232775757295957762517003643349495358488580399443516439637396862853235661985179469839954445434481454295701789649768454948145944200799494664530551764832487267329789295201336043728934914841227833756900471717864899904169798921609272949260879738904145604839155220618876586186918850982419019017972918798500084178510687197132327015058868339936302749552320952744502157088845109682378458540616395098235443816229681870158032759350814623517953230681323062039554080958526886808634128152577625136682651066059902590083175709394041433353521950365033459659381684511107446363721917342316729271414964834294404431006816292029785197775205082217985253029808729302918867516338582570316383442104001654900141482376254570638800513628163911055456621189459274208835010597495426012724673373535029533568594431717443461222650632106205968246596852791680114755294295488899925466886299316212465182178770200953105161938749200374431382912985943323547677972908832203023441482562080313815347211069183095124776184012827765576225145508362904564025862385451884998400088501503633104955743750366204977334677719592522762219712516546703270959641508338882518602653050487528622067538931597549114910274336751928551622229635734320477882516550824152334996102097428314997547232099715893311160433856313036665416003831789023663421714748894898802820482552231818475498821957410966609189213855976424137536936263652746815980867709711450633999611928805514895557658366079820754750503468016056047921760415316321672825869313109655309351670675464506136317916485860080622141749019056344884130544535970986909653356058884787140224820751590015556024840522122828759288057144509420165259090094801074740010956201789333539387716383216307383884296895102615274563263178225403314143140766249970674674348485934369173629975015957320302773023241912842316740834403891703761309226608201604637439040784810525429146239859397081972196588563691068329734946734904942957114064438851547106199445789742625511282864369289121482027280037172290127026499945154929525949988046485714949586097360804422956923056209154787920535912073571910940257131081770048133847832892772748902436240525548777926983148911988409568573156936994815914138252273596593632216105615859433517042814962932991383933109778004711997590809297998099492308029418361617917863483140822514899921487289050152416318623113423181022905679322960391426088111859030734970348401880111331618189866660718440810096671358627620839302310572959577221990393989233277471420079674906149795862311983771106960781481837942006760600604167063620786202057018587735346280764277356656121382950342798810670707980851727523852474799399450605718630446047184559233152237876809462226459220983442584595043047594592046337487123507443210109537743420849734692791978013273944046349851996539003003705687152791991843233963986965427245396867136603205357910368535348391126687935315403484715731262458405938851211915986632679953337729732364363305888446148604862339973816328183203301932735035280133782913975249920239499203447043993942212403859990842004890865109774721920484316187257215094572308887228265598509378057685666198718096037192475633435998848525512310932222030443091657138698914406080063342206713393845319378989645624308319691910904623555425987675357259537113203351736785224631729001019938544641938452757680118155600123426889365655422469582151239430746955511006967679107791902002406256870921945740045696901304685647391776405461232530418527016042627106584567128170221296543369177181962168183193579259546678676809507326746783437512812187072371424162306149345591159301710946284703238020433800267558868102593595100612312219614384466534471645846327585483411673939902773209412228543316085482289256509220498017408012089131551884185204178729066892246393793884927252074577918935674778107121123241461414391526551754028022821375856349964967644922714046852012751583807755849764129049916042249516592200354589131286889889366378069312060783129385898494462773805813601280129277865487860581323529123976742533215425318690381876444605834220839536762536116723378495875186303650733769485388097168094406939235713307966252443003376594595477196968256152285019202576217292739347482373910943737247142792286187653503481728956455755086492771629504276841607617611086487366423661712411918486118076586695240025596159370555792454770319975509326664787306497669316122320346826593885569747443222186176055613712263927683548952765148093252808767941476287858912668955870665899160555985615065024837941440230207296263053498913635665984089709565115048000874698483481622382795689571833793195909509104279467000083952794773904180404417917492322802746052774406402059265691798073074084165664252245488017746075437061039046640395801876250950604391358141057565229105285007348929106598990991448197970509159457851186576105508153202170591957698371083239099055731973639818633723659327198834268560232357219924163160731473847551192082235658344514310230871534694979801819361357020207538369766579472675494883615836669935536226573885175657803862032611241320439823343560549032851459285727929448155782857787000705741153665283753826747978567643303819584482218288369550354074150153716531646182168346755583120984727989801987201640185686631163963464317959193916543752373601455102385849538289796117287220619605440005918406183211310472476135293136682548491417188488387256919198896249064187953799390622560572785339429501160292927625033302521225859763528739403051254921238476813843344261302772027341938838516788322665042484906904005869145380909107404462323894667565062194816187929143979880496153657827223909747575297953842378984784196639223454219733440736348333768449556531356729008963360951972336374548462333356986764408598701742119752860279222290435613555325109013032316736715998591957152540565020294724284921391544791014132984823543163520334458476953963039200549513900505678752098782162413555547644294162899983416100284341167148245148299461402630243941864116225487889369751215038506218879650498010096264365508132079597930481978107816297018827800002687928432155627101927367765612397589883029499493014390900201200530771797331764974464078385288331727241774458470417984824017650918174320974571030088747936739830810229255640143326068793138872442991943431416991609417060143721184240966311640263276408058204752081526095659723747837139080459715828204223236114282086134388028673323169039741396144035387313749537657942326453396258962084622470242283719295581698362932208555849039979957239529138021371218425189449617416527005191340004579573002055027107788387937427136028634931804548633266582614552229549047493428129707347129404300184128519837991106943571248855356309809611962832541346720266178863206545367414503534925399284485157792894345947997197361764679880274681372700942515994699977400181552776910112834476789918633943979275335366931766534880110789880671131680412400732317728021330049088516330058721569076715874473004981687635408973414588740936095480447922344174548869771287332878430617115544421463969676537191033589133131481297023460429768627122097064530696524946488103179495274501651323351154202768261078976423693459593206866169357307863757475617286203563443521436647419969168430830472822929218171122492913166328246209494507284963250303202771214382103045021858324578862654981809803635528150960886527265390252414945378495607504540179428476939634235616264149283077107270076245122415203764142548031058962442766924566309787420631989143533417675276469374726765987551744430799347407977621123967966432818379833417174254323759643477087389407498167398641098614219197511819853534692013322746169218342407892048531713746667187008541100520205685515163689638548894562173042443014018005663780518176555031326595059673309756019197574168574267499669527100749524258835012450183310790551641290938807685136114803052447851364003853355968519820961924569545779570765536668164092194242889836457229080062569129270793771705316498945438001064868130374957217294380232335407107391116832858319494432251645815227992512094696469601233716780052175494759846032857708929976198704453624124465508413399179808753827449285737070113392355412762944621400929963320367098438776858761101649567133706293823681039354729909274972449718781915332770319253871234512499592262349762709548826951829702973234858339535248499967191929301607609516195034640394554026337224309261761592763205809013428172519371650381040887040332760963722767113098886614543916515109680591770418024261275539198012720733493278861352573658869427374839573837967604967654518152293975218581978709203246549305862398368735865289841832579685962718522054822483538714118474030749164706129716943065299992007491760276332988786866309278791247329277108387351020692654532742728941792754984582469882099735944591410536610627911376665097220830252633596306468631612518185080566051985767814122437485590838800669838197972174855461456902763073025038852216750549640015600954827328166198842662578678007480892552109590762332277196539847748084630618239874759805146311790999182059542421543382328147683755449310641984015076463220779512109062346004436604893294077311782035135341670324527869102297909665138101393810610467929141945095037561677438165532196947799985315461398527807541678480670121401758405390778282450144393752443811390933545031013833730483265413969602428498817624309610015152420861069629097618300021208947880038927422177907043352324243707227701226950917155608984257499007311959915346626717094907717528955666805840955836772543198043579060414357243407355657711650777426608159422739110222440900637028857482548133861231871894939303797255517804606632633650460047576363686130957009524978260795729751545473254991952673838293652164173106556176800884114418721563847430093543055816620991149948090384670833032537624120264144391674326115418352452281629265602079774893184693428878496058885279694562530589033752154298575891738803812320207158133823538310187511807842819485289047875423573210490765686911556062348348838498321817983189247305376305524668885480462932926669035648382456319669116004875417765189836335679183826133593574853650084171847219880635668826149568380214383060769096305300484462979072724467067515729348635225819469341619410536822254975411625401212216577410619146708349943756290045395695717643019433031281948909677949360878754718763601693934140026245645725552442035982638258993511202018365064081937782056439824015555425486654072147022275506156272423666320744574342006052211046417133740905600479065863875284939696879778151495699528003617571991882841187284372915652570738757971819958487331834697088386480343609841832321065451382984322435523097869583976854349174236865429587720151340995172672161670098255004076379597972111458477773459195070006945353531924163200590964408116335644686765479759920441686029570784591384385657137827544796910689174972466064442225028613476363625750421438887470209514197301668045547677499310112893530179191366978246862454523330107441021404223012020624360011592314452853642929789246715000577761759449729017235878665881565539870206029689870951786628912303766942968606522206812545494192382118257241040812993678109993116970930812138759941534420358394491150338774441270672743767851458824906819768353244185288817688271585641084163800614495561372307624726524951891464599040522660316568698168800377558681786970686120139102365295990108817441154643962720209995613940459572169207580513836413645763988072727657068987904030421857864918699358431221482598046655566093286852237901998813052286577077839389236125528240171186299501425737127212253152407318374699509927056323130577892203864837094270661237958157550972277742566819544871630404622860528510922496116971641219212696118047022403173281743297881331721173884066864604391064878278734817012656341738964914598934261556685297587610602740376238127785468228611173448300577672881408469229498808027771560214961679311998791789369222280069386818120878339676555703226165170767138408653405905110255240358139400636537190084541782083511819145474188492500043349410643322472828708702991139642823634931178271718626936784425165934822779481968325934316006894044725551925711686906692000928709978493207687550162100926199677798936944306792682797197221063932688355021322249736012843807713328260721637355863347816402905145994050392871046251101859837308022920799929684763920228873864541209574478974774518266565789228082074492515954353968648808447621718610960635478148973748610289563902617840296139663797346460946334620635979356747275509963020493258402404999030052505568420007146021654116231765682234106528825691843970786821188226451916518084841282436035018704502251400253348719614088650990843084170884374091938394722115180518989070462834640795143081067789230474853535499546658162886132051446267050609006228818998343159530191255498061151215515508401264238296393209687418820427645710854517987698358845223759724856254598117595476444568489989725774430883751462095083036074167363516761191220740664272331669726552194655969348084777108441323843721653935204894396044418229640313529345973432762976031244036103931990541520406195068047618673777130155669663896355795855647799513877271170636442252195528586259181279744677769793791490792569596875689479383495067825052197367248393234582540958897034064011344256970914134488878905975329038954417077376009729587952354170059628886442963413957196230728015879962012096320011223308913169268908676921288689942860217530889572904925561009465112573593936575740833954011423395797606258103808585802377632302748224479981989131600739764750897492817931126595165369358767477972283809869726612793333932903849267088908250436966727369479391012402812776655715818769629423841032629373865634143974074968237584974509034680897842517525860651321921152622982973933433794607678567844896305934848460871123201118767614558206251251763696129710880544161845903484736920574038075822288523864862343237696191591934905371067617497520509796915651309693769684116028335016320773616892832242357277475670740196021669898672042295758991039669614516234564161291205440768915601664328902204432552467803879513870084862431994863183520802625890981973888576973246553370746967627673137230527467290702660983122019520203889273502465091453303692397346051083610363184397428982342526096124890502966299502536858938419582377832049460933423512142658989705149669716260336754614206806633132701831617992207353587676754232083433895124386806826265647576908050764916819341264107522496716608623213089734532653463398194218884628422222030446184784018949718581210055545584847921937790899642186344617917633724759505026414989677768681734459573722822843382487253029093220157608098702086712478997941722036015656351141745491217886748707665338774994951004806901964737761076852419065957428356478937025018214622144115732506326882210362178302750207307360454869865463734979350273048164946453094064322350725880786029026427793096484000733402284668631751946965176977631951032083214098530814233319563392805525831296814118142726586342067760533296820271338341133504993684209056890356538911636018745986113197393132599039017970664548276360422881533850075765453981035204316784523873410983639920887141864728945557372848885154282048084117499747438591928603886191567985286182256813624082426616930108298311766661794404749212878172954518354444832067214416397034179514616724022692078522891818961409743421915569909015475198067630875826603344302059436178887778314854316786306436103891333119070672549661902978834522398553888536838081905100270011215265058553992095746234304924000979725903860233234199664997778429550522117108066719966425092872149985002651999776165811246699743371227417637976974670918863322191497393498603574175774687102699734448001382426106644111984834062043433566332572830338162809846651898343705305515542761659236372615694159907249736710248417143871898437941849754111824707329793493711592972492064487907141929160250966691110040278285011770174073505206754015218870523893652900275962667957039799775971141972361612157522314108302081813289905522529284411799011194136827717420242530467406616625029021563214869056310153322840587028809519741485861827718218039752849580720983628496096070595162191019199129079981554971370831250103817250621084901862785336565872818073734776732145150435763071112938170550609831064556672454467080194243779940255825256135582599931145221186399696789360417526102187239095324754871725103772119763576362317934599408192014917169866288968968458766642121350173040035004365772477320393222744299715011903203599104644483108329914672027588888067301560543113569056371165206782238270556454559536163424529301715072213661742350011605813344273682571975374221116375340817773782911105583675922972858247364879972156133023259622368783504550650722203689170354584485259592507268266005308915849625197915109101450659293599908248581544984420080926261683908888070235473485019822481603387380470550673923781472408134296933304906565957696647099518118607989512378589364847325545764132645393494513303962657350725338420478906150835241207951423135541476359595482424296270762708699185497629450366513354344304318780118134033766004966401209617868982735512332484942161912471410537336502050606522176490790377986503873365029302286019176416283895212320603563068711384282742314730952716499766431051619550830752085927933331521586363688440432412814406158699690818712132419434583015523753993127801566038668377168558606241774733727403235701862186661628743255962328579710018578768371879044681827794972994902145187589452318566045727909015557289783942014855256396745475135490994394064020590722872654411784097940474135956317122946703379672241942277746095352275076113488174876160917481839793493593687833257186709628590420865966930673677746128117258765804460361986308070100335309073240851533088643900930862085098680775418204025899087602877120226812085695601641610763951239548151195601481157279884808740956809688317244406111972182571407042092313305837754267738027215223911525503646648547609864867887567351304445842670497341399117086850885082797150979182215678151361698368174673982243570824965560103188428088405250931348321155401142611727149682908624926791385844069068631875597152891745216590768723846154250063128445149361777213875250535085092442140371172752476189656597616413097931618336954034347803518119075016988713785707655315464810190523936630032877462184826825549427032164543642716542196161064293069517805818174085280410255365073339239189323054236881932099138646045749319278011922857438276030167738239952263257908311768641830524526090879047432757500547502377948010523096275834921823900998955171221065940486120154675147766752849345513580123373737500040065579788744440225304985157345157728635986997925008656840821178830203026495168046900440698590217755302813149062706316766118952395021185907392258474228302329961320373586326308107841759433445294472081514654607435695174778651514538014539066252591529624966505222686569366312169923567194141314471857855527457902527335012829369073327520512460073869761000495698863402750432527021537104723463489693052072515518707496804143144407663849038970129430728142689909329830681189564621806063255568570254431720907429776733769631021222657631659114368581915831389478797879266973460415846635533647556453218230187331174786458305258931681045553743894325708631978542465592307212255997678195223069228726086155341869751470058837024305724413416504577446330397801311313622398568339158415338966091407890034049852226699019144801037798939629574233256949079377218526575967511010322251199599143898353544481727541865518765726167362024989637383060839508070462513103453009271385786577539017621105307500369104390149283152648775519306928802859736804865454758953311857387887722332047836822186798511886912407145485491025169690527182268344777623777806352545583796993615027137548056351946407133630954432330146131953004395763601021407467739153443986811660149463224076368921680948154625086188935029043669687766506414437545910722294796729979969973471923463730574335009505581343531447434186587036087108195491303116597557205955057880584233720639396852251673186897207867139527775396090929399879437608492258941359857971602178715350246528252320444092202571158987647739972041903785523991063942725091285621534259529394755044393118417227726132957989266837021082984937539334696967262689627148010515398214088505004792618838792084140342162039755567557497250134369155437480764102785811388920266879142402041123312821937993730471822372996199744924425319925039477693434229651515921955902355184806367226919945533753700436080410824111382125245629271310201464414119159770984437055626539501738131256739840586458231593221181990786952881158018585660625489264140355515876431148033620654885354167034647174181197878612104211074838626053199554679596952486817626394578893086811150377580168976404725666913157833736856534779708040276184132823867801053388899364349749380265632371394784804998363709830634000950475037295014213280847639241502598630388471912792051823627548622052005941264000364765093178488577768672034419787065254108885244336099945888659494078552002764303935001855064747284887984668298455142955940470895763798735590268535370721407937094260380728219699130895322402360619431176786013605493398868674522703712522784592457443286459427213040383858317323654138012227192871070206971983967769542592993977076865193146368048304847029508397606597411930791551603498452525523742639462111342485473706283439366908822918548239557060976930743236739371798414371272194942497689002764221815042318621528908372844085989014108164615507692629522271542626091534443511523425448926706448015387672896713660205740368879737426544874878264126806818351583211348362576057962382734645540253324928114407737650935448705047836323144616476679898037882837025003535983786230575428058041080463508438391605070512770046055556167473396895011929194397911296533113534358985070848349930048378355517438036174814492809441125851715341188138135642830231319045509948404852083828831531580105916971790716017053920607541815252393749583755308812595565662744891559000925853894309690742415867785896438064907495656252738470236809392183261403460045998235621999533462017670710121313866788609976717026839123543088660266563697618363757536102563842182110785969503581466611585002387250080601747313503873806744409068373534793896323501082347175252694690104555343974998547035713038578559539693568095927476700842566917531444892236070259920205856969206433903358243286019957075937665783727498619582858555471898142641810790198851022102315032964899312336827133710409546858274087943886416277698174355788994664569744713589262375603198157477990563166603333642693660956949847634479520311094373777427727146114292752315569833779293851087120580248585359895919954383328653484415200077251296721655062290073358738489230060793414397007394604230601412842043610800815530119396465668449701419646870772967601146080156428794944930295775993677061506756390268351271261923967383665944437089850515552391381293920408696138802283162905457777585518988305415075861759011127459430836343106219067938613214144376058208847751546074375899193644598140479788567429571225656631464897424087637463739345583113592097882601342358758399627183815876940575801203687297945086992163168858698051847410462368048046584781222020067624874905442305322883009726373322674343580831445837501456824996382895960123960245195673419435878452095115149603645462154349857848741238604263226872640801418653805563260933578215556891957787244352174183350957182816115876010935072778119195128737560329901221114711711816568816075497050911336834198461174507916829534340166289425733788560283288609940549313787430047222591876283922659231306531767809612615723371026169425707930248630948024647828553709681089094143984679810578925717729110395253356676089322847046735783043433860337394382982162161811175959261202028676883816629072221089550345825514728021123173603234981089330726901450058268552533108885455900740493572304737368522261354381577587423454420935501164862561000252641902139612978611065392941928285498971727408063971632442586300557374752250907152694649459532091415274379289223742344380390210306638255057081965433795554411270805671085571004831259028283988111408820052701260572840119306052567107655927017531842524498549484271754403828017650025158656356022056855232452400706608158612808181527134750065436977680547123391155200846654962332052614381057543463060913416946227639171423553888368430753215688229878424904675608703356881480007723135920663449873775130706874091555677985441349070928714198793723152695977147846976659039994288968951341007660576357352879675699687160865657321919963877038511293427941204513542411723960493067547646589320346901614048905222093673500312811454441518306653294207800102631749072438491468781309438550158723379183933196925891034265243419547188082027199716664429789222839274564801661921951616651617877315982644381331401692092984452433585220401244263108255904208708689199439559108511779653256347541727168698818887145131408605436407678879371493613341381017514349020038657982469026397964513293402031788306764754300051613313864791744557958815302558021166397038146498090044912911024551151769525786364242442464067333470330793786574851050515426585896411000838167762412034573420174881407108806109550941921808255023479959417648896463800749143021813111151394520000376124495923588935038502631815205526638631497427137144005760077696011628077659584007973325289561671188844234035000891875526108434373547718481324550565748001576681924760244841251663523884313631552083933167807296155522818616441517940938193084826029922796657930532211483823657971163454850012104777723005090007621089360469857788458628188648714980433687279378285989743329812118993479670885271861486287028189088407012367053695614407309540889660063558628246593810264824196818572308773806017620286988585200516683188711576947194748710422401512100924883904576278979952051013166642940043110631857914071228597410664216063351973795644920480771007095324835996614812482379296491032519912848948551029821704862460076434540856155427269671484204201395354672199572526000861160678155715454272348046861511043962720938447820763877853713840128899507817709799952876718792069822038907527927022043890887760900203433771820235576207957395691832417244519421835280466256003636998500304989897384402604658318918056135342766512804804598458798122033680697839190725366874262610995083433806416440885393126104984097077068641115635609581693503095011370290741756077661472110961777019339177196300666778850225457912005692385587080584680865293267225979178049987594229916941201664526601567370118910201208081938358816188678574845472074743070002114588890115005125862164713080879519314460943620257527386195309810137483207777322044409232131087334516774276701102359789144561660761421952563589983782987402511556077785996569793088926243544381700861543861669182056131301792731336736677308544328083891379031928468472766292504010343127779119226543170929966932181844547881689635449307956459674001214614182460939708451151830191919912635342174911030569075640215929476116179149348724458580373371943278067423493657529251321478249415928707496446522793789774825075898658284676357295066318921647703953586990678202341122952039402997520003148355773851183063153235220823292523735092693785579204238739542458268644856420112280876732430334452942733098416627217462847888377043827505030727181847806825618870689481099345541806375763223527420077538822295270579233657778946307521918971219457930722781146480119616358363427378094680569389272268114285170691936183224208368923686639869815939357797838651484880717288661785180360863089170592173909555677139963789212122161250754821329362573375404379029470725819844886978297799667527617961621454531183611301973333739150128243411114887377776399485087498222325512951928064070183196279474640692169206345582399052333911409425137612709639035139934119820628402254191843215561112993265097862940897452070424372506752502504051761294306378800974203647522592201279286356932631281254923893712504700634138843737685148656753113423961299405843628032843756577581738365566378377336334061764744570499035025116945107688422025346411673245284969335142612751293979869674792783815135444542370830867169026367636910986700261295667807398657696398893483845719476408110237708249969100996936249163609471793240414486760803949511206917128081191170442386385606979530101117294486719145858963927535377829031917783453717536812846790742566464461987080219689872004357952546861060072959910996382222279857592456968358558128957865813548956534582959564242081013628937204793547740399336172818272224316985097879476014009502507839082540925480226966781418206885785037747711139214438078519054938934058786021417899379615332251191564432520261419596396407433862869789703236425390950264658132092746121534819088779311135554216540498245836193243598338252394927889688088825860706774490460016829194762567330899830349798410701337032128068904780041820599756199148670083637045261360821694384081697375412526116233946514962493610006100820213952665922798517462193336848211722819370815291741115886588507964531422396144366344879349600033372515521210019792569335703046937261867221354222127647541279338649000264570790708843085037414325524294046532077495715181724982107703357382392340847545539712443741162843328077800923610787418571445369380407829698535419910622679020880247132526662129383410671176249407206947900947590888970667888714923242666413488846544022562154066233182931168269620013390361662755258997132021420730103012146403017700514464685418040994516366451303261478526359944341174230337899550064501340535834810975875181398023207563673425596747691083015277497917677332471548713321494263987777070787357009567389044638748209764145497090432996157774556922863419620542078108502377491384888120711757075604377380055329122997630821888965146328996429325729924878012726226426472971657657629073516097671005468753333557860071411348777928773377439338348801673732816600534093714392627625776744753077186634485714609197186074775107106696468384028194082824694274087642565414175151323921045539942215008717494783056925703661485785375012753399738647684217784307000850500897113301784429925839761020714378009327667614404349865275409103915633437115219139156203904124422804016458557251526322492809183182214251536759133927094718926290491764885569183424488307293898647567260834446262731024768528462744207982613040832424525688215175905001625894192537977013810559690334871166225965513802737439034043250747668613230374605810526320964652826382991397476474601370395385471403304456631541455413793653362317163296945839205622151200652874705062556087776032323033848008769169090565388142329141536252477130275062595579912061859601597027011602962428996477824951150407544795541489071210612191207609026234503031660962792758668742327368402385181545700083787732244082386376691275806010078446354327106476044182824924280893334627941146682325614691827887902801807121763500898653506836668859218808758836021872549154791364277205179504920928969455959185176802056088233142733271606358905215509304353525951289379636630502236139017396474172855473269944845027856062791628533094594396064848425639887941693053331507267435748888308668634425886755336445665030739864641891348781496634146969467281045359535905686056001047672820673133813175227413787539844480053512613228760256433489711289202566961181177487944166487248740157650585937097103565638074932570356096696800612369954917408832374612131192106536355115341145144311042624587966690304675109907889797908243758889057416982314291611800859462613052754405443210233257808849549872811604284986265527168420566112603892649107975288278360160387108762982986073857346046631821850948189667833034637536328426326913141918119544017508584772018038177834913174520387434511116543639880842511045521532689295526134090677558632246707612459152855424858714556915534564895443153751307368495366174023024979594765012813016187483341515088438962876378319806688672992686940561490326516626351242612142687594487316319241854646052294534359067218518664996600866349167849475031005043529719942182160686408399162202771533361030981438067352219912843601772459624149957045713052536206857077997196218152581275233510706490518303738316547150576499378354278485769261775035456339028188428473970741080343282590556010513318415884300529379075956006845155748483802892392067304588628371480455041997958025062450217369506163457831770933244986171822334765449096257273569607163146059582043896439930850970220073975395326085920771575798224936112883873140496253167131378291554663834612094861607550851829976939761186426596264747280400182270359396551733093547685298965215482594921165063862232501075304043382600200521934933361681429379986585720772892894067524980722663690826819782918653889044490402315309284369420434476287802950966184594662489650085115834767817652827686573949022544456971907729572803038661536310016908548282219316919819259646101220231375124219516194895226177510733525797228390011345194183578748840499918320857197000630141559354106244746784624745985893614790871203621451594251501703334888760895153286643370848771264816534069261044770273953408877622566720425806904871430567337620377248490366602007765777980300713453874269748514831888061309392870451837190344554042510399483518145876939485890116726556435773001444594705333518646544974901893044453687629196033631642284739981238751625672707036414356057864673100787674506920677976237426810139981130895052907059647096800142017901239975968158326311153274395645611361670507865782502936748492231569632803473156541761296265984642072919256133203620849081811472580739237628645838005671806581670745354141210771470084835273333923243512122466154612658336909480421239712453855807723952477174592639315164848946125453217584820819666299681890248399135499430276434343312435102861141557565195824622495425662038985239696378738010305824688716422559325362747785639115995627654664418074747796631051259186275882042299509607479031973063330528654208800332658921557875541943762326917564252904175152156545198347876376872791115250726088275197505809586834111602511963558376796129351548636085242666696428679168185117684301429171965021938866635742862642593122620649951406711715200173031256340609473009381305905358232482390975085704753967044689162210931672924642535055711526662721887571886822909833361016986121826620045648130838334493523604068523403488366673029438186045018952561554087538051537145948285036004844193083443647566921251806850920385418214486343171348245905966922970104820695086427975078012972762959786222451819136351713731761979661037767018675017996941854530709421114943277797802696116926294220982625658784361283353792895003067594491758483883218637665703820347196035009234275253182434996292854112157284257635259995958881978409108830346523300836098413358902243578098521803617113244902775006850598189285897840344941407083186283091746695446386959005002092426253735165996068570508953835150926363925337878072269003493912514514374913448650760839884798539463159786335265893130394169547360900061094690498771791991402030208339504847719935636355062333515085893615108106176512494460555435190348125591631210954412601578503389068888089437810209796055098258074889365203748026674868882573102183575712831879361814736923240694765555073720587613672508761335426304839529724885613482741106170131324533178766044324838412071016113492175174719056599157874205918504328865846396622822989552142566171582647854393870805311760826116005066930177611424617936642504888887411401762750551883477310054728868653955836937209725269175012342090878547341938258428336574137624688655077696055013139526585546852266565604560258338315500517596006916877870487345665898622243243390472105509207951197767398567680584394964264733560618684116132329630687176486128908297742759515724354118875829758699644487877821034399603622329088769694652929600179397300347518271851237699040406914856508008999402188157507143294910009518018140079130721739575898843322994085084416164230249379255593055006782227421466086629775231402574386576534382089162568206256384308376679954131143117669219638694963932489552632969419896447120586406603786355754468899577440968141768950445816943358439304176060093675523355415727326534443184916209973540365722108554293551056365992393967634336696481414732457705795876913627436908306652750374378993408696919532290007997257173033550431090690990011939611246784988403224127668475893279258425238314706805804453844094418387142490206859634295540699534134283826299760721701354295950912771455631193913109341096104366046917190630612501385357654604629214367892119065871803463776026602778396518434870210413719021551385331614484233815676467274273338586443767422951927575160703399377220549334042802153214028552318378186236546674434491398043910582403240873216514536493728650313994346649441922355402604831092186185175528312106097259989636594197165526370006387564957894194067636233985775805023463218468922491533423190960196748299053287357642784766185290735980341841302221109604047496517855608148943657269994468867931008448142564974249748312886566472701021796488856709265150177677652550182215152254943901954918146683083870575415996758954810694714166172853178800334803311509494298031340088053162706093014106568285209529146077483238785434401759785359434808825535504430661612845485512506362798634776642657525097141522072425097865900862474259479890438512038002997909788847232107648291025017816431862920127392903926069622884742515885183530174230358787838333354682836572998615249887872056865417587867317743224270749385297003485961156270294482086264741445135344531077259023463521298984486799680294962935320696044040284469754227715347545555384481267512253187700634991723369465311813023362392670748334063376976431377075193503977272732813249796463823509772942420377992783214961851687899861293565892514919873858666405833967672637905957054492099940574935977011530259708551538194567493695160563533098078215081364296566450401421758260089491746306987231264043007275663104306116875330972230162681226621281369844073296484259129501671446202339664051867007202566426220068048258981173877910580598454220061716107752273145960954801355313865979176480860478554714113733735679844314021927208084606510129346578113464026288068163652565480251298215051956974946392356178536342496536969331887229059205759620638412547805543010936805187851296201287135582654437348317332483344653877055985077285141614730730840450039600985040617216645821624014275754621240360472026430698317835963365542084012348955473061162170149831660989504673346029482483448336130194776889758480749748255239094077806245890775820947433986674107879074440419749255810612886843914730980774444441629006583974321348903577458089255093256970895269395307906482947934483867993398242891438974635345614797605999162337102881407988019762138798588304168998602833264668664344288216329115802600459949175847499654343339204607259209382651357061384592975282163268876102484691889583962530040512519996980370731582546020834066694301083173350571149236580107210831699274666258535660842364940637142152804307685030118100205112865223702713407778488932290694535568030645020825835830938169191303175290836077995371167106488230031316813509703947310891701698713907917537631352871886853886662178614500086975981541705604330461870295028478195307492113416277724426947994161385885977466000198463678778946784308499328344278737555988438825673489119197203545373184971539768509748812097074066848565998916608791594144895747597962132363126795200527656200350430301333631768540659384459088305337618772018367198412766758502068022446967193500363470800317919111443515725463353737777557314908713105972531918481660312959923246868759225914125979380995384246489849234223335621669829637191991972039701173424038895257703070708107159205679657888844175419454809085047252821046318296765506233567685954894559637178711488182270895956006987859382794965076863223267556798342024958632316187997832961091011874784958868726671350136171311865825618853081436689125603877523948956315701047853577271662705766532177335991024839822882167289528365918493633114424751325269929230399773022017658256521382293856957048284792460313854197754819089574296466424626112962527872118902672580478932309054004792154631134671735034538644938362995953388049241568542761260586227496439457495786143594958704059050901204453847580966994530345193099699033786259195042367683088623070098700317937955426335995472401752255912552252177224380628762209273846981791199962471044055045370883904555337646609205977994661662330195588728992165170927190743513627892202509699835672124303675548349744937237997120274762728765467736694898750869406464926356704101463802721117397284698783925363428545891359000055625894662066566246503663756592504878190393723490480325488399265207426272956560986358400914774433771895656573775847529590327340565729370071531630213364358561081762868175045873532480721595294958664356709750310189253425862494788507493195837034334432987853526080900271343588541209606611875207747228757648929710564882078167230083067826043717087661520792986405104418949024381310743494377945465552316064681744673361235318192841554791711553794850673406071909951818227684656554804363760504375400505028309394071038881416733068614557723144973442487418771844380206223956748054759775890251695181087255528922586874305521331903933996488949790588306776575525450159523065950690906412021545279766752538239493319132536814802828997776833955808309074766599058729416473169722515341638195419508586030871608411782971403061249474813210892375234699891156753447906362922623240699586772660348079210990629575144805076631572639664381066503059623106287726907688990112795881160500599922916430538078511842755755960039681184701302209072313812468007561373100032223457322624388104337642610664493992308044239961428842486527603424917857387967272524657412031521424058674885027486164582122944046936544083636671095479392551615729183701556312940007898841911686578787592819953282868288390176694040536285089852143601072401900183582400062449046550703579279529588135410817832126002755106153899147702802980950142997570383922767587941267606986733871902953507463835620399397919720316875643330299215883214889728179571764822314887281281799978451030087203575665510476641340998543937487551106795131771728449295968578578925382423842403443605068419104288691507210728316044389713151431304641967635915985634942782674958289219309528773756058555985370448966221511155919286401713741912242453778300981663649411389126582557566576895195124595318460744258303299841191811332388963551302007588283766294292839352683024380275492238041678176291861267888674791228209211631739618761113898914411969454931810071310732257789679813335023605718959529314648375950334741547095680854760526120335696357562382036788592751611408921827389975732293478334940918551915518013528039817432521522418094231674609556742463114261806980084543149486878147771484603694728965557892459770725760296021821523531624409677308233124223593501079297426160873003607101258144200725223414624821803603205985629832256383364333582073981617229490097317343126921768397305942781452340363790271662801771574434988027591563469149531785414371575698680985249714219981501194583201294575438583740884194777050016891834677573722986616692405100445151548753019020213272267494037872205915747809923084385635829782951285458330761396479938272938398520003636713065442866887830722267156992461230494989869472197905024641622455956734886108085791696498636035335005925202573158113756173953653700644596972651233242607540866309988819490621890516327494369159278150402725061175525772221367851916428646054468362108418983795079508449989596894077499348060342185091153309977351386244727398745945640583935397873969348377525568539514932766365620389938199728614239098718271990648401779224418240173253507672094148478291243570517676158250990677700763962333245950499194906907609061555300713015024121667462748422046422909362366409630530981334017754664534711939373373455331917284644990186620253361655824362418582327509187530359728461930669529315746641645061567265681948302837033111732767825108601333260047283700978571360740461865946038532312097085016774618403479141541806956889810718991594642285705077661224311965485085961374249130868560816278111037687943773631404649968977325048692166872086326582934731933086753545260981942003604296952455867169585046623544203228546667381732520769680473734743503710281959376644549472289873310442074339103501577159434077572655280297089985199401485346252159434574455653784835237863565598302487983212414268676733391723210690804207341468026750040642837703609863548889217262044529395432163957551215043454772328159247472504530407443459242699599971515906779187650682010502245366992483093596956296791271527661148374911817382759692050856525825250813363012697347116573752452559378831481323286518965743111609292282538387651802789561120773377003272591919825324970522335722051745649510376923628012108406547308088755505111883619088552657602139012701625387066019733973996015138166530727555589683872175054734120255511290575858911327710562245767380615498091688401623716772810698551282870306924802134655265094221583692938771511212002872086357944290731187354164772385512404906996436387007548972240257975699132233366090068240184136849033577305202665093208707210906238787198452394591643827401518521918640636536723630893867762500140902434213334553892744826259431575085551800857600940577603345285677329829200085378203262456800974872643276845234012712541940414004189964594937727261631854091913289831538484232618018878708639975722494597087349720651679554871412438792101750867922933094209620667639657152263971241464436122239939678215901379796039006662206860558036633330820238698928622259967327426967084339508769645265001440562494428937624444154065740727527254383171431189374405547570284369100499573342006837057011217505545681899345258590412929353288442868483316473681173984352278363745314782894870210317385047289366675844447467031838488212385429571506535507727360207588277200780824391615750481430813671850748017467191837020304835527704451012281972643234391402075824225931584727390850130826949374719923589845626713408418248667932415114773932530359023567009754197865234130872844770636684306532353274691547623661987538679476623576534540544055921828920016994045927997223483542809493714342259214970520273979920775056669422358015081378252742191528258107255359675087123199542158072871582539265681921369230762787536883178524403677214478626624993148621982488015185550877889474153476058983317952355011893968861984448024304850369384039482805889267003048965220023706606966406975616658648437440526934535466277423088829474249407925910136872474199453786942662224827496399064869497294881028171510309759492625605879734368763740327568408794422655800139797695928961694726324739723466907707958752112575761519658301963690846417096698775549467383802704113875291020512470119792751548768560594925531344483378449223326718374765506117886148352886545211838246685822389198508319475856771062753534637958364126886960685676978689408064386047494325117649835873367375848286861354306532367540738578279827098743318682303312493099155259292158496084603288874300603755015952028807568438727409031456776551237737325087775494286911833478850445936447818346359410823947379198999613068152801568436066637643140212423604153818331046593339491577785163777241719597149401066504174295163652670637720317242564989842108225044440226890133845862362181910448897618488289770970617166631209184582829830004591586197463537102920077615864930551033199171286710915216310884410083238260710243121125570517402928543270847797334490764504001631125338592782447122176819484494525842310871768517343740762466264160724965844082008230301327619101561164011007272508733124949660619961333038251989043468647686318687957310746652498558063280991655424448132284168483182622087600507488009079849070554914656352175084525352380731896760490272744463468923657682851558845042622205123373048560526816526129754670644003251536448002141734119229387222888283604329581088634308426297158550058274025862627353539994507444610471643148477821401864947701598563140171724997163421052689017405045359418793103398466914246117659929224697356545519988206963131799808031148737180704397116980288678536584580913974495078138963638018635280309293001282725210075748546559836677231402589090341845310794457373145493263122203767536525384519752704325106477525025149717615381983982357173401263963358174184360290185054734544302493741282618628628367364926581862081750532745658356696917409867936714786521241936714579262754010759223760455470459441490884174862030547823958291583681370073584212014485057855517734364556041977953312873883335585192468126365267468459787662291022948821938199561738367348824303514392732074100451695326990541517284299791305568006066515166928620116429136965852957850686368376191284186200526369444993593727340458719065256511235150717460547871598534205652903073552788542009098297707012304125168823393628597666038709736012503679117480654309026759540421939130816725537180059449383637675242601752418684034343319492320118734174343361001995333277516762588173540491562906948236129915489645296611651655377483444699546965908594975591683163307949658422554630994867197057897733916602592045926066725971265842671815397796171858031094331769032984551631904715131434971194547707795831586244266612996883297572649606303982615195406216949146035781699625196747202112233009679660660896853703461686610201755897044901140462982642255169969656168673010327398081037114552046415958049845002175723638627252052587743857425410083912759648222911595904023555331911807099092571053473373248032331139703654398914437658808434011853833940092019349786054967507549206304421719405767282298640957026726834461898092191172584333674934887406631387019392897565918058469512468328719339376075743880542855215106474320517309973364297859320862126480467857205439272405564174215836006644007530621867550569627247188710828947044794813039182137722037915882262831509232246219538432017606053078864475428953553896282696709096471480339231709940861806333247917092855199584074301639865055296787322777850748815261732141640651190490147201672818401045000848674362206280614268885772935537338709210135214971374514787986556188025302887317429258656465210380158794709252472595756043574018386839105513305352196554863797832939538506077206254981202968191632120696513093182764416471110262234082645497858075465756757579968735606442305126232272492699048020830505426843290000988753795557747818617730027506326145265624119715579504340095903959836064065673249768648475630259721862310556820773265318120817768823930759112082742629302747054687970758894364491548704318971459105174703257607657185774316498790630797696251612531185549335770633920143598174474139076293119290817712935873214900929207531004005748447359239522014634716763275017280755452199670924644638944758233637836334205510302768063753550741349875303197677535677374571367629504504957371048209314024679764158864227360297913028120278037373582702619255139063827472426981866988454921482197272357676798953489270183771953071218715561140685453877227276680805314501463209716729958372504406891820973391296934469130799216147680658583436790149612736804352244497152630036244731527885024448698066192683311052762841376019730665805242572025347203009857357719999457290295138119829814884591519236397974917668254044979404987631529359013588187864162997785108056701408606880574297466474574203015477622582817412798495806662950485741619166535321723357642066023702288684256858637025352538293591433369116757008420081999626122894898395814828192300910062651370541464726063017774888233803730158427598840743957743894290376077183510254903337915171547882765631752974997821435828185755542803487974514571303331185617127576429657464288886942678270146071585321820284527828553401088635732970896420342621366616398565890776174738309039683115402646553191081600868317477040044853856050007938207461100104410227099648074653200594537815561461247161098020576715287726957330519219288420713388079974412153096239687348354663686393070724257367113252471017298972794062290437232914582381986080296929749572054917511018785552933153672334737356196604589501353424447896901370956836855868453970603858262143043700774558040031756193428480514292330838679196884712134690001006130855271725339258620906289078074120995488226114779072724946598581175039981881125971614651934890162354131457197249140614596293731716370201667265655058964758314219357086242850631658683236965358845441614507816297779637272019648119086898462157218097323030035290343774870073134252892413878877535941368106505388171659541724329475119165423588839677494563828419356258844546300600206890121754910040570802806536254682335934113124268550803461088685202451095525200427241030934775493367631955649959311915187308565550332172219955661157015104506187733806341234239723500613235330734040891346297892049879641409752890647053286825210800186400485538805576559252201578129180740421000595902093693840935516076818684062405726780833756211805541937499360646425873783704799606883202396773121732562334020302315937413012891712859552321294531936852103580162072905701114783814726334416607619685010602212844175327686311414093710716903616908593847888765443087185926918401287154006519454738995700222748277767528908724764368486596913432767706299389696953178136773997611406808362066378713123963800239980601780461204899000749219878854671160716004480264000835418959681732153347223456566719657423489185007836825524129936292373303696433814237708411339326622543438973613021990516062180233961584305685677293252608340335267312783682251544003043254387899398496913187890770777646207539644742576665194827792289056695191962839753788518074907793016328857777240667061919801567959012778732701137311878025911669158051720460866902856458495318613902350122420441815795353224593617720894004839442367150320747197344066723661971529953585168323738279997935791574702875219983823870743718204438688022226537491977642991305594952338395781474742663391450487806807230005173362255626440148703213326596310395018853870298272623371307646734411142272476750237103611185384418910170143372369162061631022484620207175805210965841320745093262207665483723033127271614847395698839110799606552049222893061450210566012138196561646030108641623977768997813256059316823926400358795727524349098594886507594793922520511890694749689092256689363593973301634398129787916062722142051705108607000390251738383275114079071069436598964589975510678049220564576317524702174588468989139243179866284556364465894830964352727973578779436567060405794536748967283715526101793290080201070948794306389446735667558441884595277529226743595807413533360691030421529010810275744973860532857438072339563543320984475624290062458591233799771600131421223943107849490110176635736159800246585348391509819913254123182804344789681709144892973890814246751197852641844190157791456172720760180082265136440328741231945484548030754681771999946366989379673648149643783724170396546818549606875676062887737933983272703112140181247375301532997884686397427593187110067957065670319761357301975691074183196384071340412648577412833679600103721356089095072985938675114619645396108775153024977578210260666539758333134367107096248389151260062822505197023211892894310323298178661674308580597261604633241462674393648230104269809400265105004495263906880331596737810605569377913722044017512270313796908593668217341128307162659809846080300011620702796073589915416611046447330161474156669194916972006322666542212453353839528905164316989653181097248452826206285283175739905357797564362082016709563002010098610158814278379183500208742165768695692687593733090000465333190725283356486151629443238612344841632633541923653655845934732101778151918007326861699341082745623296975727436630068512136766516236185402494307604436814215320423618009133699829936777813427587270244617708482230321435067285492770461791244569641476853795006452439068371534170903924986666121213104450821688146623530361556398534228463229857456651495879644250687344376351119839415882910749109560457171257552536230655139507741087120127041386038251484033832034377638828956651231842635720175340232050199167857020252888521717315981779851640771981344069215886589408816434919981315754324382545950431384082663608921041374268155540756412798952715645534549300494504329080828956706220253638873013287247436810762207518235335040948796504853403995296761858274600358968333556589626890828585693938095237352995299265250177945188087940624553249421564363757614635153785100485604851783257001450053327735453958390040544097585835126321326796375951965088036769483629225883474259688166596585180735262887354614522714923570455588596666953435319075448612595833235473631325851339859455940682062001102335426498391176284940094856443509095392165037635761265538085603296703830001214616070538950047355900527789271720380128759032784715408056646177116590183295548540138697323683777549227023281498304480807203058536339447835548669326364819207932653715392272414427439130740440791276927688525208745761925957369226767304098525807035640848528195331562327783359252668471075437917416636820185603798632114465883618787204685749958127360882985843968165875744431185236468797804367163872302615763482009768172199267740481368515496231855739073450800085837500536759411305207250409641246617059372111972274519629559502154127335600536152910323555471459568429617451082351515145675477361119739534147889215805582266863775567982724820677572610163622547612644709823989306415691174641423198956359068323040206795795841636394874143307259535524957611880986727907448872340728972112838014997170349930142571258581675084721841468861824417235353536360286238750174072892003027202297692474737236221823823434656351145275597926058817259239235302303553370135496569340643626467992117904874379742594904962881968879769243361504043491086339340138406167646047917546049026373087181486990239314679065221472178426031001256741746693601743885115361566312896556975177026584527772861566157644009618531085194416097072594230907987146125016435375776686153003497461614845566194319377813009228984021161585639984632230627222087757142664690593234856188033635721366483336616086892756663372261180186143344005671681490194323365264374506905727425652575722975751841629318094060594356794954554294912067369846330034968416453754698084624852795390073626614624662681517156237112617718250595543667856747147492812515703527139420041059514969018985117530214705736255667699097179465339686442810189377225549315220393619842225860409737056000963283536120291147625171477528749049098330565704017295346414475011103160528867356241740726158026694473422534103196400216312895330860033334305219447098641843238911159586785810836041883085703779880654051442056458863837306940323687652751444651093922888051905765312845299095833930645664206596522499901743111853555079556874946994585683348613136933185872225181039197881967680677402096133101490403546867862730079731038291108394848066617919352128149632025510897938668847075549742699750427034370735438397841157829876665366220366645768837192078275330109214516439133723922199741305535491208251643236182782896214265158488168534145478408536711948005400438822035186509577872594286182315868647510734872172988969540898231613103131442700360814608228818180920315278766613081544299319951471654692609639859080968189165795428598199966935486227220039998734055447382042629977848352400153058786857487494838619951618374315404643045484574128287521448859757503068368051715939913121693002430804777241099395024628896410498717564866398789768392144684748239661637203228335901470964220629755275370658238420363250394356912150919493179131525301867286085113621014513693117394414761055130075645350857593651958249815915682181223183710645187524328318789306660281198796080984230956677415999051043325987303054438619509574405552646752948401686550729259672823010234243393832445213437901692794988113415095080013302266836261807807588299886691317478802848455499404834566066290161797053021102153605693219343933568920500185755379666538999735498992843712574425408954510138881382849254086751042263851813808500117944026454097359394567748524006834911897187753531491143086868405018059498137604677409516455272164156940009273168789659942397347849677576387448184637974753779092081206910071800655706498920754537527937777538755812360457191461351888360579257973741335654650532557247105245405179115153368799945892618069497251055434460449863433263239539162238998728283304844507150594534691649779322327139468064619465558042788256221486367393101276914790010465676585812217817754464606920257181946976161448040845822073874761536728284217339046191402739488637081277477435954526186677130932388917177611841035907613699425328400624826735950321534436024934895939914451227071899108980691063161197722021736366872349019349708546707475268126178740366269648638337631991489504986133534989888714987318231231924708135881482992386982521792749324598067281774349114555447866479853806715349069901546096526338919033275343797259159353601408172101144953926331439395184850316094286378194281269412860564273843950085065727530301126944946562671372187289140658651081121901545993441413154807922123553030555677078812047766640178584789365719705427821152641933488206191729798209634060888466208746163516052535039805303758224188922493148542784755606759262953653837022353761007867843930500960845328114923397811040857098198953520310079789103998021288831724176614370334368388259106179312142322736855620800621171537106444559962128927667068073337974622748763309229055777713405357280119718641210628651931030351810264389331196875829009577909733172139231042327080486121664268117859303925618661163245162626208379037588012547753859167639860656633120715556252959765527475695374240493430705250713421493659369235451796951299231605221223126880511165351769567619306690700879345451349105376924791527754145893483890523043381990664155705616343449319608377869711134133545513912960050888846029810914604083093086535711203833318391228920908373691551449773031329695513857345362681200404536196361754514595425046334348920070776266981093867250011895775256875734456655051465879563010932809997931921324589948113413231664815884281079650500002298215564267804465736689453695753520302624940229895367803120691253132311494511841963684394642440658429128353790776340833500622633465411705846789934926084817938845660700673576748005555500148473469815419851974200228189275482890580087334319355356926884216365591627096933442193349660777992969230356986274550972334377256227351957627793616237402609685135769121095976864714096944460758263577506720063097054060141838354808390776020386878501441570831948596342011414118718006655483528705978766970763703666776540424121894113351290410553411397560826446755943423606590680706891593562743108550656626899158310026543849281877579894705618260440742192193465811679175509257924805717285727695915463212365849882964565161876405328258882879033991342178512364905698709968490952880340355056262931325807915925292355926922192087850122091654570983917332068292554177201041598275705033951434245556126212624289764830396767735997557355126290777256012838668211698086806702448871585977734347490256724034028105622765256869381525591830413356180246323125698379699312631102014969520055760516172102150325476231392177778867908196791772950834589658121460336054370691272336941999246610627969840065700463887222183577063246947221436218324627653226981297353314926203366717714210939918860250753924404417695278994353419274668872280575259475167606939726454269607587715317894658322758925919727706644800203891035228753080003291804456419647495985358302889014060969437955928766180871985968151437772436890628957958711544740706366633788002088378491208887340466118842227659271648334936282485529364932244257944812176591585221040346025336962139777100555106311290420087905002619638491572065281593232199516411313389341321663956754489012037317015503373536830378174991003214907407759073687378940766075454277855674207860330244716506567666815513116047056993578427840562435775467840329641011597450636431672728185744056200975431055380033228408943604250068838308873848336384934534883676197685879604222316837105003205099329196933336636945795672084410687107985112002943499974892091625481390284966874253629654412550919975558877414185231691949124851723181078823061394697510815522787255395188349518367655308032040001938518162187633189118736565623198437362933516435443637227918985050464295429023621036135702984367963843546127612462362571084600250368009722506075428642982505005167472026982779362299412996712506500934924182332869044371378378405235727865939517446694784880749951350585399671429950480385703623664913763393730943905917115833011620983913732147248029615708560189364913614105239490591521569002354228551736324564362904192523160619976911509300327558378779821868233826887157252324249235311243371705071576684448251608243488403343352738222967430168545167218278717949004998157074714109249624662790803907120214562685667026455896939019992268733014700888404958946840980875931804865269411968341763840381523078097926458204496832320326709673652177214007982085508296738793274616317613890973113042044083393369645470600870309087570363692915086880000610733882454925354079923297647760110733556260519702583222896968820868200799281532869225016653610265701593310678735569912993373266898905027922247226676416044956565670044199887387757899488907267163637271084465057179084893283074341677383439193429165389366408919169572859058356376198091296597132084162663373874273024714812833530911755460303029537901684255404878325154469596550840062533303028634188959296430530490465659048777510342279900707291830585107383827593633744190664010973733328004730840666478346850427741107050287000740172952191895475493164208223107184922062536443407587078224190571469198618119079403226993802938868275423116229593972763871095240419358102183760757085305600740302322351809274523731133356363982953456825132232742774822596077060829967983303293137368400504957437363681044986393438747832892202592254921863091676339268541962598671455486259559644185172341961278785262130837589183010454170471645315057457786513666868398514794021894563352744537524966541481530984028683540833108714350653597748397610935354195891629769592242539055056352231286716539492891151766974142079662480375143121559987485363935132954495078284460333160302958179345412154670799446977801609253456213775904280757382591407748508327616566177327279256895401771184464352982986308595243230523005052655426923152073332436670065684728785609481528347507297434716379245787007803945791299157991159628285981672940796492269052361327996158466512822657034088821369353297752413115269067178811361527568557576087000064649268282834239325021278866968186050071594275644445684748170443321914427269403392081028494648279326755096457396235156672298828931726774376497741294662701046082147892456091046709203596329719504545193492798870851215952063719664011464526294921596110756470932545932932689166488565599700248991013811698354286912051672774066715278107957432868725254146954076707818353824416074829739407069419762592171949159899447140269110438946490177225068773646851947077167461664519846703583429008180624327888167108612486724300235087558338756673074314477196329356543117374887595836961439209960982799422240571804839394939964956066113705315560949099611895857120146679335479496065221761958155786655884967639948871744733131954530484763522414527413562495894679132082608819407808920687864161057699800505699134602688558847051656533675705324398588320256739267225544534273387635124532735511543579815088856172076144594308020944658688641701114796700638044224644821980704345247805083604859359179945842468112553594253958160086987837299204021151190251509164066679036704139190235509033191498163079432760661917084562941893782506829752040614474062698010434370122686486891796987593451035534176503136094041403009255066664708640671244919437099088695406436475993867856908311298314660592831422605481693696734260595318892608439404144330442425911948591136793312328897725242341080935469416697293107902011871375177168562819342353003137545965383533710568421486462395969823405927854790212195125897268604661411030730033001391062503130232818307604447933827684141896803831822800049832631127059145974837972027777802554661316350447769674932668494129732383365207648255665138282614977924754298913656129526438616722568117649252198455545879317517059597758420189540188695643766073671823429017559230154181643341972888602781140915917753898818948387394798244919280149767234127320723965257793490280638996190746759103090407678354627668939541866842618569044702066602952007548883932737597052358998319324167844090997576799199925451511925014185323179870860497825471508181260657495836274004958982643588049314375101852132260244898000403939448687008631654062362691247194659618469969273774929821210370107908177713220047161921224695371871891291710315738766145607825858016647159159779085979955701623423786147225223495666743640663946712909252287955210860055761004182919929363034174018310333107134394090288927976914539812846392600904684262072325327199866073340910947317209475288867446964589653524729101940673039917474833473396758715839790114699244163708483029791288098894345882108637692550383957721400103902400459055759230289626173646432168248121078031773066005456023926729722932495290115704369389154508023160721491128005774600675308208271296927310547345948466539545533478977952525362504279708439393132687285474961664759775399392788872796352085773549944383781803899312994474179724003116631328919762964408988440197339458969218622931493269922241014520435624064200015844141831038681807801030697618026901030050516867344782986964649248549828916326042539354237971671552929049017326115167634518671370454532396916115090579505016058203670074155751463842699416490160929607514341285428326367250971012361277570391037674269696108475610674736359878964210156814855846184409907606823615618372619660648183825186925870878357348087193691818398863026658748538149890164849227930496664840346720731423376409129433821521326054156055362740859568200485424657486927907730996141839698155296232179038240499749931200610508648802577133474956823866143822680029990062027551782074388059091240209674612262349046931920856900996275261996555246188815469510567163338675725490307314451846693971512876403157522235874934756298766573540527470843060330869614717328734708825391804673028643329947970525050123668291868656498466161205454156378118015237181605498037808637334242007597571688401752737609291794817668052350297666571496890509720979427020687269982501549025518845808815397246426243391944635960829389328850590082883690191392624501785474524530655456478992934011697990144996552519082968359313912898304018381721870964861922085668632356315887628032572589476864524193718255639414537028318995100015623805236007912298522548077843195040768414355249353802258210296404891915165898985155682715831874789261748405742403359585532301658299762126407514396860017197586135414006533068586818834367359009544984920782107588140400751993713458096331294984509831668424486595842656286568825080563784315933996953820742054549146179797418426984394579696293389315159984106170777786439797947192093856736463769962472282307242999351058095952993865332511849618603020694394728185701518641568191460273242918722082479592336477342532110188127295777998384981021923947468679147365772747870530383717613810987923466158690948983952014379809811578972831286500868676307258871276609747477198674275995864002952096407128293533450932269091115050383378276606997327152523353697220370647181971338554530297188631015377466283609301975615972375878108122023733674598525816664411379392053210066838456786633534826059898905535503057954947366573585024727782218292556831296132026460203866035552124152786937530773490041108833240947803284530586456533920709380242940312994630543564132403578420952942052966025239790282656392826574224390887086671963746145243932848401220893161008577687421515649962488924684347844198690202319023977817797246546905018365852143642601753066424736333357991775519349327776236388907425173148869144721761228121725467386083181405752059484290140013263362832044988319699771781317658690100893318275326281369467717276249815264826832863832187809344532462770135441126371817768808279291120465951510777349571361715651619152645466371267316521632527943833129287247058219811343697735642777699718427814184391266426997111162911935395196558189774440822852801893880431018046434777443717368853510014735187735170666862537691731413698155588666905664578948658951625762154114221831541656369811400705218772530178884722265918708478092847904312178708813182359571184951576608544520430274768008187854414797317212882971927439497238413662534716590656241005432667815768539043362237954952144330916594772822598305632492793827242502255290450476261294523394448207695838756871130387365268361194827697935656116222739290692846378174630785112424582579020039786946273215938901617153943442493226850952989589440370818716773696255809739849925170038389059446622691119369625081726560600307323017885916555760830380033103606079466489652667883939001180277643726959199153425766080746317072844109112378094761796524204410345553828663542246745741819786944925328552162115088546008954737558558139711828303756645633251127434300034888148603703279816978845455295140493347878472888375796321213791615157089266526565643667065069737037461501389146149498959204605139342775759029816807277580176988007590723010361145810160319800730937441209063551973449323731797543493994386852243178137308004958887248815994060428083843936849850980696094961743136624736267193167313191669846070526108372709843477104097515476564182108924392047674837446837591064219046730225797185136835070053907202569747973132936735218708282203682376233480774162138329522138172264637236816108814874200803791520478653166846059440682013577112293726326363861099389993274781453204695777621038406980653995836568280886207973647723547245060497623105128676777325635587302908598571946865131988163095716237612515025024112124783405789129271812806335806418552121254659154978129360438050379105743082138041239640501191996349398062717103097459253199108300119725615696246391174394804226402636725246800902600492846805683102766808193245305870757347987658243161670866416785774979241577125118077566231730380639027584423231271307057280142206993028185630749497075456220748152538524063544095466850988632500799485120210908615364939311347787625245111813008231544809315070287640627923450524631178891541638955690699411943873119530488686160925614863350882615673490356592953806645933219618943040109982136510440972086967832697351483637015876709116459075962675507787005810704574761731079772395564969391265766166757625742824780173271508627270315129829613082017126666347610250103032091510368114602147778623918882492639833336372898170686160667049658459181660228670686974930900431887771217214540180638011229442112013249487857182126041464342647542367896837280515953254151709509997391789127288707405441540212852290644057672388163686700629435398217035176077111011040024580326898650558874661596677935001610846545826247555431237934147590690143365998226294184630881036404229550288702493672234098733158060075398719920956657589695438248736688264294588585986799243179192400197046538813007055761764978206566569717994726921881693671164386912168082433518621286072523943942365370732640755083562098153167594885352798254104187145696706589793436070260536373923052368495878335154892089703771382584769773460899517675929457693777778752371708217570086944054512979840883218839113868483074823545308900390448681555162797063240796383500842960761820371771850836759631287423243184266566312039164990103788212357432126462817827141420769042490576766017895602069764225599196713201310399392673846865867904791576299489781716993368032780626792604699014309004711677498831679935057292553591571814868538227711783243267071522516399057400107769803110117702311233574193064619033328283415671866941494629339290957481678534106631323832181224164710184708205177715871014211742174970476850148406840552524717202670312487594233468307456019188765550444020275405637614281900771337232124849843026584783090772971138639675923902743150116840138372044153110067276405097157332310845622870584836146463216985167402507210894918207862054402655876442824960410412344736067604748726208167338158649847297226622742346727554568606900955753688817998663491789820091374895644397104319728932762483778010221171852573287281724172877900271877660414105198391373720364744629454466626748531088623966612354446107443233071544539654951311903481955946922019080810846405536846600807236592449590021342296018386805736783109461701417240167680226666194060912685113468261336728903628085525799307487662899081723297126901686415787969576698597691969592432333521058148867472338612157345903821259702212393127909719093333420688663095284565444853728568635753154356479569002692038616399116457343957382836153860314141246474930958371978966737696954187180731279399591548030984197511157044212336970585855013852619040658561322768074976570835203259184825339324028637158554265747807972885390034659713538184823743650889194377976875362204545906902294145914449982791473340780203974875460456405709923795068652906366974808965521500668875046762760366305405351263940453727887163497013611274421933248881929751079641512119134058834050558921903652246004723074405027036877178584856727226026615570521424337255135652602600054697397787827966691883700396972443802655879479529362397809284413047766633195076498161742415927428589777507696437762644431285896142326977699783481583752390126862924853375377176660200970386872625700093280563793512088455629738366822377123248697307177869084070877484328432746497751050299878847184909443164817729976575349321317291622718917222350256290605046374776576186777161876886298434836470000635418824305121767138931654099948644818819104667198973447904439872720649364254527332824293585398476746874993892659211410130652870019997702154294762337668976971538997681586507947414757613681838446713896121096712779836530621321530943602443821953998840121505519448720447399514848395285878974012886217980542659456355025010650207669118171555060140279743922150340227780359978783043495583664524951324054993828842685201350979267443345098472261018262687062513431165743343526424184395194707020623437669690975449138324387369043771789459724255884937799531325758157147936133744565315244131667545478606560938484919769582084452756710348425969861243306030503900976885408577359436484234111349990477763036200455897740468737919192393131179313925415641753285572321925369941893696050981787858787451309435861158689741930557719127833531162925325088662559610306912705812464509692041531397524883951310763228417050078227403451779770806556142889015956482836066352897066283377923249837431283664600146932819044775641694249647189817560395556932563094043989769587180425198115577478304468542862982792785489142392264046810181111767740683106107520531004728448335409214694289348714069592089811243160531506290036407711467719685827659847046156160699722093514258085570748061921800140961720867411130409741944002640931466031113649081571282200336108930175661209921855369984340277694997657772138473069122416103583250677379792588563008483228810558900382738388160372783557012633700325438476739833312921738729619072913352972167025636211021391766103551707793383145390459620344098989588730885214332905418459439203846954230153099791887816444882727921275719715216820436169820060030318222050522269882527016444298740598779295074479710331174482782146587757543605881612837392711970624361987167964160978130701781564801348973347598677871465127617891941773535451248548582231260190072291524814231853084340288760891101129302145799654452438075765970564519321710158723321431194233332602281146808461699831124709543809230773968994527231615999525144947227459053075889324981068956644049758762358594776721255734621556036893791283163568027026330575319332248211444491351323266017111981438829576980351294339867039587611653549483123333332473229876847362394853045156422835508226068305328504337319549783395804364523669856218135526565596914197622786276832414629060430347135886657580207702705348089171439367686192091672295712386397495113326035949405991593509542469012673045989775459426803023344237127263809275703199121430520392084670293315918136132507053163119422602636675915079983123161568328627158557742231683099948323816576404556074730220514772211564323744991226084269937955568266012099359182476613566265100760542970472378527713388404751249813506841978585194123565268059393563091809561746495388054033605658239829846341898827089749988756411267860029628434043921281506955112039256480345298020798724187681768801878069741317949381078215443861074365525561568933310614631190162338349523803129864626257820369051990131353673505627598015341636043143951214654149443622716784361807297401987585398442995551669159161785900798362220362659797639914096215767422752327848794539323640822535914146591966817334740079491182025193430770719430761897859500638709169957254579457824999893394701674866394006588538626801553817131570446634150747678032677900727702913736725112461749475496753779467072770370660947031099550201083479516418261204636287185663125257263514119452034151182151251971012548202958420441448437239739735685816521894921540009139538324339601301504027946598568357466362072232305810111916108110285175615892692201538593233996307363572445189073131989417706623527794727470348428767635465873991110721914469059449107131129182758434629255149431019917868171317774391063720726946763412886510571674890695263750194544548171469418208745813282818496316174119859012696875794084324011033112132990809735870764241933208914576525349148662273175561426984103543250534913007271492479815399529365860224838553845950234261250198699949121749108403282758186108249922433471931798141590212270915541187262964001568131430784551492501424664009871190311240029528185821342676036972809759182866837209327438569410143417295946284146235898320229602897081619400108872820081443370923391328187310107114608697199960367384521701533824429563709710909477625629320003769926693929216984234146663422811957666134006864540199469419339330277376683356883457649767388988743668915834583341513119474333918101113401519375425979897933549893104150827516293828697451053072414270379376156348706210566427009491041215034893325176639215985234875884464684323002416731489786644426306601111738888518278417316137673016410613539723237626125228209075546813885233020481394835714136803478480205536690693030019385106195725484973607657197660796932058750477608564312091355255322796564907978906151375990244534368808076358661056567160841168824256263489927047819868543338198724923002924769896614849068904786362867771839604318017386479848189500184535713481018116467763811792314495418027768789735862389899156419641822093300930910327683294610237252622556147324653146957459206765815998108267882395865973156953251505179266638594536170723409982634288814915791769868051407421618668376480869950359306220525209032877448673425246525583070420667972316748251033099339725147211058117487298314463665247893640865310685908456683464989687821086115223596431178590457216719045329695754223756759727219259120986122923479736781414237830797090451556944659267840457256153280742740513536802714437569868589541100172829719112282062579436316938482266754744618875777324706687457745974011303804230430958019552153108824872323143147723504520747810981926320135285106921073354044671996681125304956674759517894779692288801709347685243589159201250839139090040317269481987488337855015239913739321671213523389199406973663916397524466312379820366759639219056786068053638040993359472767633508093182250114007702952077556941622053358042051618789541644641487544998704092662176087791751811923640081338195519800359226761651762330869499827871613874550081075541988291741209039336226999080637406400513901289672626928985923519450300575716061091116061142300500998156480948136516370539015162442831165673547369985268842888107013490670061580973006563461479697010914043646079532991428944384224910097251587559756645894595194550314109728547912664703357911333220249921942201981385058767631692812922590587749984739299518787026190466480400567818409781897791398383929832726682033361964346597813212962376966669980691264601649700728657710236517254947314390320512687183242938786413756932683103510927843313732993373545089580634070529123165259554821549082173359361386822124185872042402804898016937610860027540524462451288472794240531651840649245399110558085462963231911464416784005199761501837224317920930391149084235584848527187199610243972649913367872789797823682112508412565674997866194099498573770910128077616764233216016100986578862002630438798150549893521783228941252234787720415236064117835651852093952678684360166192106191891906791498045318145699611409101288554838772973708745462792667812772761510905691194722005010066753420032167900059379644501257694268636669452677251775102380010713575401631928298088052111559527005399609772630034924671786170247362934525554640304748512635448616774422608573043983176474804626377801702914901252788451819090418115491881033233838902609279906459053329106208521226059193083815241650085849876934393753674756968817398825600966335573094591060709414244541743488057482163349390457555421717736715436948095812406914154229043823417946572906892665703803670898720523326920350844992568900643766846309935088751112922743637105740409006569783500657918115001819282549220136196218254936324566187548267569314034258355850338207665292775040294415644035402125521066035856948973798951294637238604843576766299215411409903776105117033514212091828238047896278090786677111591225894641806128888799561033116051172818778218557672931154433196209595637369088606193316547207188452474369031680799866727442735460114549085229026228921661519554700145831258445776980879988040142411870129964162745776151743850849141806522430044461467383254584440497511427746876445941380708027468044649956872963355063021298992570353774914978614598824135247522890667808273685403754214701713723251684874811479424704165505292987176862959170222206869910813232226523491115229975553572045417677866536072415245486436240254031950534476759373105399200585754609829261250619239198485259604346385206724787037525473364784878173252317671381877655874437694299008586343468424920993283008851391453320256095792083522598565397308903194027946442745935796712274390647394365187094849322082613203113252686818542778222279187856568753949748508544737724821807743963450221712116672510308448008972123225338421797326469052640567890285594521623108061930738624182894736788243852910809508320228358251059266607635601111129507160423295096382239980733901663157740524091541677042378223012226286737956475867932364825731748190614367839325512534908081561267542104616321089213655053805201681430611460610486245890976851489412760710323559024102072529506530258948036044901491613564970891026338623585297383954909581277987272620057650044237465787435884346743703308911039696937794060614636962045305643076472399651901240700715599921440402678898623805564324922459782812640546717549116991561808033092416323906926272163041617743006882241661354525294405894720144229873661967068165313721494315508122189206799160762900394713770068463672873564713513317256242061350058897957940299454092915371552352021970649727256182967274137579656505400616049832764497261100698224988273298725295150949887901991252001010728446159993258380902823674850902480240451564717923913680770860100084508451954240119250015984994088749360303396257805387700713620505151376234001367452377241753915510365965741313991330855418222567975393795031929803812449019240797653148162886239259471666547096642365270110025943446340821068622914611857862275392159195657005189782457089373125510519016753682712902300947261896193472917912424398530412165523006859310252107839014971201715750500399821666146180340149737219998239121961176873105497102757455165720564895156223403837639916712591377875779073806464735600182611035043415025235566746873778407388393022944728891692892186172296311892378447323659980089559176742929334176981553791423335965336342977823195893124381567283991266193316779233817955586319890514494478141043118411660347900903706876709572813726720326777601779521850186263633006009941421763345338776552479364403406000681916741577054319601048375324877815766215012614911854485503774742540381685953196088465611864292938126218586038231133711223195140227513990082936646218348100322812045338284783012129808945652452288188118065685901492872292250888242363569740149018907798668749363578489973479814918277682134614429732361814829976401484124534478921772998560064648595867409442045343906388059236745779095609685477418269633385237002264420086569710520876104377871069031026088522432614553719435683457950982779282411664549089118900075875794085378568236458087953444961897725758015728952669143434776978330299418364653940346011513670893950445376038627410190443253055657226749878363488916221345346470244396115973517794244547335212146718249279886111284151010102702912918061012454110784895034625789652770528685685365442165954603012619346867628353834397710013439491586620718398711128653967904682336979243501922545965804663589692641092305416323982686291599140206739010611916146787517721362874800741026781580128359501608208704002706747319457242525493571059089943185941705655177378177931370196356048226942974611952670386893352634351695018197973837231939286022179110412713038613455992972585575950728350561949327572738199201803660733187694598633296611429068401370456349261613879180870057269326763355547564962911918535967825605347647545561301946337450744246215667124306442531700801215072366681988835118741076822301541059443349508036532953786951499998410607276475782603676621541353000916979831755700210922058506085968117236485735304586393715296655043283547149718060535211467174373793891674497340969208227720308133140597037518314582674409999197134946192815262363543059167119897199670298282376659283130503355829149353154877771755883176830725509368051591801292189156370167000563873455195023047802853443057719147967610013288690653245259238726839937767259714180136327124285344525868534326031349079656295998602422056181256221149497347131801885502353160511088876149233971572203488642478863876649022834268169310010563212958468252907731375497537295162175656593857550891245896450580063626966123262086892602091703041735094006595422926329848118480138187141408345307095166556025276662154312413964191149512245989665821245591796365221214152841315654170298188449644084221201482326395232130689090966460110618095575237399873969999000722915515974072503658187195055500371054044843054810505849555814463945876009679832199842959433264540251397694150682153275408155494889643144447892582539102131285858890390362482420264090271504370408502294857193409749766506805284896231606958565019478199301409012179021084281475417150232100313575715843716396480358465736773388514177344628028403172287801439367560263741627325121791570921671927272942940387389536025197005584447410251641277671983053388474911937539728804223884078358135765548973752714731026657171228314718637638156024193479419909666733458619878369121099016791705815570692789433056576421107053285162293288189315167436496295723640946899751732047224907119638852672810666479982791351552392274105605728732219322739891629658185411644981883621756691965661712852714752326600120899307194102630502762891054501665023453033926382364402653856566578901938705725640140056625084479645025207754071016159444021351223975215035833012623866926887952014524690893215888509891098595565557387264264332727363223512390347146024749595169095058461951643890181146137786717518869640600685703103417538696418465891603173099048798765105427703075443905425918006718849513023846675614040527015017952131711074377676147976313681956510769623393606435813610784114673936106483505190776225547902784068933571788804093224809174537247452910722081986464413939789583148577092325980710072807635849693203092741276657125151703519833615133099422475546173958678018023428562374778780900890041664618311238381156438137345432419960734691935234702365113017767286557152383140656287991312779184319690357054533207674151432650482315048286981436987080853256460776682176636654536614488691465783234613467218565763608576752335897057684067163158148160552390066783372970755931977445468204357693596197332907259508717587165037816745192928439119037374389840531963879914455231438717948651439268798970951572378807685279693109515409872179662702375538434218983857385442553112324415803026625745834450195291638838022828253628373810452668314027440227333933055442982280881163185446179318865622854777023240540965745742168240127469735309108764189252879377284320158830095598099238520433104252267368685177174221142024214771361213607460543841139110318882168925790114155450915695299713570296592052431182306279562436111407371552280471715121943267349417081727665232927966242617879731628296549545860602610619950000851716590900966927521658191492929467825634874971894792734800150107602112864954200498834098177692689046405623931953121846273729122184499807536897079254903529476050197721385566337540947204142622602871038938620358268343035404275289341393021597707595469128805984911160104565770769137815061828587631374168229238990791621948722085787610526095047691390018537771947461416785503474353651985854037320495713285678801387560924629827106454733564054843331242328927772839550510729787432901056603364009437861947369538116127869747946682640771353228270419031340461376986774019923879711666445502812302302063580025435938546410858862616812239287530420213907831754861094026574580282457631777573986037765437244977709615184071714027306619912286019814943722324364697850554055132365333492819601284038830688420001488783521700116313512219503164743902654970203714473218894532856378740898350984895266072922658072988852950239068269401526755654953048147036342329156498638543483195089043173465429328455496167189769256813109913360277278298249159716330570519528588422508002710030294882884564460701436693941435683632818640922555842863240115903851145046971661769486109269472465482601488049652797229800924403472309890747763246710401690038751056706643863161189794013598501895742254689869166030073963764849969709076158291515571662092215518595492231005142323651653390673511037309509439732148977653948756272796226198445724962434002734983876513078280871640587743022197491314037877220113899041188246936512493422147707330858859704818006941470854563780000908819017727216075611862488798330176058559199808630885263733337906183928396085401326067605429927412143583067985441619476980425211695992625229570257775691656945434515620875380727424293134453373515287956016815145888497090785210507279496083133617330883563490298352304180586439959104516853374365853268136816413170428924279325363646614121517417738682071990512005278559703027813744445664685926561174996146339470945139280067990391964593275517536919057332292815341209633689992732889353381070508512416210141095308956107855578113778741729054921212883850100161608074326331757707317042335972224033493768355809336557241026521794558525841725987300501375508047519039367215576781762552285705348464442835133155099107099308870882403201115709623076124057063011887474291143051722789640589516977595835203312231974493656630154307275098503381021840840803454678024839598317340747502522622339028851181676733554200397945798450549262773500356170770264789476618914777869113507084738673549470643512908295838128606875710005881365902044120090177570972107721291514771273182116295665416839175941738794038696629836215141653569483101962287177436173211777142318888112404900596731380361081062937861293114388659515016489732095661005064255385633693016875293719039836326844383861749241824288061882085820467406690933058202456252832570296686547062807764479557981301851865538066599376518999964799074641365814319722654595844431373898033413291974650607185241413364222856628532944299659436083686714205498989507339840912744086803994703525134617828205627638697694798672727604618558245596313574159707798946654477474223979089576372204814988260155630767328420934785406021956681393789789128361926635082396623416841813460884834662822680699578018441607900527780113324624611618991160619490311007524517219728395947702154642969183632607127178939621652187127120095912277803668518838468965256962041543164896699578046560006035039096861394610600330326984624493435798550242419420582694821349717363922238979914436986584591541983486932751864736789251273513093351227032929955822098221953121268772145531261317888607633300653747475249984902173259614241439984683221207095891788475524339936422786014358721341239679862812961107920844355180238716219957725570771389769856601645179717153478836758212152029198012960321238037697662650626704405479006835889350876719867911045886470668104324274356576036470770051968781327960473010458049736160504045204904413963259194818352498855319366440182785625354549089004550427418917854051940493764850164509732758626018465466460276437139503621861924273525804588994908676843739272041568941807286121244981475353051003833010989150162218408931374351390374049851124407609401482675324130248947289758545597609076423776639878191597041421434174013524416727145153639671364559871995243887712621781375468117020083514651818907203139003774365149458711142974075295028531011206975702360469624743369100212555658524954014958626038752894784140420246543831456267987943859989300689835675987761090916269383966520056672510138977015074282578965031826377805834189002770791467920802512903752398119571510996545918973933453674286843679728077484645587333837806227281624232179431740406004131621977526382683720275588545837682175083812125690080459022452185944924189731020906443183288480784382805738062346249116012513713799817288314217635412579156842163057793581809463043145393635521753237366518487220154804477759455938993516074978986156930553836892960923779855354091759294438722805097546702451625930051011547796509542493501157512314115026959476080982530542447693956283950734280578646237633906257544189730142249566045006332466311254355695894078953753608086919800661447829935844021195846299650901301133123105199405393393915103515502287818737518900831006487405210727208484759513698644077564285811554423254284782192892781054613839972035829234759080511556353463009427616789788292407513779655459522440114974540788268918325063341497575617178548548925459674626338553608452567343652388586501909481908322632909958908029344900104872482555726704975916670078062998298630834003395414283184745524663809243138731716830538954906380127388803194757368898822844664638822306952841983232230027958498027356180573962759814927842025481609744670912861728758491149646437157922932336448511278532986110407490271612016740402906259387290254488752628307709601320739669178361846199165787915432375973797361918514956187406495456872602677971083627919155384045179598097565719238368266418326299879357952523664402056611176401540604050262459652653400059850373807160672863142080396787620283484595891557912010936727020648909342688772937035929707454935085948474339391250467584833841915972369898205282039516228867713505797623413840188161013227928524328902736744156979347536902580925136036343723895543194301334442669921137997244505114771027597518413521388656621719953527166874911786529546748221702448059375565387658515341758860041281868640070210856914131984503386743174903139689296871282377022302052990801515324516679411435967142318641540728422423747905979366789840836515407566626187278289569911364832558469231588161902804678516609800888132687537420995950973504589548243005625880250667335111726753066720487714567755160085412907678740710084467596221403488475967468867225092960430409605276000714577123620467461762633404385121984555148821041837297726749944092074835803311157979908878488168766759550429600658294663777712685621304799212706040258451207527028767035164792385625648567375022183271860144164297761257459717623885210718035424671714510439223007927201300176647819818940777945283595630809031716509402802652499316073002149717003221494188549051031455294544412533129121521293007839994432275939499366238062561964138620702927769484471258060964127664492471990041938320915713175001864960549548106588901825625399438640489668870664728257918419688466606743018112899097059664749177380562244137072408736031134133619656066546011245644355079988203484034842694462017748528839664695062311826138334021760052080892574177863040882001855581302962614334485347555698504777402978146838443295369830554598785505504427911563931712335965793932616426236987344746109371881088893658988009085467921383914527889175669855834412371510710537354491234488881077187512627566458392403352006448565212789211430796436746050024189382992949227084145691544391602537703775168769388516650044793819865776598900575736392786895523641286215665429021427387779381323612444276988720494487693136124137007674349377427536159482168134939735752969246954389368489062794018418195857211604842318875365629873318428659107756943302826456173508324481950315320133163785473417702484598610709623080835677626007081406341716685936689965998323839581016606466100704833232128411323005808075773858681007816890336913211367400912706211128225842559583051193903676944838670812586998865948497651874632261754364641270186025341213820626779620895989483025248375188112917794662300211494080288420137977856833340273989944401164544754549486310385560815347886677744224779239961529485222230026644989224876630080305483998645180322681266787976450072794417341650069467618504450212907802612855510825377269341090000867903078254642799419567725947109818515306766313445467126194849392558202385108422111996925764443623040194892849767128399514736885164336985942451944997844262910881156287966769679416523785379433611577489576953174923331473687887179286252577760641006588241645580979265169579109243575605776877589713942611912067647934439153586917161880075074640652701838120226014384574956353880673058808891015025617221553203648835839170333869470132262302322899267670767580692677463341798416178323231289597439773509074701818509721928493096580448753535381491422460816693721327712329264293243261436527573591650595014652950327171019112513865574079269656463539042779641196561979053607317144735765005908843274517621754171818297529421661104416423015640556863622075305439023319018997271619949388090958441973017190403924751054779018015307160675011391901744702284848795781654455437127231467842058145530244139675701296668887065055617707025407202153756882917100687400010434455099618690067762263691055787011902918911771677392920777700535182347408009065917018227631034593970830695536185517698020215332647444648152510969149968734563289810778471876062688479179452679713002607235322437857555784202194358948132265650222620981075892073887527524847982235536806318771189798093107176327205577977980426199738053186906130951656600339058297383298212271110484965618700137877812207992498967220150706825192237422931882953312161743476016359957273384746176003297390811295769483352528969855731011599422574079309316164166605703125830005396739252738074563191568589107023671092798209988824429462211948614932611775118048368148886311003929332603026902598482498192510582663070741417531389716326243768263259729909890241882355970732581896081959433610366166740449730061423452623962502159425475039282781242977818958531106016115824047400950964565787601314897617138621618887278363870359356076078835021128508683424386852848787867202900908706603097854738498171142424742182473703931166703505449995104112929530274129148028802873545234526197049841770256913596440912855589933021574415277587363002183418864822502741465277403060204871651932375408714060564359358999219571726165558084863668071893353985509735938685928727966317931008937748071247918947155693646770947337884099915350986485371443100823671591082164358408184744367954012309124132624680092918993443035127415470613885116775381897146860063698906050423276140967900252107562208122965406307491072091514195178108541172796417484160927294311456733863310914393328221479992206269385658164110867399734833548908015116245127787014067270067733295402432728991109616075885235224994809691820747521975234017660214875820194243817954430855781370035403506696285718997480591132708972186494889451022827501110787739366477825409282748410446767360507294703211113245481280429381001851461262249879069194778906706438151498642358066635507066614147032363296292499908450837012877588173420287760685626169756330590592348333132516429924067861098992689725354107023897403104371933998492293949750300896681673418975838449490366666303410389698322569490339678202985320021334515223265587303629151883384097073620685975694025500344714170147864596810513087891729044626120923722698562276879159874342192372776550393626596363732290086648056965691105237307689208838007198793992758622354377349024049944038935564935572280105092185953606005513259652886876522189783125948967848365350316687432001848291843566607746737828090132968189945590945976580488022770841857077539444243212228460203426844165669383481994535270963639575262145785245026851008798080712089819315235860440176481816065713222005792758786393011640346721137022809767800940579647246234790852951657160364213894957278055010040913412647173916262800321203036640459359990058258750626152662575736401898844460214248054891926064495780072027739879512749938548948097489402048895075507794542153998039094440010082295797893662629598746058071589183848871751573010446968473267953971270037976289719099754350519500506989530018152202390742707720629717506367993021391030501268296248897799791183947415216505361194578762545547619322240820770736604934445193357708713858100617934381338929810399253646311005331470236682236549359915882026680844569333660378169880444791072443808120620270980975784083718308669838976411548525392858276009289169084269714322041751923423954855931678440120290977771342234686484793551492341962606425627813636070472839167885595648028092403659486852420299836129476835218142274437762044027961395904127764746497727101302715866467385797299384113768235704387061582559826148307922016721075426172322921930789938943224405705239864381329593269402731251891816649864432040934073461253343804066268716814818162859526265286886736435452405754378844044291301223671718342112246155227875031335909122120221134354699222286290698140119742358202149016586604756371030767965577267225213640031387747978663477219109803556309688803012126458158505450017824026585846906211408270421409433808674603530680676764570914435636243134147386192679043313876669174213332491253299476127196565973078953630002060375700026480613752173662127780553478964058327713685931499383663532924690701468696300256193819507213404546721751258086502676072071899806634795631813465394825022842330222949421982127111318230813043193993923531884574266667001767704871889849379177987001818239972413422895507715731414781870422614245310792690231004407364423274976476445245420880204658456908225386847386552640950886606891717697185340129918990722219751201137833345573317389782164523954372613426133320340930193184460803751031737000286170186870568820584952537530392545363726526983898923925429290614428087953241840379042537323398328913149431110995006526413870748016794218070760710750097480663493522326399222946123954336604309027336859550413881562978604887744118967539891479850097853483113971254558511997274579572179039423583918563713296436787429689895998991225647918359909463003011205353059883821739937830687704364084857619462464636839015925819049293665596846953298479469919986755608017166230199239121962980051156792298857891387933285788640268039004069991949144018739377164876613426701240964439849672544529824635855256503170011234309403791631737837959395653134206698706418962811193689503911291795468204678992062304652079436493362104703395993275457957508698378247606747026690808362585323328650578016318381938570877284129291193230979387233320462936018210712194313714971456901279907333460598762215455348816454857116664856151942812038736917600804888844427856376628663346267182317928986983085202752946062431947224533294339529788290924797111397299727355510009304182485157592393419426734142080943854619912247586383609554668155530563599837149738228181575714142228408905194707839368176460724190908327383516509306348280740614789064379792726083271941553665691726152512083198132576413778518032682499715342826440292087082602331925107821783461221942506341825067631698507713238721367050783916049377657779726284099880211284190680012882345238559704208852319956080361119362002359560306019382426306269082431318896163910321815491544021401455982526420452380954638691773460546306580888021748051770939616529222954413313177510996146518648695442648561509403745607529572036066838663484531258538645008273147326110388674767078419105415120419941794920170871478420638053502251413717226383175629745885318995363508120859188660788028282867885297814767297179994067736612444939219598045182666908829043470518764267752445643810730749483698122914245541950418384082035664665434330090252235873684355769686465254127533296840092514050276363292839770498885994165511746035686162206561748122635738398277949325855253934371472322187969452907719400097742157512543271344054470496192147898509452540493977049336385718403501542495653342922899309467599840133679825645618340696025317074689048202961460522399229612477918140430040187694231699130135016111632196679778047321536042682909478176992610874180625057426692065012672559563254972219150559591098060585088493071739143694774295246553738753669619926508914754308512637759808594502980087335978032757219690931690401347648132221992597599630257860849614227781572712054443989403761604213225630081535669500977030883310850020435481496300524467276980036842305965584062037519430563128795938943192267215196000376770041254466551919918756684205191428060595546954191790827529409866318029438407829834820407181852471148201053497103797554378884187380031063537690192484960537722341533523277984807678419250065478230451896622038070932845607734372449307918262975608925476446196770908020314610509117160181672048545222090900563190724976628461471345007889559479460306691105787812023150218584853577778322043158268703137708228349322554867324369763437262837727970831022055702505317030527378777107103437603796944962121145768833004552743892107842427122267399882415767461725370335144237627281610184915313671650580890474650132388261171109979789957044946667820385946778507489512459323824156355233910580564731346726168104547453189504263391970032927895503477938696227102545568827801313021647562031181604675888806756363901197296525389640123941392614574489739701795438195586121407843923701732826651283059714129754850494537414033771470967338568200543738854350689830662616115153819699748510903674160912739299649408819207494051017343965209342623475987734892302221182401512569520043549348686477446096252674090867811890259325233424214770121981466433012146212625793548476053201606635349347482504562652960835570928681668695635061068356610594760282300883404501194350224770130540364315080974803895688650406362236652749890488075033460419205978681553703609321585317326296165223801482543433116070966439302483430596840600343303458125308528843303902452602510641716153466217659705084509076838832342458659333701401628132566043357236976457609124188274887962734762392969885515814245744665670670898039301362593068014799156838582433420264519891874389172256482631283975403566653008446419545647693884713646240031014754509902227356173405528918552341988299933985554595803083179378392029576532865512209255997934308159762163608528437340552672134309726249433299850692772592599080838197679902235711501543642680391741915279946360125086935581699004364579093376506582952393211676268156192559942421453247399583825041782009376515162453360098208399279141621280424948204385365804552900086747640978354819183593993755384505123058153658999952670222177300685729898541136332780374555686544158831339184876280355793487215576569593496122432392741757627467476448891735559561149334297975083535660097428048461204985373748563070789572547663186238761109899662204795449150356819767532145977821106787616848917779437189244324437241746943436758696962071476448574123003590418067554697361839866009943181070439621258993003327858297398241051867045809828779579935716477119203682591760861272102026028609128387396630908772356280742937045397661808294857351673125877242192406384822029380899407983066076715620080357821800844488537290652923563983973774376524843837856525341977135369519884587057056480665010455205642956509555896230034780207036156748359313868799364128385772925100930221884402995018931896397930166825017492127969211309805006727243551446702228617537313149600160373531505227176752790962405884435200011957686292325051534862375366988802829800571309068251822571474210587571809974363548290341373423758576995331619616673008401493530039039383361995174342791180830636878487864491348301419994650647582005992191428333427709938081511844973085271219831359355791029984950702240038578467917698597369953600939338136694063684989537817837868148151773150426088594893217565433847585624423972315569985571524457835788326317409739501216518758773098788269108220295004481937451035003943932394162924289740560840129877425639472589566283868478131259499726692228678753019956001267209078640280176706032964620724115720523391700350816243159925847944974821721789890559076459100386787864123528805253736412883406072270875538816386171513391365145358172279357689702993446180446127687012908461775908884781139046861587970617360190448708696859056282644007750857542218069861182405482626586570753076918253041116553354653044951328316117480438998209779412772123320122227992817137138341583156326395449415965675767025768082405907614572444261405882886527268764978213191345149285385482973230373801048831812866334237525252895422006662549509840096322740689756048007504302317715599241266949709081547474041223896375802026577959358659782690465154570091307596507049086470006968694363189637222548931273813339117621447424018815620088743886403706188523842777699049394845266772405709970953359200208615137339535343609681048494990327521208342589467979690756688211199405446410332080118578705949175123813610705631593869584496076549954436126433137187453495338205711690757028405661124337244512347813926260626075004083877091902661304607896931167390641261736139269663350395484611449392238941749767830897235664906695432191442592970997392082921019815114772388513134112558006943936349252973212826578400852567270834173520429531210891401398213373243483454520497952232325497710035796342086506319803933293755242669103655989754876116268826058811949159093498106295960928754507369744032979494055152823344880442099830884616557380843107307553529572928648301598601108144206024261697097830641623711681141763708947648381355770052979865427399564995224083998473824092935073856744395338432284714864716012088003293335318194348457583268615124448436038527474630946912626467243910880066199377904400089435462580208288735319178324625709573153440340045821467422968196726125133882585480848892018569801060047881599108298094468752296520543553757130988336335463354088323179975880455887613952293788912017858051122307653410581696675668368323278008910704983478104174067571758717201846031065385246253618816814080418459662150841007607571490732950046532132319474457778532629527727375545303964106122280591989870456116831993628680410194455157673207989834492419544550673411836221123164054788272729410172555952929219305001550072610776611232157422851441159585418694830116737773270291068560434031076827521797159870280466950512171138124286728610458640569952579867009187950634470137312674230353089172267794030205684695576766448996755305858717224871238118091141694607705188811712794572487438325910005132990880410659578497720084680581211783811229188402058688398028074061198634291159791923305042809990464578896394123213824672957745011812533028026701971087082885638928278633666056066807311365719376996230251530234179028811231210128604694154861549737484751744080313199201360390557901812430985400111772494809303285778995643071842397296370296248578089271071895511723504668916599732038157250563322705166703354823212838634614501130812065992991586501204510804784865645517830244880362932206695724044818208831715541772862659989549542828314276342943520330680181834231469786250793014962203859933969661925407447730795234216436421988051806388207690602980964097450612893660311152252084492750547725596788144154813929299480110916380388711724531795145558332767867476911844290912436603350284934545123025399837819244594780722399812722876933171939928652714592882691320144582387626264864663845182446226129501693733798035609468665833650064863837527787031832613216108836579189543494970747604247229818888022471234351739611942340444053635252928684506136381477276748207108519781749381929899851323937937307204103796369238157230381528618428230656020890476097001389075732176996512436225414508388616912859072256747610675226496286339037209702964133313681528845074680324256119730051650404378223858097722388152176162049234912512725333487133461208486892600615219617063135093373202199158052621138650736440755185968608675547778309762285289029774337303961565161767098485942371875921585738495206860337090688337376973831207088553380491334687828931924723361055157547237197148878435332705802540987579384278486565496953318843587434942406562024656095552668246601217981409561962534673287508633038374867421070939936830856984752710654668647102697221416081708875659892940726417129404500406237912912241925253036343633300428901887046726571351277513020490837115624776095824336193475230250363466581607561795564185585810903479563204408208289448248272295970728384143631154773979535211085289049674567951076569216164640329682474454553282128746250776715417051918054696057025678466231724708716115841380669134336114948669684377157770550409544894438145546977856694169813336079980903904580960492775360245870505460418841353700065892319418492827942044367295696304064482428324931958363480521053290359260704366153273100838301305205144032995329192603171513689379193607245660311578379492676616028047823267936983504956926964262167977519564056913463509202318021684383141916312179167381186790550899282880487248347937276737275600527897053292802157995068918778101433606407391706152816388902545857367937577471019393342909510097729633487849356938912644675832024914305876071504618360985427572561612159350592984123353083653064088314442955218615231802311492483247218378720414037807886871350366519198151706876458176162548257346632491561130159642437466352162217768121858548391558460801011273015088358060370662669503557890830311608108838137549556078728765402370187984435953575319910900467337244950813594966145314171302150156227662913588930807325230728921220324249421140932964369669429436332066222770782852742248634243857124560292775094111212450101165585708293896589163505494032607732986770093584522772683066100631059737126732645093447546596957425405552768410845231717163146715572684361866788950814964634317415258492707179613916007710812798304579696872990247655114959500007765645367778357035247651100034749437543362833992566338096984544677586578264439498550668204086971160028672839978828543344723692426912375658725673612751817597186842665628421015012189284618749558652077326039765145400054464126821394278330389816433936149430931773564355604206461769723120403113865321357707886275782155702729211152538758083660858542771742703385691132846795415452371686486628663741385488904778738971744165949208428841488258503395883935725795039882783605331952897821800553649035428064023854453632682350251423573753977256021843067408924795209889316160517603758931477161727596441644399463558250370345664970350429263557421008904065306688487671156260334441757898044232581242844350356940048237907912006338655408956975612229682714053297739219760911870026559652462537526958637436075773870719785390140992497787001977698929741256726432946364678376971714996124912603367065737174444778266778357418820635100361765296402641968202586608023634597262657373329108210821847246582402872336107549555774587294167508763368095728611593136650895476653703726113531298905490435462898367060943135601822140379604360779216693012693760929033529361784405550750437548344687576624464662884154367371959562395418596432317573184546542364943780895003142476460450352271789870407198618398258280373067331502172558943821188065719569906836996902531320346823768500726352102187308096111829969340271733063695496345898191811489919495455977063842187279647048939191932626108678284883822724336010700691746229023975811671432835897972459511733708459260675893858355686109274296088945480601729666444538899753210440568431270957383627822148202821599820049322177182845997388534052266966391693907373059780481919712116912045590709780947331641427445923621127691520350321511243826806226899124838763143913156871981525039036865277940097154644235950890924842132313781176172845673483104126015697716466452052471105748103263310505678921236890221910568420318113616656575061702678610260512457643534477469606546532141708441959724176498535710390382660791917119730319404529263814670148495163241100188002637208673532163051269733106238621495683735601093884874260214124173612098921765027018570516639890496025529491620095075464418662499891671880392854183908563262982498939925162592102029469581831644943240025344233397071047920436979631903689540636144182070671887733476623289189019006133845334855798201342274421050458873775561494778273050383464585969905321686285559546411172090360315068421849478603166266343096398796970538569189449228838742942982672229740320449132942698588243151947695838589716967281647192994927088067159083395443028606663283243692618712657919896207858612257049043968826073793593199565839772803466510887130107226608685472139530051217283063989476650763668475052191105770147992525355731201650183615298627355597131826120999676609605274665736765091526834622376734983365199962328055502997730250937163502197865115253115452381759767166685071906108077301353074697773447738082994361871364109406234051807057425152088205863371092679290427536925801245713874461868404141501023242902666570713024592845646217297002756634652863886629124792559621440710553184020980782163207650997023128887065252485014718835744361587816354873834922688192027806619405202717839892852482816018103628826774161000319653726933943106255526713711101376485709064291192981430521183978498352091578921886588735534519343656121081475184552925572148335668057905796991573829364824045222391494368799873425325700578286300218127432904450199452050569002451826345996548244785679667835635206214091137120733092194905116744982914390378635798787016147776609601183150451576156114370815705252058323230560761225776845048641188300942840375796129968190408608179935127322586419941881704343638981242819100293657661365938382336646426018299414054990601488890666357740868348789246967377681292833497223185709019679796433273751543430145392905753021253336118244601960544358103079417327537622813393037168511455499892808063844009346390307323672582237277057137621110304838105039090113511351226401845756140827407511643585019278431478153850407465080686133862641608130679718144742175787319311029136466109642639743146689017406403827890820549953772036271972461385755819746394990458044007467767587474477784367876905981399895819297771010665919636622889351266465759207861032019274922252716190417943791405087633384014466811683536601171800473949780148267450295868415360319491478448970818715637723136054511962685951194678013964704144196746249343640757011639721021926106966010041764567873255467807374164178229801191756396970162430478746734732433876898008738552225157983488536172331447275257601135373879277255748069329322450282449651904978898180056909743078711247151653097823825796085581430156134997442200701308163065240501894169634839761477496945873452459440304987453617280558786157103504581871670221888902953971294926389391682206803990636715810280134309539296711071619453927582503326958021597500495369330310365731186996796215691779865156421356789502252619634007259709678759009284826991134514560640038907697109328687383584292313246300556937715392991153744873196522681459805530452791046370505929706929126113619115088903488020768173274232184885043676084854340157380254203386269001190552463912985874873272570183454353090500468420012720695743579959895907106886215566738780765016486420380184342100751562106589713485650983262171012629641728992885473666359989718040884981806953723534699678330776465660624411790927310696624009853391156974245303242667476781433558006760166249226429074059787970945928084862493731836887789392699790135423064195946355591858352367577646747247682117446786825203726160690237808725535126293313534256909452137701336620259456492277371685513889573887752672694068313148303056339941018639697067883653660954671216474495522425600092543193549532165950464742163460020700288898813915153884815403606852859170705370280522642136821484410351591601107878270443980592728364711116413063406585281500824633284733396594769803000110668029537684560640899873132092125777715775861551585382435540965671683199264111620041578020580781786421690123246430816706784985930196398667305739013725640851088444089935462155750430964172588091540538894088809904274620704072641294046062739548810666642903557431236517420342148352608630740201561119185358911992044737746056540820898497578498569880846415890529135308804446108798601922074931311902779013543672932225365980235255661396725666585609387460246537209978128750367030432620355871693899914120854967090776415306685124878984384918534924326206369963889202626282149145262171162115024046917716099550937741356351878779223135183501580955851642845014298297391993361927947271449854661119408596290892155082983344658132486842251942851148441993645235731893472824110130346633779213501869897284287116795017194162495479284835900320236070512073748311855605938281234181111948467000080578484863548441301419638658895406074563163383455365905323312719197109984729784699532477704359206857621072569258325876881904045817966703561120957791239461429718522782035374070983386572459871748177063169680271336169020223501259800983632495587585611241610289804875736571329096245903954552944024542518770158023651875362860972970212072609417796227778695439924567318994044146181663641306650744868583360480016758275084949054419626281027060622969955732852870004430711293701982426970985518365811512083124408971614225648789478300484161145095435782916166168609587153890839264169092972798251359107931446953558380302517528470494189841837514467827459607950439101203691472418168031258118332667641552511280081471529051336726696005777242417195133103083680087139687931736835389681009770359491504657879964599194577739586952551086955581717669231655107482217270470194725121007320641570094823449428710739003390760379382555094327660297419964987903963731481323559690664096980993550250175255958092216289194655408603191589423892766930260431628267733764900940931755537744830457348852039944680904330135150666835414837988909653032450556019661838414916294925375778889040407185109125146522996736569883112276191440369471874182666889137975744733277367069787865334577097126259715623902542016120356538817208026638136533305017766391445685326255157794865277055559866686193793999879181796481200202764302241831693796768136687566569688368919048828249671811322743945467090650474594103978153535721240508126751517962631012941844934319655437527161674401555773476576092895441929766905143495956756674289051922239189427840242051053838242802851629742890031145871960410347618792177699916174798066651738437482116002786267591811655397368142348635775709407599309182314658660119447101796928251873315983568379441579915159515772263937496106942432923411036317506577669240904244894094909311889561783815049311455512727462320186678457420066684035065850477495944068082349791098522475478688825932801292465114133415775761354703338500503908131825010112133378733510528390372222564207538424757253065670714262950115072441769592097668519300494927701441959890514641258920235756072997741413448140330036485553686644005497033103255989125387094572156850776463713099247868093445547941067249077824928064196134640004449279877277539539585866655686523376358468916673913072300715284187662130727026303218416292891354965487281477009547299913204831583272601947128458310679977694030609942928467750513507684859058231681242197252560684710825912727516695915706768977415992916516240968585559269699074286915940940442582145499577235299977102552178933954656306420634027894107520349014795281576560083566599762915548710878676813048641417047920237126559447177270352114049359060991377485739509815823281722030162201622523716195150071987333058314595852125501280516284087910922378904997678202305901158295354830531091579238365339731262536620594707422595301642568113689687182078947094522378655029368733883651803313729540895450536929386626855443081527180048198083615325715051021127052187425215493795618921621357379760881922076979158264760107576842295450198016872668130461125630970777672932921254251271609876835455630269462372737614830147380034720383249089782522565721547169598186596209531287104579779022461589325443364486630123581428506507277485269060749857266087141995204492565925861010849001352769391898732197473755132809199266645105665213290985067646423419687909111581592429189580374899656534759369301632732376960334295256439551901826564112793888536507669966504458309410932407261386874835106640053152838682513765407405818800047217727809972367556677752247618404206766423050379050144487465327365784213564345429877409334792946338669189375293403682563788082666881078072151099047752040102688111143909869276280662665476302656739884902766794937415712046869827214501753190456253964792360586543589579451461760630839355535991775363371560553344732646176312781371844023339117641629441417022876539590626881363223374769716964362336157035306069262386189339159045068678044329584072417540873150267413408352386136247347454201290093972595251730376092518419902917084305455584888138185153362987203321493853349247610632462941561171367935572367255415718572212235704149404854288181115967381104545679680422416049092427318084864564297356488823355857295928453902643848016134765391246356012421766855879058684692958151146566646043096238899820299283426782919785909740675005466262551803359715788822537973342637325551984028238872949040186037236655539754909830153954066767397776716836070289192550384440996325755058780078732927575580721270540367020953409512807729573393100608916411611564749127563929258421264800379841006901580550188537169810989583609599080633747698580715544977410293883623788662896116603669649583097447914949703902915306637070388402464586233965713642715184817981779169725592953850879920459322643723676877394272427990144761052039920847390609474925992139084963758335127489476761375822712101205181050207494886967493539221819999613203584413300603901265570988372966377232627115013888253941491479004399872442095819506460626165822871411543232105952671886653909165578884242819431024625655399697525716345197783276484152778988743353747676488190055993443256769577267631481177326831625419777778821723872258204208756328063885100137484614511135642114564178285286640583173269406250336123557078605410421205869407512537182889972413639355799394854709573921258837693678452046091498461772923278100071501350002752572849847437255841728652776985002179703921916260925218349370998687884823392935598873435286017895165156208928379679999783093916641027298531234161167362718990206604964030947605075048226085014208417542637766697477442122211303753195114394027039713105116073462845453861180778110207897128159390475703798578842498169389261571143971111442863282709435309480410508961059781343117105137543130872212485686625381784321014942339402391065068277092665854869984667110774957827712640666834780872503280130678836102243723396745040890223603119518214318886998054204312465519957571443273094447792882454033654168706779988040255649824781833515308911738414271779998401274241604579384328041095968595395590901540593474030562325697059805538847647586793156535465529468838919106068125321572808951347684654423020215605952348457878849084276043870623043816586139136679439162504957301219650726186909031297605885374167609698114661928001044405991516037173834728274670692990981991922038179082442492173782611543516228751240688903644677716423905111336291945731882598899816599203051803406907120583303622614130457217227404255999718529134907264589491124753895785246061032473979657628610329042955470831906816084633074931181738712120146414221013322058376093951178771347844165781327174675245153840077393950768628997883610774082086329805093332267439793901248782285555860470427081640740385543016763751194579215296005824514500619809499340979409855104342436782715787602952153246432487332675763819796370130759319828693900452557968531099884008141118694229398370585404023742688883246970914121300185682147470677245380501559032038628717807460321747453343419725649093971389732102303818391450076618956914573811513603219714126292825424751183529283747009418013873432250581203476582320135864185639063706487919425368529785263888197054689829385018755623971716672152478273955619939746195826980009168747475747096710692569278722739286302821743341796149692953703047898602537374730005595797998023636727739513533948766281081650504241379031973690801283451056024974695217386901535125118097980729802366109490721584542049102576753714905468163194078483566704754796547689433494587077462678099920768534579206231387322587056012445657620715439055865652651686576208797895767597756759740327323225697841237789492815231387127735323731856366014907219640117200965119333295127295892797803018296259251044651771077495934202562392388301514532381394415957001527294173724110661032089694741097518974105880031136795332562101135500677180064404596136606462210542938775983410136762318174279263220949208420895506896503159732100206020944937457345457339122993718491541107801074367569055145597104347389860250535280891017753456502354248961808664670846179263680924682624748246235989095621628420154559368077470590868571704280817239079976505221053389747260165476400025383041032990856835655454734744991575074310446852226088253930189091113610834256985901035536469182101849552558920330417295309796519321333044456417260403438530242330153846175053140678199555376049667922774540507129135242231986941658793287410387825283690448918201636698105592196860461458971080366477421802853032712020715931713164589423552618222225263727656841352924720170527830318270515943358823050527508166909292983409664058209564583021268046957848244262571472540987886205217612680448332969517557666844293801449766122014369065869102838068206964204204262349926112288279872685484935454578324241653518808165569493521038548964097598780058961050936577895869479237817354422407104689663092763197100047398499670812315812044342511096917572103435951713302125542387117545442545384094048272963651861671193765821288066129220771568887854325692694883233130537885153181137248510967376073883927251041097374654255756170726441261764647868700773253132978499859662936707810074904109842224621322909253033607182110025450495115205790649876461022092160812935058828358704680514028443925690779022962600086998240452993772248408539445516857585095973482761313985250245125159468190850276897447850886258076120649546170199431789495319067202684074913795981389730119847610038511394964422074934314416416204778543685204384490610415738218674811399311830374347729329900034611802768785237694438681406753978835634537332985742240001872151076890846330969373400421077761553660774285064716501131884003958947060707258401029502025619849273319819874983104669484525692539831115891541519758323272799685081675464387873177721679681535654321288340981010868813721650844377807329219521801261704672825628667468200956597792445522931083905374513494553408239348980756534418085726123460617889463397035054434090038511151542603855700499812801468514497340489359176553606728508878556402989049009285564582637766958770491355629376418007273108697016920857177552026162901931677946637886878667745858075620572290215493633080930602864454148632317849873438358228255715198814610851173220675618106495698380903865219008810033256363498294148031009104909366594693099760655606230011147881696890307661535604453529255916051760071755398162718410401370593963675821892639454133718654429414333727136202363009761287324096625640014219043508030698565107266556288288581112663903330383075865357159774968346345003032203968605057455795971497302296570471803817891993742968567967420046180856986860706747488864282736570152770030613006535100852715272847409240498953331259777707305538525051682782486633438343025410211793956097161698957768348743842585397465989452574395086686561054491127886003548793036031482077793954709914914273725594975334819084552326830894923479252788985788778782729130480582311508115256548828058859272551683227827955310135316887490875732329141865789610566942595555002330836059601337352205147731372545895186961967700656172125365790217271330903964569700754844727906734918052766481012983822031555678115450238048953544195202259998360677121549380354309427924128183043581993196470598538095997381717357325967839584327026892335996184683776648795681930872061828996709559069012673828233114642204845802218522623232841547408965349798088056579140363298902328435232742705405695527039440472730140692521422694024018387516518181646701489070752980913415083901461738612360019383329003062200932835959303877749405212996952434687486870810252836118382502071723152786324617296816478507025634527207372252287692522631063880566824238803865648802741247830588576921759749440611384417479954930271470210372547640437936398627395953768835830676071424758032068247209690317177743777341933226197838668738914594036524861847764108255956107220821219586689363750950979393576382571493279590797856772904676508627161876895559026571144656142296143192937458102666523011790278314614798002210754280240392577695364193268593378192850485342358938439821514602895309559800835614199773418748010755677742743236130167193473188224032248106922359604432153754590116639942680215357715330298430107588620019743134069723690502558987169124899269896285768290248488660634934733017672581946621451568934789096333496517356137969675695784581451268343556058832267095776972604993816954802384633778234154184401226937827451022120414106308492972473965386570606858201331596221016576453632046455281360818783751089668742306284674197405618102092886297653205748168996176852156691359385056023792913330968314699042711702361130231113455713438056040896697324040930534036972211893579652662917661813617160282063069605563360132397998433728343248008492366200326335433514675121636815865332953163125505964342111296495205974660110738419349670780151179166859168357486717291514424561555387219245546492559589982282962608342573312432564982162886138690012301121618701982912290904051220916413206641196435249846106928543436119211803826366768394888152683647331557391690602857570079092436257328529750116001241724211329545920238492078893007934721112427292435236098142413613671014144916485770079797759762425200225662682625731860178978786126294824240415393021353611900165394513008571269615598954863723667967876646099522960049598717668705196134165368805203378498679787905386311865149240257267723142397792562189007781647184658396047195806273974600795692642812813480212804142849863218225208809085303968638201032677847615663411415252816759023166736944747330064257340383188129470011740606770803814512160188934578913695485727678600192550959119402733174089295415213765983728261721882563384548428487939402165802740042927013482127327513056631151292991556636538872795258929024656793927985460549774715223954650413818564099775328498738900522045793004387125159698426523230593687142065167432772914775635783852611549382773842831881133047234619028091045870999379322655356076056947687399305510350330904524523785814489252672844423482808548790632290973852076101194780240388318871878394449308481992058951324043115263017486569053322297709928261056073148869719875457813175340755524189270685885580355894684825566721728733248332561610890441423991604882806672968906949438111464880046284777831821300797714605092722343137081957997442816878247592824003702764442838746036011125577308361076018136123361755942153265777513031083138954354798241345795455551628268502362805531359536031324095630956635717791325997496848981106445321397242617830268413366009965426125853471463747458109680902478905232324497083450597785180794878281025815899009128658386612475128821238839610233319210604143464252058476992420094442256943433932591193527680862553869119645632387080472002114242353344596058091634186301150921825346319870925908516657926984464818542222264948915551329663248637587488057050434683938580269988451280095552423895961981829505426063775792159138285199112087063368094265528379977187662608553543334141418688921641332374996644492944518620783167323728281860253050711485661728732015736841084130151708038611961548884278568980261214021642772720715353902371244429714012175109589834302945104163335143926350758350633818270832702142350298272306617379835890826206443628685679071841186069816398138501876786268678545278891609394003767170266294954508757595523063279351780805679663985409182227696531730941496325667357691844996491308699123708581150811288341811045211720658964339716852581478784132276977577147735457248824702294482053883131939330578874837333948450471424499385599339332767427240280146185512195090438296284098420742735714019950576842932084547322484143490288626701304976862635889594411275023409912000095064184718546953127942619607570353895086689731002539725992076917831946346845120618758292506714539929886990480023151746064533622834546893439647753206603769261809750807365225827974064066173609200782926092030973603127341197263542070258149379516491650098855568531937390448085464387615051534037624429686348890816349059546930483855018862999247191228945117932432590544184874403916625969311055600850621703762299190722303873142778316814275981994621282747797396875466496409244628582723227490454109554931612648955382824953125168404894234368228814036751465607813397241527095588614620520589385109885020978188524911693872256172788192457783839907420833258945849368392923132272910751611484670139287645301846669928385123122322262413511595420754686057791063104005723376069452844804014199926933012948558964775069488754049585054733495404675784557037919414887156042353096681439416713605795069959751838878970711324020519734606461899281520454432410336449887414332344263889879669038187698809310587864641692766945189413318286270552671016393524339747494001467590347592518757788010100531989846853273763776474380829524656774531330791744934340873529777055465027768159735163637646216253635005283631838745946888963196644242918108989530962377180052411284901292093404127682480178211790023800121776625559027255475731758124416657973142642108261624750573409522726811743041321696730959901384137632469351605920011220456450252298812590821029278696399750869430438615383345874805147647814003158646260430873627135680037252106197037445060468920247786255392755552112534125918363562144373757626455317041630291754965931495709590996150358385484822372544432345953749937086709781525454869398076213306148285531820690722124141613413333341895485537294775954216952575060451795852753532515789714064247539165363468931576760758715123654437014638417801207019611683438317939502155056893809201954455798878576978514469510654730984548446306332755414464626604722748903715110644318500457117298289999363120498507790873963665625971521690266051056458978727846877185121640203083402859136856634179991289391931000490935737595090351530004909874212637639036863611640042223097774660294421997730961246575744448264045474236723133409245479202814513690450043429078130691146916655096584963857060438373156871155188273435785102577505179796403803523370606300018037088666226669824938027890186284082600076701932971462720516603699754126131574388720606907138940377192686939807750859151994569836594715016851673363643951258564653314914082697777870879695071959174831002620523840676159892432521016266995212075435368863011387641801802891463853780182967324472302561111440302319121188004017412505932917957150457195299039306865190087165409094625147722186510403836274196983130690070367263547134989002307987102622253771156276368595028096539972528086470047074487714382084556409694091738413528296235367686746830876782866480997158349014230534162398115076606810942631727109560174543854339698594096471491893683057862980970600325027604646914662328902565340940781450880747649687440010059966147458455035939936458433366773315505541651010569509399643189243561522633737290799046672785462594818852052204341540923470050207823331014993398560762872937452337320567827333586059627599037180460263987804161557938066114809563201006378729526609641058248543498558532622163163148915890100308345964643485432759123699335321984118499259737200918332476751486910103484503798463431670523140142961517447521836331990711189109536883166176394472260994149274378526098441100448011276189548256204013263612017552418944274538219326419230385856837926336011491953667811813719175920820692639757490114983716311308700580999334177639958954897796762763531603679136787177077828677735273666566805305647920675956057677284125224702168634600986454959234157553751569058522117983695300189284395095039275560700110152668189512394003842881601078032157908444211275165915826354415885986635258549047036546087334867395954554883261050211848878124833388685774698829121388919066869481896281171487841346523799783879505158110727867599150347398844369220480533013674134113546846650346246260341627221270931687059220150480951210333818307723735301130220458097140208378544362315894124044671199289426894910713403786652199870617590099820740572236586613339760399451067064120623173841196163200570958255809456072484458473307080640650456208763889682400505899203848653547443260614708537746245728791594634153204971996981385517285567928511083611081056351800361665361724839483280504780816063181648176011570340374180346091194777032810722534965501015977242253567667643475365497164158939602603427274277800711094869642442605876444498816645301160471278194583766855612454425609325428846511925870987166631111267670953542868307541484244558310336000408330122600887784021926816305288777801015130114360273633537347866187229717906691769610960867961207516217976524521745410253881226388206291109219604924428440262481071450998488622601388475385478686580305088153049912055921279761337025664580057834897798939758198372752142335067353517371151946981092588911710845260512708044521202914794311209106059107731129797377412391347698456162173473520073287297865666291955520488431108460779951353198227994895998974100203911337320175734518194615847742767660125500700383494238673672740646780305618037512973113863874272561894462502834535412760831816070568155407905423134093966183859271342377074775655460269540819005446220298541520117255976623219243981526087916853512744307268066414831157246561257966534669479317240288286766861801385826203370949368386954310439817999337222923682466552113861789879209480575643953298516522516464183156247208991268882351974521839065103809473776379046478791583011822098110997762345745152831117234089670733686119580913663248511463220547213147014677271945726091972725271049506388790316983327241141650375575770869118131144174323839867947638941586509194251131796752502364929616435352715583265478447631224355236817026187644761234525747040713983218792398042025843567979691673132608486165597056695969182188892307257196504961601016795842374898518233193827409568042521041438383378250591037292302104620596847697258841833049420811754685354705654237583671367489805720174312725652561071756569404525816250625336827584656492527952584043105438746817924669168287264941738224088367362305576064647066223666442185590672016102823399731638552702022615591874496293510252866788702752482143733602263042521768240705410127770031995182434467150570324386495798851897873208417053149668375867567799878828691520554851828309636169707595207550890631851865532132265063498357807159461527992360975951119556207459345438068552885398541772539355227544427153214109750707582993952185804427024793675639999723779632067277145878044478449941159228789369345199204678246130789975137155562525111317916345068833177295869730510632339514441575401361575557942155085098017693289222340606963342591647133779341383290653533147529052541842686300718384684096077366054005607095779849534541860359412992696217755395767882841848124413023710264329185290783274079114436923461314248706454894114245052357176477319283898123011617991293697411560823083278744799114452720973670296794128466876690080389600490873826876369071320937429502430225079400167626305117330114596167248014261243649914986664332197573401450370525737233015335206122576562612680031664946359793920651786969767484120803027932566820733344190157756260269545350311162604215038266170863993490335362996415524917399221972457604599395650690119240636881790294363259951535961837886521393214313495305348022429131772184735832042137824033732992501409579215334314632317819097962048883335822162828321250063347721883960588098935032710077347501464583339994618276692398654189037987853385749448445967593011606018757559782304280765895864405029034189977227320417437144570331039106567042338846022516784824181363391780613510549512268743066099176552080471820635867931095768885062544433941911954301940855481150955347952748583028559744735407225332557819082142230464712579495508512216113999123857150462310525313977261825439906243853159204298369583717980867959179566388677165703022361148764855994593970548354754020974335132085040041616720015158644314966564028178718309928391227089145448639081360400196051290344029961942542047744033326252148766971425351117836777125340452318528281012595437515932404371362427198232863438962292457251730182435243779955853295617694399838306624662997513313023158715006999663662064765616040271443745608764672876692279477974597912806387721026178414360762141247323575012669815006529581978097059439734110318170721552055666030204897920920352381316947509454889993077046617691947087035800023028802341010686930020969862689060756924057518440583538867973104283993037275241809035417862462796914931425342038441119051768048821197906388940245083651236662738917492341617036850182947563435587803136272583452216617745791221556333714173600059937076423622921795684705119578979960092300872603634029147411598689224935006811349620712832597274621689303405171954774428067211635195165390825315397840900262173149838701868748092329816754377475008494650035649813911938846375647248259693113117055518785164578296720914644721873792659993539797797145752751591901227623624824445402700127884680413171732778938212554929839660781417364971989100182802178145736204530346055980196624952674031493982808325415725333128926423767301049379648166303621589332823444723348622980933885696577729311673919263358040960798681292830323651997759358833685293914262511888915333047064936556422404456804919741649410936316235857930496008951684355788987087374508526992166198761597132589404356615311657126407461920222210669562471580764841415660710846238283393308114353721085797443264365352461522721458878072313032218454952440721783748381163058898540317431786962140587807689263713613765897415423352094448757067197638412504148994955538773692852442439696425041738197230461485728494747532342637745804726185219448425704020273947959836968833998104449141348203573330323073148155428363998045897488175592693125297296124136631580848739171689505663793624849190242995731385791558924930460882747093559571084760141085187508339048602695892543901294165408964827645500127944149121645306083589919130110587854691293977634413358735407064850416572718421691189206022033912660244721996073515799530009083720769333437329527313810129720863425042652189822082253249511950449881907656955270445054552030558518452905240884164210428592526809310267654975974217945813161923978696294232717346064200293228948348453673088159246971968774171847030278671835047474033532458966215867965042481508457530951168964003570111076033330524286205654478986304657567417621826334960374969054381233065191012034399084413138876105249376153331039281747281013186490521579086057436822194988722616313471445306286413555101099362469033568735058360144501324222201945645787997278286525214108923245871199129918802129687278135469968170601133673171446955259332848738047054586200488384208714616128367853448391915896612823522079996222363274450269863525759105678500882361368139910735198136502711301479813016420708333520877551909991496333282372119275571891461419010360506226423039846376659127705001985629753251278850781724475764388386590708220044635913530587839810190049432573961992837632746097708839966341771072157731385658240310812739929776249676613336792525309432240760228539667872568873977972722529611048323819686219830314683460682840999376659134688190067197821543853008237081738133173261552581926771284457021512608183767931837715768084582695316964981054967596050474628992667389344597816158188145839024316180150777884097031169198519310468843497946734818394504549127300938032083415037689944491451102804855362157041884428731566195927553213563029002118813767978792967976505358272402905452127467184317308352188938609115131519553319920986797653941326006444459673766565018036424278509417714107019712337473321248580150116128743198373023549164059270859789769632566381517179193760133516598978592690275794880312515948520387138086793228834584081284950261653886164720648030790273081298883841872715043994834246541862159889922472556817799239210698190353732084270969041292413075348004242774246248512838523268343542068424388981905933716752232565131729272091789163208467984828348514624202897736699273183435739141219016825855992922338956488894637887218950163278736115080947866719460644107136933367338188916159232533399524559260030665030854603348472372622335971996149652242407776455591146311204180445117399539744855360384822258708580510048864118501158883103509411847539936019723744181271931426832468496098204608629528261027225232949378720255160222667760529246217557414735755562746694458935463734186126424125966447455852796193686810453829187562944096167840926076233200153222148582057384363823906604544778890044366214905775217890475603642019045284977773506714707976975134528140185833479641806922328019208941207529598963364108699133658812028600590598016163920683691827699679326537908995952612460459984943272298619049051524584303343412979020261221101535728300226421259014718167891762398255889274361422699109991491905789832286804737141906661999644248526584364651157468761702839151065708013355426686142978410960308043189810196472412516024348262737854149807499406131202382607593599198544454916463432483113284531820228327417645389186074266955244383180440032747283708806283321468786580902875550210826055054092965149699320853367869624611086955279052010206075397561050686275984907302915126566557427394582178632269867671048720764785834443565749800939496632847179549947392045282080243212590202459432222519306553715765874695401067106467688652101198118370611070452909861671111397560540246877022211688286294412103045309939702076066805971467635608410413404267891827963403891571131402061799971414622362343457337501316690940794487195000262252873657233989762425032993809858230044810742135889948938100403578678386619855796148153051749488872168902919851700640707157672916437893910850245595291000862408131153705649647611981232502830263183092177780221167369617915913126159372863482625854521914830721228123435189362536531178435312396427050589928147795662115458841149955378797515619817788664736723861224683854412195717869590938342316389790087728470770249844758440103023060079720132718913837760485838285073658418022689675829421073293357927109755134293543286957872070487429112252842281414237400612534698472544963307122716696151008444039335282670269587720341563671049082016864269454300425015258263685768121736077623925944862764292447132126571467975770391164761091243278869372004829268927102477197398495242018403225231077989256624097727456782644639744528252471118393095143468453389555681421529838761835958582513689210968079433265980401773907123825420519663718766038649867093580391343909244589918954777993556795988215182648727510684618451449375321556922268095982211118978358287924496803885231315163412383651827874776921024074417018644521104004139684068448819233559387328981474862133613362372423879957444011676934187851708510659965273490532250229770246423895329906867757031395166323315473996498519603269918260089093279093130925650453380981383244546256827707015244571629114111860229796898682407933522334232072101429295718164423882499508033214892658336356989404733146744054889377163021094914686070684590684121359304447885762544801972197088816510163778527291074888154410302416967629095692501189460386685623766853685415692377126208926300641997936115295433409878861346784926261338281866051503834483913969100949410944009013330390004449374531910728656298128923879475140664167031941368825912798490617015729221472199414578025681645929761660161586606734457968978148522668203736566269187308750459472353883007975065407442334581473202511915943838184277085856850058741035422872417434074434147095764742388037761501329122270005220388185503914311135816086308519391310710368806492884509724837340688037213222174622732064743258290608364456799889093364141563506588776295917653657918459714441859580961687896965906249095552043436668216320296723104868096538661685705340966351976880620843636854500238708957842559082363079538472552796227336684702721657219586301816304595984152151535632900307105667298644737508797722140508469467520575150414179691709741197993532000562472914643196897151543314320924215038384944060089351346229787633891451632031558948188850207113138081448716942663263763809178770302913655754452164705480836714464636872921301571297260567354196526275775452303606866560374861933313508910207974717598946690634425869508417232344956106632439852743462823181227100846012668877388407438814585753822708244995389965439658858639254158795918687413618073240891945168972574337576374513750088998959060656957569358748317102434159750091735047531086953204907091574239728753400575651390531972827642367340262125100214493404059420831128330128554863311674638171603215190274792077681337171737785229188023310367737518264238705102781100211281981254366689418302543948393498424455123997874430097396818968776702855657786476117673440494995645621151913243881923974882882494024659570120083300015815448350580060297540987574955222002796390571036261693524493323643269181315299394882239097650556793768809242324262904947412068263512700595860425914710410695777458883665543138951575085405076950951365790561550342066195911076969157245368637688438405715821024936518021938401391340429458459426649755527346782987388209660456973343225685135675833823453185579656381872126079452137714853451025638706217124026097875918314331077158544467529777397475564405658432778128365657056565791923656812298750829661584995813304602371141954141077481323396494878747556770588439591791843080742357344686516816584481683115542491428437016184433712134000286797637115421362560954471707754845017997260825527795090910090938069868023756139282320097785488170045784287544623790536354000136985565145820380935642047766410069788196219657555517578495720996698341448002109944265086394347046837842840403362074795448859134616116908516506606537071126151890182751696375791012661710950186366244065328060245805743770201072610342372473437078905061929263024342986761795230790027241563672070380254861226329091427320125976633626886175184209901363835645284150186623376361847092611841859274215321110475258802337419084079556866739338842497521497239377015507831969522570746379980830997356013402376449909679098349631136372550037018958277439717757189920699514390931863593356034818812445595914598061485079291760674831812669931266072017220207361559034880806649440413576936667243113524011849330983752392580824301608318538249546977057954371234746827901364114810110445453703023089226371460552115361000183225174834057696086461982547749110112303849199824026962993397058266808235515964649930681719721752630876463966229600571521985168806501884611148043572154284048157490293882924051232751435422292414927919589502949338271705807737674459029967772552003007042458509287870996252163704084686805333518883162860511221478160730418948111920975646203053055217294556238639217802917161592520041028351511847395459156251195293043139289263720853344053429139379740130424725268968860645868538325972149439311627357329207590080303214593422649342124880053844046262973404047386789367361006950393182706109234956198282762226436851985192515124011720200078909987034272581207284523649359055466588416610710934442407859938421721643047643635089336310356173782070399138746257708154144398229651106260189489495618329316820591877074578645248573526943706173789385870739882216627065931041246681987998220427070828284091736964772980477134755679772853593927610629607433199106231468458879487033773750334163772129079148671188454744246272609603702970996675492488197400501901895054642739228322833624955691149691247389391972545515180138644781627838472299572274597320819444516056718099168903914734463632771831148026125181491388934440337184232985901821522055252139752546903713890754021694581622848485327606181596924147523586707792244761760717642680079293053053583226500640150124352332087498756408319390219629930683082619949515995453659708067691343699591655391590366046832276064445242364953360119091364337828640139704483871194278386416440295488486958025811189855954877646285741365078263624257268873834674636861934906887741469898506470810636628664758272983405252464389954325574343109205752418558471275976272779456648036811161171679399214037483900388237233331675160242873044966546539117030850327150255057654967696552754782337538817630260422071004014467107117100848762636446008665247670685639416627706879077803251194867694631202850362232818626428007764448093336893653867766637534447328911802901643483676446428145119520359547149648028580494736466078588201704173621250479271292015305426335998605635603249439346769349274293713126295148549775502214561457944041236734721506644815300901856461295042917263788363805214795093107969693184586579962754110236036865915133885569055014337103385088124333714612228177567198966469247393138439276247654669777859338922969191778125725109403835392306171656080815073969674151023546386041567802956373434765404554643973137784552342394946975532898139241156300856453942924846787861037311686656475616181305172543286354910586478220761382685870814747670084773904530717922428163332944224299251609573193702612436871275364622392932656080856475218080338518284293892029731538692295403544667080350193204420925606101194002602268894048324662875535795522638170380022774802641441525029799881534088802558299435525633059728769837170701684921924567437157550197994029086593098852495782519399812691278425075581703822399740791342168956001550376805751130297633186522386363992287136935886372705421083373303549224253816271321342516038430950617097609670144273508229664875145191414296519979832597357035558037999778690711943713331854547527936745563969022954599653974308965138995312806843560030175838303215293948826253883827322965127901160422274175617104596444883962992657431045302839577164520163783503334227260236039714782746178452934759426568816475798707054507310261277139721129195639246718590446983866521167297439067198146793045603017236848323700519722279808450726283601025307572079589743168305807625617793333391624137414671251922453143204826076498645537369134562454112811465999638262444654765533473527938761461464535659430536741095000917086285345615028235041941189025396192738250150763183905643728321480413642178221137475470854353798279648216160381842312180113687568714684916434555052357056944204178069906420968252542912892630539087307567436230035767148571233501962932083810117223386871300889985439833052903405087809979140035964689709154907799797702143268587617783373985072078386511545921664213990578820002754188646083854404421694150825467633571006889080232586846935702364283384454531335716911463861960292045612835764798792038023957817240788597851234457336169558985206410584340696053547298218303076160152605691301217212684829208866392890215009246749007152180218255543849556454229003117830575423145919241801795215271367033817418615437058679062068212080748096092632718897040143169425899132362042875616690233586133915666227259963966692139024285164391222463965549304375827865862866690403281361522549475521067940217997718324398274799176325991638050628962103445218488482726824202230407410384618580731376997113211068747491781594123960022075618714658795370709702157417882405967875851083947246334470169879716824215809553828813462256971753157468485008264220639810637345941887813257887840714462200774169212266230374299404034799117291350063374021279985835431492436486487461382178180205485870350330735443838846418794736640629997557881904646574230886201018597490880154288294212917829762465682231116458958354813016970201634930424143815698237422986402618932448081037154812811940670776550285374572619550609197440323751965368388821723407279781757901118290823042432250830343397200642383616504133719822176577848178934277556933874568006610220810871141953327476406066212261124941073886367693747840870256552483304506825219773609053651147364325802659204541022908789192025826789127479102399575204547857907874002990781953966818356678300854039577091694979897580506530529364365566970973497177089498866284620351437481930192289541593582650486471257388242043216390811662242602041096412032346066858085303998373537232301946076768515953460725367974774935649530340816104938826460681778282782429810427046314525959495100858629670969840568842858026382578505808575627462298374162490198188388174472050422598818697781856013782180594241943461442058555171247180838874885068396939606157889880737708480788166347604084062513548534116454909780537745048362793434782581360013815227510500982021813476708283233159459082594804030482193142416142152593613370145618383930794490451088396310862064506538331681806732097713354695741247428863139177833102925153420052500354497377842107403589844422455173894160129743940253337520780435910265574219399284537363351266855155147459997925389873643748386874088186000890331774049340839586679992544953081261914674115254113823664229985613094370685044135306802137797628762033136235908847321660960076874370876713043572184461913618996372686825511404887959542240205095727713283413989832495896991368723289272047535029315911430245321455025710086187211669360481846024670567102984650380149024962157601968872693777283533759540055258601766222696169833842173306388290344804832017121087377274304172550896323200975834818771617290227443921684148091894493311392696977902444563338915330527260210201536514247775416994938091351165945484094353462551580100997686505178147134006461007152382903967386758414665270814691002235270214916973525934212066393995338197401524645864514109088851660988149482943474554174777447224885627976068809920572921118418439483954589360750482859984346851594840024119967963193710245225660843950288637822449873394167911569575695593964401225971293303862541769281491697532166060716355305095304086930023072246414685941928413251592355664373736150838685049024999678389055371134982245321384026442271183626425894932420451787804626078802857172258652164858408170306322167746453907894598889622925028423966514610751332768336264616630483398647871265785299923915403000782199705673020370753134775765000776437348892650953920933958174566753559797624500527881622616386204906562564673461981453505420847296533841535770500986542706199216349011782073145573266454468789885513911579369337047395181339158631321678630718986496964727702652626454948886840603205036496395143055892454565965590603896578865532593460360513210675655807092276770457589293316147518048390635373110396589510529984179087004664828044027367983315369674695353829587193486768410653521612296379763922314944866811028254548831308470520399943484376527129119773335857443786728921933745343015086647141606467793883667250084926542845916904716316357024049935218410251975481795120846456529569930745814217771349206509319303631933726260154284314921722948846495640380512471827747261371309960353958512655063695102438658866491274560396098786082803623063429735911288597444156319479679487566742538437275312324675546973262494942958880482544305368782893250233348497263424778737632273279973747050775775268356340043027118611299317623903416758661023336923209595781005269022372047988272217849722556722296083783185968161935338164298148458039851888651120189975196125076990315218266606844916642405398458542127313931182332927713126619905656102998279244697244553174680658764498009859060804230171425432778617414237444051125527503727079144770786153681789220099649088985443879070527821952367655921137734356661208205680719984701634867979285374671962211251608112249786289123173448053949032428000529877785704948147548097472753262183407014369228392479895350900836342238637951469125457166804475889742415059131375511161044804751530573085721731767839931997590422975628278000897347619332296560265061068478874364425401227191303368325803725616084193059181622460466584904373385484391206503179899589559393849372366621001346765470360146628053161974829592826090304417104270938074916236870411652925313434019425582573241606063504039089157752194959774384275482384378535747446961576548305662183434830457303868270165911024181659539377225510054142034029689493818155065627954197956100895160625328947990322897833037567770161133422448399735131791923995382637773566812568767101097609030340770896900428610501469894205271607858059293218678398058653879185669018955923352630451745698309852551483352676976941664537187488113915561978763210768487522999995017208610389331084839881785171102011088928304466051552773469206411997963218500147873285877033887158024866287651953865391299973126622997199022632911314354307921634613907230647720733523586374196006376876959088387735555012293403369374597636873147227867688723547556034226472645396306798518267158100835987122798060072786280013161645685766121287617095821646960139678807703890719510523837167020314195947330150988172731483853312043647382527799075583230225604243792977446095570454858165963538412964351176118603689758045333881104768862176869536564923397668526641194872605252659831553155060074475113822788145083259412890258702367110249157874080355541319647311791726556462368054536192245334595779101002526107366529728896057119005093045027330404998845941832413232332441942960925160322374976731633946174292126808004262544852341454034052603019066783810691782331790342523475799232075330084569461709142386225184287371227491660037506556736154527880577935829156451342539927116731773618269318473562609549412668637184942884250429698042994742406221074600242726157561675901450611414216346012458687082823716349016566439622805491805170250466825734654023667577986546429209936250144927625075079620380787435782721526170923739831510987101667316904706068840370409119978489409299678685064622368579144493178587412708501357362069461740827356466128935573753339531793271186997241711195810590227924073928998845533076031912351076682793229849662635590296028752998080215483973466595147209393130371330492044626512584807834844296235585831830814189005514569366416204969675885800435495964076634904047025141160651463283046342216382982348867747963385558004307994350231709599958235081632249891587857417930035719741269635391606888324654815238580292267635352753877465890644709590990490771993114377359026705962445459376472712727137179349244949164420428440280931963622373542672076330294037883274695968546250056403068517419071113958386523601475876495297186266728003090376530693766390221382837152765686750019745454710207536804895078135318557649464038415395767985355432519652634896759893144071006990982295974554693745294555115821968124840048105242314791823238815384032290336975206997242110206930905600149595335944496945476746846435723437704807917303082699281251541186937638923134174400754485676905105055897099381645617125994656034766391005381090196542475839153288945040435807590266044710881552926634005673166513787796478443220293715207553665790000991711282485456033121623887293418863448689293551960006262180847236527258226461589116043939123493221729151666689414702102062661903036662620431778836593349198020817785355073016785073830808614839248968249273674533874795738397107741095618149681226897079684404662685432116824217105951501270909900941624345954516689943268174862727876798594808646354468506507659367624596455256690643545331838670066746979815515161530419996905262057975674576134036343359443417044283970155932224116406380871179625934595777224767242280283081192457274028657328156811377560343039733463705458928737647906396382143904242385469481288746375446646431303579500115746861798069440051955267726111576178491234842609455731340849569340478827607146230735608604692728811200384626911032190326244737520630987277741718884138785473545881266511551109272151426882900901364567649568088358716007719834539294639729635719278936498979440497582676498166476689237932381305653220949109805486552132268479872373227385632545912998073727597739841558052950131556381845351879212133244172209081950319486175404517405708255912682596229284187864990561430919419153930692264729772607748304012517978983067795036652355258040252304659479400512163032295578541797991091608500100455498777766744104925973595832224042566552718007519302681906597719026176121992066975785670906246971663888678623934500286300105710267823481992635835283689142948150200560277215057618764960421519871233451249921352147540282375500926811602999107499378699046948054840693674999195973384323505806919169327168183803336676508110428875016064386812829037866090189414317615459094070873467157792017796249656883738718225668620624941235127518539778065327741986071573534950044918989296971051368132585735755698611547763951438340423568773524100110311534557679753873701766058985488868495505842480289927530746622549899132994366782634472720967011076085781445069481491971160353252745645495508068353245248636017555972572573182052169063418676519419759034050005534068969350533532903958522486489837409761059795430039050804578049350334632181827140317893596176466191764572333329519790720596625318523604219057505408799742842183897321081738178636520972621031107654312727145495383325764080834925580800630991298287601581353962146717800966954440157936230718280777532970141303699287251752737950625480609273502847894446269493995889861853192788037623991833838022887923233243081784068657960423393777458231795676164702652828571768306631174427110386490151822372005201920419491415399178304055763863103362555714966254336222069992031219478651265867763711206057236725247217388112880614807770892217617423581524073448479814426747325852617316949651634439427776196714997659280042487257808308807218171468115247620221368693237334163444101777125547910504548330569320523779852688576670291380402566563851203725120706121342263565953397244460781613091750268003137913944998277656443284810247529156930875270127064817892578829268722318267266047645710123694859263537549448140766480333487867538519341281794471476150633237804865615856640808731980241467093897099732304360133481350288974596613070483540567601693022349385343246066264293842836729868858698155088893161065913829478323406468467021575938596789265728418512540158870706008074631851905392291179966886444343688522085528916750171384919022558150230871670639517265420394243456178746314009392206356976748414872775024148877052986044103347386665303994540993222114986188436118165523975166150677932713936436166952861362711149892106398906486141556810412228298965804035818934831182768475269799215103461335293276108383289860275732890583206286360350944988225324562030200092254951984447378236942598669819440190970674784841551156397572044862580083097604818198584332301092433424003611978731430496111969547730596822470484490710677221146798814416735416953346820612224759438779496526344541749280374339621146441566263058579942092548193776759979256593275754679990718259622936030635262463170418439580364658716242609913079243744722285683552773772148212177649113050026374198513794573496754260643200071665442883452046675117141839080712027880425334449966447845967119495219744894851188522073325461699067547745816833135776201699025428393001391745144285643730448896733569870977436471585089145063373419062486183860446912355023378078063611925007924656960864984597517049761395567710175336627054592832773352353508318441363785453244421885163868127151832675235103595096168305268174712435745924675161534324438262574999675806378485854894404849753460063430732167371487376139892638519675176995891224630871476266051740673210220812681816919045634974547010005213791815620933224017857106413052048643099953926361418328490467399453740925821883577854484758550377644971875058890328040362959603731218872112439216754985072813930200346366969740490688122188586908595870756399615294444117656595979271827817625549675168056196871819658756938150287447124103121296795966838632739501692296831729994301723576169816662610218483792879437383415613944785000441856528168958498690461243749501082587208928879352571128399197962640735540671423602942944832559769928470448863943407833241867034720347638877816360710303701598018823856167111136212963082933253619626930221698383951472613541721163812684690850473173252333940077927594969858991648492643058300600130642208621499024897342074449728038815744165061502640152699261286673717293661732953737695809181906628945933843650730953126240904571753405630074159195909837225218231502380747136763136922800492735854467513567545172087552473394212272068598197582718086253152366719674475792516902904177173899903488530899050257217223841879983181099496846909616184135185728695665011655489291835711511795952760677626978481594335769288025701543572597214293766571065251737281927854743834110752539156303602105181216257445900115205002516836250166071891825231662238215442090858504082461952285323613839246145673530413601593561888100974822052503571344066325182898086538784582331041095787307132026131014300370797480210997226362562236962435684427389107684273990767079058184501955924170932049589450090928865231876383552176003091609537320456261720024762749246596276566539089992488603506378320654207954844672574214696205282830621582830069582215523925388947789922130739847686090627723889272099453295036855809734118275517860320552138902710343176309030643120706711139064955770881304940802214058433562646329711346912116032843388813496419995399541944036289795819010328743350290632453499750581979413051267145966127873910007261939125474426802629526393241416032013202236933261203414850587001387025391740360359016647669647607852855022015004597665186158047667516221998350543959187507112942892740141505169007000131491631386160981919006757943373289622541738049253169621732651540295965998135866155993538302304723953378703041432547265401876084339219118326515193972019223287745137974391797134276090896702412564384347178164905530422598410391130091763444196020869418792361577712096110489980201619309513858863781293294225283701573341141229652518791002118348778393786327279953416097265774139348071265041541567716272698004323181272579809017122837661853903865223155635848716111842047561496899764634859075704659303607497199659790993257824886678852548304883933278939128197427245034335546605723427359076192705089526109315548024324006318321361941304495147780431386844906148672250985511198940262313493574303624668368267515269576532715095263880037600323137808552356539346225203367913179502274319001688614716444971791370661516965542858487523930974007498811846088563659397127930229462504803184611440064508575991528557204239192949487147544116617484703181090281490168234588701580158700679926132042183938775209377776288889863808602640384126963952274187418936078370933359178637702208305905831714486429716889476792779128408220148111791534716661409628803028407253502927768419328941849162533368354430759467029453576915199014971049962930621428314917110011019491794282853465306552150129597616286794584014268960601322465433807830443430907929530055479950762098965048236711439548402923915925962200158727614306853949600746103325522458824823050513087779317754960105073446862626385828600925327798309297984474923049203975574658164520121524706002810792197645678493052905499504216675803772357330518858710609668207309785626673938201074980235863491977550765676745053021411785094973303532101842531435423959541487382279496825280024679504518995380240768268766298639009372069265087033866260184668976460988417617055304810099140599592988643499434183429806293476565150310696575786163527690587967493323040002641210291973642969807431959151438380824592090377924953959785600403854306085715550837115951671665848789646111282604238243483539534545918992857424909438160359426431466120958278487950868461247858416282128692370721942477979742106168085199195559919546766053385465327091600585015278532907703285777523375081369241505862837353161667045805605179744642854780399044723696824078399003104213697392073949239760215286408093040911539879378674136467552597323546670636553116307320914600764320564997905977465074161454411272116940541569154556090802974482614060225608838673869166815641528944641178984193248607176558740171368362723855820737105236348085397651103460718002546645289506241526898213961985757558390758216932266983203937654246074876455585754194459582077065153005700474430874524877120522191590581653710767880852342937616132778782059877735956961649854416357582867561733853282573938833974015881554963495583164836084081120909952003848242481542185848479291681059269889094128692470298658802827450854535341036865428761190472576952594441834156961633363603914643579474397731746655582258154443520461676802353898155312367602422892815883130463532519309521071936860046898421687090426191905930826460474672820645310292787904152400633842630809455575986405700145822444671913725805017136210783365441276755390111477766104613051769318692047608438661175584027052679818657741061552131504210330481136372010146359359698157380511122782477555456170467954378434957685279501793031765863108767921364907538241772739631408537253950872562540534325450186101901043634339314650729765757213825777192527374612920679777348054112352634475279968869275933583623063235932162917408033615740947622139528556499628451314229615329093543952767168771622549614451201381072772309194846803101477849015715765296390672940640568148287423808181952542381663550719140268456797098726708851893754759509810595641735198354675768644576534964024353380826834051591748491161644325640651309856288043880842098927721099138155324083261382646345058866882308814704228048952954355947603757012272210996146905726853801491156224897648826042681619491818657003709683494766974424232868543340502998054377686213185288732635960734969364914108718393369333232357848087529357451776588154926842378055588541471996459661477156308431750803599201875751119810014849767347391033521200689344142302952361282192122603382404577255946763680267577604074607771112520996154513138509071873349180723358896493683972724651776933906117006204272907940758544484031868009807055656755187511649863629966246546847060726908256055064125975521407138817249556013880475715767590711896528958387763597726264263063630022465436164311388751779584295746939088407551837556713337334790182771774888120011736687352349231762315000939055422438567764729318013379870484553909057089029280550932414309637968772509607870161453028489537389622488344471981793670076269566645771588468541330701478465251136319105600415444057298557950774968995296939740185988868619751546893930927032218680210275534569901193812885038477586183199992483214270406711772038030123898533869198369968662800635632727490762477138738448117542871210690141260080291437760466640280512155458601049196776756041387321567703056875418931198923310828344208547599819726651155111320032919966901603479422550701643109872927854508086592473021758945785877534111331571150983774589263490186412079313176523454856986518291105393762715071755381248588836890849323891358725874694821788788689340596939307066074913381466264488025870918926913521750181032961032183256912304346336441324537106178719732308856574669617926235699371533776744519650316694609213308286108189990329374713369302190577293409561831623264460012381292629263847368628627114458521344263878499406850544901553698982888112088974404861739401825761044114140278569113334291412285874514277041693457651798944175578149197047879399411303283737911837546158420918042225220494867611210217904457055647007399016075269916160218875426895931137655122759331047671281350815756400851169076846124575911787231372143517082408085547365545264007062841035571322340386347658729474981975933559049402901393670144864900218443428039599841357652450916983547109228958865561902927939446230679508519087467980575011150715077421692790512035372209460591837426971667995839687044973904868192060989851106527452593543286712095655914332126678164658038518993039548018038434298463650099252412193765930819771934161366675691561605481000576150278885901061795002387816487792320038759404182450383236279980369102659917659756440200426287141131920429262139902994584716596480425107194303734882414119452040222831350417839198330818501628996629127095795749500756696572237343272932365485012394385022362534608759533973482272559563674524277421833727336600618295609147416952516681783683432486516267521173219720741197001308737916657353179876594584378592057197403994527899796776796001380438337367696111024278196377101888255471988248674377625801535646119422716387198217872149251489217947079723601456915766698403189703347557827543118744405377578233651488164260978806874830461878044743401366076599353454651888231489504297451380376162630415164664325245910511780853630244250023322349883543621399666288055658113401685722956461119608220646844016169941888127895969770020359194320614530136503760460872380187539847407490143930821903414220418229474760611960033586475052648509165763624077171071468124417015872965788082426099336653218948117564275324791039595740306228827014452277779091445837829780279581477019525541852192466095153535109725121573095749650812902902150303436890490362377930165257196914682199361314127963761537294386825451316940898916652196147880996836642266729960474911999333905865457164912764560410230761031207926781251592606319874635268799483228721129750652333741228934131043780480639518049706843499276431916252204938566788223839751750385190219966395619327349626624212776358017192554255387391994813218450432131267238190579977196156348855311968152803052042717332757854409844183407826806276333882102934809765124830608600198673697021794744131886521094267513662279109357807903193249872328461573790922716850052540919152639704067169567092764025201047687807439419261224741835134292863139093136743735757070506728078178209525670368557203880464346203302909194217278831582369948866702673858928956030329156397686377178752803111817384000710742021293042894650056831439194828477372286202077166644107258225591125599496098496817376171900881926884430853795474364667415061243293133170361334107891560910073073555178519048183942359241460522361801959341646182161857343106354993815966116648595511561209591057547303400701389661183356921323563710184750863728429796602185456747868967715824911573120268694199802758456564365081185188444710726026050387732999448518104431176896816571626478439379747565999422155111134778939060282544415474636604374954957279970764881895401880292320548797249988628375847990774824375569389668681230139461666869489319843884061180694088121714950350094542472006728937912452984580916203448291700516386347685527288944534596128545984300206967786910537315925074055348312686474140366555389643587869945709050951651362507684537480742074128205086959150909164183085472191086336749160902957105765203830835994685794585877546745276847426430087937430364277413039237084077538744180180741638035926117305171834681269705556706974928576154261780640977655432158031806922905051892167824998650952202864859867383126839160221245888936137080566908840539811851124877559465343649340140210365619285707383694036684325257695071309910105346424842989870798524235538224205704224549072829210166110775308417481429887844252814311158879029015798121593196790298572552984879160216325053109518862360084418716896055624978818509138428334199085041554326331112727550295152766623362819116683765348999401272840004226986203064049167055338689292797717919133452229675880791876578964291989456695193400833671978033786597124173106495324952537238653412557847667427191501433783427251843257116124123025916639632902611596046521211248292471185453018297145260919629944742525428834470492283174403834952218173886143657296888883517503002263391774532259799545193370333505304964218214120746275673862826568476317436962317319938516139097012402344282389881841438832305751320634555345599807362175247460168573315048346100331533898231314628131000278964139860012342335442413028966615749380472656260928641301899072011222020072482174947815538296618099862899764890569918992362203836720438951142745515881789338240421784927793334044126876512666324945892246145495281270662393138467447557588659431018024851804701079673289484467135509462684224886278005396781890643094194438012207429062195104477484969930145161283388811199317938789892892488002226487618908406531219126062657819893153664621989581636958302129069485560901372686323318096437052368935845982468888208252906364275791912183232083411729047745833592640219430930242981115123046079445991737951203081699974307661539981644490434838016271099797115388258047634282340115754091453494926624304356814582372114602990594884559277443187535000567465586284612465289007291887596052332157941954472651771098074598239293156338402708979452575599187460258784690676540250167843009656408880494439928899826793055259155043049556258475813930401819574989010727418689409061634284107664102201474995261227097291401506469229530860213068415894256828178660967579059477844858186796337878413229035825283227651317012154983029316888266868350565709051736982796316122947265823274690148045458379512583458504244770459181982657718394618801770126189216182370997734588739244695767120060056735506628259658361342091388516772124821026286342592956655379794948294098053639034445815596717662112786290722375365965515317438872881427225281732971236240363171813992243522786390721737526452766599095778707015057954330478491162772609905148278445039014541839701386905763666503832401235589090436961260577427271683515652479560835059236182496827341010533701042340678721979968386983967739832598425239059451748466587806749657832483931837359176205411103785756951762999165397774624504893519270665594312547022051196893225609673976630925133005617742680749482700724665029243701910611965123627992653229997497844760477423369929253984811715830154870513215502262911697081762589975015892482748212170880889424053614121167747612718075646921530383242615822634032305763656152383506310371538838114615714132939360380702662411598518261253296623048336311097367677512517712844364812182880740784336395789469958628461942811715469683323255856490535325750758101066635720869902466790140316238348145633575152149026718414222112418587747667165245730063793723963487292579740213544982811897169525179292492498020046994423920362846940439659270284048396100723536330351327942644645550248112049279537051856048216066084860738032732820368487848914900650349847050594226689469967830919278169659953999011046340206660232735248969979027598879842032833144921864306520748452244886828158274178629695183911099128965516633975169146303687370222922797219425353306368437164102346375443940061254785000387813838553603291769622771979200379605104096654854969344460836385498886149192876514478005225309864646456908263977832375964892189243474277131689988756330626394880278426960930284843563352516580002232696035894305351175597026479500893126370315292456550019135021154840410703551434231396730552056033537870135333592864228804008317366431714290895574488880442948498008300681736894331478042366528666591915418243273638481197525954628520279519269190581283589270602852801529586267497083307489454787100470052625877988887379135499715659738507571548078613165732614621626502913133025828887275335436217390002388948847160056354562926580001806948748116348436245559345922265303928772783988715131006287538362887034578289979686661401107391622797600308626133531664206567271514581300651196392431428425981883546021085989439156806155053577991734298133518341946076283875269657903646896824213118871736262035251013539899037247759215701504211130058702767720386676143535369144799660258168891425872172419491077284856264971246474438509385324612626160483331874881188039547633510493266686336201181480905466067610458441539267687367944294995815329140947560785001487294873020352473524441710296074002067734103634225567355888400631672637396608759294265130316270123970888233198847748933008915369986484539673481526683800459244899471904477689898703636599446690857801581882813294644763077892039259223392296690139923520561764365913220295690286890677386351278156738151965094922949407786460209973539842402529663918978823639100486251964844546816276202511152564267421926127991725722810818071439795916068452591214668163858704688180382588935847416399747839844776210010873980897533738238423651086734915187727882256023353905231145901034201551491018177345740563286770160202159552144015408646627752016038935824902684948892013793383062503847643616316424600676020129708345186418202768780917838346009756485455589280524215950621878115350861715610578724345658374644355588439891754999711010604841287942060714643221798152833127762118746130279502500998333017739284238555449406790195085402449543931668835932459351769879563721098697513365420834999949741895776123185204200263182715967995054872771888040324819021195924190724365881502348651231236666000449598088245864693205712492174152592244424367034498123001885836048911816405811972460917514533520665590740379428436728248438234565130819255643524060856773963818746439381662687467212148853812388901188768035344313761775565962446712339361175649558095625284924497255224231007123466725346397364177421429529585265401328763264367580099113627543237610378764523132174660863031763617423012578856478448731784044139447998558068735418042692840026340464589801962751068201135262566950681136225461607328082962772730010246913877794068678462537042163364918771955927890451279312116175048415096040192277056311835115731720450910555814088316176643199262768417624481852803372748613395425019688710467254742669307203075454269368820450699924289320723610572528736716018306210186723263429745581042708525270288119093607660346237976627848140985803948220147101992811594287195865263713478418730428759852721957229555352617272254082222122008798753763975195541814817681112771490505103001273569508072110665492666125937506407612984821669071794151619893751713620572903789580941752665376465304091080240569624735281471126847468384653037684835152401072885483757003701158736237875983250812953831165841262953438088702444023389398074298825725987258643501983644684219167300948537260555811755714846491644633951899675710034032944725361809198080297440754310708943002571843822216637187470028269098507263816131080599156430506972776674639559237389551760862585340738653428619853576299115324162350898601790272135871455188705308912199570710869058812380884700499242047185457979256142908125156624172515881585744654185519434619391740366219347625436017555382508328331181782560869280811132191687218685729191304571676658706488933105798566168934241407651351615912546818225373960414746281757317380220740020510921543824357028981674020734131960240518335557227873274592767430535956631303462622943506378543936044483155557126954485361138207786347059794578964637406368716980644329934483031397580913139679856996000742261739281250472863757465844152481785328150706556062350155329183011432493689927212113610702774706450687291711425715518657263208833352257134333883247454825696712529212002304280457946907050256499558127471724212160848835155412648162053756619355180552124400429748615061557773516997168957755220564527622295004027417715526956349458871381151347614910442302536599947935076581286718621187347103451279487202932787280379655903010407709369621563729676049752707782987396160777322167631541714931150089802781832321535084624207647163096734782009337464035812894662699593178248841129001280578224978102255752414861202731357501808768172115852055524441614659765173964434602315187167793834079994119095273178267651755056730327086173520835204716289390153587968125714093759993319842026820726455617476902943525986891025703751338562099719869941591322577892102804509927118998980803127936754354096320268450883014445017547824001144653566018550732672793402301674571223798114937896184408008231572217095496799556118313947682295478573845304940479642666965515704248258790044245170497694745680892559216657024953778713457045204421349418216922679486914956683339117513685991755093978662362260142838874885809616518335125411501611289778860778616068794734826283401910381950810064638139593743982008795062521729317040570499933610705918839986383395701273047582392261768676013065691228210718578440685599449337210558642723620594231712351518187665188372868575200778014113368329539678568936098912045529910538880212664101672660244247583797496726862143590353184128753315763852862144108335533623049255818081802242823647211497995712809704338515127893625968238314471147638466872512843527617511596689528962457056257234767174406101235048254668501137208163591383378805020090811111521486914049062596820626800441479233406180192886021230634441520732333450806568700137239535184249747840972464011582528879216297705801349076322519846114276926233820271735287602485819730816095367927797005943248585870379640500737259370790757676155719066102704730661124008999716664478741159480220204266735686948829179628200686892710465133647114033682466611993565607341624128000883279391858244302557244494703183143092081861233388585139061728455351167225661993158838717689801548229396868116678622312863894606933309420899490996292025191933114186348026203516815445275736404439947354062173473930898881767174175968913178804796654228722742125585879007285001553119409321425250884774004223981077917752192358165498508765456321225567844303521053039946280683564721601244060315066520049741939455468804700676065082384431216784223467468192220426697069270962342848779286729029377122651268350981168162218615037100107219319731830162191069719807400757268800884005352236236682631021905839054354864939063531532244492212649777231285525853200851795971727027129287527780516429060297511361089097481186581673193286773457463176749878053062088171240478745456931084605996025336507737021612405159321516361760974566552002359494708507814426756665383543459468078448832775413589773542471935865919915851948545095504912521059994400796183836904329530192968187635387293772151898066996240432163428119498023346091730506286223347712841939465469546562295014341219613634704821649863295791645022703700143855468715072210189616925223069874340497801218730807293899730316069347508099131300614939134251201719153366802179048401013643005075338177450340477593677595106681361965019284680322631861576148536095802392616078543875760331924377702537946283934190374206720394402627974616123928708800227324172389237247001941739899221756672986142406690769735894012587597600185285165363263463392780455595233064386606780467999784349822830512083817112814983904560397656714126269358550396076757914224802909060610348588627216752144953835862586293857176337494562999060709792683398282664690154952951086346006144136281517256643968227714684027763438993397592615502653480466200186254009079754101689140040497606163416663837691015516306878077172245078577614812321801398103068128133013629242580396925521947129925398486430003234057936112524495200298663079926876914436977407310728107082440501429985607663093231031512841378522210550610041302450772813509439472292334680722715803466167829942940614064981522741595193767186656127771138263209349090774776355443176105725070834391435113965193656204168929820277280570388692665307660179702377022640203649434238705459948692515271686301066066483239075642850610225105763778344876156843124635300705931734609659108427564278470798463140977165864789094403794008198323799762953336610996439921929651204049602399959611267773038443887750816385158890824337742474365712573234807124230519735197227975272418185478224931086504912375285871788405510282455891859388929527358307443661285642786292838635776205891224439638525521114543263583498740542216405512453089304975067732801077091853248864270294213350043043220778774252049608637829408083178285072653619552269380880496330011619553868775901321527689349846463248368936744314096989447622620399797081377707204948291788451415244718417888982364649703903652364136098351412893177033827827867871680956333832784974557779987031651552411441179822282472413860583583085192291910561634493925250658423598761651329893798801713110418364818627878133807620567388903947661775903720903889199780384637193861322572590136808720531099426076753506825076575142456102569160890008864198866595462053281422312585388032385671113974536191554630174139706682124247248517358169627554955452263085578359610645357918405183415009463852163631174885938434476675364245227170957410015937556415124441869236636620660207935881217009595455184565619506257481777906491822101782897697712974897038770694963350096863626272173967367571866909091727944381036356156101560413336945894992753754876839499086880561499039291012784401537294085081478447182359144691292888191225313830484217875286798144115328697552192635522109433642636756572067839152663279184432101346040946035729051551393414539825654503831311530670620474213815069794761643126129132345355617808252208202501590051113952068272518569041147848149230881836012979977543490106609371466897294299542216708147608653454815895816055485277451164928239004098005749223091388119549553673911710690456772967354652638396873843772236867805326439168581635884378883047483890646486036996629845553707865165893727453398929887472736746839610370617321796191687952188865764667718581427761889373990711726687801349410020906610428863823371501491660128681874472405417423276686031917768783348988392481484827008931284392833115183535134506659607180513927703277522619171797388206900637577337862534658383980782573733068032363734516845243356000964707559989310560762349536472595354833666129213469628727954115141711927325332582268374092167895060089944994095345407256315511637639973186999265848872674767424380017693871561466228468778464765109479672999786788062806510084743285431438032037382001450086497889696905976181711537459183098557727867189190778994588688095285154271935899260953487034161639884955077016764002490505832041675440412352257219457541987207492977734801315164748378184201904381736716663549795998574300698004302478422438242840781840097679369223016545401864573660714825148454518339362240781683967259045460579091461301004176879565424800886973055435133393301892864499150566342759352262165419896366437641305021110696480937995311221725550760182626828090606569601023360637568006839676424572487157429903345509472878469588440732250133722760808611615762172006019792039337245519729132887356689406738325843364328363790245828364289922351883244796395855537185340664772616453284187402955216512250463878427493127751365215171544666849485050888260468514265430604985783112420497172226862040696308037624126258299490422866966542310092056082047369922583089778198410850898509384109319749665753229723412610161826199220532958181608526566464963466149726595114817938294673197490542970619839856234616267192528821803966992359986559663068482059821552709327807370532106803620384474762536007818008494430287045641065918566545716623408169533899003074729441782753472721701481697761920402163386151368062878881487767278486406659995102528627938386607179734533431905190592341328531626656297258481327225421220663977493418029018852965169777870042089685908394921944380560067634799597051531107983603192999017801062087949817356885219448684103261104719785950136136403774425710516730672748416641775328509109071718616729279971953410582252146734945961281692271062740108242786342921257665063846940901332671248898311134441507407024819185593245206131080602355777485908618724669962569519301541620344287245656096226763895004600837410257296416269646525096069994903559319335572425881228863979601570061114447346473749534976978396906142810887328449869961753237609676960235144017868974327079457212511882022457624183186492732306280940932095080816407860697621263036503769165388975834852311981797753266431782042000001124398009515102194761048782904212285949666889445157513314979341959236041110012539374639750472023277056955323803419775596404349562623370162436519165520159188232003969203663035274866852135501583437716108558790179792084308815778607203680261878118958747415540702873185177373717518084200543614014727024972976903538914546437964324106830906159310042576374923772025550439966380221041321728408162034216797248236350751915738066542220653072494488447380773383937646546094836350294584953719703954826373955544645147459108611206943964360742700274780803146348730744112708034030741678387435032579696622812558276156277007647643902193867203333071170105105815959056372751184072829196019367298557556121156400020041151877093651842176337998078664386774381961241747972921271027731665431986149279816638077250812641392771279277753020027972985622469667411997551644174022278572805096122996649145281673767301347700948366609734416031227192197595479038806071751237970002639688735009188211101766528986880351859465303147326200927747033493752819333532335871696341929501359033345948781860251218390455341711637654955058564744637075629529675833592074679374134858340077596003173493847854737007044940200339532463618837302624712620126463085862182186373923328686379421722108858071636643259908127728229166349856116782533205072626098345277674790031005392862049940558384329649823475213066045925759272567368766055120323021878344915482657012860195059187401853981923592823527429232585472309835751920712395167053776035983342570198386036202792471117782810231141222761239523663676288380293786877795087675786566714073897084734548551869239651025259854875212907268034970232239676446933792047367131053998560375404392093510838155627602234248978922708835302699316911348605109523056920365060378047006718179740229813505793201431480224336356923378735051186086946782247885104372674241611649076124605931958146885576918087830381100290511920277864431258438565755082599741900640540793894960377412876515378162446573893794662119830527830345951257696658434686505857148174461781129673369479789586974545178097219829860551493497370324988598684258786931171508313704880181189543939113002449149312914205010217369205436863875003696237652363117745293774691805503100644894824175838203891703505323241637599165484672527235177292945829666460063867801005882452524995246228819340319319634257672960096466652944872742280158859950519984108963449659709139893051613833413656902324487724225332872360575288844282021973643477636351414981482343535527634538911026046309036630197809479634109783120707905898769088818688437168335725261647135988774489012029768942663096230771441484333837459259530047396531048193638070796647805995488741467229117929940054825336419708808702439334815988520675048880653878208590472366060275361682144744532586895600110281256937473563995242721931710797934539494568059987619767459338111450406286756492530025798021666214711015208568014609746251738393812846291134109619367107661313102799641249230284120632703279462759770372135516922445415129893911486392202622427943992367689590459716372690838233397138473210691313359820725886929159229968672244819237343059008097470889954893423684954496666131883439062936566625259664943876159086523362781853207712457131448440156142796499771250539054171948276365350078224054820224728313525606546466931363941504472695708818848066549354659694558715987076971761537102938578265665443201465967390238042279995944318832793133670230568135001534687115977654336985744478385630874051040792780360881360064806548827668847283966987884145262264050141311565086164397757556679053593820286381001449865834636297867681833532888249480622750651954170882611172646283418028573180995601170210750500421398272755413031842684238006222812632512049815926101937641471653261226580407437340594337600171321657448004600974582168517738097100152127865487171797325185669154134818270743684079723259380900166356137520488559840087012951961601600470021564244186372262663858205789437865416167582485523825388120499717121026872478181696898309412646787473354849466777617777725483193395850443403550940115368812289173396415373372707868165920496785540801235588133294808191765605633439923015849490402806682595733056258580238343665243813947623603600928302825892200522343814647776380727713032615386902503373941452306872991911695099774292109998426841897942548753735835370555499751225761351164608669586514112602958853896071756093620821096157382063886234362999276830701692397759926019161048986188906213317786478256057759410304043737422806444562936600602597909385823113604712012340652963942379517309640143627576012565540617266902104525107638392796496914958419605272312320685228117570341927103304374846790024737873823579703824732013738190837108764311018488340348025290898082829742872580530716113204913435226725292153085019089806927832574565781033602843784300389039031278397332343374232355566822933007897082344910759363215335986101875654324268922166921563903754744376113041529787490727754974063808274358862334099677990826918191940821268538700339229586378352551230396537317879276169925652970724659431807368473847101430465251199590410114753946584323369081333202502048639987044912128680132312754381961632728375903760491467718728080804873615202765231510705284352806036501994785439595885747657753053542500753177498811684580976449629131168775803967480290535019325790309486311570641011168991355043404410021364571374898466809273653516723101448862919553606937141196307123481454181380289443130268796524983634142593026552568322560481696046027049625791522474893090002815267910372340150610894241928337279866150967713330950656840250027083378003556593423703130830134084150913470885430079474675790244014950541462619831991370382552165704042455027545277815558888492072546736965566750890150150119547515870253174454801941208658444620069797842251080376151079052303283770710312178271475947081146824708736986803720399600627852704495879453390913219389978270449934330738413954866756412223110623472301102234764243824897570226155592127490120236436371567227340724970473275458193575200495056602075951545447425363675962028255578779570549223188240328392324786600953115021642867802759461966881125332285475925203842846385735105579445352609352839015951625291043796210918251203366851158857101791877978488990341496195866171090071451922308522489525438113624036566423802981740187044191028273516651584075656599859511357561176391753679565681413246760222860479717939992782733611663828122075910639742969973834644576652750283000308784376447273586758285166599259033797474614859401648502977527332832825699415551806708997691489048827711787816016008743549524786761746244619152810783516944076372049852327638171799171869560137266205442550922915140623259902555430053686380424565399447952499679070563230642434646140971181821719342631373230581141023263792790330886027767387296039613872597498109788983281686873317787187668351016294978238280288571552451553032703014499955938609939736796893561026543425028104382859414090961028519353282337015778849968498662541818575978759773623102110147974401384901965991205143016065994244161417371713529188592562489854483222502581878465804665354575127649721126886018274322999816180028249111634791993442417869953735084283511861868797448070021118086566397744431562520453462314290307730809866841255206730946597871270974606117917117547750797531605638940363552550110076268018361396399633012831846160342011880578505763525703685264986301277693315873861405041384128766600589729855926048843554175036592526686029125261293442863130740160703933769627446873106647028949253988679608561795459432652913866574954090899748018516900931916814289201062904214848856351269426589304842102846480091866079368656291563546235575810726431238125177778075293498992580255615184249471742582653286372076988948305880820799864538059597603290192398058874058824517094578090474437112607695655112585673102862900096883796317609259589117315980526941582393099765197150436917666514138032793280637387115015772907208525285057521950148462000620947650429189848208698532594104789036113057987299625891522095068273746184540051163950319549152238270326854109644023467857213234236339534282031319292520048262020865317338430080633371281657376382095597939610429625056533459947645313999972660553801829672530838243780666117391924442445923926396529345784538151822375812325672554220982594943553019699174861873816134090765484626965005023465258059022041736353018973371439839311984501935223627346712174632138427947746554203182546907203899615223975013306700198554631220201512423175974750091356894437030935328196173092136795587228675287515475749549553265481371536213976345003373461649012424359709334342516424009772869770143979855583785499816071677733701281654302029657532406607258617589150125027561693288777779012264843070404488656229254569102222164147690714576390201312369762450178841926106080993166792674949432174034440727776439592220461419004099106572264738554063075078291571301427451503671568700657500274634243591732566507353735401861621302090955158331610172277921919009742252508761076296124683194394611185445776683293854855843064511546631658821407228621461305658687284710859916801943433799269609080757211659290878942089254645528703941242299237404155599233622155704325865192030253680405818493477441060897897423716452603538653056599936721648436006233183084653071270664792057131309827375077767634342595585294017122540808772071312598911169074379847972685812648465422570370937676653826522148464658390974132992920765171823929381421841939266951404580237387297480705447785530574912229133736678268973546136775885779742245372606984037286245904323758672751299338660278300910773931193183389715151526133716874803343697817553367223086407209898064445000593862159051157093128576957026517523317515772125178161090908992557111136441361495643394485694918371813216254804677653484836440863875987254406995734811033668017660923250254847866337931049443064350535285557083114016679171995495386484902888320679750289452685434547481567795513297050992317835692999071353697857277993881880828663276377732169587010893611862053841184067218107186277582826231100297047344091667099230492219838707299863537925857152600715023506387795898143541217450195255650150296720555245471372191811283812528369069312397930929082279350585800346163403663451343759002235627261185134231447796695752952525862837355568505618433775791292387612284619904156991432363152530205137683348282763252678602399575523440372919878719540739742492646408639228979768163750836677905850568857870625994571601872837504138205490517705470839657355418075203125445439177527374458138923036777613057759559542130438203222195708142251680401345132961108468974840383063735595463625855897815772033293708788473456084060088592990465102629399802292878980059230903090862444157638745519430908091440346359896425577075057674362964788068931706279963693926388880810980541273905126911334866044495936405883869095544235825676910193662694186375202744735826973216117956724716409303555966923992005035792045531433132922104395847993996190665243302687672876154829917419041368184278516586424147422627470302514534365203262361431065115863499183846400760418951068249231533504802564311563849036891661194981388318686533431439691354041030892157991171145398318048274796266649095740490407224956971065037443328156857855300880236175529812536401405599995029924437274772935063931175493800835053429051751933712294781340719708863250855463149904580893920674528338222867206548477331451556774318954373368943156227125566760885259302368689065938583144507129694419307687306119487737813928912439396272877469345962924804815673523563184398871611108044371241159106906607121952714427898360439234632296547661824113224101256468639277959511687588853170216083992155257818145632064118939877123403456815528296937472516166972138196207297639696974832918744399887679139936068424692191885609998751986474068382832548632578134313628506983520705055066332353456069464572371489657204046604927990351884585072690042403720897659659193171208441411581367974078395718395962729514361026782718656167646493102270501122002971984795352478052750376558869664176845689201065628445970255797485017900172551358619415635390243035548036777627452630862702727954967870004128932249071594963846887108004221887230477220103998555319598613752066016589455520137691355939492334894078560657315257878000893807686821583826918612669218913177303885947303620475562742133379041250559982770988420936868259990191252921601251562948211811064503860869508047207856508558697614899634771918673548328113815972678416563010876411360432413057155087762943847357385932613223097302679371952479800885234166012290409847459915609247124113956774066987649782332499918235894847039266802477201337236330539868173265292827793537194335708817934324563871537483305389705048878342767135319697419210368135653763003429303027870564420363889537197316664913824881737717498404782853911731429585716779046064451032313005062371699676194461883557497682836498659336872184295806411912203577073621881578745391468475451744068142500646013872056349331929549771389971857947682324868260439121538057181530753889513823959468013731842449901908326245902296589804334574139793406229716759571868904655648595273305509069476168805790813378618890640253542137345058653465803021958397877717235384493660709807804508294801313200224109087932069626078548661373842187386451621656517062224382916465830089026063919802657571726360705899012948723476126203291699337951548735787773862875000635634932288161718926285843592362214056827798315313584260601935825525880104325442649468483783506142492218903634723588403230824924891584226395357701598813102707412611196430065386263720897022880516062036107986321897997282349519048822038054308254010174996380079725866880715713128190406369343004813349036472874318099849570314385209362851625848951860546061930917822876789378542975798657016076926891126755301631202900789859487219396095492560032867989715003333033628369929782394238110314920434573766273680154519536370595762198319272835011694764033858930741089708221874606812526532700101237267085254710964825059916587874214167803768444595586360881988600214260404231548395462243830813937522930890038418246379880776006037397990167576726502176941970014517019357256168924417035664138841656336264029649666881423802909712116174809992152785857064675345060843888678607364540182801490880589796878994614907183519118099434729686967587489711301736224412069079548254540924333034856174546790751276988577597952761114153997977913874977309509449351706709634034843320106516764013942959734587618481779040439746834779308886564943806562938507838349821130779413882324113544430860194198467590160649308453225564038824559183133305787887859033744251970440162525093126403347003382100234279431860574895695047436180347867520165096064209394986633392868442223472419962137193156297022232003514745513929471203007987534946252817688180905600404993343922486560825774996283120234433436331386538078797918509344632786595609550884527921607085047530029018450147239938236441315230046073018265617789532947521121847962456217880905951101946449523760747364652734620178067263429197443307113412295763163804703686270930768117003605090291131681023803071617477892491396762314123516643596935586588913406443553662834698216245009627936636892799906806027573847001536406560104280878278038967107675871960893646864055683742002137751034330179097635858686093400628700294287255052203122009724928436231487225407287575270750033854508504922353876865455020182639165738332391691555661305273210642828934466902066783137482128071386767297016974940734636007096673618734884750537922165291373208240655836335068565940442924740053081917702861236273772166096427507238003455345401877473751430515767040447913066581009427789863218814486195865159044228279602775368388930784895298662469278156942321371181374339378362754187963370455743739784825245938388084836756630743520892727885839445349330525778912196988015054140932967189777445410409502718602626127164726813987350243319936014902680098658113040005385886002346751967414171324870497642759112243537998938301898495485802403398260506664392848191133903304247711432960544532034823892013094097243839041022102768883746424805130399474130497006759344988346220485094337018933468793828337259794160235427238396729521786249142113220637987987801422970679143447994792287032956830272249277196695109390789917603894687956344733356555089717658525091169263193588175579747441268150424773957108662952913533119805863960773253537032491921375672256089674892129430409585042471765334276690230018706269825256213791295791046752617267637263742751154814366292509391106814621676370703722411212106004433158923326892119375855497850394029626278120458658066515987393645986977890594692556271390216492927446560255925043541089783867834050795949904110633010555490448444228129647005972241971360094474547432837716375780706787505134485984442868749782693921468050308985490507864425643396756668529172137182280767789795891026696951178732198946253792689620875713969453712088573893931639402320930879001578637340523284561755555123710086775186178548985428059107076436462595263904998135795855955798398108808496694242393472677561427375538479921481541665416078726769031103109322730607088982307245169996418551417066327219379210589063164139831799725979298398177320361107222329645305346799448684973641272606900958312547467170972402767808911384065632950947087379961713201669070340358839981954280693545831933998716722235684775952610489599284312413942929355728906301498912934602922975307757279823951595660430193178322184587448951489038705610296799680206186864753936681255495921819000123119524069625479872749301434592311380292290851565404573828429610748266315799712548314089835878496293733240463692178247734798649751268776812648661445547105413496184256958126084933674801002952504786417326742478651737689477130933128878299916779045863969529941741763057840020379289779109957996973163157179665157500301310393017761430949790736079729770572407856813447245699326267963992843322695855901871223784201339228085089468258680087546858258589731895784609286717957208554816525388052141245057647906310468138591226520918383985468261854809743536529183472397814112127377042669886683379843914800339957747760176260287878343523477965544749379178674365951915322074494686152890839035230989489613061900653172075227028438315879479102753779265781549170519106670523265086575212980880982844692873315968066701937398532812282003527765285329431262450069167252760964989765065603685862780044979139887037876179224058730556054628237142135935467468164235566872426792568527934141389559924123656587415908164746007434545026319528012978735890708178200164782100572245850515492329588202494954243686109694857832249088881833359679996814981883745719451884303160724774942038107109509144401323225211843000719844532909196189300569828771531473860889071038946490433589079908575039459890528528681152825426070121236074455637541100642789451738155788227955717526892374055930014037416642887575364276725774178858702011459314244787411478044351249767233108036808660347157956323645012415713956004724519815235730667444421014524783256037911714714014999046291005823150381082597741559270902894556687394262577599388263331514056525884322395428426208162236930454047284739326606841236697563917656204251500596847356781607764717448661037651576843546575839084519659939156667228356297228465138981771844175086494664506054167800669015193028866859508680701369890257795122998924289407461719789441498334065124431756988511490551906623474587956759618622164996032236892464062546213862985681761007498483100857086249196841755956506936599282677716840804130133609946961436344544768765794314752804144611195312321775146669576165274798921467716642640697916861245759747661991352067879159640718894108369241176061831431893612703120705554233945854488598820628838872231273352395970671285267558590658281937838662549157963100830084728613823040619694680691715528264067601401073519935959172451691086426222578624544647610756024977898024744982690760855890380246502330308287647055452630440792865288848706737996609272274557830982272300280161123810567725255645173177286434549052855457705292233270537726422195401359911730558229216166403888430595562475998071858888440507235024356036304161622745125872666709922442431770098926568184731925961822664421152532722042632892151021925889914317332208878158274936342519554127415545638623220484644663601597888609428508052796939653102886736896822567482340763927753906041700117369735149286898479187410102880970773145205167021513761618986524636706890071052343929988288036668252754971507322817378955491928659750005373946082752385087081142797067726076418942875028597691023368732261200402391137503406846599121611612421782840782017040356325750123733372071001913950946188294870665883724375221802625432284611051393375136354551749475515519161325030379269432654248012114122068822274054723235979166449833593131243210057310714213697315753123226740367150453357504783614812539559290878061585219574963323118125635765217543546363240227109758555248948358972839924826272039178364371484864114447491543894961205189530842855962655650377243194912427790824511441033783718302084484226850192274728747454070413038304858048455893531274835733463350394691896831335084572252531478106827586853628283695196133355568648168265989052377795590789315568764827368042744786542286359402236771271736411960191953027399675774911324831416037072614883000112647408373060252398727531155111992999635455223252894350711039890232050451620399051982728755323333842049720234969665060739193894777132510858417363974339542382902581426971686875862742554757607475207687085274372336804109049603346434970258338673280739835348003529557753371268096587897729604870404186916050529497637929223250044838395139406883014687334007493110282281747794007285935262731528718152985733789626242238086166971415616660461940998762301085544778730719950383409115160768596514870152702202989857820602070260512720022934336710930979786211335755812936053904954740853981937209837945291458981107932053572532404544825139946052704903499995387760781658107967829416141360611454398590164995338703320546875261830667557475279886183629585936040444890520299258671855221262663149141493444580643063914114157615216189619316652395868804739549199836234131929996999854324928115008637963419881136195792890883621279367011390240151960341695654676758203066017940280531560027984040218345336274035731369500020822512514318241068329798977728882914546430189433406192195377012038632626489896635159960423762444812494774620450903487515836881156099044168769568452228876316525526950808191723811701160114395030838511920610738468240197787302563929823846771817283883098861743229087312736716517030020927687965870653038269763125328010510830047228560872163668447870278680918671707607186906716022481395473035656605406493091874453484808329420333663807985947243702050210800718056160903636073053939578236768436074046174014739762478767758090828316378672070522817560101109961063262747647990540385408918327593670843366448304697283936875396457366414169331557327771898832873400539709199892721674883152423740389585164706414020422125356112594098462993484147746289395026372832772080547572754182469254147981360962002445617858459132815626466464644644493812499689086726305683785510470332142214849388256536767765577829048925093784463290775324647418784601928352607433179789375199273899402440584565643767691979161956984670042779204802937478621223808816552113561362389397626554758520698467247098694478664124897341867952563694207489209361614364641773970426956588205086902704818558138695273612716267871413333376504127379011058292483674803278393034974437085419154333157169309726432812871676780525196398963027342494036095947312269666272626780653090241443757265065000951411099456020039137374202522538770219132121321891094423069456702013268272284365972648065979070904089266303780849158620222380451572203763905020794815923575960250435353526387904581099201474789689952270116339628837874194344892834872397653630223022691277349853328178109251088689044370365077970449374348242929396064056350813265593696068419798687375658340352400451266646374897974778310544299240755778958455891322456154810877997691880639828551109304263563203002123580417211315534137140432384121418077097713687657616303076552647376821724825409031907556705262104563573812012372749508562278674512715240067440868227067900077916443640683163506405385123267837420701600070061857030952349206519862456863939986157734944790249416576951434271216208576251766455914380938585501315657795847142411151187238132974544125598961139248888500031471234029734981324103973129725515910110518386983923434156183440692845521344338384046347866362747675780664640246538466270909625315148783927388266367506643672822164750771248484603748075761610705009188723048622963098932292442720666510949827746962441209702314240002875707187284521012325609491342743235883799468463596445038997481062888678472729366206936902381848649428647816130215909165067456613329032733796077122380288661116203845492992223036730221951701671394353787983721032948912982718080619337032595420011132185766600883554152709335592896970654051862533062624007281220906272798739983450193284081420767387917713923531238618692452398499168421588572604587200257323420290254257025706246690320931192745952344085960030479962364800922376545717272816585973153783450396914081954220815226848954025053427177677604597642934788636321165171816280118283895173125870766823784219571387736431398259246283816918820498594497645294292180243565125928338979190072142999883919985368172005508484477299416717800918608858510688244222554333141683220502762764555255158889539645070332511344642523554930528494273222199785828320297367146560137585417845576808585431101055973771361557651445013838535299353034686845644303165891790657367212147248454982014962303304420542321642970252133696491384946638564513403440570299072767295152374741733843427723413102921408409043753653377615888289553685300473882886579794573772733311993646616698354649531393899832139972909617896944233454258571871087078045944716517246077393528680124162652426403257756095896336607176422512964914875498379834750466834354812487151556447438321170184902204364159476394980018209300639834964650803434971965669799091441505157514842299412177276416202368036844521502083032813801567803143511971258057575419783879674058947926847454672137092184635992466067091787900521487025249014083266794603745833446114894223866491482481454372806260270840889968603052234906470118724310345768354567021014122847051087993689588941526662229602613995167279270077594531453682477917372510943140899362030013649224585837074136322344408339635680671040545442720903996008012128400773823202368202428276115530954564899078812182766762688121940402103840594187463378913963365484986583811996763387818010750233886676863232858700577649075033031328618234186586070187134455554307997398440134982153555271394380501919921434650104092961923106583242489118797099892190161695137546301708959637981588725191546676327718079413101847848343048684565062045910488132957378230445048395348319561716803332595265297944902348463882455479255243738492186490798671856440257976017180471398915232344360330863358242852333832692498095480567514910375620093059289686889871921900908981871427747231694510895713441783288789160198185491879015343344189685755322763484597907195944657322275471532343572678366515120151815582705024743700197151874117784597750129986835822511053253980318492516018960897311293501665992811788376050253482809663619093507841449719915431787262230653778566890805669869841528245945071290051418621380947022870163431057560821220996465870248472840176563410733398302655435292122039826752029340846256297669334994872014614614062175058260335789000270226716008328474407986880853434293469332751529492731588884257262899334897887579187185052935978629311912285973269207189942047711336321013506524872938272160984775321089904924652736638064341397496962863723344980202176118222783086537775234542206240102333641562196184353036893560826468062591535100690306181735664055989176562839465016332285116330544535561575288304124251085679552777491518787902908160802302350476383568678795812007388439771621895475479345363686454970887310916611781500259454135746342086053068401013972594794424489117293026829259487238735717631757676022097715604190895980477989813288466493225340140255684699293255175134310533959070967248246975614909722398961442093672306541134127622759754251725503230261126897660522451700726655094110457910332996263338568017335978388615898133168341833140911708913110401850186750511558482079511677787067713064529105223862870396965852220929880865358379027581731933517894367186509775134526211770946681335528814650303042761560763387914277652940303782621095047206013017684146438848220276402083381574392097064800311414084551695027503335519253301889662867619037574656030460635978104396388494159015377853680285797139332858047350170210351852012040253498481249610271242527341288492946213115697204213273814314410577643015870571204309634500256296776261388967720751494665259535723043877091308467976027707956383831957417332418947148477199774031540668968595121467414745778148256252131641060837129211619099126626750375153200696172067362192386527876564122218986712555797748473970657518416593719970408606643452047799988590304811318744901129005373174540647672415595289573859164031750801465810054532247328437705239085103306346625700483184082975331309233324093406092467215045922702308971036376775461245194468659173157669064035887644857477415574982385003487231785843907563665000487656648272015284884174321616997345898047369858478935620263184229191417243723030930065102072815431026702296029485451197925519810009849263496889824067233409267362178121324351752640460613914608489410960380237308992728571800913285748669793206449879122478191955491717850142847345127365835268721081020183501169217335583050495297102408160034159299348817732686631813490671072692938591241659699159522553037029098024118668991095259200935001299486424491080838642984794233210991522656721361420322472359540364326246280783547565688054763367672642567687650510522755385237546357591610531012357055494999419579119012681864840715191487517444324911565117659863589241092528207658525165171334163685020810155024072303110522108133959659109391059677685858551698512225422445284204205061715904258220360129026761918875301854217142700833881489965262033058376782606871733979168399084973151403237504713841769516236339607131915701861124837792984908155582316240584841625760152119713240602490306862313004569388325857841261465711900156691411951019263013458196291587831089000833464990621807654096629143339097122491319425618532599814500287357281369625294128076057029768553064036667850994705808080608929157106101344481373776700874454854648079247248406374074356114154676499938407482054710291561874730153336894407143004537787932458164669716514891468136351671969226523744337947611893703481181754303938025722378697044071093696056199356747477758949669688712791782379448435649865601214008394416597682718536497492767205929451898773925961540406060860969308867519055925693719666552964033896473543494992188730478705079124490978468330604989716135447977067407863595964940413265669614591185584005252828147871691491878452062218488023394074166514834401311242430533863899947540540963448734375019391566955396194324468318953732012357553861605317988555708835924891124853543363532474240441299858178399766355356893597692014651340179997716503721436809231767814567597152530192658089863842901636682423116577314404042209609995630267419782460055482051503375332419719502386865593784081324940386402829939548276417569086085387340953984919484255704794190883327360222507011759336496347109026681091787464103773839491226908103739415673625815207437618349635979421478921106399335029182657838320071347842803591965740252853782583402538317108533499114862646212123698862384784333016911097950541294549897506205769041319263157689448710682319731162483908772639380044123769923949898455034911807940830427163166662207991102102701469885684840308483730589330741034513592907870040148960555820035986595486793087627600721756259248696442941067844641253156851695467403444234973282485334679643698198746524352657431477338165440753980858725076704953057261456469831793995599617478817410373069758459866807966854765886541318458510211307164242146896644232806137677064276369929707761940233083310882111738690768469125657874987013411826435947304394140130862314962607942903252255965873723343354914892433596054023818747814408720873256033747989547028225037116614571768077910095783992585482481158337024637352266745518572645942387327613623225519529411310118274929479394176416989707624658395038975216615088580914964304823964155415930915063033106137625420658993893386590803998742573367348831202224540680041041993700628716083338193866481373364028745039607241794777763813923585765693484408210021431558705045634797982154066837038110285128239279722138071947423840458232450285834978863536836544837073195381944587016764801948023718542467940877253799599711734825136370634891206880239429283142286977561006959929656025702994161299518718474905377583463805605693884991022949476944833907543164455113759192240832965422613063036375379921677566248153130564217689484926082685277537926041980304134644072122762916615650814386391230313619733959130642155325716404236929555601410414903592322316147519402103831241703142944154088505089600667932105420404362702104275998556966941299968314157732799313455935681130116923011239030134851835994113472385236547203640110688942341393660678725862442919201366554340072245742104881881992388720529996368845586775224852935771014271462553240502883049745721481342985694495643289784884131673474098272071787103393544454809933361594586515098403218397551546909569809621956922938728948515645369607185992440231524695255189754337014544440117601360289968023762550533346450373901460017344848560414149327414472413899799443963379050983796201492484131983761351477502903992804207769192350417553970279715463485957910171109193969410305055629362355334764786662918985201389554566856695763869603267421825919872383982094374077307949764107357146663531216270297999106783473126373983385636418237100831685993750669422075926040507363081724792741019194271535157708437484020746133701860826894010139461759896227669256908702998133728055157807999419100735020799083726612208050641730508871511704801070229614127366884865480171270313937631539054578481028947832895124244094359114091839035866385618840468810909305170400584805030032704695488101410962466585521331873687611118560970832474247022635075164419539189241568742127734872573108439668373334728252963875455705938554643545144020442223889231198554048263329991909382266258895181506661282272077169181554212907883135592247944725947028251682162840715917839192614561999454198350268598504592293325204022936863830080526006074672089080435875205349957401087053477541484787702658712700911779126949824041687646523860165173321670190562612607331401404232416074512113033616915844973919406219359521050421511309066504324984238668594035918906910972111913778783427027189282790686489884432715451246635622995967619920416786264318544351932987376945439580546414010569884052823265095883933869101135033135483710999755168610053590037027389634984573608687390363018415778649304137805222351173523413522257358155312136564201443992230911968934531399076213409747228807730745700420531357847665761698758100719808035570703896376793654483416982452407587462694835570058050706450631538174475273484477624415603994178224234706136691718281173608257990420074267158538913641609475250909627018280046977993234038831024491566265151670045104134105093188240371595894851063570848830507136521271491084616810828976720903794950146690555519394540988962254889695682307745531989163871824936728495570561598796320925266468084216123046565479741305344287153437529861798697327585948544440196630497216218700077004100192386737795745933232892334336163197944320551374649446271305828332707599835011771384020867598523478623765753431004793592054596378414238273514348584204894834350658343541928186548796003070079090789763319558419187288786171604682245728925883915809895775367745281715869167095757446385728664027661142870966475233292986114102058574319560720996614298778843941868717048352034805327723019214447441188161325252685660004634032176300519539064612062115137094061246191801052674762778252440766098234592862777878125793603368402817242721300428322029665404969991140971999800444296011568211977867581013008223024806248630747378363349238981649187169437994678227705365446038466898059601125843231025962949973274286127766207841053956224935957871533127759597735516104366574494060933718862772360645403895421163858503679673699043894357067363099406085552553053150836299235005868023711557429176334038215690295503692589984285456312100888083302800508643780239045337645152114622565222340387175575978598349386406246494498798233612536027647843206922353054279355108434005697882631617023174656536538069181587948963901288120779817554950319361347812534252316320553071743011535120775967564463752807589738409444432535573490731157184990223786934449442286055470523489879673712695542526955665525122317303144706086839957156785986765456470945805016092876421758977869759990455462447352397782779924955196629039654560557643307182409262475972823932232617951081838084003561445772899826758237464010094638031905985023497577352131596684505351848554722860368561728642778542897426401440406161674683918130125636744424786167044331536367487007641576971793417498512707640249421684524567717336988063878801908859325244527776291376049802473454723874254683919250879178952440802282943366362656303735458103205381340222697299129035387698839703747132320401330810413827118577195787782782866893058860365609263276917315789984744435851309612097311084247598653274406441118815822894464039535039439628143776206020394750624087776279048804900490140146385917133052561600700407997397486461772665463409612870542997712559257888576218390833250088059486965089596559123728580717400162459066003322506874519092199616886784797855803428535546599206367813372589684396175788584028392660108813609404902019573597435536179454085320545570963639677439402654019503527535024300083615625493988626668803320408428245236290293164861674019184972756232206223993180799873741068317549826715350693706869294001587318012900504611328470349859824336955690888657740679091537049179139850601103377208393634397738438178356701823949371520738610469133623344710951311433215855575634477760672216454526374783129551541724921827061633203411432942421125670370062893344629435608907657793504170705468314634274994754705061274985748888748840611609904715879650139309496570065471749859513775216845554845254212089310684832507506342422958183251063589338979919870700184247490355802542011934085211680581552528778232156795113887856191215781353471168693554336806975305552483609043003551948038596055282906422294097052404625732620479595104319136507671694720440528230002831472207166203786698734031604046441270126310470057392762399072890384265082247725316603754317063519676807242157168516743952800634041713303382947134630798123547709311490940719859284308700594609648526378302482754873958167872469867618110135992319503207483772377555526208702345470199643833156173096934839048654668170064721544293329210523944381695483456711683480909062650693746436445455943518856915115821102721549928689282114161990734218712462367770522734985318985723928749897422319182444234933122149400491246073901988898371603945322822587739072093271699103543866703215838320055526767996703914235081525255901317744920008601969621789308139810381046773029112141150462771022427099491489701550787307640633125887562491884197901191798900226150655532723034054685503825880043306511617938862997590571800994146080692216056045639354139764483160157030501529810059083234417342719764892093867537209798957712527826343028602120246801737521562485959957282377715151757426694703210167576000300877159255644696101341946999375922721460733084661457869165955107685995741566953818988083710157871416426017906209277312426551177336974711715325014475259920218412600928248437765708675579472788461532247613805116050141004907793534774120282757202699895716582494740388931985080181426891778987973235766200976037941717710667000826415689952343824859047695399724420031692463397937076390356050422275889232415907772787593945267776038843976584351705193051644382214991777289011004503996608542259462447288733962135284028729865767222909246221002741321413438105277700601129884857089597531692546533306104939867099788583489590169775941264941393706010284496513521641531643296231028667271423733347852119606762153677718257256880923916312256089606276964166384470264751973882148248779068720951009940242320861678802663827973001661488214835907119313831582981968393385013901467893904880379918631874702750497334449027837283038817671609798019075546003398698151802240721030507065371341004942114246172211431745521584208861065530946597123915657739114373717354742363365653471818787221844244398502511585238981900890871203521978938824112648839148198945574628096841055012493829298681729441203188144260595410453346805697876037454895609890774376308401173936865869143244119793956521611487082398372167758634603766823792679749905505679675412037893958195139039899425877335328465579575152548680206422048798397478306201265493866537351445975830353871634379090937570197178827694801500336066077492102036194959853984898997050827491193126523959998206192603514915461132864460874724891590744065602856058954062276690296800088241628503143197145447618298666044743010226972662270597721105068970565151869520315587337077559864659381712236745458915843727121011825744563892071351788581009454852790707660256312044472765830429779002147631788715068366710032174487986338390384506124752598980011542769909336340253749660095471058128936869285821144400333007183530783162402082698491394627511539917552097277474218455626472398300522725472123321176037288638863138878585031445890747947800533886155060998018226539165931260200850594938625048060734475033375820779654203212448511069300971372015940075749516148466235512588772366161082397379752601429262239624024207564293933522724251732622632863494977439849595220768401276395039286623581275467975582780753948618023352575625349120784071726611220286904280328416068687667730132062982155912707220996388043589368854400716531906811040556202881235670772586420101383510760886714380806854308166347807272450547188078095768074080232440508700761424216504061965423665288343681503155398261945571493435283337031365318435851782269667506344735493958353552993678490480049388067194839774441756639304870412669958152825669633538901203932365257727479095255838906989374507997211027720760009801209953780951417116298006090753046361887827579807286297340357263250015596134534232377110222663371797187382844163149403731301237654553804539884749404430533621203822402696673089444104554031643343738012746559927249147356892518974252840316028272995691077690433711544232088516075051782902723423726647650443556287253137866614624845622715713997863008546038011385245779962060575280692593542389935545105778908705234601524091668768640121181105321768436182103602321961903244715534121728912596661021328186328698526548925618940128787547110046226165530700780384595623638428817876653085805791234954261187819421043194486813285347493499372496304494947890589483393510050216409799630149978683476837748335761267976651351260106575762974695444388991517157732555917465970395591402267186812131843520595519501547476355163367249824194201038390985786323839290678620083281081440501438730788598737927424514500326785140940372328795904076950916111696419138728447580525012120500091004427621239002486667812575791515370578140968818749194821038128439164629306410514307976037891415554938560699119176757818297425322795235551414754130384529805777130721049426739034358855635774491886414761321870831418335155131328331485679857278978958845631868069973496750205724297413716841863251748950853275874453183836827846623206774329552385921853715548549170324562088474573860412008066516579695199683813507390689753955584119128289284384564067745667550151375712265720134391721457450469413086664936446436952141763427650132935480735941776588346768969503546137109515331866427211210205072461655004019613878602274587588439005240593144887774822810522809731251401318008364723724870695709388225583788335233373216058621327553535846216871569606480794480845631914000809096999427898503577624842349397169885689603144954731750458162137849519099453110050542624791094578111098553018962335469586666091348206855259257389025950855723555347197278148315015850860900433407830755123666125408962549902861611847548625117889376065635509546331612030312892119828998127637843366629594826947206243652785522599919519944485629057980427664903303521321875697580276131434409804535663201833311382522423930411633240185557726088192526929839215869628046614090954469327278620816298517074737235956142506412049398669286406902687758203410841854171580913405250404061412124913189346119752863448869117588773160956905642493484801665895533157894885988784832602981439078085802093640167204636040170763873659976772601414892342200877391483341983221236873462385241390904365612471024551497636907077374708089170788402481841076714546296023994230814028928097061712466243082010967937798775104749438770029364576509251458774279537004433922901012053226598858111067094863859910358787810851940295724971449203609376365326905472813208061861021518024075045880360723526772601033193680496008412737524006870844945434759957422581067399033731662281629427726607902436869398616237662899877601625278283449705882485250741765058229754158660077381325799223367971685314640626693844663656207794267666099880639598919394430198031391944901196762163693510364007642539893279039109631017947175790461903289294407397073326867901919613755400021220638317528882108795257368644999292819960274477755571630438650274695704111187107310478849356954170165604845476968784094355846807312395571753902426414467852481857269781581965256960824135585696794032029765546377744448339320691005089538156252794185907124657601049252432196671175961546911003342811193831689608003735120321687905662007167363006042065949571610953992130444198414012690671683405606018062548131108886714383924005757603499349914007803508004232012848627734819659074691216749776975163202812877365175051281667992657481833989186672506704278095907838946837371268561777348909167575381049485565894589519165056016440594261955439432269491414045412910876761258627603379697858631973817302483650711104850218475610378898443479451094932457075084641938306355083255284362306505985858396564257169830410347377244771889483272573310969023394905245766850625446023867461719022085760277885525946750896541729803234819787730066276072756433943406269024391456578909758394322681709052735410049349479500739113442248132698688830490405992779454669305823875870182267701502220662447231867375312483559421661296693538749423443346464799606092997668910069579722523963576414584248715794610670524379450165353602743755755843869628898538140104396821497548993655067676486004349426169451826317510104638406283763652577670569566478442873924182445983901096477473613431570558274351358834110385781044196329767213611294089655818807071179080268566943397411682257842529490044627430108627266166737858063436225865871817934899428235258839442516967930268198633053911228227556320722361639759181865916760127840007436797170751833953112327666921378039312194408432815759680790290881410534906016898612056518547687874264912374295418173243493370547149661485153661008208956460749301046257550661483825748708508882543500344074890983241015161800108984915611466764611748976512453515201195744472902288083425740780198367117466831946689893808145041433840907701610967257717657416643227465721214424461662126791386748538483728154848466078145035584725450494964808290179622996958888201004873580189020948933584615454046628609205294992377593972642201790047565424500597617941883807383587844440988497208209741500669042482247769815009425030829873894317921124351191276840880683157666760609516738356982542673566243164601343915729120059491625014529674317890896658881074904264788360448006530876895810938225551776610104271874346815424720143505405710821344851040865745232381047508854856848633295059349339733511209725424130441791573726150426636708016964569655591402159620676579671501743218595669819148932885895264569904644761135300649012963170801054877315991156830680023251769559274558784929694007127536689570554699773036661510742278873059196716276436470149472094238599605871155924181653174643773531173719686771433264823761949569307089233232860016163666916201108733699646233429219539842492409412232219128618479619969839558155526059579160248277585781618240323541746824699920680727844258441256819649891257655432579866157941324536908683146182278400442814161161070085551484411307624419967430227054145286765857553700211170301699323112757919597622031287437115232473957050994333574878712538613761455001002991882883995414336649076955868018070598376250164233946405481667782257172522190946019609726342052039914209687501829451814043779760164316683634452052834297811376055908167706740651791683681196730837410504566795231994816932069835130852324225229972293753486311321906880453189147634674871958772084578256123830541254976126612238994259511615690257881224725486748006959211973632437690624189659744341421130650767414537134451805321936742310077650092832697196234590379954273478037134329716059538223671739497455324668357984874865143421997980639646813734122757837858252146416098638151377936685187922250705982650920324263617089080023537993430867291536127668694004584226833166847325977568565396483949430223168343923629850974317060833862799188836951780041918467828201655845353187739326865179006165335277410988242761823512208992226857723506639855226658733487181029879526411427189652860785427012094504935301835039614187902589238486437863307679544224656676087113400813210544619760817843634019463153834605811054831417017323501962447343039497983766899407299828675019568421227328118307897368511493649383881692431190485168553942101509316291294155814572334161047105109160372220600282605978744423906271384773381198643268856393175815592709008841085328225721433731607947682107344494522676771350761931604305186724763070448004781622063923819604350364950580711510500162640290306121405615137079701267025292050923084263290121124891463601463158152486408799767376463382961990564862692835882225209372776675448297291183749403034832692518055923475782095216562796516344288838296622997983175230364713390916005487806501913360056696935294297766730015219803918029144217688076365486252438795755197806442283239517285807674273274600961289570764339252312071596680746384681811220137134368200102706025731226534646838143893969648433743979788994126735596720463820848098097056536916823207667478060967676882351375622901470841503338159810209855702105114582236411013315376307459258265947247560558084513538698055691408821033473151594243731384555640178543610610265840418676622586813681772038860111205563600013105333003520776250266062638698623852106702501776486140454896283409044623434937879407576251143934822829173446292834878953547400151069101526329176458507852174929468111295017088826473680482382253781921081852905627151511707301684233150313005773897429484113581257718171272202949685805630238961108466366610098934938063406368011597208321643425484028112585212992665239970683646534110421638666839593806406310652497769019812602313678865115613926791234841948935486819003393121039120555541721966058191359731352142775896280397168638813124247035954170306539990256334479112855098984273708396020977694384550296651929014468239191528035674255796694459024618627673321263139967273829878028030454835614177769076394804111972087559583051944870885516301938658816789347650622722716661439759701169644486834861859300980428084664825015386157101645758831147188450358401829743735294518968535763030010210232397230538367940345920142556960566202895208756084701366850924276797917987294904194375500510623073514954390292781727314706982118355061646357953862863590626620249254982499438542014585354251959839889901834224752934545056819056292265075277719375998136526184152770858606554101920012272338174265808733598953271313609786094669890220008797796187249764278983076878876849102535673882282153336250047897937128334099950390581843271427966987400738578231611681747878984339634300946472722098016586376803509199356456191322396180332701694478118703389793881934759446366678451778019628563428538931959516878904902605490341724559368015980970693529969700188736703672280837515213900008825555899876594544526428184480610549532625467233736937464728352303758363766603058030283019044780280683716980237567102572736808096061552753645928902570277706172640903406847696163849059083578383328545130785368263800608250297528023713306663087742065013024879478587322800313105427831921969581541339993316604167311023301611903884767636065182454068060208215872659205234890799320077462620476851344087914811275662654659631267824154892241530431986547089581189403396374956046747264428141094442781233660289513678924457999455042146369027817446472181715637696491890050909189335509308455905532448434352249550482987351430727727560485830593932950504239179355503140289351288681672256815122804498753604393322611035787048640869105172584708817448231088647083433128855846636141487431974620424158369554095877368532657217429568187350754454802276450609269689564573282319155001683533233608795448133389680612232277701104779685109855097403361033215312616531993096164963588034658988593362464756630166505972974501491386639136712936032797826397871995984079973829015273298836328250133621747092704626783237091020964082242764445464963101621004532955089006109536523930836505835204223641279963499474439746532026630995266969848523557573061163285996546846470168751692375646401635364175359621190943602182201344208617348790743976802076599107565319706288206988071288278550669108091743478078227759824093293895595661948676916991463847963058762170352348890428817269609608021848497913167790213403050217204320822194017446595476061049524884531515022778521449034956635600150926538285325836281406603072615221118350916234499114271396454066111274027677470617099880061025723994515961546786995590774671943977219666156297733829153314185932626894834927301175130688942334901233606755847555076384945527693410801048107128736969227134153472549655386019518769110206176202530186923405529878128714446429216448432704525660478386715932069231636120962065584789309896567654311047123420372699901041101257296407013425345651862874362567667678206824795246968534426459347420160939653729886396784001238098721952537541768097024429123252018674232933481026306230356776441214968134059876369918011999420593890616889888733287137317294697921325785543971669002827645630220200344385036296803423750995921698883547341191131168428451992832747231949323118341544873409542912400483881175230163001614764238892398358737133443280464699313734990353850972707368206998099969601490166798643023479115733029704695668968237900804868944267475844761393701017655570518654544572267205393200905341639190684444661268082683320355162416561582166770463044523693120980056457613905310368787888414809798145080402624251689572504740919181226738402323350384659813304795584438484622064255847691340542936442392996223780031869998443512598983510689611453712309973971029128362300614814780459745689173390896577923020578387744067587991214486645441399849035086649933880473832159506511685447786373619656840475933849900929172786218524795147180310513437166485430869832632641140041466018313826121788279796737058395552967416791133035344030411829708531103187008306804417342916621060033826186398380058083817164930706616196361465365727212071408092063588036306895174839139659053992534013527694711095907223099215422570984090987218331335152658920876929619766118778186959755356777565961249394197365718476070771543896054355308685541904792543061631113946315161098114412397525535576428505941206674559701244354715126299392017152301183744357932771201644271956158065522390415826359969621322944217897638543505276980491370802539061180630757838898578442410041307042003979857719960450904847927351117029141067437874094585315899688791741307554104606993984497911771065078381477250840406648319568447654209301870936113308931239612401336938136082710086798027485469371063262595117535759943868989004542869563580757016986978558315783398602347095096222165085268784952693247024840633610118540047789936639886592618332680253078956987340448394564810988730514253909525943730393704758812617900264730051569912853922491282334561796627811186513179929505002069116229294063016742366779502139278513962132561766169070956412941544374624341936183359428299341320757115342978451628549622698595538187027572435877060501831568624299094606891705911505286690286991856645010767558806262978221308266859207408866261809623751206155139940672309048922922193891439357082656404281718043903791391862506555874807826263729468238795599854549973624435601083016792543409616604024519106769156443715627716615059652097250932988313215897584617767986634065211350678144560935025795816818849086309195335109444860898794493908009711639945255554827984896502105737412881584038514315329704301060841278388521977790368757546168629832871060628412823909083415715966759311172570141471918148706740508610300983092476407816088964319564951519802411562055090525515462215781520987026152079810007137228010803153783785187764451783466394464688666709052777114152434442451567641365930397690769589206184462317271099360725396059680889765924373020108886140057689737387316319720943703621475311860063187089892974137976022439062856072501094465099787550017513870973240294878969532276784590062051454058982496600926177963059929953101481992996449848391269251816407159098033401547558912798731998891719528665456658541000598715087854089619601439387602178614712565456968069932870929315166461772999670347706975533938320624796144594765970791263213069952056205504391932095477040863975350320817393311244213831859759797302702946846547730202067622430137026222464051270350221018193104938079708543927899990567737498020912345942877220311804545642292952846128647697170770823089232443665485585242362945839528132035936222093876652812747314683301560090594460898955628811867778970051649064025298698444832541998645804785535355481911599594500065294615313467874184185853062220922056273558316523947472948147184518229247184723514942666291855637977390744196722591373307189546957473595866848507227333366960194033432403726539504663897981249447776569401722322909076141520243711036258566615906375119927042353593701597257768971606777688975663826477041547634848659883117544751133002869414797268822021954457484013962729543477338258480943058027553575939739522851054103923138005434124336851656165598120145081022156300379707404116109732002805546010803118485751443873663090216012035702305122644054067923694434221883703602524231902577064635332658979031268690182411103122446638292007317159777445209371889782422226002795312230456259879107886232160206736789740684219002251400464385840472259635520945043573230420103940854337941869905587660099527579541521517316173791811782667705484473691785192701729820626464401941756200521062088554581258841115478441321271669505942263988801512513780983318343314362347225403982026117186264081185277283638963838149584492088914526934560111982137528342873776183661473399474250285559107954758637705235448535102781367502819177461904989151020094405693988391059153010256311093003996484728503810938321266209265309027727999986408871761633197100474410890688818132817922286409517400113623707376650887499290463226240773521950432903630799553167921588259841181270634348228448524660037347334391613312470736149914519306773682636820143195909412595529053688656090726760835918895253685750002096371795127248129089486513795976832879946465042840840272443663577561581623617331542937169580605024607073636469787624054902131753093808770333324140087043078176962556116133871942902167802664935512173906681857933476944146573312488203321356462372306793468122036556247529689681403311025198397789694791921740913947716981815505451618912305946127383246699062678095647659752047487283346368402222719706553513269405410398236778480409167936012879463913843115990957753636471086259489352550536078296202887518835467420787509828806586104796384401815764008667673947783167376049176575837217304631217292670275073928312100216470984280682335095538159929052733048251283032702507801526051884415692708162280414882500050140904671258652364352799634268113520379544572516928025405183960778282963794854562172531808958495025783085061105835711172517946945291492813702032319141708203292986942825848775228654049019177788289595739343141058691068623860921900501926185398714175956007461359543554450534132981897034837277508002652801087667607555059470964068338108952442570750249136416223666975019132293380136697305129054910151468622022239411981064394136528698525126632363057276927049369305905991972748879421053926729618840581461375480042043033089438534837077348064136757494882000726646592976054931785664286682624036742174706855621210273997001578746767125743044321655129375811430086735768834294456258981352139077307447540056635180659521805842636239118030312081959307491661057790708775644931979257919215389428447680973391169052248419195834127079630661211934875014887979245809991305024356898131198516320154282490492688627769387049305875552848665135115582831835830133427189974312227371451048856986421492607158436270980962824018615311374232974198766664823327270183702828108722470091192153517570579405692158280882418408664496234183355921965248804623926421255718537637915774910592991209149235058226953178456129153040515843098581603979280575291120951558732014649906260475870732527366740174576465670977001768387943885472757554917397585361638127153206021817556770486918984805549658603605369248687041207268178928737649219165846639323869958291596228800718342460633956367782938621493131881633774606235377241777897273575368690492135530306157918432911574748109143024995475072830003540541994040395570289521476533235770913296423001343348613146275287004390924458144428255851774806718386452542901751822742266855196786427001953365194065763610342179461019745361064239698394666878722236324799044110876124383092760073423697430902807020728949503005253757066721990318030792053418643763978613101354094111244094757523125583783889662712295108528144639211572550014896768650785022500289940606028605569047691858001256783822201992258839540413759216314970019175137110878806365978641392763177581322611936964703187172658497170268412957871732971850323931173282575555926524771362919388152896508213541503255157387222770921636585086314860308696136774361317385835417435278235726821021299630193246803407549052802113404797571812392492238760253693199783773645863768597606580892355627539031333230942147529014866919831822188696976823127296840944780668926357242682481799166275117105729673049128213408451864750923458815356886970497122181168599027548466407780723511001673512928547365776087278266600609316739524368732514455688955637995083056134164089888493629478606778469240236524770504970877860072018058016999876245843295092277497265924689238548398141399292105512065499518374238725568817710966654974405808906262949297615978073785362358296542655779469376693912796959503724130121390682363214581919986981310251738213396183705882514888224203945818813108085600508540466718935682580886888119091077694106883684237522447003359300266315602560347395230988279895409803278472769807296710275818124520869964087928872518600067454953735938216576560734586124289338685970364983656602120881243742598514628124566883562716314184871265612031831812054504834775586460553668995078580642163697582683399378586817872971405353285616935569465520199460954724014643703499081803235076281260863890089115646818186330864892858330350127915837546405933430086405410651091574588086803894735695415886755763153496006348496111374101079704082451014291159357439404416463631174048165637717273742544800692430358291593191424279230087423498830752519525187222695785010051087755312553507295686728427267473285507956205635166874358878990599571704799535910853284036300099710259103656729841513015547981406077039005848324362013700745144282633023273590764967085342916669197710143436346271117002392370976428921623529155657871358201950801761613284936725425495914800213557945268703598914385244142691604827720386509453537599013788436478349892293348057910799196025342933448828061679428259649527451299698968443806922678809484738881099491820843837088853852917317463862801194754431503673243014644557861417163968105712597024756183014232021478441199645333960843557718236682466299718141671892907506223832572588453667742210008244424680528434803106508477294681428807346267216820328724038602303410423878759000707153803473837222203002365414586941963058329506169366868228165070544519007461677290337571607615433601211340579868024143639426502343572118039801818292808165754171882681801931598380543268417441885722784053857885196531634310977331181378185681524392391837994918670343855804615774068340499019536056457529777760033525311099460475682148101650985370815469158956703334068910324167675148720028824112879323028751795529799408049420933889428332863297471805015366644915459082564977100373790267176109647607546796770221414105419913287327869518418820718744041900989882327147375670498649971187863234277845151612834928196335125834219282580687385205792398524615686168927877077650021558214790882410306688738793659801179983386374971979876046218987718859570642813288832785612520330846444736589209326606893788518461691412222883254986551352490340316996689513359707976078665188131870889510506093778168652998163250787569878903076271742355697153924685628833957156738108425725189151977458854396480897004203559671280675223723567547071833819005125516889828921119208982380107320590828432675769672428093070666249552249302988409818326435783712346367541848672319532687566786556083812100336463425776401909966047845832088642627964685745876956366991082101781214271052798594071068538215098340978025738880583619803347815374086909015403898906569206510603556471629682657513173299801393256748779531994777105489101709486380422873429967511675300035380276410410856599463528712352775376884630870459541931223602121511925485799071916081356108182370187294883283184766592378046742830205741726017087326448335879509923751289619829227421813793760638112657030436043976882128826976000434838434343453659029806180695190512394514098637267933188567279496021872268893349253622088451496429573749419655167595650920849964322691935532079708868872953049209712227285412523615287104634240427986187257470510265428018786707210715646729776909245421050784074381752428926804240912977289597801462700030216806642889352269323600298986785644681131722542867001980425597071214049377090138750601000853138682950641023343906873144092814419148984071996607242364731347247882663291002564056221260988077357360193742526485060047835602819334096901954195355511052392534396048009794048419408938269775456328989112579406018763728280345810196493847523406825915990148778306062334751836326089033031128472164318712640599606413068238247238685507772213796759815958971296994962425883898954193464779311473568946874097400272044866877758707145984044557653680582357964836018079857386110684823352362147585760960742444211236797436653276072413581217404326624152990208812981452767355899969646752497379906065041942883994053454322720044704809651737769573132304941880978075031905702700447598227164971710685039027531531797497774886990671972270944084478759813510976477762869698527100783220182032305725131708524189763838396656750943555080808841975251933907066683173116746996292950303771514841166415342676382168400711631508352820885536203857695540716881593641191134468199373419854817500840393143668850756147964667977616652605637703996952534709833714823355264732236671909314012084461691700704179495168723795204624660168103349487557550912821034742679986201010663946394734495094542743921751140188644684469836110837580260444739548315744137761776358239311174074239534547260653249885418383126821139082894452763886949451270520259949787812625785046301045314459085970733897990810925021932109858218506070863311915314768593577450827917164011370193599972497245489104067616614134447011838309416644078594625199614799166181903190141263598203143116125742036667553930564927398463029251818341572490161911275338130550760485026712352153732160833696459495220915432786396854765097359839831894494162341411885824852420404706155128689441053855273880515973160037705114724928206155366186675116696012273512135638236367456450627779359770896381394759075066609343977575468225383893019323284000569572582847096151280636080847113773394532027188455214103604850981231740538664297484128027033319156504996553639079324456087328217409169120700079428887772382057398514912216302169411465593229147023020700542814150384282902198653166791764656160906352966019964052005979310546811122064650843981106944366015731947737715383662673258357366144600125036934992287848393213462760588521955433508764054812904119721703513193838248645085560476165763253201642467686564617847617554430012817634906796147280917846836420600579283053414844548977124629893658637415299495090777347598833927053341574406156579975966381154761004481246327449549916235208212133724732740673459104650356218645129011787571252902288334350927077694488002543131712365107467835657145198396324594630848965549987579832261795572592169138854206922920667128199025922395346605502244652637686347154565879467253000225374199256640668300812882695897622189934998352847225156207499459707062683344981428161701765138783024532924687010655772505382825000651524823324938740902674841122415816657857304193209684202168116525792690510800894290692352690780631493306549130547898892223393186363160544589494654056396561139737542992457801182737188565505579202086996215885861285156945082107390407834050760565104261705525058940107702741221554732862037713307350146548262262143159269299194917914533749718901579588800955830223971304873261316595388408163669707898350019837932124509122694853101103080817850685646511926035470606005324875348090666117082107274246871862240432936671355315445693197925265290068495261247878733770317800896104472452668402871585026459665509467466413929759344434017715433510421398667273912320284698858472765029350831577199714545855361530722596068775493275619495533435290873642969837451678348577249096530253394037182041012929803869089560509630756922243343876416653542049581920799174805851002562306079706891946861612785007486978031763118209299336964826751679587142384467678480530807428014568146774545383906950606890362782528907667897907744096079091299055863640891077699086718289867579879018343399198168367695002260031844880990996377457529411260110943501082185017042470999944339341751201668671164666383808745800337521538564117443517578656437522717950756687425935438730786756871257010972732832501055588115176751479665711080230150290497484707174197932679951374477280859388737820716633288853077006666248922221018701602504963759432610154504494386176046222646239358109476593607251401736426917481527643760893644863914738919474881341506204348903741432878786044102077419401562623484058441463312053110077809873806732650425100376071413240694461801151286688548183190233027240890883167408975910220395391969065351828031620157323128666382743092925698348633725469647140642993857232056181290650049941999823085931732359192754210953209630874226278365703635912422585654554525958458200587806336935940393757376168498782436512210846818602470198984750253233155228085458953127952865061453215476767047357899253327184969395926633146107581076352223802073610041524898087003277194387026106248824604568223194678180785431783392277759259776968678377877454582388876260577137674515425116092271675978760553509386199663798470546551152237628878672750115367807373995396088909629360974655657676863159849370161214362908005916536333564956971649187345798758908022924475857586697385397504660792863230273850418376395465573334859827579547543835529716208099066798078925467833416401798353847394453386579349783609053660596134222730902287490292844044352291642663474483554225214442619395638001210273098229736075679864215516433147912174681177842749754237444019065980032940141051881432463965235481662446226557990078008368288026776909519538507215590807195315389345871891431956549858748203747725213305795809234575137292757478482146210315112921142153161549283352696953473953918221730074814036521828483805877216562514738611571086479479613604970757839187277690942640989993316538477413173986148685783441084714793754804442246845147499334275263311894620780296235237203544105584919859631849005791022146585440423167592650806530525480940288911887072792900842412982327977806220135445028645340529824263838611212188135958264655025982614434851540047257214599356697026359360094832903851766316674799867901691989589964742853387191041415449824813779339267920352261195424073504607537954110551814644691658580283548706187062948201499953725982338926809856652785370099977130056709948864034407504391758971238218720128745391286434759133258412591668754554961426353516548118968791423482026681414013313801700240057560717256230696619400991197203516187811811572821083234810278183800350688457782645656121423047506642608934077444414139539650357494775149860125405317836119528737973686696268511599812374998998207622810059603351262083627177240794670397259114114580193297500994177869401489783596420463283876379194195408074613110287113973072185001460667688376345833987121231911164725675486100368105640065637189820922192534181068332925737545758078752590528527782485049338888415646195811390368732346426187288670677255422594169598242125172718481594333054764640126384891656534786589297287656558216490654431098774433709617091454254971916787347547316475823675690615698736646611805495280076050843075259063737995451394796519607614527435212893289183922215638018059452290085932675526055518543799393674019400571864898902338157817606869357730741762141025952971376280122319120239789960314382334313330095862984013279005723775613485532533945859348023891625360375426309005610250718756217602441787694166885488368170532558628575220121510659898807856278025707551831453153144653060127569454677550318507239073451158547756861029671468486395220395825425542902031481892584736156963736991302084777367998853015954434067456395977755816980645724241925563611703517136706969602335224036515435165980962986003153730535360435759184865864332977820289717912046802166539219967217983915502099678561506566834273887525265336068705400074022157888809554887829327468348131452866839135956666871112454184193636313842601717223557689576768116582405745009277187715681455085399638834288453977039054274531495737767978120606577631124915227973125546184985510018660290635964387083760267017754786130713637031784923356351887445973089926963871348385684148292030875185540556035527137998328125066207836368404186519375006411990849124042078506801499917236856845481646715790131714972242862434316079801667017269570669162684174141835909024198138920531675577876271795403541464019152182962864901907019774505341268871105362031516890367954324255001279903117187548688615542532850285900790334381237928738044641763141490556191386685116526769449104028904743829762680869030336102940883900943429373313264434875467192621952694678867094122691849223171179564925479771361720841435084032474250580508855484212947677584154653623482225223437504414968061036009256063303798302253375569176681568504857724778636602016290807747545784083755731266179714056074647279826665176240644060595246945077813884079448170528362532234588290682825078159593495240863746596082691234412446649571357271433741032115721298935283873564361607679465325328712514911773520682686176522711306775635152194264251881448224546777598856888680676523578804395671682912143532447937611031132673200780820707909331529563848728898620302508637657350946186822848622703884641600859960434589085907109695897065770147032860896166278462256885978230775611245640626477519176105737233350965437481092706512351567182342581157462409827457917917647507682021362849485009552177496589491439868128843917200085103525475316950208169224327306084455909491067184830091446211188616345207694513642818333497659405703029385611622074439141013911088907831680080346705388264058658437044635042247580641047898857735122306303619969087164019701132015281764397689130074943239378712871731622192222810627834948141413073121825870537211433613950515307645623942422040376974676126199498076644012275962503901763499426377752600630175558070564367372075259702396803047120377591159159376947379577905806770735492774213760278906195879576942438520552248569806366912297301573651761617609889221769032487769952420544821882441273438337903433930615820096361247281478371279238654195208897174672440381660729752937499931232337555689504958966647110142398126615298294342151416240636642463770446286775562752897433594514096261261611948779482038937744412417871016702668021011729946343372599229932831344071043574881879154112868953675347958008616883621695028583640613052147434097995306713139961729105498944077308473706338942599208227681164107272601531038345270466512466897402926369394433703713082163328053897655682320148575944523535340540586519816334303910067460772381469179747002209121824879727841225911809334765447770551372895187169474288531308750017255439808634655485486945778475479771633619958220145281769806678863027050925748788355851436705583390118299937549689548915312166708921211034396921409729416197055172345751495445358554529550987454115087801134365537128686122257960872895735851619540782562887677673382781225367242853933670450114153041550848225778681376056262865754970986634933669057078612207006945632173077182439829929654316042910994100803781973343225553413060337422179673944962406215285950772104320851036482736545943544482217330202438376541571457962131827960240458252089475053106590002093703099687857829468303598314257683056434514979532308929456865921061924441836701037563180326372352542774180854568639602032035020808964473528355226641670232757472708071255128197216458191408313257142105987336985127105318567699893126064570938098807019244514638605058682256170043704917310337351048023751038172788216445804433789623061431794680339852102964706217299531637950978930356581843211653765725771835532040267274770716837999003474928459920437209766861535862096049464138581037183006469688108370703789763289378105261294252882976446798703757170395063837539261810344480171647944573606042456057152310015857558395104113027965286780385551623849168246657331064015691283211268311971548589397271040290529975885486161467239036159599925847647468599878765676583119206273046205620804415337014117796672599307450877764092383500042010885040669608129591632553907604335709651222679267373951179998308598459057722955344532344942980963909978323112029449856705312825170242805073663553587703559041266230830377575322520615618973324418197133059693374013070251135936148631465604866887144745954897687508445200546007902382858541697484188609769588518969798124733398013107815831882578297088564283504487890259791535530605246479431827480276007778331926839483474465868596128725849269170533979152110344301258962792598548606983740943168286249070629534664550834640112496187002664166777007035635542566889564309176834939711170225399825063558852306793642978168335580196901138903151780675374919327593886155150350443359993832592861151000540372452714803114034115121500036748762057887368497069434607125948051209748843422166464929510378154336304043409758941102276935037376788836871923168260708530495587654479697938076546782462301446136391842402142518574020413709294139056454177247626350337519856351412734052938751036655883926252312005307490096206010886699169251902123310367234700400392797510568794541176893323019716858489275395179106124339710749347231295950405632864877528921429041345074715603369043925320576817869487780895019434852642550479931947581082895468484473775939491049687671607235255821024560166751431952589456330444845198805110730204232193616997222558050804993442693626999900557889074185959071136993342088117524891911220765612978968786646963046449929624896328070516909282074104743679218776847681412407089931086140871181727458311060714497102933053394458373229518786048145666840661088464052635217087925250922219831668958403918113946111046668811198487866440039780401465052092712362108699218278664576993128813784468449313217165760497272035702069937464116765384338157712081162033825732965067455160495571224998950731221351606010245509433628492931315436150153456384855029221879634240270001413462423934845368387338196427158522692832779769540107258166754144696229148563473056432275869537774698998675141532023287916914573060919721518436481173542883449286560502087487151989735630966510816872960622956980264404627004738521946889010248800537673909574113174001103611131005711940435019208832241041073267798084793716393247957660651060904934527956829567186016109499967351693899800391595641761932883773730290890505160706280729767385609028569184832129154437008188999748518864057060005871555153375664527490961999111666179106802876070377867668737042522231786227277836177469623379066131369588031758030773615777500767384487814057999172119641449505708191927174729493172503873876395891330006699746660729396975971998542264529164896553440493689739643843218138547169378069296121726419038122582308166748693731656170997529032191885950765888143588234653599123699779343459545376161088739340725420652115764995221869713505441052180302701844237005964544222584762214883060006913489494472437406690081823024126278387780155268250181851781559324779696069354451770637494781521699077570894929011112460342665367746862492862820193904448121615366229845800048686404211987670622893074048088592358486274952993694050568404779525740087161585878500023406711020927850188465171873433415385113610017842459557819618974182413377408335679910790222381698043163311782863173112455802695208740505878663647394500014951855253609194263612413797002254797041176300632089570564833646969244207897497343670289609956592863653969501038704443543484383158948091442855392656928102030320021948414822756616835638457722351278430362310815829564410192204743078349640544560029897384769014713342478975647902524297988939210212844773739832883658433026226148612438362180014953483776284196670371580211838814888288258410137222868033924411851254517487442839219368881202513586168224015854007391980159855597383597878343336550293203714964115117783422236237620923094690615521013532271735080984694453269491061941470307102301145328059535320937507265618528666352938506644469189244454916221334884745416780371196547855497038131952888568908361963837886866844521736624260960562204979529699889719583416861815266866747924695265242944515961289488408255069430357519440472090187744739961136036659568600307582896552333162945504413810251481160581584530794045271560946340875124016350627038255776656214780231651017211155329475409610165643491799705423718191564917705323393955548543377061438888490198122696305174698366908296921535734271241631915432763096907847111591897335589581199844040695448447380510783802311019363285162585886397292625074455619128703556639390582362247769861251288611692810520553858117693605505200242522285113024956228523248347252958789113581418646947041951131186982071150685522458392522908219167654416699003136660945783739670294506550734164560316315740724409547565531114470361348308783271567284034226892980449940832470201042064255269763751346188895648820246988804502709514860468454005817908658782602958948890468251236011858511782743781083622440053331765149445747944530238835740595858060999503585386506210550738402136315706477552284554882277698565843481271737920805136543792508991030959088602340217340007934602092432596443068301040420671945755766563110570922945456859687241986930448789504754639074601671854327264543957453444947292732109479381354058033963485447939348332139427500384985372061197758284576208021218406385235070769426983124056264087640251412248079327629909591191247837566131925070250450280611546541786112225414188083934177769642053969130745285999096276930842974099700181075040532066746221704418742012379752707706773007041732854707702531391708612183564033171353386093991784565078440425397489903956411995132235561468234123407214288263524378152115428158959196282406607312868851984652236958007409265666677976183047004096677629648691501358303284236198286691829850768614293385706995163417301821280285132320566747530418939247413458184713647696280438038944693774199457184300832129140687735232293352560605757543533401402343481838879045952734618338975485446647598332221725999782887089015194926928882391812763776058224906843881278353032619140740147904002174107912797771758987910250287238522115502981443489953469722972932689310630087889293305860984581204843197219777211433308006730060921494009642898061781526716457325431662696755749016966792695722503874197276571096338362811198059977376886907243122202669626982894490023473894437258368465558740936291163204819913781968698493322125607613075929347780577947426938141559759663465147140753179196652817764743379504675746239904620039702650504406341793263476764960291021845137726768836906416127320329178254604887014513776353260940687864390548280693686198316802470628193359058528770363410841797070302147519174151010132632662034990686802237183325988698829348496277498993019304856210418837971878082409108268939674736344149783082541608435642150482852135897226346620580058494875677026421951205456285161011084517830696438510422241176197821545206362511851545257108270617110801422566082022419199189312947738251462622083175536234262038626460855068373164025799318644538831990394104241133673028979707639574152022224495076541265722055861786117393739969444230857883427584746695186300730513493663127463919585842725785263872474554424436123089094585264348802137342977013450628642248040777834712538813693101433624439519593430919801835457212278786445026326822600548041452806893497734232399378627814949737774531276260253311213322242441233829850121789704358706509497899623691748875795422651327175938571112779829832976799533498857954964712426291803924678902741963731762097678175989656933257590272046492002659627758467102988102621908359162470657941279799559662998477510192367803691951980466929166623346553495749363872998928941819681037405057232766942456576947078807381296130341047071804168032070903008425901585829394713233366462424816343473824108552280636636787882612666692587300828449111755428320893247829747559216188912666490303505272712959986734584290820501839852058709694054766117000751925332075030933869176441786863967067961434602531673278738094229032942351948103045574014833194590727725163379855480602215368546001960625333866914906745840996276380437254575558365797942329611397519862829837262308946722955752145242933055876621682261381595696619215683042316452049505379456446113256760038339747057713441305024916847239722003080646143882509941592033010575122104584336581296300669853240299566334435400012494145912750665487875000323144415386247441345141989532030862384296252719035263841918531060639762599048082749695886277358584700171506172900352800126913938925793325419714858952014699759578007324111822423275989470513513496205877573311778586632844512106626613613538398948506926045955065995398502529643127520042688153315196061006777294329711082584362399760671645027365330549710265142015061450893764105783463509067932772053319719981906517217505457174612207315102445010897385544998001693008473474253161303320176590017902426811166025960132898858474602449924776175880754861435504820715192883202395996356532669738589799403209452501544943771057015854185901389862730053499056075064760918199893639842142234956770231372097836685077466638175994526633450552735538074024223928206660592662026507986930288702422668282108415187357245209881679200191306364603401926863958827490102676274416739501747164850084780671509435901296908091198288771115658145089199428485881813854312867863971786286568515316481643810748180320067202415761382306448445368831337627652595984278272761001395125179505797349756465835556288860060813229438368782631011405971380673595418441006085234233988708117850721346413285380835939840611686801195521571706767034440809217377780929256795751939998430794288967933701482075218950826528131635763793585916862702275298595450433993794447512231724380097660069219022304099700484639370932109186778955586426020544744481465794812966829538819620740315857630708940540392401158394086067971298110103354403648678912391589626005428819448785635691668513599006603411978413171743359091268406910605372751191105689443811194405121965001852034491606505524559991052734096077852104082151680164436880496829435061669768964674871527091236934961771376317141670012687321828399492283537132625543443436132346426809713257184869304096606150973938277941317837706288380071163961884905068189182504083531557437951216619845630621397208614843450480920647873280472292628644911137636486146824497298211598495544334897011969850850922487406263080392355166497149706823543026439452964024451480153774770072726674856104453296543084673182149367863208323716072020573327580730493494401485191047737616568851095907060768464794666438195484651301426043824174371260740269177561520802768875150328993019230865707740217397613746078052533167033824402795008345136841501402604053139741215592210341792304877929845184229739168086173187217185693689548535727032247406628650841967542342646705440020764346453279712730183915621528696553400526174912052606986335275179802723933410915519920684153717397703190563406889419015073631944678170468953771998178475365650858520576815831979159702597889411562037350877724397012267822384313453016946756302005970543633713716076378896889124624683027557816306698462397246452580264417369251562098093871732335727480330747080506041077939855236008431098883178403127063298701321820613076766839395420665111667111891228677238662455687033505724562895298925191782526330563251613117411224443613161329869617701459832689530380661223848257483403030273643833465165794442604153731543289520518693171129066333784915539939597398643058118419440049688723040735341961560343204812340348048117221509609293104670836352738939005363963073288098865825231983295481835767809435349583179863290112954248182830367819131758510094153305704435395958219951873486334098603263455911625256455557517191480153913631505488069200302369557525680578088764154487891963209771871415949360350729192818295572127185446704629374635469820199212481916277499520277731756206016265604472358039822182445624121848622212648663489759637852131941423852120080033753920082186481457346075202531109250571811327783344092844562638460907058531483622100134922735760950599479272433111305246054114939768421229054392098423666395390289638134602319637774150409596168374921512029564728947688729553728146071379127158863264876230815957100162364860996415932417590808554156290399198389529619188643373086552712290540382415147744370583686030892957224820783157318127245128478346278850843456805797123730238985502176404542575717415288362294679676896598662990374412089542177161895775593845162505502857063953252983102760346005712782172553031887341779476728590725597075864926028756193145333742788695290837159068465334407937347133042335417335908332305028166515662648453351264025225533047957463805428186506516467145608528944621460426798094907163087331520448776463213874011018563196702483797347347903091474272883950186566108556935688298337444284690870973006751526921305107611775676233909681575213145032473722802482556752626214056583811340348307671663664624440451569184272402809247813665394251264174177078184699282947156727635488817371226678109343317254858498911481506387624028005427625538650270172294724697242512019765301872237271829377817457863888050298212125911198990486430999154165655623319895454322671593679998028850118065095501527807335747564885066039361418802103815664660493901063415043002250107635740743323413075693796584785070680748844796552807584020603163391655993940643148046576877442676073269628881438746241028122180212579472148366106654903826795546054240852822538470561840297673196839091293174069128904737947849980155312244687507245606989190227716070716176701017880644230910867938364267756100728335288809043015577212299540793293969446445414199774209055721343071450116151174874866267180859513053982203879478125431329984819912544101735699729828869212519955910633568148939879881879012339983575088976672568097630359472545723002066053388044787490060074319050682575594814532128605166261550207054022002282357131465701066982070002195505466302937909168097286059575406544931553257929689370614172933345798205410835045618588110963003445666793843038691601704471985132705767895951677501494372322827194126891495365881491251334248219178364482092036260875463005142387924914974243918168662590148075645236171317123152983381118978587392935577448794662790080110020705069127025360981077589970186688810204884745438901992363520369718347339873967280663845613296620702610551875874616334476848166859991573309985733327668601529878711715729570748584299826028528866805487097741863047188278970256142304048400003710875841822478644699662820337101055066991392758217842285512282736028566453466479884660918859801712081145057092199711363428739800742394216362496290992781533525138864262035279652092069911859557054306404122283382090788263454790214142129293902867299816331069642735035435030717452474825162386255133590073239836211954849860245322070198027678013459505824796615591372595701350222721072345988982836117279698606018956485664155518408014822728390961203007696870167291408245315914870207608932228732315107605876375165955867198932194492886778696361003597732617080723739638311237003238896882689130043791216157045685015924371981393152906208143034806613951850698568016138669340581850220878597548567832898843252537778724402344702636493849308787503508483597558015788084353940539296141405499827535292717602526663339173325040703421986713790790097785159664029882370056505987865681057418187414834653658191779085241204070603105996255271427404670237837519782138742297036682553917810237908256198320522874626017702216014783600284197527602743451601368794182322269376581802549266052221963237413135827975354116401100827506687741160849230731282678393464650188150187292046379289074715096055086910322623633216470498488421186030834785789111786586331130052119628354244650677380710478325789448597956582823523928122668751981885444776365206238831832679246520665353325842362108492153173749054820253520457378386222213016532276878113397709308955703628695664223773517118212323795134350573254017239218712228078858219085734534109575709920272925917125860640339075413859995298970256693461290282988328108338200745868332849803618420154105182476175290783579521107911785914448280993175771488448601537851123040356962761720115878396436404269425034897934237936420795027994562166252713349554433135497803543485311950967075258868147113521562745595285508277222394025846917238690367102877941956855576651058225083010946873482464691770134102588173340572121109380027515542174937673563818708409599214580720961315264440093921377667819399714440728225993455945283412413405833074337152424501764857731307023343169133963516160352322628505853481267353873229603964460425660578222840063654077511278426460420669703733068445754330538963697080778919362939091806954627195348993456696709108412379852893881633731306078565545512088993496924614209952023543445389455952199910023100848500252672437665272359526805274562161515998880941569612140238975997348153075347676975331723175077538345891579171323845886668539975461751385175915435354942036394431944481764888137630866944727272559772729262257357510393024027914260270428269014062016029755060021540057587289488807042965635448960234101678635580891167560984591204748419183362066633655688257205861384407496695694172880329663705416615479115522222380583322461959305412756429490238179007356288426708022731624556131611076639528390197167279039721626293698801931806677399678212428432085907113173752974875189874885773714988078641223630699199336417937343699997064739522798201651207614010942545193536390302161397450063662278460656050269849869944623824396723933979022007117180813598753615380412105205732169825083425882842483869786659522546073507735196832405155440349003165639660330684402246257344880845924449976547326483815587977544313715043839997389639782175790397084714879090044218411127793293228996463257836237903078303385252943212375943074712286079858931483214694302257510955829572627604896825207256351577034384332699798470571911683951463599264960915231769189152208862339940014674791639923325926430812565941092785281619297256942165932806281587984056168864516985851657237103986691762407988498230900972277279257796669697129190260782916544365370603719903631413426246115438898266466224923606227236673441370028850526698392682530887891779668304033705199687556565680265638325521905916985952929208224225270125261506441130359486729483513951759059331997477830943887717291451302718010749148845993429214944568223587237688866472834841588662662324886868264240952788583242584433322879406534502210902117253058625729582073554091893751654857985722332188293237887322637070655968986462782404844247499634652828589132263625663650572358324649618414101855692999796013254405307373836600977132235251096470287641858883650469563230353477470966542962773794053035236908608943062453385134716183399810002825099813121585040305990309290007523040934724128160931795097277322440817379357465330197753418441962363246320029972128514360809163774494650421339324103707226527383650469744259348148010515979428249749058247487345956843574249371158390604442660317785245648184466084743993976390996788226993878427618589754061827045194864538885094415479529148368998054248600668698747058212802195859605487667747025781590571012171608582515278091589689607783203436587685167633958280294326169946951822572237823670452216273209837812992944388325617284383129038585066090767667369330592716683614586366932802161531072467910798309146913059274180444683347345370656872075234184804652594166490288744984961403118579848009224945829575655922538661988883695887939161713998513494636317565963682444769404453962351428756260893990004743553694147792585699921194059332360734728318994414376392594713611953028612608093056240109545935903599326123673014166942262247473678808994176064748840382145184502979649617674640462867521086752916181005432066388542140285405914823045423334374628513123707206521351472465024455235929524162841460124098031970748167987534924333451968946339840599505332879422691373918553175148985898288694917449239286766704065628814693761819838035939686156870723475437396372117603594379359958989787106677005517099739582225390062292435310957147924309896138553292954117202230935181367762786409755115298558412539477680224629324324864540212598714624083157164842565047925089139406117783983762301928582358777569119176889020053860761259351660437005458261199591523044296740747342105885847351915546320134141416604064630061092466310475751083476818209451020811305353181093025290830183159363419476788151784177154707835298362665333607392690999699495973042636040926855269277610053427979097029782973922863051605057330147117274786766423746463588588913398724064544353732421768881963719956253172754035338566262003241572001915884094799941072074107230146211636658416094295515202692894489738316718877386624089092112203516979465707028979891896793152208216076001884041301189344977456755877650143445039085995397632039967268738732957758331419068848603465600325019146041578074686085324485781762038616130278961164513135291628163306711966185478910761763326741233365518926083620085298988286006182900283668050398710376958968295701198933510588629745014707663480303004467315731106913704476354714265672538966946284571944293500813258587894293419369294167629881447488003909798777422720446534178161883938027104251148151626035133976058678969981410128113019867886073542889429999537619339141586799035801270341974265521644250739713106046437301606122192380149680817618942813947304684765973659391040504287863609064127861216135886315654069464545263864528339750078093766552011995546366542219471917268034939448536645775823061566325401585349793942310474656351894036754066350169694461740073427350817545825091576010622602362184609682023831692587811345778513199746070192000796296501166941915599831113503658873272298538205017758899049936355894714525630999416381984612049853150779721739083173547716554106786345764026636987064952564651762466798267006492950894386368190302199393055550740646489971189887958133393154948613305061249549687296017163073863914783731484514019317929590344966319901697000590117659054257876720455733438933648035676957275870145535445727876470412198878248700007064241190368955617801263390832905561314108034055994610058563483688061084214445934687719388315148542848164154857830238195338754947160259109227642301794670983104132147698361471647493281191407378654301755906285940517444832908412339458335749929147133745892250074699278925136970051468619559954747418185678839901575784845026214735058594803763136451405395853549722585277900266601363421409879959389975545236713017902193632479118843682141148237904018861912562907911715748063915090311612170176979751444674107723685175011130330296518650692219087038375228306405025648111990642097540903022441420277939879438379759226173743898646011990726573176157961644016711716942260489299976527424679412635957952356605158313236095415416611376196455353225256586893816853309904806704726831427599796255328687021779737268582720449294142765138782775665403512466515736751336038072471634192708089313344363199761988902314371425015405906282359073350683522431473659132757564832105236411563331454321784264537265691458910296634835392004335788237590374221038829367805108589029903199271015891313921768289084847163319127918271480215326433040805693532240177159350603548596298049916159287887581306157788706859452827998852933651677604555053308836373658173026662282669012511965089415773171250652772520623701169680818056995904142242234252750698869531229060042449360541069208630974330215596978960179094413556571627922718714432682921915954533751336928405618200149163775428187317488712158317201094171724161489247673331183833918786254133104335058224672059616970032919397188203649144077507481561822756539002181864665790683382073041537977049086980851653302371910452833174309938447660305256341109018307764233846698838622677146379605211434211523271938163554775006852355553039603641094430249437048443698774036647759058102555018811559483125744318567194071838048739394834325584391162658529133000831369841835071625446820014956861702217369020107458980554084981526620790502051911297955930998291205451929822243124865744669103471019223126498801665328457598112656200711068376893999020955254644330623586758720857041148891096851482906962597698724084131719283602449344077208826146488061686914246654871363667104773768218364742140318825602179460973096404669331932990673935461013224969206412797624514995945984047025096426165619207491856554350534964877712018258456343504753624245495132803208698801477102975914778650978274941948277052827623800223355475956096497631144913874170361962264553763318917814180966058533051412503554137841415530167830147343400086083554126657575076002169318873714109281439310873765587180654215220313409702376890257837479383720604273566298264589511667483886688115599917396909310081395475653067819604862437639835896518923540762462172007436877909761564528776864563638226576213303905545726443192243138849392736934164593925443381256049985221012221951993557612399566529780245285426981290217409459490727599901048305046635465174353998724188044641374530578819029649550765054217269507816966035502042761444154278741130645350241668162527619671708289387523804262890985315947838954151049188753354507234124006413700909463393372864343731405255584095523747897460826000016929921089087792910861237954023557476489059800019198364042113585203136455928534600147665390723347022718018098962122012218386984823004398971503920009463124023808174815329433070252144517684461565120944849125419280406650524742816992283081806406559230265907955615377481016275095979156145879106276692227517320645883686747595598612658342239053702436004574863824982154311737138782144554625160820123425038693182144762091734813786036138652773552294652484134109541985467123126522227363754866824040939348055852287989114835627085736973191449078206281879818438157962319996551477833296440235936079185313024979520217226125800606664949049660610344694862579021892651917920167626929680841803442100383237322484738104991106706854542815542854358887154813779354887899404467546391888891369608135966065525974373662544573594665193823944329087003687549104348204589108173416639953690800205812262504862773883983442363417108458266511571192020065411641595607668500789536378953562901571483937986935008926119588928946486348693146865230751652415773182955684663424377351020157754663633135498165921120429401867524237045415470580884541549530785222999870256474115587808685966194974154459622441314810730444165006100538975495817001508519218353170028364990771807320220138100530709271808789172202494057733472206727375423233086926168238382814546665616454417731700330747066577139598919982804883882250545761960709500844616325889158033850503068257172706995488850179930300796548976704211808039648862647372718416002224753162907577952705133863345524213295903182032594869184853394882702176234182087911061209385498687788035959032647572082975834546144268023454543568129172796429469549508815528110113684140756589249622752653027837146495943292133512109692940688866226106604523473639819646067604255619177746573767870376283007217320867567606105929888011568842299815192048565480222473665728893765024470171171915699561016204360847022848597111184158691092265062938764735559859820354610419468981658369229843131553028872027078680499298165682108429060188311976003055707511924654716959158755175102495533100841507874998462696724858876860502944698873040896847412308685897381733098017781264579718412871033785746445048683546218941691891659206248616360713401929886125003686388805554124986341304201863930944081346066049644682134396921196204824064625721384522323332684349599224477979368586153181269094374371632511557369849794385166442154460128469535199972748839245972166302368792769053746415855691639394952431423806049253409246851885081806522705387978497405089815944188705525127043298431333323718863367091802183474562191088885751348490694204305051663262769165474390749558411196778328399388580617075703066938258985644242737837763801935338062987610796094759871286911493326602491696102671054066736591516753154279245140731218787098959846128127584582000270742595504874373880475517343812703190284971593583411540654095935978619998738930586996101600836455684803814492023483536215534305597772074349361324409554972001712542235447220861025373747967659810354008201342067837543781538649866237831644214652509133773426353256463307237727150109643879881926545281757966947271062877339038102011794390898757823390413755887200774511731171132887860994230225870097236624775509774556956558231578888435294925726769092975104876860513325073869399452304214665890265360806670525196795081415482184332281311426100931204159849772998988101321716421689398439804568684356606361987242284003303595848044322878140412193101979740280905019940794317685308390949268932745985746780748165866975664901726264158726792298300029427989114274387259485804393500614928469230409233142521240558465300973264733362622148571701507330265061369769327488042627185483186700355722976304500351117552366140005662957107040723579367978421176045802583579279429626859660785110919485470993387069281561687895753042615349300425335238109462749353177873761065953809169246670262289938693071008218203454998049085610145758146182965022940886518538832599419667914870812194413049389459866518502362156988715934148622760992943628472186226968856627957907666918569700132001227165957320898775501809692000801879520380572356444061449258660190850170092058432401994633391507650029643874645946896560339382738617972069810918158378869915952667405533713049387911300853022420115570635195566018843804330499169001632694463463722835456650131136760945606053394979051093010049360280695537516173182021155529401851925016207865235162191879907640101007179532824505829670934419403961437997488198615669299603280934170167232746535067010222464306658594001688626718861123750777093642192177023334741066653412239232661717183445087962494134279819435940152150660517281594510999114927591943917741676585650260572875431581519445343585441787497661385733408602373410221218852910453285407695227061589748992656174660381268909706333233802227549687552849984393757372224734768220451739312347872201087196223390801091721367208119094490196836670862874542748178896669253443492303862580241473951293534025149662503590704767120476000230266494693782455706400230893908950729245275689546422471286987297672030639882244270358603066361433735679826529806473319701585288401828037387112959749450711162633518331667231987134069732317111181882702266563265180959960749973719824232179434995453139576242511477559134869957813306503402530698655313674614235687846556991372642960592923842240233653043098701508577198448721940432218896183895114429935432128114447118064572776953145130124380190790479585682810711483287332799063073680024601888722834449179267165823912058106405634776084940379042106872958786354031332391158776820700327925205911437219028075392302413393432341471580271077598176819385817564654040705543419465460682174240408845018662938981480922771636893017718481458276889831991032021926459426254545437669536168541855650862510993347031270421431784694013605889580171684269474742552444682616672313522931206986042204574255208689849096109988770502082541525285548630765994333699866146274240977976646623490520302480486176317619478069458211800994978919429053172746818155925932014917783770353239087082278319737162304211945205742356741696152277427284150503525089824115044811260986047035932207837634459704541546970372914975489220259820830122973186116306118520670291806422429286363587498921305388998575110135665848726155411543195996447951064568297986934036503871740941963594066026474267859664577068040316121674595059526082256079342998229971966052302478342510920462278100098369692695608903795893058896966639245421698275213186916196541224047472774063225665529975167326200403043809471314557625502789906626846867285889209646444467118644265999665045604130211325925350224843057568939794270811719905694549070429705410329169894812077214505343318396548808952024973982128237332712123960862460304323051234430272159213757185356949798397928377691615239083953473412262781110589965197916624415558937550406565070173734721131884156623570994880142698067180836683606863610489010235726589735448984679929618283545402951795654304613079816522669891419077005323139930152498276949230176020657260179582547242404575563267236291484981939338397560285774186491228922187626647734498088460405172140653616002092571920499942412282807430330560205930041558959498285012194498300467688894651877076930849384101892241591511980746701933336889832725354009398078068257926378122968489596856985278968745394498903140182784180023161540236260763683889662035597576852469100986112236274538331360810810386281066069380780736923072821714293481422661140339521455307535526121884299034518122630985855582855731158591821558351906920228973335962040396780224945270151616429024293591749256402718210414084876917355440539666459553567865979545376359051274595087836624031420940999589501736601050420853487799629501229013753441574866230758630975322948853835941604537718204342922910957725917735203813324701878559865326008652921354208475561176637038054252996293313596120938281374693582805807614581430786088490843269124297594405895373565237429719595999809761286579481920962529696715396052507584666640180941895531116121786693408337818073470582217795281455210397468013677044583607456081528694178846718000568064489605678352542060133096822521569621799108099524948700333331205142614085612762884284773490922003607465561235464424108580410634837464549175573170134370757384704983991064616459334336466621347035812485213481969221843234670030207432850902801495118393868173438072410888628275219988021667675395429431651464750039310072309010177190772352222299231575194643095749361167814435521210129228640540849553034550986134489406397370135522447910261924645218222866355935049113495532730868438488783032339017203675860887481210411354023780132516288129892813484700314014936733709384519646201443102702964224875806725408158447854038113926561606881475332170804403154616998137689759928582791687830416841046976622677620745459578246754209229478362530707057688244402526121030399036551220376281144882437089562480432084061670121694056955120499859996990495959690710284926316087962803316013672179063239054724169910943908635495762934520324553141436251305346051630780046969882384830219516468608348160385603674026043362769084686340296023284763404817613707145645093113240574343374270604014691970523331605179876313277803207527041715791430674609849523858118563343684383943625677446843930242732949291944770201919297920692384964980531801515328173608586557955700584409742776298476430158695594031027181182435866807541112392669737621989014600571529710623102878991264207862609409598985122035714121567152894245427408756147061595772197953907545323955414274336116263667935685120942998813456202317746272181141175324095862250268123172536719482031436008945569550026284661530754423031306679128312178587883847418980139838079429692262363187788668561912861657246264852968483729146388571462198103870939549661230047943868719167983876267550626589195842479627335865633964375235197998148468905098455994194715893637959955961943972504504489527711187859429859698887636399197542219605995767497624635391234047734818140790013032472388159295747467498308684090090783088938764524873785917872306768255631833868960340522231064353363034685930649822823642767756657964028203024271859486466000589861485078815019667948014658200884349119565753928786802930840555760637035072839352706094832533554660680620165184660084121256397563956926780825045767597201323329671334714815231928861493705700742137137269146461927115371903536450867252419319594938420285739060888852863570317615895541402394115167552941510213111211469206077033078620590334288581653904105039359124515570914765843606644834439756508959213287164814586212182153909426528365732899095260653791520221152262090051882189959146746135881172939986736380395501968655189099781988047554485368599751411569823015345161852153451535594121529874986822907310735598073889442526185140463329655240124811403611303289984470601323099132564061049780913617905460061456080202476310399442115434402929553322279221016289328291276588777295670570807654394070110627480930266574283677930118161596135279456922724142111758524027266046452773839601973268668753890579644834171215358010125385444995141723307671158069795021980837037105754336533260287253578787653308065038808609495803412889971235953812535833491248081478925202942422664836614511619472153512930023871166372643219866665437128518943966267942122680984986134335791726350245725044343561899111684798875426103719713926602325927889823500560912135929787542141998043920112915019183878960329087809478595351535569755849776212890703213950345161188036178646976157272087451485564395281301896959344042468488010341804292046257453478952933073612590020548861839136049417146410876018409697326081789035694882192557112225231625206080065422628788133621908836850562732692206474831971780781238000223594226761773383834425550666141680185001169077577368783661673610737056675402953130405248400895354816862162030464623698011175933693767302250615485226414091759690873872833294996127631688124243521782169241184992706818123267000296316182355387039606207142452556930447891451003424411668576444353151235831567755500663386718178027090848582843388570642414363090168501815596686594222587698384145463758653332310047306618153134171970264596666077491790962497548716928157693158060003351892570016299252571840144568031982032124194380919884423074873243711554333557159112834206305026131217323187738750418019457952254189853875646660869632734212989978035506198311954540876984830565096930166472516288064874133004018331738024576212251270037262538510738910280147904486948597030644910687980659821861348469979870130179926072294629873222342032499120616195694383508819088632203407772546051434870756503591943310333793009223338882018524207019752003929828411363311919278177169379533333803736260529106768878958749474017558777605788701151620222608816596360838418052939053406923366466742970501379640241595742753908377880802807601653622764331183570783798317105512768041189154699541916217128602626993247373861766528769161928229135569487537031395460925784774765090326186149536260530006456257296573562143083117298503912826588055731737578054510999549969766560300433339974820221630254050521607543916196147638923321744298914671304182422316890293624245863392067813654450694385715085283528841279705826720048657071488715715481888625945962259257013087881344745898544457383866422074511185904235032575050541518698091985790671972601961310522140623480424297319398136476469025513904050534564850712654174450833410653620769846551918733427520436538006711621264009978309834306295004893065524738655160568105313319673826294779261050722460805197164015722745524757215947536013042955434486217800848784684800163524306011374355004947025486259108325571026514193459233574393728396950754134745994676097294932373128518833725538567309392599074364303703319444847840536642885779275359538501752722224916643286269578691056402691322096446502903993794718515100582793654021588695895183167030973709046017256321957261812763509827670420257259893429668799286748849198510120894591798252904332871594175420009963076808096398102919587388915269409602621149762807403112597160639305036950670664258432231942935034019094115954644059320339336833771841040104145971231049453202435851658731569826073796320301277167617561863275088686955019140965872134993054040543512775899938017803500755004024520125635303171202403679365071544903428228076821796132890675660988936442683242164423128853961883761377311862524251705510193998382260931204934184287903934474226667814116382923625520919879725582645388081505786788246481326024382375189402010183976257138681940602300344629234742645848921686069842421550672013527406388466267802522404950578352468123403357292880679699529061120258331446359070907340764702193691993124298638648640137795501737384657392493463010772672842281590390776789938405690853414181478722286999301829674395026032823082926167889842783337690368367462071303515044025906486931466793486596804479274366860404042493615477403808644587638498667080240703495812421953387682345529206953465007014760589687043380579242745236010277623668173316718602962923169945267264044987796953404966144169452856670790708363768470787337206874816328698013814737576284669680916743836694475657355235745344507348016688195823173637822766984478590104527591516168427297102963420643297227926526884678778089955266695392696381099970401122466996878454240602853942973544496816920192682605906686400101040984802167490082568693685402273422286763085580303930205917033524335731776649967526701281055445903293900884908213211081541143139011254148167130955864463803920921443610212003948843679542952746732153656215317036443914616638490996525618169469314554936186968093864109698970616285025701702533800535667977601091995994761265673698101541177092102722678012709124927533136544700750875892348777019868641306332539607686069978581346622639799318844171214985533819924050955980384127298712763446589828791679507496828324510920109402401130687348037429056115217489323436238168449321965835229872308844803507934485199888713602138457931776909966707147306177552950353414681687383688470536178042516963622843179860054025317945179293819153885813137008266655701028968195790105744375351683739237102995433767687611604851265206974740536301674005333010349640170302770729065565829404894400129029981906290719695554005778693638654392016798848246046575799436443745777140218623578294548693912517526843441578159769032600357493591151174753451772060591760246768294261598984183673372402362319626574481298763743581351504503289050509431722549654311476735089291649225649059251152058727873078796486674342355664418265951316216224753357941763259092623801381848221866678094679311658414266950797442926876875426319842250573968280898838719430235419404904698546047381493885441011720173474911053342976160692120444146587183685935220744693697738364065543411772747319888908569351831057137884242035677428284117645975917412384513251279093161440691327101705132268309191086038783792233229950065000516996328333383738790171932172200162436553821699746496011308323123895658623420347144098515525325853632636102294447069903564980526851942543906259594817522199470933780095104055775816837379231995469286346399914285875336227996205551171406371206048181602835607392722714180342531413537291484084095515085982670466754599342932517369935569184033564079356661015277800952376007923243165072248268624054207300323441248515908465545547103492457332412281701806493949290986693599733031934358655543266134299255655654263207193117928362158372129130668679109512780150158030035750929914825065257955498135393546397437337190617357578387062160127094349250360785411335862178316373938876661144102825882831212768923575405761673814464776013248307803264230810939899816970410232747341735399444058646515520405115335588055926783596548890540208341435737086452767249357759272658753893406999861163023090999352064365660846545929285175254385941707929994628325419617835623121521899320567246126697645008057689230256985044921677845547956144290838630338992061780287489019124600008926875355987812401634320841353295450857232621377092532551241647375345757509061937794749908152244500006073249152538420261505044357818894968274929185204023574612189347810197314517508101634969984145301992356984151185823169709178443579790953126099974271002163572752186155863595800188655687292468464038104359773068604965852710462883159226779913097211341071558720315274650005144697763842261266007989531549384519458860825848977540667056194143516929062934118748724082941732182443528743411782333116746918132486461404431121802905813660756519526853396157833362080323947157101469537592480163431323842613658608578930473947947836999627145658534577640474813096102001746290707276055223401684164178806976911116165067426506361843079238427057652050632805384521852991147682978039546354682361297767423970813166308402700278464940028305119439749870467619625610549676314116234739723525938989206338602721272716925656094872385751871117477392516798931217650606953149917963972031469768209355904764059874065780873193662233765099313860603015402078385020246529412525044928749574545877245219270282635427041085184169454340595148839073320248145643319749435172180167422116773314451521972450523443007309680549378074039175333974050446423652803484205407293261843717667590776687403325426724274065707185593318002499729092237395572018645591085054319922565015194352181737869297343641137400520625300762818640928886256800155458487869175266137201621685033465008992302092051408617308317806677326420789463551720792181393052953212273885039936386843958803310210777554339371467548598049716924752085707742705937197973551575471901700503648698768751766552651593660550940921193897392073453725671335627370419841762129961211399176010116094282431219713200922666513899832306572226565716696375028146725008599289622517858703352064208002955426652233218332950734628391227836241938395655611472841836076195309528915659880505455242250319747051200579524358987866848617653568268632333127920441462826033213789265853702845300440463295431126348779869350058280660443519958567478842567058216821083325208839774404432236506608689624019082621318307691074931589046273940433493998863910986729460288223691062369534498417483121444474143470093586687127308189617101637352482410803356431958673861756193993332584774373851530325132633340980346420462918052480717983819865503031272873787623488138389216194981960575458388743689232730057307590171614519649176712803139500267782066299153052388692736052044677269612477996793540684418297329802026436198945541020722540958609729699540016583896434678979321999650891230962171828722841724504555815512629077139336759279822967217752974995073922542662262514126287312885571692031205220358206119277684940802954644944978599155884378836186145036986019242577264574759215244235486122225436740282795838966220261334813194351721097630013131550142437927590368653713521443632089399119520264258363512180144062553903547712941220909656344543777225247144305114429588086555252118511404888724174782376011678797021723209488792312879726923660073615024944645861140553317036992631450801492480504120632793601402327545474900901645309408909166234165489464530102831622939938766553071339712061092602799682829300051676515707804844716432878966172934322512728796353175434142676834756298118685149377337416272942676651058828265038240010666850105148186128833921163064485934685115624818396733630869875065538454229249649895348589527499014091880486966873965325293004926255291274048023360425639535174017292848897930171127073842600726510490043448233544907606543875616881584749744320978197588207292735209659562177360859759312774532578118760337600374253804451099483269615059546504912518187852499336865465262842765325594969771122762566235261076316882972796215397691986160674598053791442812339167903361909295882544180321135067341416455836716778850511553035069239350315372788262638624176595610126433778179915342884239113914516471157358301231187676813540384871058072790927386274150523694452774326820338453542785102507621753242615452434269663168861093876176998510349274176327552556009717575768160493899719121172767429006726684849195848503672636804855617776169922216614644691739761743705159555718141825763864804350209109964093758927015941956196031118277493179757458023130194273483680544792575288500541928353889787725754514514829683248315645148591020309881174589001599025948385238016758495471835627261099474236905588184519530468826064487197776123709221873995001015638430325388355385253075219008032238208586718951387927714972009659027501247236427230751449904346223866147302869437689060294349864734512608804566967253323735547696406040634010415684157540058336699149802209093745774594083386034544866297964670444822282954516685178164159750247748755596949513962629917997022692245368563869546063724965125417896806094172981303421468879959757997216273581352891189929780572679018265312179407623863919305912561335728539947775110722824380949469259005958409063398329738307415450900142623774304349721712929569581958007403250020786913194090481058861736552079758823638390837874884293123856664669356858297886083944737595542473188495261013058310215169222538925693641155488385042954301223302905691365009793925247850865896819696257358716506703082586854906312303224836726063183070584974338967355859850056819914281921295800100245513616816391359134549098970400198438099184357140116033879707283600641143728501674997705352457025487360917731484315244417291312711154338649738441546474284890634850026504261009729507901514755385912358544561537776682289927106021536320091473149010027088022821692255894502207727264426669671419151359929512880925559254638224290126046207541369410850319563974830209625405047916697197629498840240766247456802282608061825692649444275306495499942807743098707440598227699287413951287489768126093510652207204264282643845070855615233612118303765732221800337324477557295650273124715513290942106131962863397902330607499184751732417410740826958834642611223513406687963226497182424543092735943900286195092559382897484028221592868781083050678299448862976453976805122165155103792755450537669093594859831222496383617085943898850947556072653927046029127027179868051933257874529093290491325281062508159556837577382991406233482598489746069331446067903729396306106752134450556457930845513158509958219306522273350162143463306172002834523811190998624084857723674825121783091672285888009664999476063758087534541915972942453208573587138308592295173783088853655127980787119387337872441797687005396188650965754955456023798054159082885451436369382320808492923393449483269614306318609118489642819539511273349828074561239776484373186182903957991737109224473366405975315750138178546698273646055925075398307314292240816613472890035569196503930653237740413828302779648344337899260631966980490405978765709656351280095421919112881870571666409934572352010129816637282761069262914208003357684431506287574467770663146598401979264672443402150082557177967051426658009776704248856676819745737247175906403243461140279530206807904353651045767420701380235949892641786735773110740087552702772805769046114998327075808697745415687440760630746401381284223056902511901932820170338464933310875648219974845892528468388392270187921607947056243130994082333675549462760607978520868775880655301741647888192215778641981132855438053819101943996898466599754439028981235379851221525230056757564414748775073603963779036659926770218796505117540310951836259403817685329051572050214374826357459046587215806808522670771051874266295046044186432981240762184274932230592365012998325706516456489408445559194071128672602500552565611268128290443441974735963972954153561980212472883909390316908521726552171016516398187966309565814871317711052287480130103938326036613199446757467212614055996018362926385500381297466710908945875548960642211752241967974431718769794884094563548436693629592851018959159842597274892535458700430967068756797933863211763486159336372679809227174559819060240612918104981404540577851052198452134364205996213457922467288515597620624792940429521909495442694314841185412458966147714119203285000861844834350155286966361011560757294580983057579167515105471593404316173493929094063461749831516681463180721831397352481414388232761448623369453719067717661137016165438379117101719173557281939796162622155274842261863523040223732251861726055392740732053944626065629411637470889746463311473983109084702172669725772255409257727289432659616937047532752826009538755830128298648891042808823174701245233944777003562021416401831134010658069433058719093814008420526519520383259889571814267016319758539737523823761663923290171405895472661748266518167421739635753512387057587042375973800215114591796857784242003093082214779425266632417273930038382089756400252686533425400677166606561777188423099486538807727073737952050748956957364555104692560588401506120403301720467524146340129621155378315533249140858063133935232068640142697152993902959071565237107579452109837825609080494587034037534208137425761701324827738871760289700355464130557126678427526386614025897840783979062436903850436467014875650835456802475623774612740275081340005867824867502864729983483728733626149184546091837727425564495450827492104466107178489822649975350234454594694055753608315227214640791388619102514493280858405622135027462021756138659781096679091786750687427649176330279596462640469946597591069190042439136887145798169321672469269050424483885841816598385149001755143402417206388733755136682177412884587015310262212537242627608996531132923149925811634559208919401954689982450821907959639908896178377271821791356737259359132461229475050161862516896432956471325307736232100940860759360492183317665679075507349231931365550142084541401110557333718792837142758939591120902221451560221121654088067347574236111667024751796867842919706059870797671172426099273523659556685110178275324603209335102464635794937014829798506275637537912491129971813074067231454742805655435648807926450310934302099076867480754404706931698029424684234021929444948261962969656389636954327527183223518886008617725128022956863196903375756099493640912428291609686098019434330860592607708039059433980979909629634561939143665975773497055105416768863282495476175528866508520732949977433261748922189995142301319116872051554307015223832613161922573688896226350415733642401354373176983137215532751003040333310416481879124927517154817161954426590076264210925240881047971599503447326380142554474854107017596791105969978831706906673121571855541993882052553209831449715064004809091664698084784165496066708021766390236607828072935332545658939753748033398199380518924673076561611394211448612064965572806469737076728243853545632216179249004163666529363088538627954765752313918265761077215027178364558424774717583560809694114320502824133825247721928991686817754856105209320214836870698327373089225263979177639139062913406006928268211116907557894997949173218231142044528846963685325004706113637348996361902443521857485189765448417127306285125547679601771264017772818632778386137668223063672321372676508384607985089358652527021157508877768341475287850989116329760482440062137726077284075917386687761317593492649540909993509333056995125058479244870965278214384282068233280194025065481948073166391701735314781258153517335112304668141553114476145808874868185084159536439841911722043069979851420724360331490145764974188222859931990321339153126584387052460415488715011392206915184011652857407417028520240722604234510069845982325601895697591912009444175275046761471127871433919899763478760388968626128982661112066106308261287658194484580400236054360307151704215356952212079556162344236429509649390615896787656206495671180092419879197278983527811410576112799788316551881604266036472077747221363033436685226083829092514885868194783688228121111346602727988054997460736508863918273852325122183200210078841502360449615708716584522891591698259123025213057807891231451580421995446135836364638597940846742116177937123387412577229409857373957937132768956097351755696376495203308095152368027003453909647342194937297921998300714852820632044173156342027868127162886930266200916372672630775257261757502000751552255528005675066387238358005449022002867999343570267531388233020578011985323719633965005902483565692026788315759094727642585617679252925528832114979393270560882174848221776524963520968458879190219808461417248513940325917570465002602845339132148680520444886142655406061263621513572465668164447795644821349518537837466444941549675484090753135977267777641042600230262628625266462650831199808602628155075541302263692111697108653347872051325614373193514679314611247653561642051203370283536908690576045118134011309670160727609508086801844523969408368211860292320071333671792803910023792010344112519571186023874613463365037379476870858928543673351781496091011918198519105488680359937505650756827441895614309100557706651613016230051219550987759007494072834560455204591136642146587340700178379009788745106440927018542878880832760811629146028721505001418172830955915960447255166381089808209223826554000981509149360910401359440551725966292967756184843060098640114823014742814257137809857105490948658044251661645003900203557484122122375470473152800429751533143750454276053288786465651986012676520718865187328559103553965710539894343284558804727265959653625975360280351611270278383786148780840905600001308458002092731621862772400597674780933741550486042185162332776797822494783670156187789273917270803568428915736668903779960544554301636117429890566215638736176404593145790076306514990149947887107793195955010046231159757019876321998732378947527588990776327369055178326597921719575575690089325492771186883735973495995142628014746663938546716793375308093552869093008116872997865011702273480448633417728157997076073958885395638831636750511143994509266902058465907490799217057760582894921349174915074568131315773632821261208348683311863873999809165413868394569319427246105366039426794405403785180785412936629288316232571888180441506920354808645216272407405973593363176530625564624127048189964944360368287516457847487564638951865314713752076657205493799667523574337414694988268092906705198720103500377576206965047946520588009124975602328707866017317897000385672836005270572006070296177671518002656830686729372533309759882276672151172610403689038758846865540230079761586706508200989409048185743002068357823400806124541190458399471180293593276741114197485525565904794364902601881471323966477500435623226012341901748636527605982369666741726816079366187110547354939303670293855184737920061597747887825387052979624883650015035639497852406020480051895488033895016711824001031428712582862819377018287198340575555656715747548104297004348225578470699379762119069477738491569842195999899088123333562148905299971760280881977333497366553067405363013756470519482153163712231809668717908899132977596022458328485594751674617938648697030974365880576565779585952517982430803946389598147641633679121297708982565144004184267145688047650270287373074570758602001581523120883386356788211841664022225699690776809198467635239717021872300646845116832055659801292269790121408044213621488565696928831371860606066228487575744141314957733325039495017654115078205318498292088538779322974422397643679807564109537922346750239436056686392255714211851237549732425724893344256642471741493786389504468009124280183545234970755220647507946789938388296544756606879593085566843165948633174699271166698899758914649828493106592245597117921191567985028996211466221845582250636535846796628223233264296794055912171047698145409538232940951616919093644785756693375095927746089898963951217358822351170790103520590169127359094489845830558485930907728724007244177509676610987124189751440299240601565578377458200487740906031361233173116631202599945438133152799818746335491861430739682857369116436077929933433227731811000592506262431239929470094406545508661975334270597036353476883999784608588382798834811230378704657433353249400857545955722314221515899738113815841076167515655791359253144986951161818972627136172407217413100648569716279820886099361164119729881091403213958675460270140083772473435734473781644398158250495090107715154578951852850546228582182849752718665431971950136102733738251987787182650328482114598433534205862408787593053692123551176930556321745883027336268735207098890470441902831131889088280851600738525929251589161840889844175543990964132191027005978660847013968629321132835659626692849526710129051167099880960863671408140326752527168948562324434838153267495079990268185926316171848177840472620392554889119079771703409938116240933491984654290654110422251429623345359838947178222324531928842273906668318152655706230726346122266484898777377843493090796260284954503741077963021849155189776469629399171327712275713932712334805393733794592461906951431696707545352634413327706734516781962055181561608073875091355996661755506524659754427758713285545927644740611156625622291011414693825685445005729191206041801969347215238762756106376640702621308941132172463971710936058659098572312176308194505455336115496344044146428074135968474312867073237290846521007550472172554944654475317077738036540599420145656459913967928674954292200786208524606259325156030369807909657856559352024523765993079837400014364589226301672189303965637104546542260854932923808600637820891327724246644845733020545537216016071555902824359932365372007644705884596714162650948201983439363129732624950132973571754033052958524568378070578495447079689585437329960796405710089441711632106276856952356304887771109557764852159114161163275328140752694873890421350734449274853923088962326080282580628288869570207967534696637134568523952473070066256661354109413140414068228391728168720423006321085811228719936976617474474106028864043102741411130875521253210049544475812665361613646138798933781728977449072464438466660451293127826929923582384990434327189999899614643861990954667635375987618308239040716100089687211225898493231852204554938827249335818415138082325030291329255117955890652286294040756492360927638225805763410628360209742510115234299093944686143122905752765580881679865835433438218647966643718171192570984016486256464291685052838306948489050956443280233607197310283151389943282563129126688290155975015455663598120676352077009411522550439961408381094695328705673882079561510512066381192100395435827427441493248122458879364985168746778676871157966654761866318435766347648424771054858824955575897192744686212921696422163644628137526771382909341792890856201722281186717958474314449617030099139081002157197941413210362798735202851027896326465606589389855861889123588939845287572524047891697373651790124916001690201505389814990201849545742058054898890872965567640452800678946589306104544013375739465163249117838110550334253008429750885881731018834471348365214925803212307159889600637552676837956248156751119727440858995181011537393395689069650665777940361074225117543032498078330377295689634040123906656160505743087925799608392919514686054230225284266513448644551962715440840922591007178973377053130831568883669855171620478930662101126482622924562825210433699095518896756837997634373194170135550250234205259983848350401078585807430122742934716162419175234756232409791953197358484712538185467288491797364297937516019909253605286715938046739110985002816107881587655550369996848189960600922089631788834289334510723839550700574687234422363942092438848288731751522130532030634709405490656892961591788349049068726832636409388308945335460633819920979327592804899880502150663865953767681226539627110864437043792219713347402512602293165566246216347325416612139398118530237555192446064160825766426966924352008320718747714915021255356104618590870500544161673154813189248316409041274360690677662842504118041868138636985499942740876171514393682636466837975268065168900330199616039948658404694994194473868777261904760139135668488166976284543315839779422897239760822830902836214458929343546689625986700408124227391591581206593713926305968795912487791851046723600597322693393590613074933002417207297112021117903355103026844250128051991764341359154699259613501200159799564186092442330876174843370773330468218499850182734760563752093308566844342103199686537154547501073578423897816385227442475665716173878554320576194547199691392993111395147139168759209852860046193436449059905778672683646392622836097489960011447930468970562082527723055598538382947589533903386838887093261118293838601064227152415268661415773063421570916866081796733711232472814366511922985182765539057624733513911388487381543159222333762058883213220514035552088262038977667845677498316571910718377136533600182394031040361657819400479259314695951793120604389103867775891952288809163148078391308747239679426068640043047615220307601203783125830011933294183467474985599051793624299957549339048453529498547419997515758280527085812880552433576517128201622202960833100921301499576687525908640851658578386778903751140722613730886423290039495918285858102115189266384070442512080418956699787579805575912056737925588877980498142723027854584468568719881685621878375002164486232184382731536918630256957111199282766484771237903941877707085304156591121375431556515691890445183378564587750925097499383748887197943738426987097628870818123816871810915937767427127300229464129223682301235224369115681092425047891654468730742645397078582007010303244118019821011302551059908411269140576185943952880301841027217904457965860222044317553493206601112792805601355518748852818490725686675440126041356001365910829923469064969086379009769223113718020661217514968291026251796593425698781106470987430588589159372513494977667940480217728963184221896263863955024615545620233209594653097127525220075393951311090727982106279101501831232967160167738739397729453045628636886976476460417710524080751018917109985511816467227808729624987684704410979131310505210806913472605736839442829144306114719921954370655578263971313891503514799346234499117019761224379444149986624220122865958284284400027327361918405459694348604741328708170917274569212798977677719507624172932369822765601888754526120950816916015665531833993802808293501645970786857057677418979151245397566870402978280955654681577871138123000294336493765981164586989743007674799255867708692803804173550409594316774875908938314682785235972163748651552672540661071224896801023559756402926088202019055702462267013064738974122308116176653651408175035755244326975987234787119351769489878364361095151921059465762463363182739631736186572603228965411487789622327207425557842774527885540585638995799590001433259460636887322968749950684272813471396009680665568982519484589948439308344718472560352738131966684804058530007453392302171855644867388700248277481944987672393408341509821396607453393056799512342974978244224702964908196768847517833265559951910052182891405551116539863831661643016084362176169177682957578988847699150307629337644517321597057493115112141840726186838390068919848160560066163309917698862624351322338408003993478479276666795357653256556893456968906675614869301961115887851043700465678993322500688143668663973547792333503337520819964354496370991514290366216403672548504891950799161445745301154935423610046318360854298372734389382750568791694569475344688413987143950549333175885477507951849227135571055454706970608974239756298188736782875170782531458062126504001370988950328144016766395085868896893242541473384777353824936337507082220536246983016013108702305951970556357899146516899698155511842884960426401552629903593845907891966241508664273810808571606471551218529813585153727914626942777973701362592999643299793826440606889989876350030913433251877644942129073319121287567641293646559535701146928233932358366316789187466574784672230589138420452167923423684198511071665305333746027663361956127025354412121807227073574920586848898117847102252388374572668721893794319979906118398262266248344148404961126865811728666501609209757803235893253020971894255870954484952073960787242592038131085664283783622456653731275548673170708317470821201216084142007824458249851474383356796099235828328160101681467969126952912131897205201557224936254591979501929319104629846944081161228293710939495448577168463012303576779615732032934265649003166327784200990936412100430309052201908868557068306133220440086595620546737762656505579771094322754898609227969326893205966085360345762606269890847236991213757474079091356940662737542713826376932858783796407312063339178391854377368042814398878570518500829652892603573432009724402818347499341564118786806165460933920369811129109746648956205715354472695713539331172259834853060244166558691001093254425740753084993664845300801317791265462510576247292631066954613087997852241608274118678719936828300548437712157662660638438889775305188532128380147156181482305737796860657342839431126816247432380009773079556866708600145145394015503589586901386649575147451520951625313864202504755970657377706691084110168598742631471125556646621955234520641810302845602995121196979898247490991257479082620420727830699591734205795985903127662724499249526356946972688472843770338280797778138801818667045181981311415983767250090522662362413989824714333455914824787781618295111605018648332342651966822169245167169930845869756416432453490375878844657220088764452631262218698972582644529817911449799064941206259006496193610865998981647845693600384767316608940773594295872819595154511345155337928362699664973245944402699249563305014112067644456931520670000260142337960257307171623375832468984894869577407779462943824654996110367527635392192958954394966007041243914908828976532137870390034703020424716745013107877328686800178200788719421635844724460807201569397664211105241746007308331707245730874321917895334581731378122181601971645776945711472958166549854126110214348757807254899213794155237876781558288423453564931276607215157010685782844591473771282090333523596378639557170045815108104972783452988849420905712366556768982679683610755817041807480980078465202381430891941074767651709913814341054405609059419836985324203079612725724262419856980908552838381716906608550595613141812368949839677830089112895259061688586318191406389273638532791213971135383174135856777100109692615401696094156175117019174657049657560992455318517496498043278761598894571859045146795660224720068260027733851769384414692568801246063516657289757833675077981362492890123775032117975210157108079292656813070854410412843917461387200371633157942777942826698218759459669749156477346346495591070351536910468761316347288098251087241882358848146352882876283186298068581862137311275555137609783843447042717387211710204110319207672184843759175563797049515265645455010758629060874154106489513897033471500864637872920078042740350070602376470611379515151805308825076087391560235385687826391358487469922113105109004534715643632265808281500849188428082483439413079366787303679844673285986352975491231264061175423313970015694748450830125580845836717430042444018978674793416203476061364133687105272865501336667067681941687144749019446689505955797406645558458223801145189479286866941895208884194245011104420918246217830276077892272946649239048838683336443940991722204439358330255125149054406626990687088469189787146169551795828532095590272170192791043251056843957336954824862052483820942920930678060502923482578128772055717948092716870911576759364171669446157670869139191929929208053383812256784626036867846995847549625864418978614319023450292675984191031956800263278949330267917930413613384883480861738374836121443098469251637745703092495414877878272555229830931079281307032936001586295065934749456906728084189056320220500582199865810087222781547468028128167321209551412982900713527523257853848234511801789738358702674762813313088653982541128710979151586345053189919392182838233508975732129904630249736043906437171794120251882839134292017083425246996371106739548599972009689177239148951197472271382917207039987016051881741409305422161598626658108453926245660291403799478404956091533162188118434340006041724780548042983685243835708800019234869274026406070470676485072573645700234699537050336060836850750118476340598663983617461057544921096929931577538877412950690764924967242609028364399506865533278730629306014301811721826083258444066418912726236049189843818556617240156180221967688318854417373756274300596473317443715924589219207298151670655046908988506059560086226327159739276707754499629755238213198089347597713396553884998614395281498173049288417747551186528912006806165480784435704388708633272814167492014680668331862513288271063965259270052879056364544580797372437475596068585173976680344562711369621990463283290058346598097340018547351081178006200748389898996341964821836848918773676182432800778165018192069205689004756070055920491736728790441333428292145825402644641424961134351432429294022817916618162513072880393445554348792419601357164421941072391162914930700899789763235185868328327836207557976294406384683293596786175289250076443698792055646539738297028606734194150708738733210970323827373257859352005155689438995761766727678362172067927429966287038129064007884993252240568409786492714439693326385134763327578335611397365845420061254682111767394236081750057140481684931312742101922174558602698178886129803515926135281511122209806478798575302990434957994677765629970805612540511736463987924007789115276187427677078937564507410572299312584597935364288089413760203025466154984924314423114370689173218608014669728517811176099590466064656842687213095270143020026338620348078837707984488562458661298536545027654583330857279140412627659149746151985545694143388514696509742985247443670966830303498724648606400937090041815734719211690498029349236168565604700103203351033974988839843192122210487825379638460753007625862713125176239458593683766215210080623625210110873226778580686956379786582167836261520391530519280133259316844525079160713917645922835443162927729802058917606002363552514823918517128038413843815842225880275911534929703921753195258977885464024104354268538250782197470516016371455336279732598553564171515757013236562903616212403281226123049440450100116765747084165587884215785117181025239822422139871425514082252806644451518024924999484899590021177914328488570935481882437744053101636059779923630401535524629887001112288600056095087298488029959883000818056285241644634008050558706803247595983958281988388272974948560093111965109845924790446866004590152379271117324723635469389271653981820899310863889243329630915571762672798321818253326173249687814574987616133296601059174689080462601695107646578752872072213141164270511619741997096978118399325509379530817376276741012759056482939289887488476893198151657051120110480020997721027050793172491285204938993102494127012624556538697512569150229857727817757710494504733158170650137741269928415919915147704358123212956678835265048232282500809630705752535816369898907807885661043641980255512712417091992190562510399588162804745232742777904151337966366152738943307288565640726261841960958579806231777769630927468302264265447977510242594184840220759131836185863834785348836987531366201406127712840009230633401197771607598866054720704077059573413831667990623219476271363009304369937746971520592264613632796062626881432895384461530855014148109281064670498718468769426329604647255599130487739671920985841516566737417293208513029230805627885174343596910448316120343452795729599687805832012391018575489308903275603446588221757296125947773287367584201992280795497262531541212329111450526185379720896269542719847232225619870797081125206319019007632351958028423377408436978580234557688269524836588222055007580064512485159686342053198660822225583952232656688193980530676617219751826462162825055398467595129410468243279015052351161582251632776653627986035936465595307483990295350012018667743882615013613444939201204797788851741216187429835027748433297180154611820526096996915356748155481504072722575648745227428840245599857122548129900381524097861684047152147125812651751984223330221024640558658144648694056958501040422414527269619884186172303460909202698410751035136574308302428845897868706596220670724584615226532849296592915632210407890161078857589753077981562749975465427177166409155669965189026081504004367358764987777627169891499170685219305683475202535068998241915523943155879626037963557339234418180112634395672280943718670618341690628583855754961507443239318196565870850674949051026897810426706160179905343251729214125857968446763659581121679209270056824827022639162214321077231991155500600293205305714226686016301146849055087830533975017513943772600487122007844372726357350929709286994638368264813261900542795304400793397621505713971653234105920147414642463754257661627565561851208217821554843914074313181587776011737894797730087105206711123541726920907859214406912214295925437042305365819657514519001649779885765030252761431136846537563100536757047812550052727263446560564628391341206971645561554721931943660668462653581895643379318244689340041767046834340110602286797957489742506969638741302988470654027524838645455460141387778576054064778398248385831411234396308545100622852025609477041788715290187672710000718578495941234720073719924683644027701760206770795517667010168613458268857944090983010007884124184697938937399261561488797640245153940201650663396097590725434894490672125325846528119092933927513319147019499080023053488311797897641547443434435627313048833808184890423918923817413759422181100727107181713817700386511481490312511155439438170494376587984182065364650920738265840989501925781901525506243685000977816828897386058962926405644478215201925498327139407410715309845336005305859551117328565169144555969791826454228496898199673763334144293819843943277824902092178246482754364852587525674225513887933663341798987420432982902441679668255527865382360630786183028531513939449540674399292110529064260859152874826692824909565466636711152824955975561495929538166858372108497208709437255648733331923680171725568284813928412824984678790974434093418133545322499012297559496879325368557815187622515095464292660504964054070414451066537325259384170122287797838087388179219918380376551011402433533100478913513489841436731291179552051706138392018800669637705281898689787913236447254722806963934056243685326043867597806028458720166865657182244183572893441985656715647709593845555282080942847453087288624065323951329410083067209331672300474955460106231966201911501512077036445082739002890885337336023585722853265679220819655794738510963248843572362933122704373475776649092308563633189716450607507341137456695156524616588059585955604358460922975484741635536172028528433367332476272196971566474361765725386830675726262212623873049120420127952219783988500139201026538893908729090791569942885829187736751137279076484968221037777040231080177643060909770784214315308203155000699186128641708785100829815849141627121592364836596781840745716180461573539345923694987068682395740015060889144887210026120985252321740115026278773755985423571768086584106591813318301303744318979205043886992940830525649131643776767200023514371781901638820139747917337036279991230377898184899152403633281758869361570584626409424296552228385654467301182477797869883077796078941639869269372042567137998111328946539235867218213761596122443533018078197981896765672034883943302358132234995915511138280103450108960079421550561686199975424002468434740797265354626635433374960026101415648171537186862461570248769616161599804083542317084839584275742060571692670380229214262313355709040136658194140097561619945022812754988669244806454596297458588300410050254730420643586408935573871168839549586524369813245195283142122861628365091693355832585832897699746303165665273528298317330516991858766543154520599611336237136820906666994260593492183676039534455098211139216078463828083008137997298297912494394833385273817740610640615732389467657420415412794135892932289500729969091692996850742564541557188401202820068259480872138376427178303734624185246620615860937382172901703221333156191391007639105456119680043759915289872741060642294179727555845768857927564117953476990886122122430138366415585297562347467287801880275119915155129834072355781309300189501297709394041780925391922070850012503190447671553872857237420950520303418285083626983350393195263475332301941904506139965036852939250028567096652612523139144948096625389922249644876023648607001026014682324899873510675966333540584039642221471801602469692462365794397696992223829265789173095396484975337343363999059747011468273604381592868471647023783071798432436283756536174444213871035427791810430807646799513384639074725932815201825704662995651325302659063127959264349160884206928969968170001956537143004869898706699617659468323377565671394999594808650107885195895708002088122815793265444749620701502771524550166786482933588688385325249120679537832495149470967838971422870723196971768819427943766062948540503591278446636881617509851217604705598422229908509169862350688851449103220900674486882049958176138862016710112203385174821497588720327361280987164356403596783687655296648123109880505387566186828765471302093323029521380742544901993134240864553919315155185724308565422992381116615160835242854455861244062719971457809093216425233730388396777552681674133068208766962310666333359630541787380025322382026090556011182935825407732178630881109088599965132374451922237219930075854297110548604123378479041281930139377049271743302748526430155846746592696958596664531955182438366930009493807749598896102029635505886791645747041664350570183861895383744948760260769779145308972888264602589152284740371878154584295964419596974158357311363520875879306950541551590736800017551830144909003601912229101234992525432812103591034578908558318255069030284489474068431543479920771029951804292622074565120416505420868762774118042250350036667580509154683964719761677675111329786884126937629422998403583688211139608112458483962232869103716629429039913322832886514085713315928678786294295061659774935914645883746767450870726041849897291572474011284197764058058580608229020002748764127482313667547393054984838474698171334758739817841910730521085792112798900348056245983141331809465202985525301053350154341283759692791071732560847975729917882826773352494323471754806898859343778264227049281761778001446799782025222765293921658891685973335766194027590410928700879259994635442367104836271378677259457438756519856368900037691586274428152969540417924856149775659449223238218011554616130001450521262305468295442278428863228860464648251193537859515833050040571563479400692661416373345745403223751289016594324501770334286658465770526646007292216172551697426561856519556185538373985042775967296883745890172985545474485909831524709467805010059385309236851757715069148581960739419042998458063723760330259572168996431394461742875389214622833839056785626124317383599049551928726667040584993344553466024066528205581640689220262282458169971237906835723768446196555884065144386948889138151008645989281430072666579332681399545363382025238626170171125513522734791981965091230175951624783034828310608980814939095387883504533668473492981941791062055163516819566694162552964190306574053580179932415005766880306419645459733040712504722990253319839730292822359124288229921860233945518580593040226076580903762386726154346086320485864575431639550797498204989978732797847325178789640391272240288407004180431235769467870876681899228654122962805952329388525855764024816359851486532908253850471665721691498316444304006108166975270493114161424512512780525064117465994642158615455375080507577409961173644196621517359560849779203039921494770246727941740850325392763570945453422637363191900970295949885669404843239183596329620220901148875737650820497032508793075454260124365768145786045974876464028432079677223195659318544293529160071625850804131150782868040084794015359598355855036818264327812629588788008337144741989270634323837172166691916732696646987542518343385204078303355726462081035126892807553383888051681303990053232600595960951862788229366468902060129806439358457671253087091327929687329473758158176716485237359437592777941883890477211008170663653693556183632938908421052463460533202095159695180879103208695373524632732663166083310602566042489396544907362632368277617495832423272707534481737241733085786442378567072772721891356656658929009197904311052848994344671429710244905243341012204784003046700244210021957016807171300415833547693677351709518321779801514949113964886512027906647527764572673743602049000244589491491869408311350996510378925844045126588481057576582157342191385717364199028442874343657922018603838715530577737378492432328819883855574426788429499414221675293693801615969103392027842407957799397080559928814958851944184818158701689093761451668456556099655324160121958980102621798377839281185883079962589890820462271523367420518025901822428054608394874208006178756482226481375029796133416120864301187174239427694351721483218014505322398398091626756951489044248213474257940654866628212796381188342323691428696270449312361236844812983740565223184299139166655618901633453833656576754293265954905110970512714409435495762303991185350235911475184171853980418913987131912335597527720600503514383742695805347145828287918161022887783567562350888357660177992570950887287007908673595855645458637562818235253745633497446342169857083474254229933631381304908609871490685190594732110982319180866182449776414239283850685958313728774455599922912903266504446238039774284860844985944770317673483061489008429557805928477691305149200796394924806276729472842570410888908429704169359053782027755566037666729744731843487471748532183043205993378418710191299171155913836682923812340264079353158588551112875927313227924357645942494502855465118223204749692938624900429018756915876569418582977568507431591004277637914196628021433285510020002814359457968026265666490958649124550999100011028105236803599639509620512238983343885901337688854007845061150519309216913802424528542788339623694329279767006539098223402927407952290479328840287177200644978169378972453341044053656649336799168907210771376253002251759750562514464687025971940819583775969008353688873493207857304834240476655792765163651469043600720291511444400782776715142107356865665386992370590899703103833182177125446800604485569061900824664776025772922575525220404767301264757390489251424681720389001554181202479105554092469460390066950033218874809422717501454627959772110435502050012792603436798877028002885038066204900612830979002901533744520575417707862323060335164215937734554725724108156325010583972186739081771600222579789403764577642703453244959233431515845678236809456602544258972745410471963923175791352574352430853130446548034022416569171285968575987721920703833427233166150977584389513172503353543591805450955021756824357629979336966892315330614800936990949545013209773465649483464752628712083947279552353054337687159678709190500609991553026248937319384878349941412361333320981462981092415203995176207601633997814471867092463514579264840199128288333006629479584630706447277117090293840628913422783068377474745366446096939626335438563324622430710521898326101122728878045175473936375861515780057983501624735782843777532604144144246246910955914733738081801647127859206711445840417228407547659540090624073888239308766146850156291755598617667399403853305130283025400512081693111633924663431996986812756317443355469752878619338659297182266360005198591089066750043389190082666777317200666561473511116496694378185120773097869333403824328578483444802514490507017352059359731741643691818247994656763658173051572431003156964797075319757838856997695449174851078368154652657412208646174575290467695539540188614152113137656670807503644815277811250145835384566916358007761470984625755415717499266547012567108992931431603065330242854044441182412648885724576789724419762966687119970661554733107535027192419926847844827936066941138173774670879592214530660784021744200538305151913625978643990376106760796801845346138576627885093301380124879573545605861950643957729496644734878002468432240918883721189282225827002280954816313988169760986161240073516581496556682194232653458301953096701943131778465407990450344718508851538751261777604644959763384901849280450148502202755921711680293767574648430918228060421647012574519375425906643973594790424348171467916413768761531985778925324225903955922557703616067032610420155595119061129484397671796969189885932504201211099188687261354314054294322584922115485237279668643626756786245774781814867917982966260650635383735914156808426613923599606456939310564251678748732713675290811130458726102409733901707265510183332068557217322669797248024597255057120295832698502063180973488391918069937264208949580731447977701428167116129884797265736108593735595423918390876848107508160010576608935314387471918528813481268001281002545456862812872014643842312438812451019166514973532577797514961866159784909244164481736240633386869661849189497469939439169366569852545976453634138104500995660303433476736317604952153202428656079932650033696170950977930617839612160139411142752666209397912542218872991753073804502351105920295091732550416275890747356311847873129867112195458312905119622507353306009403012928093420441465867520402711897783639292947939110237096632151029028021531894847083265859345731473364275563586858434836872163591806241330543187581740055807364575707795696491999834683532737063915008232009260163264897962383420348434316473187380348845330176944065346248827779110187232130358199524863382498780643990852615508220621907329000181629608145681890607840610017549886307375573120852033455958230811849023864252760850666917331725059229808084595121067740618995075051250343096325303307958721726987654367314696839961480910295922610087474886458228698791035061244069918815150425052349949007316986169331693984966328238459326433609938138885263630063504380497117242177750969250416521032089596352459170773769557495031171394163802812049170365184407087991872098393311294809537051389230007485017527156341475250370568161240658579792234547724324531931028853607373583095767107892245484193042229627809070440639673660851171648125044799451676565032746860390956961425021073291194162391730830370119742975224861467825540664012305003094001299158146901304065673562702890144917428297578461133585183726968272208459028129389224155754913284851732364565870445899928327299844917967705313862627371638201145502251829590800601157770554302322455374845874620086445114979001284021898764507785023310562000809024603611203979575253353894345490140281122076109779904842809639516556005284231441997115974732875365909608284703646369017219360077173992746911112133201373921018257941153886881148620659604409994095362348608864091273132573277825260393189715196041367471813307534454173188446600631234897995855700407477914700282179841627880969532638598186410316217439246665736966101752189516749044858337878525142746232507415567236647928850582498474350590264409298031357660310210017989495681832659311526641663988578781148043095144518454866697873724617382204739614086140100179052737719771981158087055350195439621179958799655953396312836464710568455391199852742224144586306664269426332202826018737076125180525596174035395417446143534630855821020035725487732910803317846827943873242066960969438538664259596799813034051556605385062834933086381671009422413951720112533996109975715520241248143584116435746369036147760483535465483800547901850344873732977095145485670844343300894478716845528991725638164637520664620759869632805413720590476644806860675473953637006213135354304172095683424645789968346951573918675898323480144189732910885569150843649885343205997009429331097221103401434530159593543284124685988531653179743727884204701132450241639485638003012115901456744789841518367054344240116991664342204354439797478825152257323597499818972866411377402209469289718340587922523480448011993538153273545882716412502671145985720180447374710324095051975890872390970690070435680137241247880062157446551076838424544529613502400367449411983497947109694875392182711057614006074563707942216385931266083920326317576296218932515726191962781011582376023723218645398755479344136129542364949426982472515427300069502842808915334402334431936978748380802543063878288241970036362881208053978699561585691986958609821856093406024982810978393095854055444518678428253828273338076758607784768969514352498697419196231212590952466115713418814288059058847020853784847073694748964802932416062672341447573744077015272634145796947759116701072240294749678018860214112341613289621744738629844789389694061688494714728202225387446524527397472470554883743604309519878925668090252876484144202671520679739581493796895472659678483357593643700532771513469636784870677708245352152273164759907746919941173843819448106255882746522303886440429285579617981513568485811135822837011654362289623761072355101027541615374378098923457773165668978403762498723390234211661900999048213823750554859612963298061905296441707463932058670888144561529023641291295407927581999418598905516359452200232399836832384494613156976849070270575017221592153074012508260204648742884520744507256178461579499510829460314526344776048581904147831936603757288334177677040141186170401860762657684336482000127092708576154660584575277349902914371400118972152731420529404724826063545975634276837334200175250785751792155567207299649231935398877093911978654965360340703037724951412922583621326675467067041231105314895231655322077186317942283056189957043067164615079044445215350754478322873475260225970495436142266262954267507424526175174984375615334843421159058050603183957086389874687566599466919911799028789203540188049453487358719338806871797768185762658954437656270176150811671892572325188859811170472791879453283245658886944097136231464445307361330314966465175163696150541290450275621184628684203772234442335600642554887107594132373749939314889583665722321797257507055413417965868583509819282698214479886319453117339147068874213815790397041000317399034404590153037722925650554520383801061867899819594604661746244598798677906531460078138317617061909543949041312457301006540268072351128878986620986960870922126944105957074733282161104018825568741414685192554736173885560809947465049622386565107071938877869087099177851922576479913924013010394809446234482914398965603176317168049195812013608466152307510151664074700424132177524732725719738366697220298508725774041066822430016619632435659085336730285246538246084222689982427360301438610450120944969623879371252733593090289540677976426053901090955678575392127925555599874303361363185331661770801019061677072659384193109506310549794088924038845996426406574166743190988544287238897320495755124108829023467908166653567623464980004251820380355658172609890630974705193475794851205478341082363321108922394453592937693353396717206638021234622494964513510359660975346984762793326190682700845837000652242165043401582888718969414312272487961117206103428023370842060898939685556154596900942452015125706637950428986752667111182322180453036485940353437946075500566589169262658876500798978377355093147123990270574304305855519035415156471265051164605375860202002113333860523754403839611916800881166754592573958891462603542837771647578793593358810221006788188085734422223495879058270838199143869753002987372519619590022310624602367224547119218735960466721393444342700588871788916219603405542341034155960481010597281360814404531094724685048085763074699514576820100780175331342203600252480980064219223032268153738154070983840790940714358129799873516169459524395607124387279804629218600497969435690819128159302394018350562377304703155902573111058649203699870645384413480224726232551755450145770424996169772109947896478711325082943497319576974332603568532375847532089645153602318637147455661356640925101762901946526398431197999798274703347429117563785851773422572206633325795915919579452936456162033496023416970918629752817383712323275117063215183326468863936455683291716044043997195466765134085553858913577753987454689457480351021563289351033002194839334657834666648859829200330894001592844365379842435121463499834721501971558683524620595331960746291510291715963363619280692246610821770687843894954615364620074062915045797912312601461647268752027483379244189164777362383776772524273758849361529537663858497001141204138762450617209360738927363774129777981891466642571094409288807090603402663112556054222692335782729413115793771502817199688590446762250061140827476558946198816608168553857287646462467065612109142812073035500170777067310558924846643098468123016207732772983879703763804997699415606272418038955460100959671215963562952641089513851805085577954267197689807969467272872939522065868521913200430394208643185679192877807551875622037392456388456378859923687223249148411855855081401421658481170117166989009325803689939274799024813617370505591478069977649920834395240837318938079172156724982235243664114958383868810382812793127583276493984183445201206437675494631734529138272405053361886705358735848400072830913312249365007660546110996108007325468701184121724947180030345359301674167390704978626530291667358927521770804058306550483057080522288720549317893022725891102046968651418257503708942866466765277439043005601443867101790360798969559052853339806313690669942466581528196704753454970735134450193322994876601816331282715412776300951128036899640153166624613030573188085628405974379746101837144863064687776591353531706399674361820351426350583031192506315990585577927955103554380643126746746985205470044459744994949336639504964219051221969814803153165580265145695818544860657131687819584773513149595289862432553888512198543388450691269876657997135515199972330559933862305950815316128608595011255991461544680930060088050941058761572923831763432202049743584341087983158153805462206682517976959430304072252996632623294458343303703905062782126633846890755774020732564753521656781609363013076348565793063069082210406234582170032015322156216494925232241487583937668907490049496296200136563101463396830596536125535546465641555052409172435449305512012061979942030189228660605804595636561784805655100675560814317205975895461489359247669010485796678157937906817693294973359114946656645539553081066266930771788564364394901144861645604166803171259783688269106673736693724900746340261581458243296914501254265326841578625797952828828885818950942036839524922293705587711543407864690661410000816102663816321803191018212439271155582943080626237724597754247873417477707673178968531212376788272867178175027118221633591270067098929889583016065680391510787453214613897436959650117240553389646843153070790002170744204384166801781001568799933378225750029583717379633685422839197061537023474727989254238426983396169503053893794011010177696529182569118032385069966844822323226798127723799814491553915997064673905603548640928706369589433249893306347374326320789603804946801832620668491437070335118031070376204413556756462846199441759591317041607794934343500897864587131545483472226536262037685270113561768904776956288010817261754435662659840058253694938154875222887604563707748843082585261697539668940511316927222222361472270112797956161521366944239039296414783866044390153470787309914391329765937331132359978046930982477990220886646252257915018113753867333130187062485035691601106629473570553179869260289485754286317968220813106963694958835182024304687905458033796169407087616892349642554600380775623698634523490944952706415536613877386762959834605561426478613848908721506039703522679616749302021848553875452535317664226498793994500479964931063290104667014160730310817288778699960617140943374584758481433735066318894792165625288031534817988043912154633900577849378284745133342462682820377432237020212079323181693595204644687297703414427374462649679589890538965372797283146166429977444274369824929817852995487732035396055900044817278143460397007970427776711980169191032604618641743795873654969173678624651342199124025333199441075003893246968068906633545436340652451905128219501835286499843944777962026263967247778835756499562388382028490022076225407801028989224692709629876822922344536062623582971470616368152423789829611702666212579817548539224756911549696367614016160773896204105167395191986242496947931254247489324459121858081192735234606796723751231925317457753483711925641483772440594397558637725934344714928896439026882018268660702127871629040124259032938765036151438191588491401709749146845336478626858564829212606964878899026732462001899489180886544975994778370797649378223597794293943001489049878780599608229226555185726908939857922334664795670215773194630735386449634354903321010144498826496723951074994888831128085041904995715456990857753675438197617610569761466955507770031080045913888967570631447666255878884981937378470133474620107807275767072175944816368755254408496230387861255533892263353116018926478194510330659563928325234677038468014725084373370328792950640656378284463533670868601733139792745780731620675108740970783988174705188610352206877318721423821698373673305874309703786956376680257207623440946472974062543017947700114324080184564249721940094821563565620215803577984252619549844140676192983407689841027678972850128085771007715229514937103614173492951815306917051132416745421679959760732515300125467327248301206771057407908406034402495939352784435272116943853204266168360299220243459676619511650151869889216496335199824422138097381048336516458464905771233939822536025801719931228041491273214250780840396677358324646464258824119803598362253834433861320579992761980450804495142015271204505046804909505701077775197719814820319545440657593978249217083692849763538875395644055940267627752672108541646702520597754049279269306455381001438258240435897094675420068692973409296191886034220324759560967307534213627853578219387066060223953879726154327534382962712495803899331455205934767555255436826884233062389907855109339626391387902240793407233648557085318605384507536992887728965659839984464310857150402253429319389891537382491692639317854835327007121638409576252921822513850689538152866256826826683834042823764980870142072827743209114150810819085847142719219898946464468106418994338049930540109194543630397341351456184530659275445213999064822493161630352993337287400360592359465433849751397093713181233795010007287247667498800308836023222065025724644658746298618849491608172539832818104659102399687033509753407825249273144653319481644538139059260259954736816475166602500139741772191309354345451486186532284459954417690227587749557175733409300221092798102039115032394886058701511949013853416000099195053976625309507104225084454035555497335909569078415147808137438020292345182746963403689553944634497412193498362660803445000269677394068397260588363742837222734097802179901866917085969522540820597687725578841048350991759748196113112585198418248889426356299365418272382564042453977410542129763178809546712602463775022753370773915327109310964711174438992362809092236843232197525164151642970403527895086906064917359010868027148186038480162512263983259828674866918241640210095106618942326162812966866304745912882485400136504314671169669942714515786686456983842356273752462938755143416106006935964441332594246993491375782516381846139030842877253199374871638874908519557299571790264831194473165087753598709387590867530884684608787049821577471624931851271583969526529993612276342266585740815986804869301925411588397917284474043037152827938785557254660207547607423719257222396509153934552080620220938102725095732024351253901161159912084219171879140666949718514324895946666543444339145228360561938745722009413088300313707292296680291220608956062945207389470550001637595426603529554036744682985942798467500621600980462191266240662980880961717690502413690124725126830894291537054621103040960621670986532399189573599251849142165903434212922888821391398720270928551743535525505427725542088562247372950434918700980001556102201855163859246745642699893770139832378927981105394998914840258019136648345941740108184902373023895528647337726162024251312443748996994551346958350784073637936659112685039088663851128868972740643208948930757803632681897486724312583767933533938734020643173923259333013138856881853719014585864896303267430546631779192888101646915994559624350030047235996539958304997098413383682138203689237811605275938579801097136571030958617112258113470678167457735325921151035979263800730319302387310628966659224240210836609055088305651895644238673030813994072100356405247863595783279236627605648355002112437721221446478688250148790953864229431601205820906193819596086810222503781287138271991873768829394647811024893401140423413924978907287217433618105999130522173911227052950006291034876292200902367980835721784965138117831765696561585474197515679348011227321183757449079114625690797110982792161128549265031981953228244047311429697484025897894214542238455943950042974097871577922164690710297303819749793996890783871484551960581636327884516307951544091861210583587853957698487084940972631818339660876154455939821000330982755994606011115273657191181495441436411034946497489977003789877995814668616156350499769873039545388773232442608930563625402256576229584431417502361945817675189929574541326809700808753790365704272803982530766722249517824164762528128139321101433465429304620642272490120847838525417137835527929415707525745761692503597347193560320725004555073506861285127116126688706329701721849175007606283118753407669700801310400381893890794716638838370777678022408275599202532437685145445042565372234226535631896520652624730186594787667756847184740840398644619995865315067146670062074756156514849100649860747554402970710342749764502319524232122385290983053171777397089578964336645347103856069426670792161400977322028579322255684577754568728482021182529730122028009095799708830582143397437500688200592712403908189983844929755005664701885136010484575971909962536040277951341855769521317602297801382783540333353560876407135859875561471869962022118462908330728510588195029723247267975386834758873446301928143875204949187225669721735939544853440152093630771554118679826493315689518376404493570976870252207784182500747961652478367366172594960799727832452903106461846932986464008135056638800828832966083667567458018521025820438691093019347704213450362288994802236673971856508424043583358881992743415171578647483901238657933517974319309444204856590926056898360648902752640419010392251179339244504177103472601898276472105308176491268297840397449415055446160037650210029755258870784569417177618375364730030216975874715864758411120500442913699798455863237842261451012199339521270372011334289873173934373811414078898534532310331696760096494631317955458872193221716516646494623970973603306604518433140818731880862526021109198660537986234225751786749903598166176918487562651289903090269614544878566077410754076450837687397240909574667805356593262161466498897125360547161926128162183699542237019285078965529028029005139324714692354548089174430378364061761819344572029974979571348014710092340258511782977031824513737879809019216382366958746826519885265292519467611869852165466240219495455002782691938766743643431922722342985647808585724187207839523128042282000898448252300362630571913747261208358811813106452673209110467956009930840601167993226779517293034389609767465473215956801948912261965292003534622927311026551996709230302159015462149415624837216476966155000519942145345329531946458433508139697828041651038812692224560496016781983304803865911197373495376702393651839321221433761430345561582256632482270304903781773693370031499570546307484188669706449557824792871941023310376587758466601623615427191634767810965018626217766709146907366118592811134841687793552767265490773998202250186423596821769108690181711671580751380098770434225744510542150818459894321426439172672220158812904042312351597398700336840374436024269317005497056850296139090579303126438515794004716806611631212802713744874837590945633773102526111942289183195751293905806664874929480511853494297534880063066793162334665225438015268868865636859227015818983614847961496567503726653802530424639556654793169304261783198276128354312721586463637623374532943744176879031475768829253388962952613958848809296408721692065379387452570865290978938542709790665090799157098443563816427057505931689451697018285684377004889780811237338183784696835486789415562992686431375443618162013689129955043767988019241474863939754018486633784018420145014699734572419309954304837522642580785860179151932315780116901870333287263036798263074288373791512188759499284718257017697040056419654756828676211589763439841427259611278569715971920140435486927080023240978421040431679800868301372511376383861525991637496172258178526221610115939137693326781409901659471419544273533079288257719934863299973864119976481477295834400900220813360428399459288186894326915350811152289273713997423947205786988638662695612224109013367869263526396824733391958620888015742785389177626280392843517146492685256252165010927454038276629613944220432447562989086214792125994954897816602543611715570982070011845615638496990407805835323091996974720634599010980687913364305166196036383293189109905591825014571015093907538297984440424357522458711535305884572238886940117228949282114223691770168305440463368941125955926357616986714747623412743830971918123264130452729576178737813107285620611659291111990307191079767027725512156041927150961484534515089189676847672696554814887213911320557624841162041724423572843285422232419521610162657148779030407719451864811937152084750174010214030826692106665846260082763122493682962252571680255456054247486249885184239493353060653437263785807661809448668892212300657849294644434963851136312987259858956167749533453475983759219589371112653963629515377897905232430621647668875770863736358628650258816618406976426072537787680697138322892652882520784884510390162625498868163326126744041174154779932787408448541854921623172464934712187734761188365663549164332426723521739733064940129251198080459462897320412454148614040964430278378990889600880218069826003356191314822778518710713862028368309814928674627794502372892974869470662909981571811582034548670181006585048974468466759348041295322126552626618838655266560897839187171873042552508569909789113669450260212587024607364782738341224289828186180244470986754634592506709807591848274879751290761313534823758605226984564919778820308478662276679168575324925448300095522161983914864783618590665883675366479244524442021956033654535470785352256344946238709327285697359134107452016161192926471849775748522606269471778062059705280521736616747206977120593018274776882252798848882160297082163312770501753824340772212330340777039485079985528781399710835360923705497790418101533787429415201117244962661407986352108027380039726029158736794911844016288281407012790247438146059487300996269363102320223940934629881828035038500418230741333646856318732021690189979866861516784119947868910162812965837573573018408075737108892751648844039462578472908594820576627758267403804446320665601579635704968889810795141517456474324458812389132862853808743493535255885040124652723357590129471155969918681118901787853732879212376089602904034050522414765780548378502658533073202808522058354552992353608588686634806673125713952693161544699791091108864715894344088474419603848141686487830996200901378618053402071978296079294185673108842238749645189876025670521792926104100029857598399906245992305054582363395429509923417752077700646424225143317660460646955031848889580694132677128156706708904784576105804742033785595709702607538379399263461956954455400273650301144149006045106505813112493051271624494985566951196922190135137075381658708860798568441387607166439125313691064869402884879301263315896618124856805631194435791465761707640762444976545235207032479366414650244089067472647566817486652382997656874274536725315496937823317130018603087176444416038149405967052568776318562211149379939713549938051513450092966992758658258446935418395237704372617939182377718163526192227698157268697742643317040735407928370697553438482215499687805878879888556393442826536509514916799198155063038655671240770175133798853454175058306940549472431980777805849918608914101546921847936986670173204111709395415322748316935482265716755441156607040347884453449612022347505319462999655403271083606760754049579397099273445225627782054040503588131025714037936214197021580061399912252411007658343793477657974054690317337753366501285437540989038874391205255125150164912299618871089040035215845180501938251582185117460057668809680995180478279728767134894896289843981165049091778069002581802349357895638116296837555989315837583357815200225461869414418627615450477439804235824136784269898345073907079582915981127357607920719455990388309542587576562264823359051530398172316818766749732519775821468149500882191911828149562587889563989538810937611586053317436152922197261005352133548965178324499803100493440863233467292175054462744961159658476201058254372092366217792891118999265888960766892399899450096523250465173452973180590621303646384091027765794177054072326612229419771119230141471711499233986985944030702470872952102600347226498044390299787331891771568792561884180604571675032500263443172698124420397152975805130002662090283086386314606106867149480875891376140310626186330126384911034465579442409286903998730151597715587286261887693339092108096280798894859852469958023865502520812880785608877050263205004411828884623050274953166509050261998506237247268613653307213071797264475284217159873463684686373284936761512537230273005856088736697414584763474739794049288750952860846903731132576132236241737989495692256766921692100018300839802267305688675312521564668736085070413322280661675121896231084235732990194132995886325886757956539892555403604367381664757336896582161358430661653163830649788809133987621628842980977943578211812226912438542905038087206081200714320868572136430042008304035713241642237477998935817357121350662089648736824408447576346827303180379754224827961904833915253541155649786320485899178114044740649528235745441349392172421530771300801305275711171053686095687705354921689761014537216271470116862436401463796670319487207657537680284454034820309928775419903404192736855326424751342867059042991424282349210267316507140195645710493472729713284409376309883067619631084781948783733837315205336258453485588777060449489596594800257290723399579000155242558741327275610102532219520386769075998888836826364252124710950616172541423817358785800508283676963663673444788364050728325538340198219676891777138238324001103621687724801665883497722819705133581580691267643902722374852907012240220782867597962510407926170255549132768388131511346535903809197795778477958567900903244979955065035901735099599908530296445587407658352791687032014587431000979540696502986689852993310670171565556258561713710697611627051263822617707557829185102827159593282785360702800993407089049462373438291075506811449264699290764562548919194886533378377696467504080651511645939520146246085498835477986021065163813656881624144210187115208048181894363011681567809987217445500261802780119436912812693372995894553619104138552664693205200603642625244719565799364401100776257165808427848315097027392208160060176761452934997968037999834221966102130366271016034638546696765544233029191989623733915245095018957574383528296700950637033467567211918594969037091084101557611616343443786292221485515199127255880818314392516092050142514255923752048069834164888334047702389112518809492988532460236401375304905574161989697017186516404700698735269352446287945844026130740440796312121527428498384726355977585062680551225288077720612369376483695609169443370339388603253929414205226239071710401468788413713169392325870359399483753046846542483508418254848510784465417867948041490208769748356442439487730197983228866017743627438082829305996222901804859928721984218332602972542411388114811802140046531122564515587182732020670528860868905874047207878747849690092431191205455503544492947216774191179566951920544509944374085005703826049408971507803183495468563966422323599824110322376823342484190237377698492257249779028585732740582482816966058132667352708031297295409632486385373557393365479736832660565661809406396145489645817497446635814922102326082198741288100219840424394933182929854796481796952837057931952075599218129158542707340733551802099782684445175235567541744014421463779619628583054080943931634283495781508571851015904726120080381120050010972528277893515500783417271015305668418266184275252707523527285730410918089485666673941319103895964597327036474771233344808944563442067999530556225315617782185893353203232153893992873634488932674781849937989655206201191191242434142472145357523298466684936284197325695380855390528204039892307753528660495858489632171450965028734673536696402056696599466844440821507377289590968812624063637013582451671951786786830046880636378741203407721103847156287493852034630559123263366716736257004529893535192366718096230760250703440451923199403749487093611419080989040764301656724607798037071086430640094171747498175914765622051775386157159329111505935765469330966447252980773789489030329551268028833305685344488632024587738097426470262132659777163959308030387908354339055295117159324683109677949075135162032257732484432083086933698720454165889649758613653784145782772647998555430569310782103723210921428361065335482897546182746756600499533685783820065498394005244114917863474907369701544325134631840138153439700549051995438683066366368703757422735258127831233612507421266695838382337633644657263159253187143669385505517356741562233874439362904142973590490052589700976207103583080634998987908721590162322576291278540180555910017810908332328430883519664510722475547192229397786497607519864130664131051541724970626964224107635769827316756557657520473885047154838148788478437270997340210361745736814928129263937303440643815523392962881918064051680468423546071912067094939787278364061996484971730112017287025212188816251128053514904690419384489351734397056201631309624186422340607513801174951142056731167859996601422768577836067249980996551286583520988176355539401625971188507231137609638913303120164678458690789711117444951664261910620765651993553211489183236356190366516126687316720004728833897671008850078053829513089826690095041830696868728372619641291794951985163256104901482539009051224814979115095100726104730289743930396509638250391678679590564800976043296764206385256954896359396407627604884034083481226536862220207416404937596033708469568765776717291276436325907771921823922181190702940683871370536262213047462308468611107390023639604857552600738443489073140276282461572700089996420056410516875968739331500100310735677011515101995485815752495439788393813447161243134281541578965102270852676305564504230923492027845741878177510536440735115543863893433788642994639388567880666122553814021936345687780094054798850152332489924692293369133691579856797348690305293359410809277056095075494679744922511714952020069983332812774131542816413605651402197192851668833506428603652374402080634593137712729365879513089345179270459406105076754855058271462621902118734364207516898594960188180947307658100481053672129054179684112854621815666927140525867454601269377796322657409820570626508257203876902549838537281626839178420558946900702959858924947428621951163010951529794704779282576802720695071321131882937565502385735279895701048966270077687140438080164256871154515837342692947931806582454872842451703171640995371552059823880094805474154387025062167388027040867789080130855382427383096290079912546741478208499845526531234365988584577215523411893709202937853080841541148995013270225227524649590567484488228140264675853450919465145784057293062103544329060437850447128955996787106740882381901605103127110175471725609856197264346927581899794055275682917323519744872113280244522317915671226137177190190608196269339212504985224463506435920215446964412113142434209901384142439217637637163356187802216477495135887265300245994535567579937308198312279328428287548602352636040442114561043136303208494651326156973355310107083043151323966229228679725884506731065594445715077399174971022647823881533029226257557820001871348488633117226907898197009900893226464102945799993823286106646316973313168806528166233571895167260209811597030232487259236414284800916527201836714395834422169238351443351885060865055181590514133601813680642405243144444730344197981979173872796828748075839908784868977634092846273008963545057508361766762397341138194021373156268908322531161241120853179856023177535515012661151487401688119578506568674302171973996778709199546583901990388074772513734653967892495015733166290872507896106279332737763164813695379986267921536886917609127876982336418221226062939670750602903003520024373629794813033714317395420347651876655271883216729285812980900499901206538679299424005272987959406611933753713966195540642666077266712439797937118486056057700998523597175384936474786005649214306411718724496512417125657030923848362981676350359571441077166754693267500824062499824482645172299855194945358143457312995935530262314279569403490370973615286206701572520727493914676804661903233171121778996595307072810477650642162273467065492704206426257209912928664015336596698735900952421606578489804976598259525423865811278083295923566595157551814971066152903815985056301535265201745839839462857830818667410999114248161552236003089945539672137830985070254404339575329923025350998174490419298713640304396827287445026962020463769434811932472818668346097735355276024268953405255644323422719675067759954800610779860543921361111371691697193188888775215583227797339638551741126303186256621675921882025586371581009947071020825812338755110940592950295203104518694702029848953966765342584042226246048268669033975061709075686963189587489835475336074618135747001139075754994982946256942100078337091419665127292734878855367426247150640421846939620883666047875364629952003392949117496768303426737301171136669343950371530417509130193223197687360659301956236783293120977561157027867831663981980689052863289591237185231144361666301209195202164006541172523331212966489291683740999227542902244818990270628719476061138398223991587487854956454351356015320045479961851252409455468815703217600144032829121173818136639655585613194956762805233990999291088208184554094455926156017248924006130364541931759770401610310505136058395227077700220710417124558921434602825355210771098150928442596286765197018619754221310380330320107632416018673746266458156447612297046989046774661456400814787987330107959240571646777710251380044464303767452584646350177871799145995287577409040665817488918263457763554867326052870340608840510511706518011543687677773269355388354116304659954283700413974646787244486703500253617575591945776287391057462733515021719428150136887047713641971672084542261972790967032197592460538303859657944388036758607403704783775885676195873072510888933218159019286395128575816904108349923983172108660218939342388675898692633786062082690872191894924055086994394960653476733654404802947022051760994621946676682147626355695931253441347230857067640897993582780114211985354730133593409221199843579474054540391091766089183426016200818546605974171397225845009391711948147931547545923350893963650426512148184615371940937972366497702900820145658785489403289710723929477320737230939479265578076508747604312480210395836726335132300500155916348411939347812591094296877039480201856779356380284837495523831847368642345595053127645150442859939530177321186153072951774019024982995528499708952619651121145675838071250787030874548005845040387401424343738723088885415985804146199185959884744365905988776626680483589663902033596250645325034549473121380211602508489132544502997436051221074324484971056939886048915247210189901437219563175287803603856326878223818940782362523934667449036799753199408651419692457375392229399410878488808015546959896861772778041789307093733523680330330764934522510679080665751000543580495776444477819796493354107063202858358914268029425718725941388211304986660409230340394073120387268873190785340331160826852963690679748206642051684380482559590926112135047416837525179181974197055530961905797765704599071525760948223201961240210909596595985138240437558242745263970094723782186752031483867053143949674620007556474639059779557395688649245059818850765613603655687338200230507370697997070542512607584515443311553313759997357383835516738119081587213499768777023672019695020657301136857429186215325084410417710947515928290765378456336564625064442878058700821760347175758761925135015619410108390860962646629306713391095369694134743913231807981785200011972647471179748875813236343694105151597286919594191738010864316667571754765671552082452918901058804169284557266787725746016321513346829699204511312523277671848558490629129155109589352117968789697723188678451439310045113382033712149498146405067009099817464834641080660747260950886859282886810497372776636179836180552758337415138131599679877497784874100046515664993773005555788882020040242443189223321257361412093963728633657903367821374778385497697870491619862638240617514446019161254988897468668136879455027925853374219674198009883785183959677916645241905708854429444671755405338886570329441727698426188280123728533651371970499388814320826088050506849833822792186815674652529337348827478701149392930689689617999203327446085962410196558897417155165542004196968045664138827727557747046571670283971859210510227234429099609571138609902273170331294436012665867398078158569863155499551573751246678789745275768225315617284371796892123454410204709964325914860494143592890760638914519190654855951142225007140307633287132418620379181475200806655515523268904983668555399678984399772755362465281330451980268128825536671318508689854632837897704137684666346677543076645850953551875221732477446570458965520391878575937113479346098650939777582706752329102357817756984082376995600508831217077768253045481872143405259033689180215277405061286288258196059430051733302201659860846328787881102770614687433950749938325270090672289131521384528292834262504340073899776678491260159873746008205433421009424749921671161515132511193009980659345881921642793907650623925499134888979724745512545014481944359688718064124467795711967211848278785256437808586053840370285511175384170505786435926547884712129540479005708214082793192167454703257780274658993843259685462134300749566034211086242265423037409629080676045190465160903988928447606233290577115796745395247662981934221899534672096108632251111904145172251305129018293872639638806222669499835306684416560673900553437326207035662202770503997397154289394206921859481343335925032370791402899865141973188596337572959509991374952975984740666720121361924305062106383169416231050064831573550088077538100660970373663913574774453591735408805089202127818001891085705696125031634976891366487954221436692498564446968952674710158606888536431770948363677610570566591445479184332330922722013388725159596272436922530119959799920048166768190798326134538836824413412369048807769845586158008827856343440541828694298388808709788614002651120845520543595518104521936373565854642221874480247103478677862535128777401849608564107878233486553819080791020275204681302779710691594988069092921728374523008573302622770142607966340274143316619426287216954638723367006476249597182623080632330240740505757477817600694507163057815990015165254906522879212195603933833445317935680143134928272087963347493001837424783733894326424687570941125358195038643375848593660657858685470558211027870228985485250272104820618299202361204441242015850939462522223418203033007766837884879733540778736102113844236746448409747795094472145810968652566452217058779832775100255615397185712423268214378707201731627440623869727456040577734479800645791683488402540591317390466944753300620050361389751532292039113232546715232827955270940954905815980274566982087986019957394412600627728916056843019957521153422834664162679115742298592796171419013852819130758343331390748796989873110939729683379082690732205077930234716597909034936875939606430743784036692701104058560210392699811917283339432164401392533968108984603123833661602315893617011853629356407929446908252011158856387036605109047498961625210551065832558511904567872067110325346959063216590231500383549427591632547476223229341700963050696039117252290145626725209902892591079952746774324294352847418033711051913333678868279314715088127315059080168635057316829886103067915028406204880638689741886977299174203432479351739684275831386421835826688691911780420688562925688406244344743772532347017704635308504488726576229049502901338024308385779019112162942971073631961952303609793385550288440892420038882937859076114184857832743810094923773821720604425014858450678761301431014066687077525431016631454466625513110115966051948856525410399717612118655229758428548453158228216489693466005956013431857912420837026181003674065457839082935364699741708987108667688692475651982743550610629839724769497780765217135402896632899217540652867876496439409025212257430682568052240996922770449074814271196407894011060718633951092296983029362588413349560106420976341606186549911275906963808310244414446393302232870383393648776837079209029050267560209968168290260192425580728434142396522448427463279929532534999609584285404003880257490299601495320001036295195647584117774040622920327723284106089933358784408263768011587173245242263046235797857661923390268322395763748141980098951909983352018959851879232216868308107813820027159257998289094468739834191890264401766227305446792336309825145832974420396347079074733111481732812902215273678153601764839820345666049990900890245333033651385565724948912004772178800131147182012765117210582409959253958235961752668647005031569444244643005954188078632688344649572643375633606633833854382287744863836300889344228746640984171993721490479486048061604665974437053258092006122985099562046168308366555329246085157527165981109543467747132392635862377253635432532936800611928824957369642622369285872670919154640355847327371097678219869653562204840666225632584741696815946587029048066438751457418655054112257295806192538811733457548549809988006677473468009476047123706001407559798612825654982729983763663485240395486217754114978367885621233259348904377216415319686786827009360745688353143025174743367870548838995683867708075019615427025249824859170677470952025303419430345946450988791344497289543144891171865057080063643154919099173780812510902372706571837717613740591516590638715683817465839569977672149950126338617884060544797260069367438432075668694390506668582819513778878783519875873773981918147042016990774320245337203568516622003984658302234983363506960764825433608427567588970577443019005398254512278775580289966398038879919034002857003707954782041665439705233811523314156393333001041149499754409690212414877026640459334011933822804105338456433790651883851704787311908864989045959818852778701295452541384958256689517815900057916323409955417743487090716860471958624136327858230550090153244574218151767010790364343603324423556122813430840452222396722240959873797242578613259344888170505103163330016428925569456107039876612988094398907947801150108112814432927303555885322269782649251092424015782241758231134345825363483152133878124700165464988635675272055273001056505264580132767393867326998759786675970117237732207015065908908945929545235942433197261375085463296458841456945720381435097585510473340965224310092568663786590839825817004036322904798196034484136589657031455120438962919415498936222260755047337016207567763758746441950469808881792143765231565983270355969123254161446615674842290040831196231264343132096887446008250959805359674977418133188121076651956726987786060697665003890912799358863674853803980386879072850316373815158003322212956507149255186400853422505817959342383453117316879892523855914504969822571998673327431604061781296761098421587960382965003682683380723251059361772029503057165790595041502324823450115025414440539521699386835305106025878522880176424223591962360943097796073042134400807682376676422534456834752127670781659464064302215206901474118359508012560646530913622255417158161954124149383509315247916033632068550185329581461285857321456500899360720490470713138094480501132586872428405170455720053252574657698436574840781234620769521577049593594344182531181452061555135303490256431547243724411732429536992259167888204442656271158481088875728650089639076337821727134200466144867674272654882570611707524654588239216060934162642449581710119598769354324906371696977180724892668123956788996098185444509204703699562799563677451778361468884234257214323556889152435182122393775559424483701252773363162470511842615174682305975366827615530732415651373473646628448170366128225345429763642441307386236104412786788418232274291992864578676997874378159983873584915401488748219020333142766586323936679236067645189205071128219122615722406599246260689482183544947577856939296406617525138372653161583417200030563170211459356870024235051967421537762145816339578921397515064108352124012236405997887225855548613638389909921278305934460151026096280265459404040020424361522092053822331285587993359973860672846293122677006726466288231472484896175946690712425206268522264503308223404391353308864656102304146107990682869073696462787177281291518561781641975008519805998152333276225230951395707430803924915278250453374871212855719873340135741188915466486406140384577844985834379160985843644213765570555671723450141967759945220878414600452268918915071728049148972069644207743250650916217855589264956018690525780679213490029642382836257382768250007281795627749560578368998368964139600934548270910228225964211278424200161295453567149302118796467488177421955634072700876539559610052154453487508133022613069047835008997419686475866365363063224462637515024625721119042352022773069481889223455608554384639596653578649690483372695637736158119562450411057996498896699318533322999666069599661340696023119776121722878192294611488651738630656568090262314205591739233213381611023435370871047888574228021512874080169734531995365484532759672339984946269630389874037643569323469527488220083375121167686737092166326520785578808511871989195852483836082005835034850746019985020307266204692450251036692448796670594504115484255566776451629015628008164303516673976500813184319431587012554791510899676815872238149614902213015557347400118595196924259100267775339750876378925810742636283202270833145400617639072418102598624107726242551942636098959276245663003906563310465080368311528957499122937860555052174323866401375979093418299083051243854407213852923077824636762834704645552486479835311263575319938565755587571329186257912603119575227239365346129885483573064947668920730523541468066443656748964354283882123710155571846253633374596412454349740689217044811681451765385152639792460688192221722998364929533069569368628962629777775263074083364029074042245800564628725086836564019888616338424773018841854323595763923593171037749253683089336063806946569278638365773186076871633683443950904013622053335200160008542585825577761163630764309424751912345201539228866566364964429168591489830651214929671498669981771338242788489183661257429118348441379672675869831492011716140873044814353943144738081321109949922351059710065669510500022409207417958991480872655856248687275516540612818513168052285033416746693632178374799616067032941613881865796709644798296227469869104285925321309807573628302924756376459414645581171230548714318249794466390547757996103605481650421574039863452002404755560448272525565771912296110373699454704820400968272971823480681828658699779392260932748793955834726503094545303256452298291009252226948480756384263118500575030600917695279265634712046612534562297113580002729598586233256083266787629582024649952898192827009114498933831888648143262536577628086723943363609922108102368055592207023209095331117231324649135076945643011004586613564676424341112647668333978893193325608889336796412689029406337410529456568578848500348110129737048409068537068642708415492099092361852739042699059159810651535683641086949778496958821924197708613516902980432550225865838102664243841666812862025195747964154869389719370285103465417723303649148746818379162336195187174352103122297123078028316277803963935379790724956965030686096260235689314379968372278041850992994115096367247115258747730664756202004836452570977120781615163433157195519601573277809385374942419178202873275037727943123583811809471492758871736051942743329287651956882021543124600216731889505716136520500350122956383661552375628412087870029336653060502030274853835623767919755704603762576280705470931197285053433422958649662417038554649882059139629278725991925194578665278162521723597786938945407095368582224290416930429169948174432707971246049021172685095999905761639087441854675331289169731932761982681058408683477181504220066364618465349738815958717581792236147773090590088736787319876517464819395587794217252822325040998386455288606834826356127034737392068681562655432219199061870844085249329155228399430241014758279897683269584666505564170137718620239090332453963714619595069143152109950181301487075409114924280178761898944907208049295638054025165955050908598432579363759383407329568407185816692973456705102116514912551003899416162144611638210433194295027807807860768775700922276970068280364678092423706420903840388115448149617268166891655345493932286550033829292023095768832913968238977181677661223604410024830354333907483249534402682444701386094099403742270678479152830442121150662418272157902990260933713254814762042501329843930957494385631906343258699417795255744811831772397299947581158703512237778153510668705335614331919223430183650464084579157538104726830207458152097689597732014933373118554282451896666136722160918388985801909992223172348727705817213066916894173381411208644370219048094772241812034218400086505137359512594244629595094686963911467057443178624233705300965630055172469655885606729021821061072424021100389222701845743511145278786552661988948572648208425043373950521632185872738813516350158731693885983825177172077171168467758366488917318603937888916284627913958467744567646416734345784205375687323746813913066619962202282566489146908317644930797222313664745248887162613411858389585961492000278576986769963111403068069560770265661421480549659143573510972730075033664005395081319244126561622325654542923183845084750080102786520367499433732753318591676009599983624315657283818531278878420952036426419433882853781580746950346847940181304926816231970138916112697888765289876259592497915955337944195746774117952967825478957839179954761199388377448153756025738369193294104268433441279890189345218754509605975169892887667580237845219517028945873926831709658758093110381470825569411988735474893711674366840906735962717260204438531354158333287481537671475068368839551870438637821369328150533642700600686135875245592746275003492601444020854883168509120420374704774865171552046779755145971382038027693361664353883927939665170554417316409244390151789402275707921922115479729902062636340495100906790666792614646639624087011428037651231310827266889032255711366843546700770779560706512162228985508737119603375733817520274645984216691045342585903163178687736660411736282158682848367051193814091707072508017082139450767220763543151815918727347551753359914552702265044854431303417041601878028775554433161348854050343470819094040373225847519149749085486769219655507109107624150638863407594745568155312448722708483654393838861568091791628560227079599712857803099962420224512315471872668841930842061159060084369982014543680969467035050223598851744020392332463849473736565108563246336653211923752958613796280376182260480277236341375300158892355032950961295016351820950289254656168373141967099150059749295931273455093893708244760952767914243664338891570380019442604277666922836724104303071445095760524588913421946644393368529871627027534479875066210472822245715499894748515789069725679397542737466698638641400181383999905312537283294024767408841990798860866912976035696221635052720258422178266889690967944284333044150750810824822772830873053725843144468421927189319766555480457227841235451216045017023757091882381577473993974626125467940483057416753261490677121998692335793474921467008122226986703263362005950185874984362661939626774990716512852765136386644183645969150719301458774848458705483329157880048140387846647595019667838237356854520200014764503269796473593897726744712762849549932943950530030274954645244272256585110431975461270768149531393182364275751804900659724441064144842271377396863394596416685107317931075153702637658429599071467356082682254133013970521865301821837505856408827685445956715839036735426256473576012169421846913751520168073302996401242168885016122605165225181976008765348544855757677798841402636024203757619213977833244288705703410237486355601874890015174581532376138067689691456711076532684137048355385183731227141859953504479237242699500040279100321693792931042679282238549562317154372273661389651290391473304684086223980074586462951410535399718717469284408082265782075329762947000714043612011937507918929062494344383877274400556221652432934815299551746679172206739934996626549949035324164919809743129064067047452750717223139272741493065441554717436359733615200455968089760054842540001167960262320799946805904994443060671550984038823885688318895229335885678060079035303562900162775920937263590933937975571691889260541624636263272077299049160841112359248862587551136669195161600693082146214940853999932328744654575330336298051767862596188604623883629198601668168224122149870638650247694299801010428376904452977360763034530645286136660596973708074339879369279482122453604235150066097489950749731958917308697533011736580614537922464482353116738588844063851930617887222405134253055887919575399879002339288817622765964992726139443832965211764059858222040649523184694573550965449750929020184930544055166181746909661072273202668823687395780994662446067990541651400095686325995402639415108856836915492462738708442838669902211218504172705423206430399891669248139901105970826309348808794358297897894517153283512139948529449105336329100717659162392381251547921910915327844713076155119637881780278599776396079119763761216490370284399762329841537162771399048612111327866040405830001346205977601663423933599145132397981690954019604174871705061268780811975229182395111565884881957576279644346977434669107539839671526129563314252811718984786942594868968976901351381163197981681226900105638250112968038053757481988282789385331578469304272453027803418485960160345957483521809601280194433554372455786480519054958363357238511877512947239898494051082790168572489907889549070239094785331231513008459094741225279285778785778660386490188145063016047688737990011808212642876503275281658522159935448396095573141023428307009457651509185122028618427918391588208880029156551224145798879946649030254507607289424336517946387969240872807878085261035532375741113100222782654494826764533774543646082379088922053550700943563290367289258865947537473949397836143693299045246595104872606032095489837312671545648399351941552411681824385128289973096581840932761821850250410605508943034043234430871013227655353427484530850231363891682760723722130720942920461148458760312190854490405106268905149381056018115979023209720493906295690354570310194560655322231956000283943084301690705085564892509866211078789173334908995864112973638254264843125527089739471671395046497658009352197659545879557122951476683449354213506689566240785970750942249290645236812383119219456316202342075114306395624497007276005254328796163038797783222825332693994556342536994193483886668972128920999743272862317451732485316582032784353834385187950119041514679962618527840272010284814292346777540342726286676652621869929883036468771385054479175398731947603440525822334080963812092884195509850141017612656499217365644941492483391440678263072158373676731605848410330505752876285157657249269867847895608379509225243359911169074371286495108922760652830492171651913750188157429660180818149143588663911192078331681546640340922920293345052815515007783188432454106036681208395504776903799563723268820544978041948092945318099117951834064006994363087332176218827739615379251064068678036530423592131839657337599888575164154991818305718473987806509311628007298560837087481199044297474412117099991910181941542988381833387033136605550701907833809531931072608152181238752783188154926398325217324845538639058607583329775337913843354844860371246840741053281033459857836165673114433843652677009159812108239266116171886006285244398432283771803460319320441636905011099523836239987841979065889746418144226022534092254252873193315060193758015504501556357868590227835561588600691771600406901271490003474633512264121548177837364633860455015374248460264464024492970189718504371027043947905850518888288638828916942231142666811336235577659710022940519466063101258471439245704141200688802584828530449480525560453247110156525952105972816069521663454086739648352980868807907742521239081144448656919216368171437575980685114522179588178091398737889567010070809842080732130226621871467650788890086852362610329448172702214586336114072385267488752988322986420072473151223011663705564410116990537141991517202524873316571248577499009856337325732885642270060400222491589543030129899602527905367346543431671167601681422157395643311066282134472099246588659399907790613833860353029289140819144382823310316392151822537181671010316198260641726879573958798674675679567532269885929964760957177765465649100033166340350385169373568751964098333489536355020743976525500889346281324519908227867824340284308150280972518258605170816221802364817109891268395739113024002449488854691276031015863969124282251536213726315997090731669839405736661828542187788443504544178047315885253523127645549735170605511358574523792875648663434566521802431796857535943521423022419463174809359580381485737826511334624156311931499716915728299326253218450473907600029543325824086146709190547048553425247977393031810593781300333507953216451016649108310015230580994512260316975652790433872401561575302248441953608798474680883522734048823762005655905053681620449234567533667174656043653297000434560044149532423243135793887605876724107321939751493241250121709828777047099594185348707324832614730030729191720364672693708375135090107650132763117115878622599076523372287299034313164535552980775014565919031498647530867009486146754054105989265690467768170102709300086867940762445980415859115036474063087210737114013666125711852544095871114728403933772784604229971563645065707400403169896130563025132322216827944902506732130051425357329255848073238818930182864470522277431184899582319283166610555353998807499058378894904052991513211575285981038271172449304598315116593985402996744531470021843983121274479967622497104276800450596802835556924463372318208792530234276858189358592803024020834789412403678246714554536609486806153449879460818987585972820256405421238137646270273084991500754331888025566369238812908621942043389769455433883765276238636056048142110971057261440148253518063878196398445482737230719049264014870229863721563737817495409177126164548529477694385354073021424749872038317376441991494668780307558255173340954329217302384440752419814122949907477140183865583706141080542701501044226566222068100698724357906859758890693451230250041563351867502007511578728745097346438821668444238762222726345608882061771572863326772197199542575716329189470925480833881413819996314304506426583590173853578771266012490013231785664246944854008546328761143449676691504054258964382689067327489840407462507828292111546259884723693519489542548195347886733493827152263200354523785121198965036408659485466777573641373321986455781183405687297812979722751936222161637302481134647882607284528368953799460346631490363489051586985172187764399259449304976921762155253376117770438360340743416035322834577904450702547163289147656534274146472116256943909400782233760766239955657720546680284472051726005579074857448812820625886955906808561750987123901484941972276862891946491739791714103629937783508909990909658787726126892108298816504094456039687096729314833741001570989419174960789512982599162116443533775835220394069431964538593239527305942873085037737815497051948923119836571657620466699935957063935483670131137581108896312283835585365243221130868323173613835781776803040712368836495335617014535503627286832641164175771730186962382763704844834286965326173827241418036469746587688879877964493393142014996692316479862399425975881354422985456329742115640307825247831079558901110110466995281166857471616816379152783875553551247552105038151935314493547472812693064232947325783923701800109739092505541246607628034093323298041966085136788442864721872510038381745925536077295952712914240104779753535817824852076789473969927816148776806699693567515574119429652228693428138202612449040654686963674320589965102889488113141682030333436104682895662439259537965751716678476510268278485727019398203038985954746550786978252358350758578374262936971608823568661304798898055702432021664123151780247662767460796199178343595846002671304703125166867230721277642495742143275477592770702974696332152247885321386740898779401731313887959222508384258867499744240594760015402373929671979847947979560659274671018935087756022185880871898533913539654969482417744376462058526275495616910055189017373911039193362582938178376721032127931772744749026367262050806828087675286580202286728835397123366264006297026520611880058109536076929026504107165827289462615235405337947915394005206064633207183506414977723181981471860128833365616752181878786957948359850747050727979755242390074317135828796156511011868796625757720487236789638125552731677297907980594746848819387301385590833521650144307075661881852154311653552046697753669860925306215489250731043560193791750297106234311054089141278279383266471232430131075436369934181936252785958442966663172153778815535018615990874694364800134450423514152444986471316131954321834825247208863334260377635330383648401119404621414149473667341970084780562901109496441448978043540476975674458222774642649962387484140758550643527484689641463662557284548095067082453298031445042508983323471017839645245912859703419115804858228302309916296541930467445232375751970136717048749018962469513384733279576581338457368071192698484752005172979174420486524237355088685508123021982356002590417357762394780528802932457988440246890764494247891091342427240768891495128226271188045528328850477758553599137149089978169125237081230884372091148231551307835395678266289429692490702855324744352959884416985396519835695379748982046899311432020515498413702174239572733921277629062963074770269363210352411223072744516283131950400952396918621806516009240434079584439045079329488286543478882303546900147279480410260001092663098719508037407639253703391430271842619221360319194945846455689559929415286379527792103466214081184344792182959895580590207047458727347118447840393089315007629118381733374899392449593804771788239707005893779316480279490966906438170197601975510269925208993600392383535177187922079218973171685101306127969142943160714574346191927725220127185736166860449430412773332444413642629220786130395553768547061792106463664466885170180425929782912437726935154591585892181946006750115593111980470945339428945488326440638962999147664036055643114103434557801796716210986422083680519348485605295608018945099582065939122605211495776736002945943245223229857430090226170213410737725279258035337446162432765413368041791523873284535078629132987008690194192198835480451226630015444102787619933408203613340304102780317801250871526378805332460427255184984151368215165541521383106803281226633223536799945046951981327171407587103204503511884435859171133694714972614720261045388726725035014683105910549695309964164690507229503043034897317874434910906113753548898651971169898598097179650157355687613392608213607766114775032723042544538812756032825393329637669748860375200628490543341828694774297200022773111758070867097630211307721096622533948030491174689314047036699304911620167350640802092758372594342760733065334721772321888478905579950679799870302094322002957650591519848583544665194876627355408734773694471510550126833555805085402379704470857159046107671900635652807222870071069044239703953321154407493663284937310038562793699326709233710703015349422452168144871232393436086519683996656878310434224936284768156206218435798263047591650713289154475987121156429700561526022798428175559907112692604261482048751175634960321216144405471776160161606052132310496432582960608952279294862319449681873858718239491455032449015455701437315258055162148203228451495553707076934963622178186331034221279381300853230751672451014936619457406539488003762174010475954891330084686767288697835701390902121218415816505563974388829848048600272351501163792722300237932574366551981616087543051752771426019839645292590142263182386980850992209098484856528243643194928103307337665053928813299283129746952926723440432520116423336319504390694584884055177081057260477949392440700847317623429601913912193947387953529650699268187490852665686665445452577351245607902108743232109207773528554679595053401477402722624273240140099293926586619096969900059058048854330355380090124721101990287671022654501308447777237102059905507526900072212711185988050284081828520764383759757829396607402272782828409812090517007626636337647666837460685385824731007076773370691051305091342385115344284429790828702497586550520662558620988694766512512631242697289097987795981218457472610483301973509981798661715697387036671792825780696195513651374395851427494057845512653339133410995086907996209616263985879483918825823136891751041320267230777830704355593878681040516899153965301005798110297069333591284701089302534018671867607678977618113670212194409523569704775716763824612155574814479859582845162065156577609323581004461970768758486810310055176438167262657480151072996088363926003297641622516675540075382784834196883279800699156594362547135297259250511029304392431903755307105030129731113774360973879653472021301743901995224571855743883330859867766572441873955748333585889189044912317879601834265319179410278843648054334342476509029835908088516625181029295219631372607879624381945184645697786584326543446364676686836113397871575157904006842832128209303301194119552387612797623909852919573761323842047315699849599155943361385549220496996647780912768403657375221452212963999219332049141960874903756387544014248098424968435187864205891438120969080093447154422195355413897695716434203874130291833620372504944491733386947983151097976293034363239023170702262828116013414776739287349260826444265971140475064455981082036895770500354784651594690031547734520136481643727846144526820276238918451383766036216173510094251560668852776308133872836486959885315435943001516401960003835898643923219917716921581093295150033454467417488005017145052555281900719725096614686683618389235321580730883822039156245078059786088549487112203409626170883265271971923954120318735073644668873657511850619033755204092883608700685607047303826506193774777624480596730266220063166426440582868804710241068475661086822412989376524648563033887787647948048265424792507025168620215467030699110961819041605685521979401503607066727865635603619056561195851489222061561340211891285631250249066930028627137116296701127518457891393806827092380264625814029912969778182016529258220235942724001094307080831172475074016116253598957154009916678673972269582711098392899393860094145081523180265976740286964769925879244095709071735731386515972823089389741436014359045932848933934184711724396722137786396977577201416237181256392367228091147378867494829458358643702931549193478285962772597175035194685355332019511492730090913101657958498512316689344408421844813305842327115784034875289783890583811557440427961263042679985583333630704222335127131500363461843060630865515781116854856054956837334360614273593358719161545221779400439256262493712913837127524763223802000405634873106977296329521264273643233601718473526953692564954712186393039650080619961987579852605855097612114038538165969310049366496497109268402852381648557131826908216067878554367480958993820329411821141791881887576741132651393910147347382480864160483300542357659260343211845865109044208211581569637864436745918075253720488762273009038771737192050373640111478358108824276429326278825304853786897944804118312603397787824499525425658017923852906931511713820863809348661050983726092259684877363621238537732830798132761479688955913289268698968699267284781806038761645297395193013175700042553455291082570057958274548792004097352100112574147514251195270403379417470289201357507655105602998386583524537264307932060707627610889716743356898855965177957673284892493798993091935513426535847459867953548915274049934547841800200949962030958162638571882320947425571101316592997968862013530938428113077189061429257854504156897281477129440939781018919229656707594365679742827212675516039097863686583728928090377894798110455211476792881316242785759000685015569893709677296872087650878189854073982317490492938994469129106942050659193636847422608365452384261397065992091543566685254390273744960435947931130823761507299122677879045812273882687312264047615915966475479358031396439810072719881321187683927716591495226403950862398077221175276880354848319801963361368153710692445702961788323574074281739151944941343138003709738966528983043532034633133263197924547054029756561506012206778410770326702207144373819291752424578181926555760476762195209299384053712593757854704458631323927326868923075858006893479257545801462853731716617179527711251739342651177096702209252338025539080247756693241448168999476744550027381719083497369968885189838033749393673824023370530077278247610494431382417117359884196004455865924249579346912413461604843789016088523966494302913711248101539790800257800091287699556475377880747270122944457256860745687934038020069788631923063349014341178161329016365238352995186845854755924156655500159794380356689825697173430393016368305978323325239268373851123874656822568168400569082148381087419866816634796629441131299604193077710987389249977555454891242580669841550544341539781875671846851307223850469075474028451036254726868274013799667550703053261359237397047489008245148794544164127157441865458886860403883780732072168343012262991852862559274677891898950221418083395368239576564500294376213209936295003729027522898988312732190406860666971812650117070067532566277547854182844544165845993692781303087869281012170097005554533230969970988028352914652198969006858021432502358467958369796423744349054395887497655451438733493616922976981416122902401478024420771083250196991247865764882679590967409220676749423966587440171816815744259475326194913894112156382337189122646764920131763527422257403154866272632321872078760499517093335246958234611347957841744733046717259304471963771325874768246180222788871900646578523509113404236845725491280975434614769716150342747900560799805985342224768630700919733874868705106524295192071333937568175018022387627834201089568978453833739667606614005264652586749226404202622754603418837026846627116148979416827903809370306741019584716183109604632287976200323463636260769441405663623286054661707090009576178645902810031214713488712891744885376341854492742072879713421891508233353683577859183426287398275427534754854859543510068853385359405518960971280774603090950319786794668560435573522123092786959399170957004766864828093530353693174180924241367637225319063632412684797252163272382109564580615440849178449751098613035916753300013066596704611506622471574178900073936090476238072951128949929836680333549740863228262882918283520071976831669199228349246348847701196245586559131159663914047967210502413209720849272587268276986373774425894112711563339416121546519503135903119382467618714693420584070070921382737889739543952501051182557009914620716708459963456085056545280094571673646500665170761210936824676359165530036677570428205699581821448313671105801435932650587246912987240995320815066362000418936834417200689681182643165910736506299171529965935183921515514894539364446935886030087353037125659873485736957148924259208888930384445284897124666168932801802792331188251033808425529505182842496381567434687191233377434032926713521745151371117942451529750369005553661251627852431524051109898260823804690343926267702113831230608995691242369504471607839632683646547725156970104841493816724075890582924981496100024045672353610615220832260658734034940497265250884477544224968411103584769820459277844425959841731537884349494785116366218259202960226903473112810519802337627940125601386192668671468642177328128972532034280936743155105955928794892232985560452572973962598994487376608132250850070737084669421305443818842991013540082018506037962435325901252796566812700795348296284539501246724611617681177213820175835147238327465629318603379370861863870026521061086420511776591855169025028364606182895523602961369098868876752328460594561311915701296108544159226678985886403221699858125934779238210810247886671330988565853220793618879096650309636530886345727774180125729695490867666618346055411132998938198450232840318880098423299728827924670402982822429448609339494359920066167647876617296598850275070807610213277124467349844740122959091120359295762147716194648017251848756891922034862902978889773448841953283321295803223120535602029894971670700749825927501268504292211250995872861611201958866961208337223623582158421467563434244382066225605166193550473375767208402414448757789919094830740372630522630589716665231178304442116207711745686957028223789432493611811271087091557845746621608398984919026849508180312876043415876329349543323179269229602181367272080619313111306718420967891669752753855175654854410238239410422960896493242985110421913862244897234925946721453440582437306314957575825251906827729534337350219379302250424180697471020566660185450659678408168391798092604811652107623122340720375017570058030064726644021268797919976033678103555889943583660252012207424077024226120275204779833449749393966395430425975576996131627868852540927073005259545078479091514931012238675046586747297856154270783276229876577302536915445096208026742754361174222607426266517252406108934882009793331865033935196144612177071314069000761067855592320535460825221882638959167882885084700263953892567598197025477386195202120896122125763326881598306087708451309439729966448364173573619683979318031533059275193879551483105344329007094321265512981788222797279767588549689747956308259965072883056377582757416591402560157215408264655075750558635725208862692696894509943938238529597046992963664405735329694108364141619461461308502512941271760128282540995974430664511816229178854355391262670460966079299562492659693994321093285817656886916517932842862291006162116358552961219153231983222531720374750524118311685045657537913396996869693233483466701590907706946958172089945143476236969957061627409192191090755063023071652070921811232149919324467588006279070502246746988650611948974089743492406500663711563920261467696540200396038658203285383202285584010606889976164516341787225631631509705707882750510075440696019013284676777394303661498555973705953769174994353304668221206693133389830202091968386866699730598254660573295467614090137558060498174358045813839052001787567940096784144930087425189867506189506615966831909428908604406870979919400731604258544101821207266594748513598181877934012106163512429910543588851294962437284933706801296029202302067824569686554837861291318881182823001041508763906910684941114087440577702099262198812529684060144793017185248814349073802434654323820999545529384761938570348677699893816244238162199705580349077636382428303976119490669074375424471718920114307838626977831057801396533548490164822939099996986704216143357203526668959412992932847365811480535748770509078733005013616037128931825175011826572901190197639015588836921070773642306728542650725708718204620347977734731519093645631164480854983040917217762656736311559981373295932000586008045651403585040148666396471324628719682147380053669909042291686382272778899174260831043650790091354118339353003664995172805795406108715619450280318509582222340132802726576137200585783210657762907093376397185230847087046313521329750342036758516327157809238823985498873333852103228794988262752814077753454188074250002353683592171418533702832735460576209081536807862407468996943216540326624404631426270602706176911853566794011228838091245335274810180910625054014277340829892467624398181785572879222134304427886205642034472287989448663068118949421373531016171748551125455718626804507779757628339088983638051872293042822418341960111099894020049180935406666250925742412143548960758656276538948573282210903008778920671697856685313365688144026538878967427669556297971251482535234871049388163759036634501533724815232406101304877280371712404706928745391047576434303478993058857588919673048371993304147021623121066097365452042549889371197703036340417628812791860736010254541448221086156488786205353932111127819880681404691387454312739285677641079398509112678198570285938621266390399688873671823334555819942875727122029290447434500089033179014205141551868695220151898168769602420899092447497121304200796655557833460969582978361694960106566215561859443864099239418603262609576886698472077390439949697235331390338547684489114548455185181406972955102799326875208374515002540520364062863855769311261142343410409051615805455771265261572641585565248785780764151355962546630117636738705661040637850625004441289318616107709495294597659672318509044598719767634583930281602995411574105018191871867442367520898323508974290662074715805739109364768819195985425145148976579891503812591244017531695464386048830950594131287175795973571508998800724297697615408651969355390374829870440452921155399474725706548753449430536744246259140829463303090352941747832222147683794436814642763461296951625237428731806705160391405275744907651051138309835701938422869325480117760053472868302829815371657875928622342950411047477970697334690544154087298611904551639477719093483446665182294489471992155414241839328866019061242005034668496774420952320575801074017213532071627012113820689725824710080709482708256498154686079102418189945899522020754994534178411977703134036205065813363266478039810580721768739057492785159793813000582168436581648537337126934943257322425632855875444574198099517383103751125587357168366676606261681649988041513234661581396145678458464518188549817028434789736796478429354109914237997118291294985387349850133651113736462548348377650946368590414782753262504069741633344142602317669811247067731394948298263335061405457034682620497893926401927541362699334328939854440830974332885897933271116673467726047462381366967792750088608610308442332272526254662334496466747723040431460613723405191432514399403361647430718178270112621572456005794494556411440875663473840952429705646173262986703167616689831233052107213734485001339567815901113192467999475536961301002514229477511573559782733298877009554203489111549752940777676822120225184688377565564398358278703880215503238884901437063761606358093069269023622230479745627241402062965880907789316691276032639840252634165569718582745257599501677995143284183469183193131191581225695530945650448859499683272993002945377196217699809371805329223665177210424398484404866204453241747319594508708080193356376254989299331271904916575639089939607911554020311219747010005962453947737671201651837497077713651691768589782739465674802919079641015370819711434089619831352558184943276924031614221828679657641857182063704603916858469325513111056002265482519200666162170904558606971820609108151528797092182958360757734854250697987463469766791981550871162617275747141477145414624022805245070544980927333041076364482000077965448372442261657519673291112436670001337440519283686987263471496204337889935640245152600511949975989505057888741859488409769770991129105614574838425453671164193666883805019074323212481088431616871861711837758756584852880965436527022125766901664131452640657898013390429711180844776441123291115491510086231723923828683593141925841028095384547618982265516244925515270531077850862273364659785797361367462832739767228377950624206737119106813919045453569867191674117817330091965142526556260376102879595223323638828547176238729374416634995596693163612462587646730940638251553335042893526751597875307104828891041622754215442043485951193665552891935656857684461676530289825733368175879945818829262339346795111840842263365619703941326676238910480724573737797505279444662707676972771869316532940351944180075842233515528167426197855399275159795174456719633926230760436626142379620873424741505585997878150224192712402323087491761157493946700174089876088869447845052161492478642920835108349885212271438969526482482976514854025543529199442819918280759673993565280263681983663343873928435682438040144238565012822663486112854128972886066929459091096153725101031533990174486556855418578818308189989457138956299500924465472620398202481437132529157348637041016940583843815390882877898824826946410804963801994503486896643658724583931884181948861575365130181952397494405026515829822123231051832036784184890906631807603656907047402197275611132371273133827105204216386632951417327691917446075847344150028056185284481514688011878136883578200121391122744962283098433898030411657793760752637226485050353799186978726174822550200335190702722939122702019416250028932236361803876765032017723407973881074263386175070334810866669041726695615691927520154519673633313964044803215841743395224191927079179308185918255038022179823852106513314340870627737773257507503212553023212109086399534648527614353759332816852444815929974564789353473087480752023499243541031142001218700234522288944787403595444362992767431526579377622600744352947311257981503991998035568460858765518437140958204061893073655813652484909933651073390715169670189950520922649091691465049500569822029151123414427487843938279237069858189277123658588375137171078147217680565262434244898163729883958979222091037082027296743997926358286675483253807680043693325264478105218025611980022042682825298321799956131676739745583113154604172137047372775753570472276143393265141954015815971966544735890610419763104920385818296256345277229163438518440437976506255899271792694037708472721892360502568341289841794216810659798843604965098182510343180005687454404611831427332840367327534372081936239058324230674838886940930323166938836741171427889899143534219848918797193069073392931233317405421213241656743959820075148824422041477644939541499575530073893100385805284548947459386391309999365468454135497202983335797750972160096153568087699766071715120193222061156684051792114697080455965528593351548550581933513093962117819159124704894692534934644637451166715670799923328994130227999290807374767085510703578653667276954622526186092026090312366141545779070784936792416219246662017678745110193378992126843202331864347195431118225802885740299851270307413292518796627993756776321716221028660659187626610937455760485175910372998637968767823560342456717072573710460393179013633904535621140274207279476998412076902088716922875808811280848185280223076157106644787582716664076021366718512447195706033190579498078141626616796631424818180513270239985843397857242647442542685415143013119442847797742256819651358386973696130690141667146138183803335153434521870636885822886210030043240434483558874761702659687135693085058574588440123836549281011715953357128500695010996901650245260012849449151846457497222924715813971956161304656702474478478417920943527985882945774002897896268745318132013169732937169815849226134969824411885914655716323887794030621916913776438064176356425269086240879238064459023557409092087943231208637948699477648308157670103262901460730303833275370558010442683624011363537244110157736938793322112749168870785008984047823920129190592288769043353266010542153927898219192798853794998739657162676125375975988362910410776901016420495460361943608474122100713446133153402939639668972779843337074251562023806372565784542567762951037920743413963538628197584638798632129684794458133400486021725857289361212790297817185088274347221539833343487553951026936511569536187517642963367240672053208313328511677799879514388456736625203771882101554110924454406027991281707273362319136839696100131734594136464170858345293140917448765767975092515794895616700875491289988803522406212225148276436080525876171524428170431999071372218069368098775043064899771518745448222385222878463612335776178948782122189120855783006339277551690743121904932066662115814165384449152669456373537077650314367650634108857394434430339070133462034087795134672045277627647597097981231685602913215497275482859571969210002582394954177342947271221598336551087564935344058829198839507236032024271017129519883390533512088434323692647885630076321405700108136777371531271597967230284668093643275341412583799882797939882180328712440041471351792840715914313831669361384461334922752305721476145304836592739318277074569943592489788693996647660138853957410984061311521645885354021567345669932436831160648209445813879859573576961916142298189490397722201134451568780704189948191276146370984732893052415832350728464216804016132273937820664223063922822776353875338313173858077660735464470861024685841097004069571432019072846651891231304631523864571139786134364260378153469311455799034673650325822778490363310087024237651035637875377755993260565999451675626662155433356230168749607295262865411087200526323979703758913258182233816044140324077240126139484036066488020554051092687808225407074704142220558944001105518012597802631106739521177887853583349507163678987249821924315198328596869560758797936948612202534216455008908855205560669542317484055463734966145426410154362885454162118006467301092310824836833776746547368279558716801030494203588705547360162361178299247539836403480147518810740221495755363436373359614619349979348814530169982860080049665994167667357192727093308212529059786791873584768431258773481197076975870884855732961150789700913910568680583086114012233151970270404483167950821404103357003974748005126261487946444286055601483810474358265544471725632715640003142113493338185626942733059340759594760801614215818149196327109976184834535261412064996937659620230482092927518301430525589396855463000561243577912889907782323037053430550141506506347267631772560833420503412477492200008510515406619648521302917307847473905768169726858322332944939498128802233513723048702916462326345327330115443008945325557698683841607390748094763890294083424352196596913338213224872471597946912723485758711456941829062685195986782401121870852993091509121244031636193072525004094666099235352014415476789670112145098617460048408495861157583294353981487054091381729669384401812075437421886640959645143049081060951523344804159153737262809267550725939743651639199033307593277935013077311672832633108602349543855401723660907307211686257914670638606813374907979579127523104582020229660077253612019982895329415891104271760867000293672015245559369573261707948454760680599979361015342522426750088989271286432550938172924974669280385076409330172370579771377633380668566622579614540854015796208430072164807108798221246971336865580985882476737323859830562571594098689892243873430704492620744504480699817236761088889134627782795303128992617561831932436186694210215834849054155982183851067235132897608737853462475452080967012929032331000819220287781293278777531988230583371571976882210496919601284899241551569997411583012840441898993452314455243233081745235123489093148479463935800187076526038081315455375273248672710959234173835494561286918402610294128933847210244719626115899054181934946114467358852636561121105608535736063237758986099292942193424046588022747246744783841353546583413429400645294048329213031747454578014172276653740566362894944527401251385528334135974493371620326104322664225151514258894823153235712227907544320966082032028108184477666542971251951779583296309659040474038792550306937533522529185342031311971743251896584832515749733841578645444826679827507075928241808319073341615083425195566416474702640942454244245249474872944070917948434386078238771597088981426859393821341630901254625235897718106144199419843616590270839384653852267832615084041651690070750068601589772463537377502302778739225690173516325242881989626700331803281545438154751565745352598862472181148987911572074301581198186330756582340221272718072871638217971974317293585512373075975694548163537949471345103046607715010207276025931656739245546900497350596865650746357934272256369749564884430538543355735103715199715797266461903305991039678770511481059061603305402326167092983410465517506332387523930310705771193661629426407526787336898299072540412420067470089030860264912160405509978419342316890266814533388447878179047477723159286820556462522034454105779283706639318017560303861346096488507240481201643458106738428088415570926073503132165470218395114734246606477287969922247123412860014595967893400434470736497235790902713234835387652117744333809751033721251547342513692473888383386905540221064786229362813348817385766699151573929894203862823027893806913909740651500660910291177866574504572863158572724661941550954377248109058314226783716232941328850080017440958988888671222256194051039242486586160319524757141768323046704309108992231979714679123687712718339694581509794035281683144772692100339963992603604833983355193128919754396522614244150249698036734963905170863350470529696478260974325035779266949949724374747147895550349501144710495710167039364087090443240137308095593951581365878644757815275199133642550159739775142607737023380760617293478787330691454146566690239030757450905839472241128222692231461127337510092684051360277129889290839729235061774276376557792948237797452174253698564232657126763425734027847030215628111676028819216113669004711401586254297215887188242252421859067997381883690903128330211795425245140933929426446594405720627285999143632398474683900328995959930931450193389549550432215530182259362046669250580600509087797614400110163898818159434606006790489823695136101926217782375342958640303768223537120410669987133764679837183371790816814356762076390577154151359048825727397372950169268052698638438053182500343295333553715423930087462596460782332947966811863808605470124153762935990098867106030182963632031797437546133807002142290212807947744787128529887640856081637754107666038535323498145078682641941932802333303858039290800748240052899961612774000099504088186578506223595410442449206781110002879223372026905563461426279084763639980381387861127331807517453169071333992943487068305446314509933965210587679687675582642772798233508131959974686891545479967977883499517078092210882485738454119080236788017961789675504767198928613576266274148732197388053636901874241909973395351822999019989722679001354596718893077664484468085563221308781128872118488872027901472187239630445741972998240926236979443776674373007386916016715968072350058650416646322756005857693968000014970578787648647423275347643377455579180836158145892834693303398215426082256320878142216615556236023289366337546970997647636878693601888938638863519578721535125670165836475221991230348830190890966753506944569123333285945809014959502924662091381266343410917240232360534406320383372235023804557655639627936837774605241471197752229743838582987239369197787231019881636360748792354690089449295802023155087152794340069753170619382760311239687358083459968993076567092105114171454641958760517865345161720860969463898473254319970483639137366740589099687780493778259358184113926202379443430708018875510415947550082295788742512101072341153487483195559185868529934388566727924637017972442426140007158451110648976915612506158033885123084499750868969436156835016141999454397004705906079074932470314456862217377580377694599074186264090437101690754159419799974726965407826050533521841574232556839063301698692283948700178879079113162294760813171967297178697921105274895130728890628508136728701526893044799154258584268131937187712205369542619123721685578416037058544061238821549502405055965460376727906653239786085081600425738922378434469029190505994437229439184211071162688307242311709948622290506228994893240947112559114971750198208123731666634255480112650999130140279119707523264159627310985524635264908754923418374631063267166643721830645579746571652590908195154595289666544856260869786088451810500929512619715409532579206308146121026535533837753145021474742397601957516094283241598610627276851480096370067480762880634657176856862212134361172438818607545075981507001398172797243445070112001455100264942645169381452762419878614436082701771602009523882899538430023432970094808283354370123539376211191495131757372053058031355889694000884497341929445118263772775450506122051115765444539633014493235778606321600366290658630026074456079527588908486364503999232178729100115952074654864889139527688469354215366702048640950346115863123955455140541246939749521688958455346909008912540096362799857426765819753800767175876934812740493523212152190044060230987230581249615949310282176279431944681441695717728287873466801976473618898879243240681172165422625508435661339452610680729711121396575512794564524401111031088461846120688870281064936248517275644685219989135008356458437548006657125399856112201740206896487081212962316918045795244417645839493086451996369761670995691965739856686000542500857894412136740370687674785667979575705325125285825823260693856238995838986254999092585914244407234515848195403296403311792850783411601738504473280056168390691801023753038906689203943376783963486308879188264203141095774701588566133965848914746288206517017414232552680897976292708468200726042677126678274525852994701535550759140308639493481771736591308349994385983946471104382502021506580135845579063516365690238299737289851098284131376685413677656550308778071627788980746486834281621421755619127210600489649532284470591184430017491611039008400719166415897947925179255259990628950119796007170232693777306592966212508568774739632020413599328962353606073177094969870222077758139672508228458066587568076798800036149850012602762062884618711704106687345064172792352572374449144817999550163713966991680616915115324221618449215138708979437199449992028368841950326597922901212456964337484263440679371800209791327450882125978946740803648808651505010166966160344325479261350549208137745592286183908816376540084443407506313722516783422125897413832667584122708731913241005404312882666612548937197894622435417336758170984836390880031226867018259243900887968644633001031442639355100845242098613934913299925760904506162059073400054797584960561272892551158351251920813528141215428452059627982015083986853744844896236001087052302698167789159886325466026687396611600032841290792260629632445909712459935649982775481165502380483113875400292362251198399085369737380693876967895217847158140594788888656462263401239361410341317263564048014764653786952694229720889849676754257319850490407655533874379732780824506178330109214736414257789907486433282808663521251447933541565137790781201009264854148645067008415265699733694524136729039764021980029229188242081365139823003456517275953885830212047625009502585724400584961963373416901502339385710052832342795957156193589785699337358498882107226893796881142375902039780101568821375062515091614032527708845762212018432648714389135557220592888334420511555775280439053832917669266567027230388284530391459428080312378865767811056651327924581945566772785832056163407068107590268041596378933945858652154303893564688447000093244122484607065425673408734407104143741600488499914006221111911582260784255310753111354490268619075861489746306635634130794404147462426084527134867760845985372721214088468238523632128649306661185608278444561393168872837422695098928449129510996108551026758269394911243134400166996386113839717893941042409267470073700829486409155326395884473627422384780615201256812012209407024054632865408328600896551567668346067218787777662808230042472592504268085116978808369951782481218557494473736358963626186915765354205350051620403017967544085812413988096728355222343861894100568113235100934982931258918866827092815726057764604544656605018374099658253951825500324247094808656796041977539607131441347004425820544541233988426645603260255970000590670583868785623187093612044604512974193017248725623611655172736441218430654468204768856279890428781289977454334875413085480931719178189968820598688162703233070085185843913669437123825569941406577394347959149594389518211683813840715332378713752870057724073412491210079306440965116058526629613747270903628689416350352498424577294285348412808868138282936165822172683454123887421809899815143917584609772773417029268177805175785413077150542248183117710897925240217109848886246013509964313148208323117100622718184027853117141906203782644053247464645216684490482917189142342477979480452195475733628302013969164954522478705152503839410244760581102716411735917149582831059237803229443568887766401975792032275335358030183496828288687442252396296652964456533475328631360278701736544122516370709114450714315334575453914694992498924823929559033184292240379040764233702564940645055794674256378955272486656602738606453801696553854458588075036905405924803452247009153966059407187728268741752402894791914669745239769407464405870635379851278305472634946297635795416186869508846911723899273648951119718634540150345757685828119376849523525015994006430703750303528499651525360424108479485816032196656256430025158544257995925156531064434918845883680084099708084971467467806486322183554028124078211358227974683274835555792735260697697886393777750682337825124099219933915047000314582149451026267774273274855080664895238344608581812939777382255873061552935692633090848568976633756010497811121632722946512168761943281249654463436565758815574200119244051269850730511076182382201368433185015967588569969292451044253875217654784016496846208041858269984074882156704858902436245348858792187109715802474781256428979375359198335031018390879369502211164848034275322834906270542967801920157033390927097626172775391388631522820639643561679393477140432954958309800900759338474612065592910354558796284154028193787965435852493128560142666241440211922027866923114185905100420281237058946824715284909487871628302039516003075703696126576875438158678510636491491271322315178567719527406250357887467146370189672395370367147889792744237640926365386329021433767554510939962700780353126589969405438798356424550202925788340207092675830692974948243561557378195786434332430830115089403048578371593465258355359566859614782054966032997207466767013884541747574217691554927705876659266365555659860335666436879862970301068233275106221586591895572047567746803826563341836764168472558076700944402230555639270721488051811704197667073876107422971107761160271017688080164036414836757450252166068326652576931503743385740936266787065017355514004638144745363737629352863551855458509680785569597531068146572162440979651189721578587577978959265567913452476858513674342322216829762670178702068830287486541028024034060020647446905339877011365718613860505076070253350735660001674471361876436652024459475872015089851557274745001143475280945932647484386241013875700561425005390019848015000883909138585076073489976688757829646906431481465147518337399584869723218986384426993278936318020394911437548768151344012649277033696796717434887745021873995198626450382108677980518488966602329778012399871076116467126970166714637673726005639485215491261496825776721035891301299269860891208473200374554376676852300344083370989991048537460256441615570257040624105160190162605902860621197167608495853602217689389752464245264306936168800843556876926079753247873406535142716097844017297278167506390249778463620273685254379962811310525619226519499393162528562642762349153145367020385734484335248861021246380679804002745598690790872859770354900342747065177817299690520162885975017849493893787485107434734312975132351045962454727207624485190716130599182441580987819610405722944957780149638103103751430313751377216014671934410986549916941301163337318782381324372327401635535722211342239200530716824589760540071676223671176882152638229078726676499729773034717229811763931256332713941827107995367925730612021450694127277429657464446895212319215373969579519033622233695848859403447134000824827618374479053177490596737898871429196306372502896428971265606440165824317183849153216895457390312734277169971080155453690096039858053691571728292149367441425727935172831453969164235399218634495190454284068752719263123569044264828207227648142029366338755582033054596625909108615633968536928424254763504090026080641538776645021818352294400514564911783341670661815693587897096119445275649358971762813632019108811111588285825455776112603552079279537318454552821030357690604221349462788634452750020312559785176115618823695198829947297035669367895332462677403391240346617820147929328508678298412193426599348499654356542378772264751393561428102661967569994745332776397012082333157286862125877602328341084358793364832480658358857801956889401062296497579267533976499154177444482611580914404236743545200404457505691908504052169099035541965858260045221253626832468534906091973395721154254766974539654649876305361952362276743101348492863085928544799755512458012050829778503468839269808239073844283989110857781076808300144461411142340278591148678211620290227619550712022515320797693743790297760046815658825189504167856304307528247175684398338702792730986590842094326838538957702195469638525101953920753340198082994684203379854337366006651375062951180195468609648561107568782987599389101647153023208958733194174589839570854691766233243167055902791395176984591924252482881638306273686540482999410753135134596784969886628531609543893729078648490767889477327733314598300623335053765016185838163056518165540214325340181963962969202006679168697187094255287179020420383429310108471714274018944702666168218722113281551152103690866881109609326831623972993695745992687253322783425733057436296448703267145617114067506872878297643840755416418912189726024671354877329321018234175710770234375098244939197600849826637019824495346403077984260705855396807447235924118428487206678975242970210457017954617534801911870987534882330428007074129658543179321778604465266289640271652605896442279686351186530544029479881144035238572667709623790660415408221090762151466282074283893302517207450534993886805279508356035143511460941225009228020585079956826820829604037273029939692453463839578509082612146756361301008722757669669359154524785554321639193636873921856550533919528941619615971846698227991796841227046445226141528353241447599427258606164141484815185591700493996485477327528129673205648031859944935860262966036116224744789088231810900414195193910271014276618923045028331267449525227403296466114734837184638370542325617565555894557253939733517877505746438273205876753804951360253079212510894023578562132183492975107173387107721419284312759701243576770208965431298109714683577997986714620491400196494803290456828707895752701722892890571721151575692040474172483627475145951938622695980138306399976246371328176642528800883490825512911324785594251660259583623546132551714221055088206919909430044186815955678978659025004505734226555069252923049223964446575494315755021190593675107168265162405244366053265908879541047897742329153408828391382664912068831480569994466879069074015750692760213415709915227391977423659660708656451062592077936176853444877153234706138664096029530922598894402019373107609141846344518622287035356647355210737003988649663309257340947527363473901571937066257053840828656612375270074139306082957203402188500707706820847995679948792956705298358838464701872367594216964311749672250953166974758682645689499479796986889092257143072057291054468598906878947110570093537425601049877787630874902941256518529371899480002561222322064941918269362295396236688930982826756120630036592073269012418149066862608525424582056660110803930411891833886623285976183606057391755268655191655002939097894706061888321062977254074739984864612064413934613651392010066257149763353539012509404508669942912461078105361327058001233568770738545235239971806924061306653789824622790327227068053845480601595124540738251771115753347973277672151440167148432142223192819577233750073065460092142277824187970331770643279032451491399722682112144761724616159960863050578703003526658825079156310018846239418424321557054951641891736603324370719643784503988621215646464274892262697118794469531718420027244484616292703821708192620606754063851506365671187328312242243842421034264098180470874938656708421834126551748835593166883460858819880070890905875955810560235909687714556763191747758079332835178996352418261029413718436295677589418525106932071713954182642002368567439032066019787028764684597460546093604689475026267986766842093620302668245680058171338078826232345072398505990680751646554677979846663542766337336867608143588075652205623148969675086942566927372240537496869483220385173195046964165137819123210417215289055689327321724438954352959667430645925929448489403641616559026821477687897793277027898003374494633246435699487415443536619700631071872298066202443883667373488107115052734576562504789685461291158371964244979078089804817458357169173284201721432954084754761465602962029273377859705773006786528985136812952156188040977454112361500804761058849916794688337196150407499801479563973503883827839186789042329401213771121569963327307144486245255440923029843969891946448851397430395747749265082176212423487461584290015459919123478575389917551379194536872530787982522443758795364227906145051477104989713429526673213858456458063948278995169811386987109919831251682179605178134233725317330484256819259728890976238521238948599737101408997585479690748417471866381255196309373638960812735166865651824886107998796371425424326299940968429562029980024718737616867604607721395234639234533462747888931737012081206071353647369947951707119029810208318685640400747212249842851810057052630951390250027116203725474590916964698672230162577755515211383684335857603243941117073802916238148753481715660802731713452703090685026473176721197973585874582784950082419906476553126628641184297579424474598473319099280484701102643481516208369124856879580580287556601324438917063632540807364720253582559808465321421085279956668070685335914706151870520521836163439896389730648482023218860970583909912753564043573150964550875722997805233741146663238279737352821544427296983853068669070290339178285978798193722528641333498542295346046802265421187692669670361788517942801935062135744946765346219103504892947429009290119848047122587020098909019751368193345300212118898084340772844348947224362232465545710590563252047221090126597570241091820986718552085992988935037416700868060282825086369418834504076556611300785383182822090662843272126503844356601289118999842202741920253168360502747654612258195227275036147287358770586375042744591413976474256496333769158474072385735758046350526635320038861440957333155389567018967681209017452725493716818175291837168307928284441292963894245681555526699842596047453694644695791343570115626973098355041577727972878878588731106675915739410845800514661667204885404915623501887907812924332006995942504651640698081906352102857690897341227803306723436433136965859883507187202313985804959207544018240734261107747586876824292446681603387201749286881735587548685255605646712639232694446999340356370055113292557610569963509088495010524566222246104301164408421005763739420103227361231579478846644470379373219022807423078721712386646383609965159484874770110884100162535723990709430916210243726483973201373388945338718336904577394187011311598211781569392049131884113731712522581391790565602295022034170578896673265619537872479903885645546100409757111391301706139179508396894367407575807269044341633105396827640861882037086217448414748557021868106187851561892267106133370445831542554667424600770173687268993040277225745929767251018496617683268518062053485061583934898055639187468157312667978677257912987511513551426016973428372312888315168260058106648587204826401946323965903833498771868142298878491703944843895845499586676470210320565953625349199337506384725748279394935553518200424346722710697837024307149975456563673176163628142442438766614491992642117066984710691023157102660255154894480064399663497724988028826618858860884749062780306815034010500089402799653586150769012512660432984650320939538125660747145022037662517161027324887605929208222054396555980255750031752065164919144263701003639871924472655727918917734915798242890115814267646567871275455790659318401008462950240227009613136333656205415900014148125520301291864146570093253564489039819245976353506514776342952029502253165607855345980313300117197329831827967970683028086554451547122979631339631263833752488489707834580515017883979263702954358500706772590536173366499793586632328782886743241699832396829820663052718865875577769221961980724924607180135991098661636258688038223917908340511808165704245538844220264528359297798568841146181448896713261696352335863312551086115641158962437679690530024084029506631276762447755494639705996141868276669231504355577253594909257510939624058727479077876067659889668054461285941541542340322200827023432820069263959836932791663327065609895438449528579995270342220447354098971087708433532917072273415001954423122699536343789484840180923741043097396262504921741547689150713541222357713811382893109102576082630885450986976711037820120253713134587935326108696106617084144197246749829441500810346377036091577223905889200766891395916494255773360380495243045258251561334412036759862558091799190962705680808588624689117150215925671460984057232058101146898100481531678081135934997296520534598747751208093747518962528613853161426797788028961885547812402934827549206370563142221214515105154636540440900059710233944640457288478298536236179212285526644065238524685465203477658326545430408682326118516520618114350659409676264686570625599269187216358214273722403698607839519476449875678252221708368821852450260804000821797278536792891852628275918346230282716883067245066634552316456785221509028553925771162840752397616747628405128511006551089512045940713766395197515183938153248754649934427906903187651796557290731428998840346819667976557892178782939107169643159094489088207409027919940482899993095568513234010644869235682738236100690468834254179699260177045841840301037259584513065452996915187127285130437849439222989055048429925825320787236856097907564102370296662255355932059468394741313745277629417486284412243241764368897269318264036901631821519237450868068358242192706086419539618093391434256463185986487522826234648196653108431648971570243152028769833900670947478369485803097768824214061615370615732314189322562085813201124142703115583774002441650238114763550001874537920704909253363892052344928963017072173554519782683593714198329450042699900618419154782052327629774621007198010471800653866287035835449231015534598146822983349016232729534738655131487007369018652711778852550726127820002861131506442803825113478468359555579693938328858327402462483490894387754374244504073160215842638103603625160978461139315335806560186771467606104723983151885469638658771393721302090825218466436306551292898855265918178182817431420103791403683820987871701794622592653520677049694045827842426618882684296831340617892956803404836257856237931071412254397388309426843546672261564724640498190587765782739464142675342353106486324298577772974985291736030465188960431780377662404988473159116219688857197294913340793676563349647981510010145573754622360337673596262694409693772766907072452821199034319539258539518714362973552067376318867884113540817184784107564055167954380281907032952838370416629772416542719604669926281484555030871362135848808901144382127125411422722157357183666292944267204665654467823303537548542190774265838920158186881243879309792694226000794578392410803254615147456321882669004930483210169945239709501879741905765858196203630680682232124781998487692537858381280739474908173038259287621516209315484219145947276261459515580833419020504430249481890558954784964126668222558685703275694361834266663625976641441296498521083898572714714152915059641312066059801804232486433615432017547350700292096830256995607831205968065062155379228576375966837563227189406999667625061437695999667389559788552177985544753502642648712449516842055434333256198262901139295812089791712301619575479509624625022446361301871363862880309932839476469132319900834356899162021397803513023265417114631591035107385326927372732138197138715897335158122670425749440050014678284726309033089694494379447999275480111665757085232504594262669986634847637485920174631536578787551604942660986956069268960820139905114012617028799072761446831377907936535880771637151736675936955631988072124929392819693676763465230627986511544736876578128880619120292062236698953667815722691774046441157407835343031094245579103271023568574525373172673323519670243427820841799218963484752479835222229991371805093100688820743601341759794273003604928627699974817304138385411141504942736938991843326463563536598500770590514295455047904911274986604168800453608492746024814158794199032408989077082712244023990948258474086841837734524724339329979244965404736328171178916273046900356184977127844517778757506073910977721844201603703344377351088152452098555868389276110450147354613083008692850963518755435403989842284641638485557440428702208383624726274031372441288803060702772984645281669213292816238264041181710088346458297735404435206942835165054777119847041076746818568187299433386001598289640625043642352078077190533747030720692048766356316859277831423737836335296463000165664847505067945649083416358989543919972956078925825333571387804616616396940352017901344609189203549033389823305541893179849376781236309662203068053530449359664734534338765742260231788635706564743470149844159554689149842523425480534202346476022935778389323204957836602390279593925465126154750254081786692161822442851288469890514462994153026264697472827181388241843647657133312764872626041378044054694268949155575486574126173374116478235579966674917024414260942763598397809454069531530048341288015437796995800126116624388284076384681107715774775813911668107946657556063683661022539905997139490953989965630684631121792812725237293527633692134999158383286146558598602231106363826942887559637550372970561057403102950183027103547892510898781741555113121218549045960320184454032296333395858811944725598406846202963886931077224654500242935126985929778751567132415549935726919620989800804538739574695625339718812465877063595135837834566493022643751683763042096931501558729866048372829865644103346493636987838093578099987398930833079649408733720669393873630861648034192751249266820685499767946126340969703037084970396263861583943522653156233758643887020460628726867462948874299059851695810394337510722672074189170425114256777982532034111972171216895717180675514752726712388756959087478975950400542719604152381010549217824918282943865071869550816069361183782292919299692285277867376962741290492112945707409621840547782150912772528277523444699049990390294363077802819929874501179856895913428326287376664174445290037859681520493964666137144366236476740355360332115106297932386234281027734643291518134366089860272109120703491226943217687654534618542224337221390501761102758099056438326014904712376837672134055346888410897785964181521949130652257085009806964519159103724520251029347020062875933290663218357162963232588754723333936507649702161893212843149400189947904476413163558169910973283736651679853702806195970460295098300721409177912280237135590369864351479400762290482610129301833100592809758529729264192887941064893740311490982843945574306533640457755547335681472732428313121438993376131539551922164471546378518601337484424686973279287777633074129976938670019670056618386115341489623240073421260641308294779378133553468075076520192653958892451740948323006980815296479718240756524049128234674343771769169409517650600747993561531749453968192385460341667015953190042343029011577037924932453713175697904340030480661015937862033097683183874078447804255295926889041263513314606670328170722745661703306146898274615110633394029805031389130396827639548210398510639034259197431531074864728505244625953807444025531339960817583239640889248031816898792010508184659795108384667796648407244623672197095929490737638576701188827648049862950826402452643990124486655780625321388173969784673087320118586301799803344855964002305811698075398552396985538890272356611878795080382441472926767768968569307026757090711421065467373060395936314839739763045630743024705399262844846126238677206784041615273820998463596930198364793849307435213911376800675904033953592339233836327453020139057603763686755818775088159218587628254518617729488705945687728326075205084847417811395896381438682792622917324689137160476131904176687682338689778551698720110172876461047229860414371206421950927417260330038596280347588068096836294887017328484684069721958336045104841552886792356839809244474428644773224316952663129810888973714274464951994120085765557169157247230936953115625655433931980992713248161640750680028326921993866217018059607946909361109665736994672376411096847652938892230345879197700776301179086316334015143746057303767395415157625506717669236830861565963332073403565027790471868482109994825439671089955799510766272564072053259831273256673654314709800281545464622023450357856329953051612809878184692583828459846880331537999268393858411790617704363523931010623021318909409729628602981141652413353122567153256364268382390254751946537948022628087653742758204511516480903819585863231842051987623195051254578092099639978442862491761469363874403448894892978400184463065193295908271139799309582163773931406169005967468450359536914348442988495226823922299990581355008658315380550949020881608759212485587809414174035421607090527695621544665522060185314119607547104469838437812505816421047091206776052294827265855291444934140484972572868144320802725721149903439903940487888018972987529563707179085365798137287789768423565244968100630783382125375166858681780094312424396375925783192180353928127609590510134545933112796563363586949958692989986205169989949931730033715298812352604786822696008219792985337954766979187273135414512285447721583801863865384466050103966880454324096859415080044050217831889058768968518597517687431558757785922913261890054021668858131010053680293416104535395445253642138299190606686039716925003632152211826652010193417944566846353131391190123655422620666345824552546280197294804537661892750331396232110776410110639677323739457181161757449083338281445902747560283973749023719767127916969863533385075046661452379097486947012090309951055442303334325333894520690338685672577618958856035749347050371059512529307071529294968309624558400450934752931975451770892728426400498555618149333433329150438904464677041817707869247282464138813584198699288229629007574074613612457098087926554505053737288009898793031852102761647126864975306966629145236190916187055861365195298840750551174500810567780646139047139604888303676555548436352761049881733748962874248352998530496666608697964418877108478127069377348517483616550705015116615860855438070631034813803827638608319763004009596294045531986752433316143784929722193269929327984807683462518881393412960091876909055786784984832176550933881819791003028436415564800539371469330399368986751148755344699788415007228591298794625609082068989853440505645346491116256565150900205330280736494072674787320131665336552228410787037326185268323336718880118839183612616438120117936062321280762446961095457982672987010796724899243100339402275691737224356426194593004483102676459277716932853982190330399227571718261573375162494260629797629208949229981696825721558155526383863714997099670108775551990897488299195195564662025734558525302404827571820929970539162471563828314863323597515278568697845434255499827080473196804106672541726716614530585539600891136391079924448356457080196723523960011865260234832405457443526677384141244042909462159331588765151634827678110049649138790605875829820924470141764365135926902737966858676650937238799610466109001402128892492538949595612847691069624597697878985169607779011499814953573234692245918730809781381532878798352190328212062748573990171143448562193695778283853812401170078547972889862936681099601034485148644438248913673728326998043635937462046539138030096105504828894610013776856620973539970813857489620235708716635990060834231589996878002808865501540163824396584454362514999647442510132650116938028978572785387237595528539203504347792568580558666997499949805264638612424980396370563678548259779557279738931796752245955455865660475093675943857262140639704918496994526262018294947128180552357619721175662362052782790045465567908016109537227167408388586897157180031081581412840889513216281548514092206165676903758455939736619629725978043834495157679977935551123730281382201467232308064456567396410799209266049064728458440105633008429789396375464848592727812520605245676259400668701171747383204809233605292111236702189517984871257538169386131058960551635374702768213207423809255348506818479429882379901914741459006019762042145311556866359837004207482620145172560548766394035647257573625307781927891784370960570602097574161055400634608759463418555862996061832158983326020039746941250226894966858314736812092222381211292496314505396269594786137319676164344595958575946291864689259349437888025699698198964253963310443105998722988020923061340164233060255459091460598241170281236859007509745025024175287168076594098546346656230050859959847392537302035161264938719056226118586657980856098188953313618386294891870741432492079381913675476441940085336761542832415444337708984169605665762028091374688090574737982575775142578548120182560347800208731835275861683133225501704093733637444374398861938182429191766848110116878466992184110441002837414366399296370021355565044496781294928756371888972444396392580904141167917294253245313717287937478249473273561145547564882781668125256890922868679322243449414365558684474425588101852439638818665724579261681358685857258127894019485426148962654650805970891855982274567881002395506329611456585075151395768355496739630076177534160806971492910344791184605612275754957410917770875903265742363785075721677615302723154593549808669636437615852286042184935189706411321614464632427736854136900636354371723996270222052223630339629536276121552005172870197429907635222278200159278395137306185333044858633430468854443006214497090275300209346988554529991649946093150695244915761193288575708903281223956478354618175137336855008371049177311388369056010139927074765711769703471373511076368913269290483321386198179895383094685965684965245008294695741933584645301396157169459969574897450919835985563969186441732027821506866483757367590175011992335695682239989579203549497538199236757849678880577022455953345707800568294449479941759022399388700274815594012485268346300212856322595629555381058358605615950194420339483414234632030228184025883389691510300551647207290095299297296834316212587113648333127672936100953377839312439023282249211350736270164126890888867520335360024233852468770842552931972701370962750180198453621937151666703443965390975739883049297228102885284377793585956122811088157033435978438269070325400438240055150410571267925116797089153855947442470939165504657069178111183441031668335503909226789917338617828133842988086945412878357854129194949611308358001482940979165031017823749469416959413292471942915035021340448301927776253620109663796709933329912450550025354580000832222590400421391043726008359215119342433193289404640311757574145339728212521606421337437853977299374635464218243619512019213762870693319901834818044847747203891803594759026564398526507486714663556504092194137439649823173967535138352289661272837382569587574836822731585103664659190892883215996097191620775346257481268855329715214003494860768762149890173864872566088596456594784536315376937157266466090785649563006227535351332055242317780672144587918566582481136800286046128034528882918273366371089292484958533002435948835934547720248104951064242287966792897716898513740859731490862436631744666663206166823123674384931833708517706235292632997886776476294313349932065291083844147482853001892255671268697434276292138291498134875857898714334742436074640194141544021502623922487997696293736716617660506091444758287066221750705318313256267975515350861991000241500739832097868425690196028797563983393885305290580404459361442425236730423969681141730899427175726276390825480772068682090249279978538368060461084419423538098767068012587443247072972286072050018220735997192288780633607506778101082522276867940543362671415406438959092386246119881674371798758765497969589944757086318549043498468950845055698922373719224185644027212877947289336036952643272853043046196041536997598165067804110078089935792058848944432162813832950706573915918403026163973022605015028424267388087253944817176936861596214043367197485472376805623606178446607161774018679231684959894290448792800420466178331310980849202421844393683759357412488780842551982759321197978808277759798372640552778468034228658426825521572393763330751347131634586571954917665723927529391620446780630455506129665730848051178341475379993956218324954680525865546491383681111756930292403262729023991618395060519648854975746469343383741415374742205394035108548587240628989358812099787997638390688558831851274504419538501210999093879162031399143261793042916734329175286965817746276593482214208274974390261802417998135331388262234831526270337264959410220530232558287368780654167605095883892727291052505578296901901378081105897923577055959142912631417374691234561271356054358490953680466965772818283672013946464551351498748297882786883946365376823925500914521502022464383771971204735369394214978535711192441982785151509702352430817300395687453298226179456383381882821647416472430779620153244606130308412112317560773556609749837364374911509347649716056225917781486679109105745686437782181916512723006247755108474604578943842712888961300159723344417711903379845340326635736430910970234574376051764624226303503052622928822469887661067017688230543948692190955357002780515226447080067621618293378015683175879317711308234349427695833189486672866022299014622610403055962988291377839998955250012444943172159410874027325519088083373797220918277165435209497403840622263059980035273019905844567753141600569476794752175902405377857436521961860245305395755900919331321986493649685896005659574054260348058983581887947401068884306689558161207949606725606914829720438016134967260780393331020669690410511722061778512128443048584025253692425208509327246887402725316642247947830709044461119304985109663317848712522419698538883551231020143690954750369180748417615555787435648166201316129289913094093153740361224500115103247181872877859676625548701734017633965542502611113830548153241543459239557023547712943846987127773617523016155414983977821599249335120174968257316356224274326302023438208598929490710507661346358457558356726911257552675472893077865263687921334627135915667907992720639704173847442135906585251005821346333934906749964901813262590357716536056943964842087100528534919708074278976485198676427092667454876756306920141996464519481095159065054369272519397748069395425527106314781071997785595626480394392199543622909984987441002851521650595050326189178198175497052381119474614373801182472158725058475440647022411722052736629543530142051223292040977064736299104576988289926721141389593819403997700342409384209254744790056227143629181252158299689151629619689462806179687987477214324658688402147269606418901093319743600727108503583832940855912394772700483590608358469977091053941407647389026332947360362708129452888140941014817892235870602858789532726740722334257747727392424218890273917336291448183123281336902984788194608332014674851936070923861783259618580049319643537181111102880122469610565404239308130235572649546905842684105405206714321882834718049604632631117238818585846733246066589773040113980473545747549619124201414019331006609895303803771301857154660414670226555579638425702794400477979625932884466110701746164496727477818409682465109149964898111821003337028271758459192513539464640098190214753124188943220171588941516820855712149107783080614308831912607224345034019758272351012905081583333017589387602223695256763485331957431261734426801349925948556225474461113467352440379656264770454137298442726163243546424241445710980445537725618367983184658236445858418859128253625996333350988512872331704959934928229806490413678839372963502965990561606820739457868199531419279287338681142923099532307298339883531086668480349192594091404230848524682504606867378462340482649639845322295013695647494922213617234578579862352075963263211932051129549640142649976711622540345175011722519997268838200132011193370429976141560342786124721090931353753522207068485869006242207894892443926028728973922658514147944348652379179064383951343610009314063655988448193318232265770633185314399552980832120989833690157704389576254957146319269416084165836205722926451641623177435712264349571273585167206594190646621504567609264245290566585234821130125813659385930503752697899549748534690115372345463168483693762178763450921544119957069496422675630199720718561157069263298777910576158789352195436577187161794680002966309073318920962600798343544152656526520698802983395731085991247132847735970954727929258293745334696683737986453226046818777441817186911918674532438889993644592059904321236127001370092647666953674346751403079619702590921568199806405846366275627363596984749191290095047065427056640420887863598312723718002590594633111255011065056724961182705886456830555353519676712450628382101518632048045787969094709111162530325717696217957826088704219641355521441705005761346989047228990510662876359913947555491389371198972515734086145836277714456167351201989568990489804060553701434042011701878244295320157550114565690534762542592075347225952266411318298423774747013136056957824354619642548670214242358790449685719867476345721428971628303094529913981470572618597918157807198502577884474793649541946636479125438092313792224274790274651745487025553129248385429885208683805903460304208384309822065790437221826929157412188248941183240085645827013329131830523407731529779043447208367178510217855235821143833214696757029167416195136651191654407833933086899424199830212150307180795894951170865500247059251217327338436249809929499210390057681762294192713194250948781686176515906136903465540605671111368731821615726531063961981186424221908474215415367397009520522616434863912579196608050679610939301949947322150000246558002039715305676972514164372626424062502999766698021929939597445214631759927811054029223095509334339566789123284045445578444979596168967096224239539632374463816620048598184814498869148006071489707622867021242463340549233500114848483048733269308783976448246504944284873065275245736635718358148255841605875093793216219979406974936561340366054967615333209920768477789720566151926900647350354509798222134803353847290095374285432250841872238277719484126870098882664344920938236166862672814641969847094614509805153205867926461464301239526026764200376799892830876233402156137670991157014354801267126835443634974061221867280281972085293032831706588897958701159969121120463273487721166452699225868241701324754110353325706601912379470482432637530381113007838267193737416850891098199236563207782756788100073332686173288994591136654256247826490249028836863861606368449454567548633929297023820066073836024163969108184241801669101879843973068018947910752822525348717297828223979767204459767659113489512260948561046659626298445621525099689691978774018642276525191660890893065134168585379223298479479230530213541182973743995728961270605924317073808099657431804425617006538515404653176865595983349597309804291319746208180617794664232294801449364235888111641186737936845330577699870954206709208938655379797254823752007523456720379166913711865354670844899485997308766476951427466712893998558857844826476809065265642250807635614312278519223994827275952442087779089028912396494067502046489647630913313910204343938348953730861034567907783342601067622770977059254082715470311815523719880398464389448454579077550286254149840901993218974652351639127794374112416416628840058768658480575937551866244718860417599881453859216461154418090166947573506970564002188321241270831645372810717445191554947307617245599037192957266235516131286430392505634785812608601969629379382025392530315755273639156060350314372719531577461107895640484037634995641544625453209563565053091311392458038124367329376855881916476541363197155123402150247656270008669950491447607846224198998410251227267162912087072469750657928895707836869184751200465329772029094585999699886454028456503414980682917586202091324308612960640475228711966834754829634071993558864623996955933989295208624237712983328175283551169445810087230526694457067624846883920246539073593970389346492137069589518255651735779088553633893259985318140390895767719513858819221214333713573163349227506344397152962274242648071761459408839442307389121140147197270797859206185093584040288377615059475095742573992749364654614263105261333006671684400600195699599779806505676249944537485859325051743948885386118957227948611871357064235066856004154082226564321737605074358116161153183478792850888527358470493305138209115158781307772706301534081988504884786211420207989745276558694608029225095131497371086517857948115617022568503903334897104477953053829797512627832083714805576768939870852585148960694752886033802156233145236483858770422379556150318135231277116926242788242968088330985251925231588806751502868555392091713206579282998206351539584562412294023625499011549099925888110837199371744404614133172045740623945973944037428715042785659082668913235909614607355165323937230856104920760773215636660968931341108957868759419756074518568171411591457307485124551482892255667563333115027768682465388511144820678318636939009191317516629121607832653664501812110170461158717601858057515176829395486894969260619383288242838632826889587947906921906485355890094221868790246646644314879355995275239863472891688668724230536829229104402508268522027060309862461986628570444116689332374271850753285099108597871551911603447907820030890219203715260591036455957002037387316971266363954810523499685191334802146214147320360165911480958394515938511186428977851944581512366016687872818515565774752214448517435739434728670251373018775023606706940526665768599768402231102364320187001431667589776332236739956933888045573894245538111313882522215794563087475835315568356834050096654009144547261534160583249253705078696472694372578585204389906904238425423258624993853214591011876791285620205284570268884953635459807681929599108718066611714490534848461609765327016789815620978530288330550056863444076874760910783562776669203147854270305236391683356124701175101532789920597679585517784680821458320803687734023597686208739335533936971457115576024770332206108213221164381389492606208398649158686670844317925219495727298053072028139787018144409673443547929243158240147100784284810291664895380427794417432491990774255628627074254896023883855506825632646469364122167179624270232083702484502434303147068038841142813748290830035992900713762165130127610022182622169786068404370331466803953562355770399383259481180110625534411102174305624174544216503714703059490856430762192391467920635237307414628871676374561118128643227859832590440427289990538352137463120827670109101917815234449871503463921747851186672441345227772869438705757163771860528196021823771152751309658887772022988159038922782538636450176703936665725315320144068136369314591037124888005618938240937660958001234653803813220672428910098947342023507700451158358243533192454031406078611549182594091471743694780673523202761201276597254381401121460683492857825242882912901083105696363205465640928281808195469571137720048891289673870881513254055494794247449798357939236716186520214129410330907591134209109821456809211662835424915105280513225289582681237126118619252228210018308075028539156760765230290495547755877816829694576376993801110897990621662207476301778687155795925384707890998834914258240729431430509291728854552219921606391898092340832372347197782525231976945625100744321588243429399983972819503921631946777800816339508962587895703449250662664305365891040620435296270257610438887701743860920724963745007955621928120272527779957567941361317377919666033021432881975146190461055582830016596720764019797314544132990559679491905998645746937080627211786221366646489720608185292861272086448562436831990350940441866766921483283815435130685013041791197219631538907137251191674389144121836340417038438034404002459664010056165441517473082375006855917154019047283937064261865205897605330290025312876627214469655435496974381787195936813357410767534021438802987219748406905454676287853444877936891469233583501924452793611019759182004351785588321333028477197500934954099176486769819657535468921038701642254079687155557794602988605261621586935316800558750907814148331859525728565835645242524970675351908765376540721171440779124233943266799442563042911476208671119416064362358486844503425666212816860058098695203502753913322594282579954527837295246432352787082864934735492355163668161743727953310662815654984987052653151166609975983359393099052278498433288710927114556093177621839152502227087614369525558786630937339568780190866552433350939213799491257617530669639559597097749498079936808221248191655124611949459869619841136158359238634057281986810149374070949116913831455710662174804006228611480173262545219161348099146358783375867112797376967907540703229919939358393598498700540186180045960736790637130096592298759589243931590707140884140994101433680383942499674036945506381057088328551733753989765548238310916626196546271130023324525633836215681961787367447578265898214030817354079512945101999345115226652181498209009722402958487535798901653746622213024661300959031574592961268566414734266525498868077545471490916658786558842738807636400132250718626457854326790380086804109505097447914960856851731304880046264445999670967229624146294258082726828637865424903585187904081164522025581818171760214760921997114294578650861914865694270641502572873936865744548229522162797484841362955108838652900346896642791927317585272028648692576826320712993305101817663596298142703409901157096293865872904597128138660735364823657563532985125707481876495939951795430482776765870048513661376474061388117205656243792259662109138339132996735404544227316151696424858238394151761478543663835010313322219893454299837213503920609709286526047789675596400134865798166031994240476067436836039217582196466324614868777967118529008355080374667039416922027661469158732197837557291168259672211426180689639719449959472473576230676377235128915459424103985008862907528326667622065578808838129474205757057414522246693912783337605243109517272092366460035975492593554514534942586452937400811093114013456829376544458780345172649387621400421604243984676419796700041681647505191320443591713534027302643096574359394681512857014550346479368018495466348253577914735038210899947671002750548061123807496083699100988426083264257501412782819975804621315114456588079222027269154406199445756210889593361980102968324567727343443032503365277231623183249669732346332345945445621835658524324748071319098706969565739996825296251856088308692683991011953266094200884267272033780418808264404650517910144435692193608719804522385138385285028356132912182218715165651691114197155593754771218995253600124423822997795311888457674887054197981669348945452385018764335173021093075135348134926644086694465345750783172449250937804686911972952932622997364342681943537211544717700768851530331280101448808489165683100721367050324896627918950057191153805492389665540989188057237079345051191464046703569913150233407254525500466707437919247607131696802923844200490658383629704157843250209663788423480168207601040606882117871809558564303492426092459834159135221729446391933546907332116309550932491272665865252280593861181769308412039307455175773119713869607793311343496136528811074555953974010687947714229347897563051441398305077413794717947154933079614780646324667137920513575800275399329967385417074008246365533744885944246922991085093572263145677969819357927716859808481750703545048981070817674379729517673690223477482941487363559223085185190071457196619457801275970976306450655994976488941758893068641529778269911782398701276764615103436740956158597095193145307571102552252272153792102247884846007824088979690427077723674137364885037867771958193960113030287764971835316380289168866584096727168291070298377565181705472480052340279851038956951519659402650065872682100729078906234766687876315388145488728917659866863608791098047205925487553608643052393710119835620401732995263462773558331535426825900996420532045105261631395768358029315752094993749191635604358964061289966148628058343368830583431660755589491055997348392721193488025208462672085771918059249009319355729356454565606432483124716358341596517979751764331673519167481158167594886689825466220098534557872414684964511988250891311542914370077009592312647772203169600881382636725798999045238991101509347585100000173927280776707596410195709421646852284786613127092543004053256442490716686244446251531358796764580231957538345639140522603586951223004652949209743904703527463568731269543390553539304881871708780771832514745379681504645578126651630063728757613797058957907510084032497244197997079238120804744470025349232570318807911527741334996272788988407249467444121971375343292625938938761719025420615135635880304597691240259854928090201464367321418073980380770369719554323650345782948990194606032729102342451619660035956901093085138575071181746055622996216854543042453625467740183025382707184889391087952545486095770141059713157562032258696334821687209841279397772346176289413556586785495893395239457180396967906953303670713984119421775182833972251939279857085846680514337355952894296004028188035876699796651806790475062587399217116669676197668630202098642292508286483534052763940647423062128196456310583586017442604556169485301717232798052418055752338801176454947764095053355939815684693344880556173869122487877654407528344879780607327904831800365087470332642254190089160908340578795882262513903404685638286045677800583807481230651707171178526108853236006599510214676131341838396332860415215999135301992609173198163376632929119045353740644821108945765427861471169083975318691982884921065696434362809214869143598582575719427038114027259304904268425950123556631311860608387021203519338473182274387630553149966169080140258338729147006222478441473085393002043689365154007458182975783620937978717793751521665526856019579600181400851789494747259090650301816536027077050621650317429879549500212829015217657551491179195448920976945056579463717081190544786854126298444427945189184198900689690349804947395928878348527184954691149205076893974975489403006634339734049133613721115125591172591573846658622276819649819360327925298773375205454571417408741717766692871489265423077457838591354722849440520492141462897190185162218045134516899217464806238274483843707444752866525741360551945274241222244400513432311645958726488750527070041612331705223296415312857823176891624581754111731934413459172300975652466462163293061845709693268482853381159064374681649206681025526658408639277547322523284246377233996433774425036087051724301992188241025372057990159211762985550601119614835722043865328284143523682452835596949710617521961616127328745472869877917634045798647891123702585535844812050362534674702342381024147007834730633781093592928083807431085891971582298784012903109639389834755732759497933145208554666849868305016601724349214770729740225237501682419221002783392604421402187733380861208856142553051222403422381994778315363084014429905201375400048622250394663744417987451617588656395775599125072212902256975917248270734404369736840559393690212190695580728810610083715467873502690644422498590548331286311226626306412286441474514627117097688180966653123059376570579867612093508401803815796712538515498327295669074010638127229660691079580852679327446280602425695751735296496375828034441556564666479461799877319209793111876520297060541640408677083273402069817099152684938045322141065028503593697680736352311376185670557593948819939600852125994197204163498455528193236570954716619482589345835314569198177641372722640213285141065667181713426952829464125708441186385518001289632843693049067608133302151360422942649068398051519904075106948773780272577724662080082278433545811764559727488110948393696290012918531249314397556806818229896338892063325757693515311053463971714551845610796701058032570862710413883546348119133145639023376621744346954787685751774818913124786940360721185778014336701229660488231807139503436032320178179898250843721685771585857617132444596551803113460579301847098308114631365573290169244180046660694282653099124126756076080437454727298072360536763509455428327353854752186324734626939110405148362119355433130805551538676337426339526281585011450706991311952717446833377769307923299846825251785940465368687857756861197998481028331529309381769562353291956481606126518585953046306856230138027837247356722652365477557373068536491584130301387692574507065728707506343798226884233421879346783409696324619820483220641184808935748033772399497589491532612245459161227644242115541981079103346402318380308584569565357931425933071347722535506889205753683512784839720552801852346825913457755106856735053301061663888198850228707646491208007897581972067584826278765355939692057883609927489361326748501655383420478221580930738747042874871089510039370773445499130554875084340647575736772242763764347879581491479853902569678027219538550846993976699754486268456123090026901779485165064728239027283931128425784133911981829823373271259421402111319068228479401737152690940193772174830314573864886113869790114712055101335306219372016290786869400350123052427462526565897876555609783203840194717713763076229796180612751712507106910699534789512199402511817251403850717286699782173236847487784978720220951348477399018565790838472772276109662121037276412778735746156966306384466265436800452170775185283935291662601403619558077894697421374093076440062830465377699763556243460983007869646391083422272991745054548197001486978346361385208097551261266251598110926981592238275277863352555495123746614871520341236693292094230952214434070040224854406410853250202048623623505467689320029863954464603056573721143122195145652551034555182308925004755173596236757185199071069185979429787504502520526757030568031249877962044492085183813442795684034754989268247362861190188054417798075744132880257737777794235632341055911454806642072445659816457417297430787669309010390258734224976948630002461062228150125219583556653098237210957383367622520481710955106614734843613136615061155965645720234435472858196777420687396972991738644501854242379487784712950612052478266961834406857608833722809220813019802369784591232133472363731214831678314768989317752751441122582103035572128180586940968191612429516658524216633724558778506180202774139642230444343498570021178795036056480621628343287173556186962146271956541487587088896245437519137159078845517812910388514190999021022441365716125235161140062001441803455405460075965683313276024440310712066392622992048303188359720134409985210908030616249661432095931733811220270493615968510769192139131343297016945645690450801345551190181993028413169441851123488830469122444530317115315343995572116445522535891464723866372451314105177248202708276390653859050196642216692933257239270170758386343952679394236452294262635047851507731059052432360443449575515463565154847713551241417321638301894977777576975344266913045629394706870472662391235255651000251662387102790182680172446137537228795342398143180354202704315920091479123842393682261382919655562661710097081373004466361951849266665847671058968804071763138545840735168874483471794313577026433675869083443454171521283242091063991641293192990361709500031925572564357283444668513776490647192916806250994597828830011693427432657080612553652602002859655510316139041390602935399405168391232969795789515412305509808263230094673804214390498681391549055739813395655170423856576819817555420660430841136606030456329481267330647418800709150415863408523159615488352419560862014877057925586901182815545302590961214571426948574241294440883779570429920162252404471601171886704958166232580801652580984943140581184047472159063865365307033895502384965856897091467396524536314182779803090762189633718265541099753370510027011083623154765331230054010833065388172322529223948157811363413507220597654696556226511295217147685065356398630778131690853466469801643318794521562489855706178984364923782256056689063896061061357183917983351744175188509002930222261765644338961759361039508442169039260571519790199089655625021671839667149248787616010095851318302663950663510082969398680720710781254505181955235212601227047957613393752341438765535541167117863410508104511679527948237367355144391877962964871173527883155678548907670612422087537608580004031299940755835685681718104337506671296858321438769844832787658577861463543380282424325225064188772773591559873294144551376972387759165155606775814461727747984982939394121514816750105948496588773543725965563447097282214907039025895214433760302414498470306397955606418012420070766738548539896714139148463444635279674118078664143111507489476020323724142260769518604803950162125979645801581452776075492137208087003581167758294623453703525403597377348580702866617434665925820151524000874789909326129305046244208003871161104949966341370468297952067981419965380803497527136458422007099333078993085258922798918027219023999782437969360784133818105330588704830974259283979877676871072865721162640005687264801028466201003540318331837630342067589220878635828049389775338059527392925563136889079518210791585101892334854465666487236452090139510153622555480433697529218063667483663896295926194116202001425018107250517729983066537057210819926832770012987579848628966291723375343557519623455578861503236546028309706701726834543162097946745527408009553280306103164865432604994885365689952964094136864429415859334755454121723122795084236112292284888365884194506255455137341030416232901966621832808785341138256668234214497865532543274628302326889063631061978718187206794912677640201602453491874992674559917354162280947117214433967441539908311597389603739021076508116034487127741668838969830221054912713582995119520561929308977989006404209256021904411371537727472349455960729703903598103902283911689617876711167346880845223749906524915329510599510820744186755571996474041302770561164094942829452081448170124924133137284064600253407932747678458268933373132808127351830053124721408161089051053526614164145822044934014970063314235981559036544833781990772888082402982803518187725511954221260766126732136797079085091824663970165758871443885094656335310031888114879064416371243451903867120734746092400288656104676076824590284133133384866177352493980706164006956028885140102456793146284475945386143331172815180895068586347871855643994339128033237641798486109458540553932779745146355154894787448133529804886794701754766648067436026562421128878035384942791577505953639712440363024204381606350938238012453969090110055098948856806108369243232507775562046888144059952728654978902875687803961347632036802081886178059907794008109928343530956366504692114237018380741207481544401842179644242332468441895215785338879554665039686780514653580842585109925885959591878551328345869414341355282989797539070798980238509584924134097873892931922078180071713528746639775545318546473173241960806592377246088960755017366202667720094338741681212256796363056263809716699858946114456046092703613212857688366235664316941168651616279398866781844786337318905800394688310533488267978089304419743357907890965156722292987928759079460127045785497352051227339704750020826911242842912151229103687160353009639559482494007711776034217984208480896906053775276900788186155686295607643586254919150936299040085722078716119912242309218865313152698456956745258609078736947242396424674187595925530835527268374782082891734627983338407016729565070867406353006480295879939841056387342129415766514923118815883991801894961605155640366356875605757630229275831154456421251096052749111842787310542843981050384580749744110906653067482706348096551520672288032419805160878726526099243107564338797853611310394813206960717549972186375525888793957218441539144729544410846063667269255182281935455093347892691731187904922481124344688568678453199422899466381630369292960843628881345433198327537933785532552339705095750975917654821289116129605196739872131168896629100478375226353814953937598200591319184748280146967333869278134828540216383961648563995202580044645199034511672494958767481486487619046149948409169722499901619867962279333472587070107170002780804202448181653452638185793480534640332421149149639517310064717790178253111150025257043927997578712630655166210670750702325275542884904682558323956450505545229837424355434281335380140249099392947039206376531440992715317012357136298314035474791260183774270076299010437576046660434858619848236806537465035380266209427462805562631988003829856514228340435725616311510667524087050949404433022813268056217108186558165517553369654368088439708691758653408635929285490485629663108926654453312381875343996591788645988522126865558216633263799305741981550254700891318216275048174757523249721783266186617289592169277158258157921190885283901798237702264999279730535689676541515680561138537596680147195539410065580612678317422363417691417053420172019896425386229254029898448376707260365434455806655547812742959761168938410969102771777345085229886867808472923889669263834102444514027737878601097510157130513913693480069321200585669650358306026954996529891532878244741646837923672054406016528829347941494340082568044201575059881001249901252713207011079763543473443909819362855883341378042501040770931598730379759971198944827831014898302796361827971745715270369666309702832057802846119193484599262357923429907691274436128485735936500183723706281282409776807763240795196453770239250977797029486360825467808149958941061576563208646530893316549739323889897301955958061484856957808917104990787605463747191431120706108262746942211553829290888899048373658914440146095896839552216457143358182893848996735846863723868176857953313798063662593750884688902764666657749742499680144153128165837851653855750711303830983101361616149849379166073240693037206671081460361242647243793154429572192456158911771875022760809854054397618396422326128041739806032481458929863575098753219247661456714086529220498976612022875109955301666062982147935268202877794650153802765558408820747406585893978360438384089506975988288374985379417170738594150974076751385951304589296411512049162772369410149099464936424958348543185932481563872200950318556042872776739550273078989673314145358591013671717407523404129424861318957399020427005342540714737895851388701729642104428830061598173061724420180196998236929575084780739202370817295368363882326243954775526721487623698080851389655271178746456544660662891674252918823204117801029723209562306477191957332784237234371583648059837223175881858728406343393314946986988381856711423834448664635000383472585830192201827548263356839427226465497278199380867493606008249761168167514747320548555092145379588040824296588886823117464818134225923998358199054426388314271716475068196291697698275508171187455012920174834922999606842336764073541005615043749912160770933713367630710507249148712748344012938361954029510174234547690368954070493714279685177815425896593970481876284465653558040102688200124451487831849451166973350605531073842978796910093215711532077857521349520279617846940711678487539922464256395588370502616828692476980900048949718534908919131341992763975691737733854444074945336537029924200403239598068500986265627601023874873861529531368516383118278668613769571904056415884131205609774728522214505351765515942422971323985440497096653926498850492368274558550278547160688298413335515949548130451451128639684284870517212523761299817898325943172082944139313645319675919837598637735759589745815091986350194828761587821597988374139231499352596427581338239267567587652019425402109744874323052408793347594902815182879145154533519600654331444656270064959448149655873315311574497798307364302801220487629125204630636497629726288170009134512887936710394730929212797669868926459412834300347946128568177929539057963708559279425812151742907735911127864251524075784629072896849529966138656064603591086058147675277033257035890816375832222464560045244600801723269576055713257969853770394886548461646719705300800732435233848819717764816497224267519924296524271659624080821151089297328477633864897128603459090058757808849309958313862693678574568096770488695084519508305844212518979548142473789549875143479762882730178955452768601219213693489244090918189063803602549906035842370842732481857716277242152386398475460165999899087450737016521512568165628166392117806823367609342134102960188903576647579059129610426201952286293894330892759782003575875615262892078621414159813298452764165588967968449341764666319862088537746990020324876089379961922732215770077196155750860563620426134213928274022076185283784438365476535498713643117094754193999446273869809644152842974395515195059806519435196569804376631876254425644670173001063816426396555308920495705100549571005398053775720114443993067823862297682236444376505958513176729690972357508699789663565328344597775780257866532127361227161982785270372934393652270968309213643233925442200327362711933814059259584257043603097932542663648038084181595591794992066520536980604262026639605928805963320166507263381317809494727039516805464901581415348543912434634016544388158631739045254978668486454852667312405373220271176314588071985829414948777921901734051858550779677991078110016000995179431050644898220463869361402278992590579935393258701701558308049438669777049923016734477406321071953170473704223036558649919110830251362925503961165608192732488182726704796806872392705274074651322240348762715599852152416058342229115766968630610105630091440663399634796905090225801249238546351872701071611467210437986100990162967262905874719466830342499455826028409845556783221748772936998763155776601317482247719395549106163004372608582880072601102198051306884836050956383011237863542398268559162312177693991377143010842362541919179922727968090169142868712867583935248098852033106329296698520535254938264107937378663099471580211193980879047617386503192190233901467157342641361602785075881746817006305154115437642699750481668335234828323239486090600506068931274124442442595862873477441962391580372783088012901929538696529033917240814937814004937683921500197366237937686318780088381511053966830595651011671257107584706543941015457481640308614579749238164828501275784565664231346894197429903504565348982772981975491935471224688819224436876858694916344069507906685236128512161560798553785510694765388183659219991479989375813701170061644005624926968284598042830896379677655914081884534097849730929603805102641346241269925468601007188376973595825814548009230998673413458789050483677273802965999098319626734148406103624193550526667005055442062765379675214092262010746998410250026669304968037984400128406033032564045391811769491393292463736975643027287342346756821570399000337151811937116943988137157119977722990782856631089884253503569765755224518887004453910429231464708741715464179931967729169798105197979492920315411324837188315614797685756031397205469164948846313467761107293117676412227334792548633380828252426687060813298869114177794189927291670002405607446771965603683343879068515199615670562473298512699089027328200140083697757563540985676283400895289505875305541139549295475063971861219994525429332912142777347664924125899243589317210351987150660385979087417979046303132061783183218019425435630246491258649362282300422742038204462808768342741507261404606792421565491594066829794660070049410183615311791778157237077813197631542265226085679163555698963110305006755066057828278034889241160289088379443384110136745419654562578116421070472384971424459559651427385259914624949289583015754148677526822567604155619512400883044650454062224658495274245288308746543201655491393419140355689191534380785226208548581184057037664781946390400465599677351797112858543844819508096210007431318495717726141418013820746113601201388082151814757117654962667694122894063544992867195987965043791832172222325916097830300054967024871356632480073390651782813184318939120015310546090709622931070339196126705372145140068157879330948754555513390242555980793681757794247137861414233079249581542970514391459171192284580169557228208021020666484681653393178576282946309061050654404925840474060836037910330392857984772716648675558728641971680326016586325280292632412912343920005637539778764844922140537385069160605829625769497411274635749876296286125931677438906130884908142765243946406213347345286322726280896886387157851242628101015085004608992982909809213463296046827347078319692926045210152887191022815207364568010983595684506053371851047930064904549066194697725593218243761031201841609959194673715062480795095629368820932129544155136760277959856782673794369744282944027075884364692410295761819728720605225966313829153037196149014278967348928398232265262495209939516194237820332593754626013510336342091857014394764389749655668023536968350088518881778665022593434241104743076227863226768436765539455000464405984221001188816624835264923989146092107339918238697638448600273463296292861320077702503679789078096655310053570727899610159764145517127698150916662463741986096210476728653500536473864758227640800133751160990791673646965898160861562651741826521203334924071471657765062688564430497279976285149124084415610396718459590958848912605241297025366630565621236919571359346793892916780541579441228094877421575943761897390178948747650164679925983126596628968349342367591315901459825577710304840144282516003600134185849007844870063919325875705113726080647295668554293755674221305535924659614493190365608131367752136697426709854352032880848160976283144009371436775218119578025929761901674273650102039399457356126768263172793993718079491654607159095376561937739856542583019979931744221724880118878200154895299027158138202603362480088033775754876037873436724465962967020277948168458204239203170682253407399615285777433149830725227910017529340497925059466798624566008446612503343316617326004176886410961595048876549350432265090410720242638130245666163102145088181842314607906925222345296019096968114100570926835375581499745847418914643762952100558788317503821401092188824268331911793261164382600699304163491385906837900039793007914848578480028532482175812756777856992706107711226254058750024580293595055252907922808675427552430005063036034312648993171712032516782548875977725830657360482291083300830775223684609039171058568938469627513098662302100589024766173821945590737629680436098907759117441540824528120368050376604885570275567647282703400698170605790141842535684063781187606440773925313101123763204540881084453943165588463415027698841328998332676733851008515523856061266745606513246506297584450530920833716673008628052646431038608332729750972596945648718683422532288382882146853945928425449187210658734317069845222918524168318756185253414743990104550032098809337872423511330976273493828357254809010982775583907462495681734907472024378466327709802688948760986521823697739174987966967095634775149212422847271929861950686590442106187104774161389127617630185878410562167097368452428500896296877554563472111040507560000869018970503282858397769307491415640597442844386277339421383375475023604920112848989752804099193861793849705579156730413563787576055014380253435586222559448893443878696398348829404001280663421082994270915415827603907190444650771866266584712431814712819071309901555093303777826336714353329553708314842196574876853034404935050390000213221902992423868695486247341010189253951426659692115397113608006734497627603887387653517289523077341602457593235466386577616707752446298425743878783471979121317963988221399610616419402543072784366979895911482905725566935811149745874093594076230710899474028420297129213614392164089165535966164532890036954805435037429087461659219050963035987342675814217374664142924752902517254601216410531000378050246916692699170825860062383525607946072609643670442898832725509797378209570022844994742009482648398156309910030662066759483918483072684175264254136781551619161029948496641885385733769863346939669627559616143391668190074391640230046355016685978240968143532927995513248259079545747303835508478919015497459678599571826833483448739603864267078836135731909616235908791484459708485509734756992834831968404015472800699910340978145529285541510888991062209543133883674368256127881215531619044819310483847029546179991964081524409344576349200848536414150252720280694007290270042869814373207928102553645972916785137274170337876242996449989397788421259048081486192213869329458775674229481305280503151457673729140660093598528942351397295217646029313574046021686245883067573382564041859252000960480219477681505431636683573826739389900939264905897856223475932875829027462628809653367846429160715582549906123647992203547859128148710416215425886825254281646118125868019643604920415937979687671307942074720118713966277141116978192451543845538482147698971343745853107986390401585029260987830830854432210674529537345232107741441978180057799909391973045136430616903602921279062497300943504172472075515582209542392345390160172242252009877609645429490124037438102349824085822744312316639311759123196323856243206065116904892129091458038878397328297344605961748607347252035694872841082551805515012365213732530616327952854580294778025333221140416250523941158109886595059199802702743448599993406307454640797880196492558807610157821326508750808270233636584005194558094356218998563527099121844882597483571391171546422842037571796709903959336076969271695027597133873799367896443911985767108537055660971837847418141725443182407968466819296041073567017744330922979066514008359994826671825555796803199809805623238369949439892532092868414705165994093905473695352442447491790424115255084983103484693735114992640576823475478992360159298531687838817705830243531048715396495284254466650842196620364382128157813060236368732566112178368010719742440847971715528726916062786617947935166477391790669848291081534515768303286645189437833260237439644834970060702650299863024755315152806466710690683582352180951603153246094815529415906426784377158667050300833898168909385363260019752519040302408463957067685757373062535727359438656142783948091409415424099559081298853976280174776960816692563536538975612125654336216664633176013657705557201564152885079514208867932840744210000059153263874553691913771762008564111843274309354163215008298703404959532328267544794493381683384214119608863284857476111753712973722678970641591545087299272789759201942076661135716130876372245783234277833927034972757070389542432152315671553770846252111698773922174774325950956170228234433961212384851364888932230871681456462578795538829803546281162187124462969174212946997322060278901445854836019531270471307268103361127551717446140370897862039103149741142105961483209265905019138417331758826029694098874926217219074442263522857286559866772065368620332545468943517887127702958738493965326766904762066127050033584973589244066346658676112596472534946942765541116861525772803165967735439781150910737026457107064853117778045437829568536347398528768594466619699398691104090817212483825858838792084593725331320249637116440937759669091849969460783579617311665529600850135726292718618319734864387518739756867867378935623786988572626611166998411369618590541718225634022641304044847062115428215038148002833913288270251631276930049696518952562779873685989706528652960199717619009359457125565994089857115463309904997623461876599470103274421943033500132377579591720423985293902204875542405077539997624176739048853941408860893786138073276953731157651365573569282820248430806228351380951728655742732309748491585494244073803217897490330948601646271111820254010665906018855133669807044374120078192557222685386275043436660512493801689238771053707896725032383535872884392079391405341975708407592287054315062625171600440586902517470996053481033156538141607228520093145908869938826412599800352801215766779338467442734124633068525004728811272308042014465288527826908493421032610816381100773690781128583942542271665428419815707214102337031716329077977967030728765388714523189739792223319013854128661861460554199860686789220130728682869105730541760229679734383272623657913927123015755199592133017512528455642854192024362530999391116473674702264477385103442020187187104952675523569255009861055872934622911917940883052501298945609639329387880640710490652802231115044819611525866174204098311086039487158923178146119263689290402532834498768481122021989370949751425594694173487956539730022533288992599322727678375998492490236869868946763800951237060507071897316259343454146023005243714304083799575270883719093404066129990447963129704846820687132192550018741741583565045643709979717972656686832974339964476519883361870234256526863858369093868810905245287880982964575193718179457494811939380272948402593258491967857018683621852918545522121181987744480033043991058065076186350153876829641176619440723151623041873431654932383720404552806205286282747236699974259713337878903740421560686192543718115933270687582097726545087220501598363886436788697192462960294972186177604080264034028457817313710849178967229318066292285994977391297150164453956534332484800543468664899914710084941537264062913486270937526129191109650627867831041325102921037142714850972210073214298208769973000470242014471899993624234931870636907454200036317599593062983471528768049169710704384464391291221226538424768242165994210646191513901276540400365639541483249838468807968850183571955059886152245436416842246463940012905993905796356333649268358305157451902204822974521034793217731400540800712902222311972566434842447665426208894136865903594280210267396892407553432470341776280329684245902003514842702747219128717512971663713413194831903051287318562336612571490060084223928011890326361647058196775218680869941380556016290427740341411956068692062961327360928580571280243726457894399731547608537099290189612121069182685482005357122390422823213401727438399044332005513915756925623514235287839450701359787121356911650961011758041237521482846099399668358814385648066741247691956953137276462817319917320754515291178737296008289750608911353704719703080576332734218371381294625970066801298801456224469933143825241611536891418873583033731438520079374646161299546994906681852252914095380700724782759195941443082556714233538559170722012690762740634175177067121283702522309284139409893252829748299588813833024618500196768126169522577548777582932586151921618452923197305035591210264816042805753544672128085749549950640394846316004303081973023089094711019120472099941016724335472784942453429274712896848986331837322608154900039399442515628847420912045242394432651049341231756630328398925958315988608018278972291967432876404876907989486325651287093586461213599685638488920393147782482442808686767514473878562996216960523354443151274028631375138333729065789025968040905743474075381056473858613629076671235923164296383890745655940563805910458564923575194325538743017092174801756965437970686568551771823020558420396470739165543704695217292266991493843154622709325256783514916298718302119265148030059644154562485274202788888897563190445067480200859486070319957464443497016761947937654142297847540977558035453762419715324217629222969076804759059424075040249563145665184013975615996426220224134456191873584226620683755938420654648948742802464969518958574397033617180973900291451530413990089399911735342369391277799464010563314950997365278754175215649433155149888249262543918645876067809810062446954705022708824206428097820543583714318570107256406258970889356165823420102642194315690045119210156478077116488049068402591135799408369838533588099777459611864844319785401041980002267979283970537188542444846173395621417997378901307045847385826668371649960229364324600868859709954706791237045691607171156637386524554202416779665269233405339349467565079160184097978697830585501427014414117547595193777142873805666338935552113106883135517071095998476281686465736295273419529339725039808640254410073522577038460064268837852704195334974543878163704327745543859826731804732312954680671547852896398935419099706105742078613283408208500311873527443232988409275819664582329621998490406504887689984963651192588998054365753754251865347898438874820531602500682911490669577413206507860122860850992369999832337517790061886238726571877512404804379091421333665381738438674531095872420010010491237132623097189528985249147824602583535795005287273402591598969070922117697940202457265255606907060921612789139953923322668700197781052695591157817722236557126121893496565968550529057257550634919468098592419791035207657823353586476268220215862140009934583320051503984480340757042666264497069186445332608810805991445140780557334287758931305880025035832815045890134767573267318857258773482308629901630111544717230930113093563686487568580616767739264736832113427723451666614893293150238933623440488943027676481072176414474556399201775929148287215902674052000856262941322829557031315071173325352383561653884889557419810960119763381307761995501374174501589580058350465690681601574183023139052627638175279174949178704543293543711945681175369141812757697221786755583875342664183467996557103440029315547134853251981443868922214864150173058775020238166082218560931387626680090858906708880757932777510041502705552635387435109621821803974074873711006232682761355824642533071822560680821480767976087043474076837702063171892802068039328095388914718185652108051334712661894541515483025693318250267263461470530612804025013804392499581033590153106130640581683568743103800507931858684495720912498795155870472426218673810216272281469758675293784591193771758682938544167154650203775232478272878143095350983225298177427157634565411553369100296102510906857028589574917689846775678378468101149844576226913915439760631657877547365152907939669154374490600936493008408384541523675752148520359548876984575399389405891570295426554398256811560831293735286691900561351215062393685051779292525946378045384918532766092715009594892412139272041661183554612344560035556478662881016940731351549217967726433663895542527410459592651532676630302420417722457979042354467001118218649646082123786021801254282436773277378991449887078524990713595582446718226961319136107424941088139196126185921946067548782081913564058092715240094729475500178170344232447551081768892389498985259104764483394725294519429666983863166664104621441325793078745198458832326629972004079611171187317889252920694285261783598646455912845638099004066952131908134936008472858127038440524319947527880792056906938713380284058336119606798638998313559209747764305924481996755629051948331947194862670173325779158540557229207112012976683988551477684325608847378166169130737866770023151898615732015027031678152023482593375442154904734877625189194934846121771343429876822974530884972808809673933857584687991333700021169635170955618522985320189423996062695829122691291426943969122117580314928891924956260263753423555910804633360426184688055737127360078658682875819750792418199758381086364870830108919224740661305548277057103945145716834080098676822486195245004677997951821729524191175541736855697139353668236693972048371017882127549910378445977729475375710293719314248898842549289002877444329231514708056280509977626599738115472611964126692240996864540128597947929228928248752936391370159442171959983807475272831011662116112215906554657724076430651725970512453604930728112789457783060530279320530285337164701894125092114463458727013553834707310393870301797430363276322886680383040266652038254570973891813152729767085338461579784960158061121405274066992965040050858960906470296661993767471191178217370037603927529483101957545864763769608787331908369345166961321236164423084677074931383847750301462733988046230827409622590934707470825674680507557052348889036966281360001274909113866124415633789624948831952018878458187715624264618237690387629899947282742306261107596886025489838403125384205009483008520858081626382717690908707509066779914507670468706609931849701644323641836573448238890483301986560179293612069229423944601867438470978934530053596803929391571180254452204203456363944979949994230136147066818358017722848825486932951533939793340671470699842358425079519291760747086398635796537525647929341667699540278082410680272386662265187428177692043042078053256236278045826518933053502952837705820441756086316342373761533411206056377714229937193847857881332602457963163009925626748752321718972808294573429201994029981282937184211414474618639941548953506889081816743322482521398225881530169965155580779571566141273943133768980709024357039470553283288399428254229766895296162243556600659401000363460574241950007335362745608908731559527654147652318713572607597529231876979854438629987743180957656689219448037510588362969945797877626972130189801767565560213641869039442124332689098226934877483513404069488325684869804269845091646643335975091682941154990507659806822360405714239670888855557318570281534886288409063014799342429337484516104632181509004893277653448327764241344160813512883280471039305147932262400844264994212550989351099155506069770232858261598336119505430376090033725954641318219246468233501838936635449562882418561310838511104203492350632851288380028417005606691150416527357962576519218150520287210863285267950824900199796227822856558096579626359699627160086337535500149481295176632097289093379958213819316844710002631074669079047733995177708863324942500612682724383582703093863743670893962390556055215989508106086792332234069502802014365232096789294242041039748427476414499386453203450371290805124434798146950885090211860360665411509293588664639950710528877313328596397691912530713991500090420137828581648119720480177905579917515101864455299396261874950327678007240312642558553244660953165331797646733713169981525653513087410712800112834495438832699477966415281687925242154639441138688201991412877440073940338391963652750600925863551438121820441562017473971490447027880221784157108590003272099623109718955596990414427790800789609288812197837755507018282896324211752587666833906598249954433637833266314735431094384399181319545657634911609227290385078031471734766684346841553716576850730900685745548543411356578675323830865866572343661821124972751048996968412328333569543687038768986260308912346727068312428806659883391988677794862696162618508819394394250333087297362983882599034539846962515909169604839079385756349367267034738413545020122647172051167595992325108255370630152528221656493963820098827721907383563185395670498797710516650294185853384901628480610444600331608736592085930139924861655586408075350207067424234356119429362510810875304136551036204579971864646829957241370350899006151185516627295802728119460720969626745043369206426396912042052890580751829699421922253628676398567988346393879199773807690541657356122035579051023835567294466559196575789941055190491619019410383566202788481203085142124222763159631081065034253284200433686871175730511604696660985909852439174208959475484361658708048301559776969037745216944810999908618374478167253427814265531729602978263829659449962727392424624080300352566319288408057667127027568601909182238452561100412966476089703255661120077112435470689167183994164994441383098606073611177601940822643138266838009445045139328130401473465873696001280904886419778749612477750295783330961273069402371074056485555666051020182102190611304149347034068875212079024278600102515330138346774612440813652509857822037794332744297917099140341530236210097511716302596289103845583541980942710044594611549536952394191437605818129735739274683881896046244275723195967088277908050497720904827582108323020495500538804105515936971887266216914652014109361389849733408122288192498174022495211121477002541582099467204324512952816570275178708158788059804444406269376115103598202471150335373363282081664813349523440695600392606635226975730356118340251499270781842606628845899108375515435184142124086544319601541696872361919050671811952512043843589154524260196630914634317310528666154863285649307490281740011724273245863241737528563123965352360622175040103637282406177895785432565732430452759875454328825917786623466127633023514424303798379950831586058148740291470976092090550998100864199465409165812777123781193432401654002818062923662244032333060378746267267216878852772793649744848809157690365314262421746879968811489906915476386743160873288802178664647116031651663367052916526671714040364144075323982339295716234181588875827143036942975680976676139862560212858258503758094980353931414731425427876391527644903304998982274812052337296025771034130565039679549619918298195982180124832244146409452406413182687538029584687150463149553978815150056400087501878356372208383527749509141386468069621134929430689082668797587828532532622812815095889078749806310861145762779401741097788688583378369964464919496516781684460124064052746828471937442658687337895386706793326252697968319724638212510438520252934917267733292721427260859276669250748851390943461481094239656687405717737694484376778329112150652759963076580190279035668126830742297334891070564516152138232511380662398924579440984370454644996992160371762289018146025366846115885700120110267675684752659771033743182314171757560290759638588302943175658111143273681231076946807263379997294169381650656400738947402918099061668037518192564447398379728245599796946614614910502182595642080047327716074630196601708775170243306517544961482767680726487399229794397376633093499041482794197063711978626697054581371534640188893891809987467272606242971486770510900882154681971460998649956929518845725307480494540739709225566830203081739619118288549914266791011279514740326582588073508811376132183243876376265742558086999831574250385112382262249831357984111403162020363320158847117715887263726811755457849429860269901588971500622620227303746794634562429743820108008246094007446388435571135035180815948259398687120753616577561514773296461148503808309251911541955102431412729323107298724943101222230899499968638157042028730939276290797322642522197341763633423237291615613643259910287060596464228597699899378697760743040813666507458059970644557863282424630035815035347760394095515659445932815424301973668418415510296717186203471556879955575512313654872771242211839314615060425341248736780305857865962127941445318695450945733733263850068261770045141156669780970247964068500167065355121339595711327420953136301560143921076910745140857611236188823682536294150960723701079151336179372773806969778027998519998910096893915430823191665958993139569098291999953324422584267857171591235024427071841093797154458879365949369884504687524348330942210639638538006084847641336843356984055072092668657119594522739232383117363802204411936397819885404392597456994680381812904074070775156295908878941928373188862717295569632733341248530748605335712406822363731455732716556999633420081370429882042239771347138391612743964502854967568910254417809400059562490027002669645107054118879498278761723696044443424470951912179409055820947175306152542199051976278923939608204276801958391007513920723512924003407158293643996620482951632540524259055556608678220835472553772487839720659704424749317232094479117531868505872727927660232629948549562220542176736776977959565551131291134548180877329367394918575057291260312901699794025508506450903696675452093420193769607898346813496273860976877870839811204780820292050596072914506765515125880560113606039572290587699550833895986566921356125922986875023162821238979355857644890712703465912849669566781367156501537127154779202270935264385139588046238205799138192511140060314073105065368725151970612923904858870311119706804066159829679946806781442917216872191012091673324889310473241868474454665758214732561856413547939910258468686405691226929195186588136667683933474627764945441878840593832336346816662835925028983201286121939910610209526195101466163648866301661656357801303525462860856725890106651905518856156247128907091547251563103063288916721600553898352625316584744058801065011992698938029006727475967856234695659214557852693266801139801770472723747306612591592132915634693637508930980373887776843621458131888057422560924696581488661032533413433117930242363458966730647431812130592337909821210016639388749236599753130767381570553785986774863999370732767743703464064895450937526182205468234783705913256727532001952682033933548030717164187634889338201844220514273773705163680720800497773514625741074308340911609972892803650213049526824428093005824389225999539332723733581675310031340037925171773116327947745103205110271072358545535238538108121290381523884440442594715072534970741056515600959080965480797791761150857171948829129060907793421357646573307910930557424588140659067619380485023920344461209338343640596344005919464487541636347009327186291571786573051402499769055066271175383879761827991119994470460820158528711963430113307860387289939258085435269026684552370261337953822764496299532680525098217893891177153562760354482126083050884867508579139881626288052936354733228969973197696168104385102964104809073444491823708435990982737987932169291194514376218188706769852732363725205479890471517659514673476518909434317476008237405839416131493083651814698333255629307889728264360313198496501579247732500767124520250533688898977857230316446219700196820712983920097684704838920439525804559018073029592933250929379212480123310346042248236570801476030369594286259577648052884604822413064739518590461151199064870946652425700195341676795945717152624632957433575420051638941700225562159938326881219647564700752943791113963180932749966644240539255377807013559742102163974728074072542286989874314483336657202284960202866476940216449288078572502506764894561185594647462034344379964550065942426790506110916273531813237360927790878652856909292867679045749907283493800485522529853200330867204776063391038491329150207196172499557624838837752844996980179417072246504278335831385943204015483600942178745405197762868331120292545718499546057046214041259042359418479480371487599704083535938503302228699695651569743492543147175292040759292781160998097756559940097192893486783368703584388960091741257425074576977654826609401333022275308131356377033041107788809872812445907327119042555746092637330748884542197803911382542908809459475547367059821997929728115491014463937249623238740334034953818654861752735751165865465828967389381265055639932343411530760534501832497363255038542466896145972606180038308666343400973516320881695367201224491631644360102663018030188691535906186146327802028303768115091822651951003840104988780222167213239567587251917827750747674815457954261735723870532950361031175816592403377056833571070324332188153829685037854530733439617074918139040950209589127531154462975545220402900873874398115876590479580353030454132370542584035455985377460954834319367250795411418407339568220982428869255891643263215591090875964687776227644478959273003507031871751555053407713018396407775142703945513409211040717154717780001096788667426058730346018831138201624771662448489256830875656656584742109012162050574933701366005097523423905664171936668518902333234102898288756016182196664071363925325925126907673646760546036738116919800969209425440506981898654206608682638192014788912358059140855154058602323252364285675952107636972824919277104457453223437335565555982905265967881442987280882610514380524280339863874035845404868954905055903831333280002888541938691906140970465629067694388784180981580186909694241325696547626461667461650635913154840323970951679317656699036658999254037247120892733871987365632601117397749381775292367604963391139994293922558578418691860729465290085664510551058958068539435520325236152011003730596720990875726953108398869809297895960060134556793329527894532329976994258298962948374353661871923992220982682499275887219828438848706232790886904231611434243842536238451455242234422002205835785164512430480875654457319879103679581577112749142417239925730367444625163365157857973393194397075787094771141814663004617362699573850029694366540776132431367836799113351429030554135598995510692466399805472656320832571416901464805790576098973205450275867047559084890980455304144648950028401262485158506341496336009403690723645802069480276001515996110042764717290152179373177038221981489231190796334495393701525465970175624441336857608046715502104938266435532356936238255740834639866303822765693040100622587801138380889796761884320275565224055703780023623972463274487403313804785120178983979009097815930753005898269850399319752697896649819104409552730654487718500878188229103662816170904404325329493416213256277258934793970042704164476076390120527845987006598007244193591007490970715156684361338374227094980916637479026613405857113003644688294037712635560388511278004569019262591060720788566609320459631198730832923568013155875999731490301908516386247593577743163433219985156718786690809801569117143183157754424835659570834665507037155346817664118998289233204306064870604402589210010751406164757332951929727545885761686633684751014154183670501644745512946560695434421354734234106059914368113140920349946522671182128445514036425652298296723059087773863390668166829089132701253086740801992016008824938907661236690836705269796320962007834760253523323014430765427903531043507323962769940094011487801361940563334192560538391806715415701430436033369501319403146959216930116704579229338865369815868695308805043817226555322929119222752085684953205463890943458956677292021877130800606779540359769639962245443351328417676689557067248308482951455405070891996866797831130640919475833864175061889990027882314043858096213575683433467179174350712603502305557143203311861854017040657191564786309518008154663519614804111397738228837658912850110873230383606973192639528410475712768803796609707818202183745109723410142863455851232890589704345713264307181292478036001212870785593662649039313967825082567289975520372149406431409711144568632251108301527040925564671223597826556337386937139762521732468204421673547460167893229682318658440903342446809264544784203485691175414930503397658125170830892691001051958179693815861554281623650387598404855285233518152272779130390357529093090571331936290405641979956729994702597694474031429256588447616757256010833685254407657741262186860770255663051540269151993582467040686057327645681201323775005526688220139311214958059166754677729191848572859152151458505881417681347907101780658616918428521061048670221368157554590287018173441555126724872133840303751902433904894307631152898311080157468347853109133598339741816673268034617835250587224863607665461119469961406292874735051412403312839665667450435742141999255027228716338040151360924986771779100987847307805150923632296207648007420975706373031619599594349317571514608600149478893817360823793282812041595727082158046205296244037068777563716138695880745894079800240569677860237142400664343439205077431739719744839933824279341701073772966627119537954089550137690590444080176449780996652259022595227081466674176640478274119719260567244500085715966521974982924587943708058624597011557015809265880387245846098936032636141224272029202157836569282667413255294066825666623102437657907590349010838354999434258613864088699528079050638845636783216510266857445178412453971297622901615527600460789896860437358013835138826217620085588469978258097672707631814837920002534614242577464224137869637036008175101666085192881159891589918162814235188051736321112832883075543928357560439440807924578391309163984255090450845426716440589188633539510880490218631089085363468739552539882456763903999980744749921907023539375413029255950493722406128746686882149868995448629468394272296485004664661953339474682689815927598091977976588626998118371464351128090169965362986507194674705193723369165770062668179737188004709843464873369460110471952503086068863596511284285049649083951981490791698204500136250833781388607963147080310134527008596829278218650172721481456277172865510713683113145565540640482179041288663485403725605870998362146989599996184128225472511974127549722880104009353470663826692671651422969954648080738159684256659810839796473363078862968468571548646996248986950136706556614644425401153684224075250362602929918944784054795545483505174615482084166576800982523699847614758734437565070210300930271733074469377577456888995167519483198998007070487898153488124528990829819152359286070610729988361378461524268124632965148454959476020280115777467630223411007295651678792281536827932196915080621612378592536314883909019509138080385021769835264305411989472124847534216627977607350533306464760116878869813616757998688506566127520614902662690469279935143115210368862551970191329194235293472093654477426921454013734812928118445034362444887657245731312812076292627375059666683224470543442581031070906223060295653773308960812659202662381799644355365024869057933760442825127017383625734531362896010498146297338227359137678639074254516077628827700830434933976022681083031994871950543720732172922901729908386960652978596907410034556550792845387318756702004773275390206029382711519454769558676540245629270880478928785991289659628751087309814052749909889197088517941630542701550791981180774246686833940220526970800392752925938278234811348742783121484308113311343406513254784004455690516421584547160405793889854636979047033435624471451431417685801044633049288839226938265331531607101105809287100173529038418896958629747116263907249003951467150310515848620614794972780392892146396872033549874555420969536583000293753664609534586695513102671961557268366016367398047879301897247874797628548201574956901636565750034538178966651490495152425647114676440309858022211491674859797431816379221445236052452159255688591089928164168266581888112433939745839098089944193911013105799968641427406743065954312132386875785480674854812457181060709025315087500800069595432048642665169027728169224761824435482701595346709190642691021882010967703026208684347795503639094192948450823113044239217843781348714534016822069931708196973692991287964192647592067490572776054655518268811072852372226023717706194795297059852878697048221327382116229291430076252723381241335385457459556014114219148647786113932394233306028825243714442346986967824987927707119344575129449902346360673990824147616251672829575489130249911066842138002955879678008917969564029521931334378350298068162238633274412593269443914529976426798502276133647054919721424637238847229749735750127026540384454486351370869909742772982874005722303405170105979433120402176136817689711284203303270126294282883829385550125821899001479969503131718220000995059316468551141281641747174130662703660310587798616252642481316195307000579881052597054516852200153499510377072564434563727078027103269782385774415844199447290217134118138666223701719614459438582417218501320425140794221106082172746910839028536856845191885419330126152729481308922809163432755896010660570836553811766134825612082010420074258397758001920241349775041301283694315761571423989628823316319520135031247737231194499019714499564938396260715747531186801822849060547256342086237903752398648262352077967116797149291468786817294265318002399038832587509073285758428036985942159161451897866349072969894047193041428796832290485476079097108058405074685765373636754754702262144234931297622619536496714525075930994390713113178876339539600570344563615413595963196312225267345847099475561645060935278244821485892029774280897824146078740382578315472584445191919701802041852913263805839646532461037523439102383572680301529501056762957929504255762245299449159033474107882872171233581025991124010797744803728468045820381641375279483263428039108163934725781642073553338664300789791069199009924249962860770603279923473234162507322166001520925320090583666428003298687777487576262990982400426822321885537148223577245647571641526410213783016786240964575350788588227992637889717773831422259658054397948669579220613543098188701495294051906058872735046581563148681253542127679041831011804955090289071523604784678145383130582016880465318607800532737707401281744551402780023575942696280652559350092374137331849436165180165217386542978537299819162769562963366540077954217015291202318769404215114260688095066374524844136871378967785466091886591294728987404072185585822575063989586823926406079695560178653631879123380211563867964846561039292868568099547861440774796273392473230569582958324807077156840382087964373400604613029597136529402255474024145915193830628944551109107493862603895824921449161995464987255422882743400471455387981178764993347876795822424077461320384154707632486049235450901131103075204529659844531799607727339088261953888929888701666582216750130828306622796939222488710337840575191773461174348644958406629676222174324036228082130828739408251967290972356601527683229153992410123390501204590462130804722079072474343794425764806475954421192959716325690045797105653803364827349099489402620392511717785111081749112725224083310186853993743706691186792340294838796922555523355213440645917868532450666528345026476617212327312306295258872980848894165825500326070319433695324647031538307528554375258554746320001213884314443815458992015073582401344450105520954070725577147738948327293648408007294981062293921833872275395870739150945335566466560662066612519878141055588242290498107690613170858105849923545735706215921639379261810291540875768735423505156959901399036371877939641780788346400865257576679672274438952555860788136554067218423564413768758253858684800742947852605841294709816848976088311014042293855429542723278507511543497145830757429317888896777610013133783813564472283595239088592126316926124130911865314703123284993082316021442070333637122383080319059786547918077260614585265104171717508607530741102509585829744387955046978834579672339164732251158476591308708629299489101808455563737705918247236020939214215418185261130394002316268310659832834229289802456722136043403486346612634071451231101765173107726187209387590703533444574180566729191660884204377657511660703208289016072022776056534705046945583696208822634295388819951483073677584924966394821821664251881974358650303775464126034053008140913211746031064398170452102355002236422898367282538423498832899461219283303428910816745523656634627699411311836851577488715754240212538032297727079777876106628113493368806856013033267876847299700165198261858401830153777513860066368946389360051218498953325724649430429382080743192262424149226515730271320995921101537189015676691382113096477584073621711227162211218302003399335328812380653726720727362407329553848066710689692284724259101142924516214410017001873025034689345097956400779105810738765285421022875765827991266816590167519348888261340500691658127285647763517745210438713263171332577689721009954223964001192411341705560543075524494266151192309714551016014995659985701692684144178849387609400049298348077848518991141263725319901225586859613054212552292116578536896410347318751134894767677222869210216731220449461057607151948766972848460932689663208128007080588216236600452367831455193739015690031284430223771126389082270196948909392956512450584333027527422814496117554127706206980306446700857883072456392993833801823915450433422227643428135053461264904685259243293999600035205842687492248946276108237764737141616400915101674861995172809034033101375575706660941291836443654108401776228891322179278671850871304238386689152377564169328031379974399214280230756108929360932637744946702843902929595276443555643673281174459478991863513151312590738985807841700732566307662225580539424625648182801606835147835409512811464123163578093312061271823521992182377963990782541102311364381730713171764937488779764204395525150836474988078274405125009742020804053814026930493350122946994679433327707777580899205345361534898015301321025247033428649319551640255538562068556829036000724557377817154578783006467304919942250273868561362006290538096764794502914358241645840101545479354238056131861196014752111003645446417435956435191012514705543440470902633656082761380401378694981903112554575123322258768028554066813899278607714676234836901130742589033367010354260361644095419146531680889140594135237866906949721260293810763432760258375866966172051056691622848532475374564041995358947128132978991010537773868687828991797461619260442643777242478880115469432417007717806887471486438767472610567609637966344406107155134617271704167001729126008458665718185539910629758673122889748556625024428966247062698669028267154036699850966623234730347785166563678688023636799808824704625904434996917266011072912904973605143437816313091922779955640070105122703790488626120965949741311192948542128533172259873023963094025728367481447534049272265151203962649693975966748376704751924738065533884804972656280044158289585189790177988517199516414315592924993305320903872566371045808110085867748155567692989696977336550474794152302797016182612687772338831721212790755596936654686120975694192930273013689863734828111903672852253970315536660552845622601915189483469201870041621058855411142126282451290452366976511142335082399850927381844938510235899195837565731578925216291490780628002045086224332745617307387208565725310305091487212940944668267902177506168929177135393140744174523491876780075813663759461780186805428131037521872076489625580105650244599307067517665256859463891295126439960827459153731509210187498356874237810460748124085026137756486066225502210612731317903987526103532582895811456555481672398112778911491312818270038650448891397492848871706611495515981913622061410136308992313642567962319155744598211655194540546543470398594374547368272469569003408667862177809607747490481665970926399539380400316263915950543512428678383216198673207591605851679573841496995286833525555696271992563152772575183427810484234741455699741610896616755409532345015313192916421698872394131039704210256192694112439399807628746223412641367902531913457003769733795789987309007705272117402483599747328136620072619187086503244336712685925478643700308673504334745701050969921819949339208758533907221913575880340634705008959177319409284450221937585778276757609726306459934083017781182207689849237504384213607068752149047066109087971732818509158655845852932399534654442663555440409572585599285808922013516050980188315156611206125743583706932570472882566204287808030609187159747523764714032065696076497911051756718507937872365030583607643465161271793250684919465290815309547028776137257186037704213147620603228479185778493057698862977316032437156864377180942854691730952062631379668655828300050931841584315976941186717257278241422022284520358669398307073274134864833851752876929521563362691441036812181789623835088555015902546024241341055904072060607075260903521895143023045271047422026922571450168712072691508712021189602873981030875829870468569028564140438489477743326261193402478542646098965389009437034033291683629427974989100051268946939837615818869033610585124554030334233796174035138088794613615420354363499993512989598002681392277427199334124947414686680046811261505309487970919269660027620780990846097465615893507790840599558028904147712435484204251727031317563271622516216966975193230953368310802900882469733294371227626846834985316512965876478150027966623328357243271491541928171269559354548565853976196541528504089446373392992964560508153453737773488986359881235880590150165570627624178367144638524979205142453532240409154649181686031388015334638712734190297882581921219161526705134501300130350011696493641019575218773660795628307039768718903565034307159917919465831203369569905015112573436311919880867230055078775190123929961220965271371108361939333843539268248572115331006960753773517948412420543714610030389714707648733715355935915308338730075302150970448142730156033843722218487382056073585231518323374353037590421546758701957249715159902015025870682526915957822646645781958893373869088879996621162079873442347810676086257949911164593850777736540413476231241418819868270146585897499155680556656482110576589663365068185806737488688645887964995177215043456326968953598944651942176709721974863114342720313275645464061180386931938407881217023645819466095760489910327353434090371125558935675940133135461116658960571288320959533767069329189473014142158350481273793132540592250308817924457471867925717468728597909399729193528618871022337349182705019608690960922491244343475062477892820097231382280530746533599757269173163641543226476342175817813504842900705099905367742387822060910520319229554728938616390100793424865627393905221689681932064974930439100252429186102641984546116956631733839528068857594183820055947990852400064183272956924274732035559493502297181393958876851843149829536981113979746415033359111382496047916804012623870895750178200897530519967064481720483058926336676205352941160163636170451490784474123910474620713031932509556811906513941956485637565472200708485746693114246844278652158092912455443128809827694687467069502819712313531958718145418506954806503491066744823131030718406348226447753726564021606676136997964382899826833083473343234067094527836561317405607190419372027702002562772480165202931954818568442639385302471936312939820323097772551521211772643933402985715548272601613124368022699479237315735328429683031954324331476483887261809796818746176687930054759848367984561129422525993514551850010343553712291706491505446462704063363918415434526876384498839009700676367924901559620378546196526083549927044463777987680812381771629167749927696716247455608673002060466162384521217403409848801924228577232983415960934847485358990974880030235787861041605207662496153104911684486414460262379597660845061831321225820192168512650423888849659464375182006886561126690989193868298356289478371477750641474778798498638643385299142810674594742836637244227469949415133288521599810563290963781713316073796297209050524179463456219015206214125860191627428569944982576673907450212079977741724780423374286708418076521225670537061358050702438096585850599114352770640860081393952482796810613761884770445696950970100049377135756006933149431182647290139712171369854260254617836894764353546874575868730301956347940740228204915766055634946188761974168133863320723306513661451035391596533671522087604763344804167038385548693971028550461634431095114237047850238527234553123728581021745310548583605438459512286550400315589600055455794986237872285920023583539557475482509149109037849784840114214745667719600444160015804776369995822919667435846444633260199649736909251233281831044780919329219608199628854101243474673396551086023501538536152213807534706817625829428665390396862846796612642987067316260031015071110203860102247816986107484835530083377677054166739506526367341371330835842358269133213338055655978453965680931645854088256236546488501894186053229977745275396024815523142931041103252721284309783711994944963234685153436548199074862581509934228121488800270412676166286831996363849941236180259771800640261339387709289569672225312857067587106229601855243518157383867582934885103379279248209725835473963856698174422391688431656565721107931899443016028342843288997316090428768483470758335684526068879746559428460629302209656504951368380059955315310939174596635537811070023226123483673154197735924602596849089360415301361057474678167172921692071377810815507081765912294506462370946459743459341230453472634321462566496257253410369567544779370491566778283323456673804668660937324782575623652680399383424513951226317305365904863011093192523065785048174496517137777833546423649733994537250086129886745618454849468577115898050853672612101715330858258502691780727440224525092178840510860265463579765145487806131047795057868311441705029769013183149694291952347433459880935334782360400342572959752118071449872700905980697327740826073880874232481363395071543281760072394835266175656989704347934608255674986503674433197821533242735550225830375570792412812782674409213581430773755876264539648846719808528554101218827719479837430434102329957033833806292805817790494044550321260208337838541200776189243571487231299000709920429088630559801276758975344198650690273289524128035994672288094043222873659860545571787234001684457745892423239911062366308600507484084208488435731905210974812210197445065017109837347100258304621378757078936969034101845997365731505317666311818514777970806628785556280585907101766181567971633470072217895622808369170684983501061313824535935583419648513601988057008905181267669873348352274303622897092977428122824149328729899153543819698577221007179059825550448246260638068745885122900500513622490594487475282370980252201715635056405078373587067304604880410496756718264894604185089867681651839192788681801095140876104528888097764105206883016531635104280080690540964145300343189467222263408207150397112745519639141742094572574823821695147921915211857474710174024535093131834781498729886839446699510620678260480630349310407620076981095990584450756378559372893038873632828151826159888667997729236046854485129664070256170128485366842190668841480732381905975429944580267463850358834829004600635154394389656741310262233861500914411467508328342533383321826838408451303278838873767246364318018316089543141142556243544843168754546397713312533347265678176539144603794923451656274923139721654002558369078415448579499834572276734546135494751046182560867025562658854672461329888061840273723134174468559508510191642516107946340737177901979649552085587661983562367555075431004654374443045559568385184493771153460456568910147298704831536334877819838019166224081343587288216639042614434381511045959109997268970113657661388285077546604139875564060001396370637479970167239985305024342694391546943784255253585840257066048773026110783605256057155433118262870586333931212949415018566768743439863289932841868709247488479023435539955051504946385761086408282374625199997659900379123274320835561279524822795843040469396658093871401118764014963699445026796004348321384491467315516140960559730915215709420537866804211821811532360755735966927352021257296747177911391626533067692802555993532006853862094116649785004921698852141720821281194219770355332515341204443563069743620734104620769908956863601667841465600542879008038749655763384693614792231445022649146149818718289689144276592652679362915134880178451352019270496373070097243014604716918783831257166302951378804610776048706568764479728220613385705791683151837381090577568334431588857686770179850022922676763499194279873869044049033235040700913598836268222912762975904188434304038369406658909577451747225066248427083882109089162115335942566940902518297102560277358327590710556563470493999358892577816156308983564490740031518133335464253702886005356119485255284626061806029279728248027276166216011114444095107431679054211593606087436258500229626360096027239575693803216891137625672851444846979775548720322964062713750334566524523021474612466876359851909022500580429597945148105161817909971740206138982502181496907152071213056906802057377964275786040012027853328658247285120012316743332152903018241749658760678994483415975205501649075092071587764024246370596278679712133428845774118476767316890368438762279905475365614481678160875547045207594569304668938778719185624837056103097303920497611008342552458365359122323305349465045668104476420267832875668168355129959046654667735140864890589547871778997011652187568011241036489570782124525700954135245433559902554427657384083329337658174285314702232408831240882617107282344870326827079923429986403778847107752740546761702317659113721907484910093339158300368637578472300529438275850934159415406230893852626566863787167815150055956750670046940586238870298960651791267954677693975037235304461008606113208978029210879104163333083205937675746548067198890864448955992528613581561900112409315807581414746833883650698779268317150697421579266081843076964662745538120719237115622134554452345552406435272831520800900248608441478566769805639007557060709677522029239444084577197294744217826501874384723191358914018759991911963985261337542801587032663145920815071895189058251231984797768587739130658247371310015778694680556625133516088083267456393222336386730694882076655384956694056425322500422390361955182759785011729601415258691469875644358836026279636828430677644410433683687441697986285565608575455124731261454601846392604231074089198662378995730547768152539829726798553703172464328374796811721850833503614177977411486410077883750261254726417546751557018341808165134364111808199382572648238748761760049978262686523240555383366745377703423164644625484397873662112604933385808066297387485154287488680758764472622948168099675915942241421285159494604244047142439412468176909472905561335332502487414867571288517422280100676870312765720753024024536886143867127860173694735786603564366640101539186920769142276740556875927570453424180998465779110647997206030178463499836010865180568032931974686339549646091529016443852957297756975007403730653677607303318554251194118236154674097571537946913246903880473268356928202496626524977545237528321925509084813162172572854140553134846075769173272386668742352257051333800938341625025570584142393152077800608912367661187509456978769197015318540291634633397007135609294065141361545483391621209334713117908879748778418638195730260647320922445346685546272524950878035121820477111982607429243509352164208500568573024372377811389364979322697713447142068348625114778554762326184130039521323878621022434890801137316645669661587237565101240749507657725538116750732102433477838242041510988054693451211166259136400275821002683523788144605738659456572552316959378837902964391761697669515050960226044088797441884277208386750507100796696656883745536365356282943233274524590032520867160440371670126474338024024433501058094352108639392124330634079156576562232340894054397966760081368322854477068650312893109341791668043207795643789533981657087946584898078912827593909258479000819450284657140549509913421121916043431324796362878909237556062233633587077671033335813580847684570352015008537598396496662020198134273179718699457010196025626444883533825613018892060018353201286551885611646815793984807882793539451964544794441098649597506703496853845810797309112371500637173247968576127639096982427725216131551451370248395708917019552618449909062914543183132027036223408801882147507200664443107590140414046856197603605899747153582314892637724369426076913133251509413198368162990270143295580399707397364566573441648361176024187148597535351416244581086870782092643266356192092227352585010986574189656223857137605796572389765972740107699538265267827772755639647288831398214343663671012225165896622085754124118998708943742111678762363628280911786900342792364073409666625646794532189077084423687819324348285204769792505358326342920125549494549738847370775309013077860223755406796142033484845259815727121433613354173240795878602260845544501126975041779156410466423157383577748643192493101343887152855712125293797291979291832311609720718746508469034775486981348348029887572393569972754432307244703785817052998483880887912267736995680883543937990974029556080458277869384633832724238409476891513503464763692550096532514738225139856807821643086419919133592538914623440031673232906865420854175432593462780547098069530607780599760487090227868088159209243919804184086709313446833878020834065304667420760906594218538612388423452641480643872702799622801922342575462179308661712607232398366336659837119509542234114804360425456453434081523703314915679663921827113932984294928847383901556244277521896140222849166669049238011442800191387579218221281723720613116173069005534786310657366754013378152104897147333139388968395053377047533022584452182442634490146447076713094971444171439242092517623041145304319459602333966931477585902569065038467488394513248223316177565241716677640402589384922787742922475660444038230416913409535047575178423435109253557527344712201730652936536427532772535420166538958153835548972364739002163335906853856810484152704445359627462597478223709501872649473374356809479867333944618775965651856780937308497223232335222105920005367527103559284629064764202372425031301343648640990742971980252089103671543520761556156345610835341256409989478693024153478131809861976977908896641112757562313914467156707482429312826897475322547804957750295751959868791561945058123075800341289613182916932710213345995516433349471645561369883748629751761720005258232895423856823747805819627667575783262366795184383577966210014153399950704510724727852241216309935726106683466991692647758712331413614304926056721862944471038830711185989886056880807366617291729125109325599800121281763035670561755572037656923564768773590116223564621613314657538343465493548985745809135860293980389807912338054651669263546170426849066547575620741876268801018804118821692935150798242841263014999805034578339157838356210646872881657749601352654382088423899550535815410263101029514811232852939088236489220619767455774395856025884929305478884112522094169338866549934798007408477116674268439130371026791641884470173285076209168042937462655946662402172532321299736083321472447195746663448491590118289079269515183799825989183358806823894294198924684384594261440701796122712447450710851950471401092959812479324542863510627050994289437770050436558538291404106402234652047247702654077389337318739924271507321913776207592133155763113607062278058876129924894278910217832937965636192008502993628245258010660869429949862209127116628256525865760664210603348669962531581740088981178104815992710926064813567102745564858558705701463480744414489730657476999495295560890352559045152885886382748606350193581289856876006982738963361409199152647621853381793297016131243310341865976837289502610497427602142152466610162578557582907555624283491608147094467079074589200381412330983915193151578137998982132889293018723733130654797938826271850076614305289276567226359527143411880082140743883881727653453921519398506445444481509325082607595027626186884627863615436275349868715567656692011455502209719346261816115989417302497611049334465625990535656802012172097267023445308934297534584189804617719059221457235600403672474303931104750995601674260231054379094788275856053362374093291716009619850640717783848450593011546998714468991897119849911988744737814689367320694750244188022074204700044806716619752025632345101244656992057818585646593961181713232682068031051430786321359045275408230495160833518967719792171967880448216661841018801744478146646302101135133097516094160469073916694736464082540154410013959681214152538329584803979145478499041253763175811357923310579842700965802218729495309077322621871517270408769110499213330004564750033229716268210168810764839466627045066058175330868439623911123210449371849814085264134033664382841222022000668467173160707367068090587191307035282238245971512951007568534551348508854364179192529885788729501731557395034310488462951037568492571567322553695254787610358258646188010072143264558334012021590687776878933128223816684560493711823068547784747620397620756751268222564552570920926384522944126282208679229892903427844398901776997762213780568311004206413728634476741363655561066018610581898548402229605557536922748059222546286475724355547189933222371730234403868077299110467947407770625768342629170499446282254898015278858082587703298479005328562159801739682953506467427639446060281830115387245534235839666140553417786869139500415743184088640085352174553148730185412139807282251600106050659749951038189613670583443607283734263039318956597715953975111381486353223452351471864739362654718189771043285166763581637995489175448204112208160762977099323573966980712371253226709221001157301629662679811120943636325465825223127788589760871364317869811451339183569643774903575012688594419321570986133772319045836008552857114509158334498101099941015503514619990001236013888056140805913564343492007596410107929854924178852712046315803261037496834406691220201998640227803503339820128383066849496911407038986398252620407759522929422524696469466659123842781508565502172901540492521275378062118123861504303752503963944161715698111935243769537642777570185824212174825427555157319299931188977277338813841981902260713163712780511201735828992475541587898478825656957969588351664905068202277558840725162995663761125685837011094456612037661988564442882964565268428289569675412813344923953658427183675878416215347762022648176542925198620200343170773917338514181074034519987657055518853596442243177559754773553442801840583377400551550504410071866752466786854305849603602578204960751482797331543692637521964644024961069534801178210453461532128079881464054982666864068530541994110319273470551586982429230041720101615942053400337327934107654048624127191741726261252290830543868558725395409446522719510374305033136935865200517977427775621920413920011424100875747773468381393960390315101034339717579131049380712838246843816443892786822279723556230126075239059887921318153757767523901881379289898387907044166603771724527192376963612234579708392231278431722193789782988877855332352380856552793034916663064185840675835674450979344810617713271765545406841718616238897269674076091351134405631079342490490845257775743557189609911265331132629009979788207387077591548510106609356684791284257429444810862013150379009528867546035970396306678138236493982100534641674115716849597049122580439908237638529409148100077117975628989179778946089860958167788202985721822355110670234191117281469313361744744464884863204798199590913551090717400095515478992406670886905073817277457854695205588097630905628511863835918329880608557192506701703481340895860303788651211900496512489428487889371885958598587303553602497063357205959152906390447786552141722455931749415215309874876465034268731913003703315804863482100630107436283549265093431712131918053970456654305839997817666005454468641346371663366877837468798013228095414990862125946974340133619124266331835373809853254830765441340390695556381463214177899585062632731873433589344857062412846678623238742722397287572446045568991068362940192519881999361604756937319068014496158879180656704032427738594221478910614160719160957507069528296540518252963869330407600303356204430779457216791500602358573915828935034405791148626890544380058242725851625047914234885737808871206012299265542235073181542743194149290821430183926952886613184655427045644267994938622314558184794209024094440184952734527138947324638645287156321347756579738767189614667521202797970561585342890717804984072846594791724105362039239063177604550163857836853031118957346117028542960555230833937686764774141490408144685025331484970097849310860322311607386443218739084072816907293801310355949667518584793069475245814625736725828481587340447941225736049146965233972247268660407654444073078960764328298114398613341948536306431250145954276565260969782959168700519403378621050919475169900486162385823488623824737990193580051877813205532000919935884584314640630379867104151020095752581398133040303952172536331076135387417616163164495016265873797391394974028996946007798168659961575303407755665951625623707703387185155266793063825510688371966112841412059444418730733334979108206358582854643013569787586252516849358947268892033457003763532826110700465048508811654923208264076381405550912099639322629553907866543147850520050865077306363123647729583710329142901172563216480301229654854199739115227029265864221020825609951770673114456702275907141734064619393736219682851721078482030759936848801820988033856319704079930881207008424051573084965851189767497160238594892223520664045255663376565454895075447606812142485959500490489776779937844289238575516320675860497741384881230707863784820816095531712427831845997444277963316299540906215353928006768361699049466138631049762624218973111293655876665479686529702451448630588144175161395462905393425313888709736355295611911276746387231094739350009761066051365951747342963584627437048113155228823488578575688543777183554334661385649278639746492891244180688523742716182266716168275051839149834620819975210537819548838788219975868103153481493021602238571786393875924806792026903515406175459846305734271920106487531729928739536595062363789337284851653402931152745975751130361527096429617644743960989014709403723785209302021731583193885816142324358804682333072867472272720028500511352150712407614506776035460740522238947164178684798182318243408366430324063419219399083179086374121545024009097359965495962277201367578776722317832651914020888370554931972264076163127968213060002134613747618165961490247034759544035564659946358650575500802489253060495972995597899230243200980775588020293393931593414803885655729878948673409424751781477248636463876036879555083983027016018253285788462000066194010735902841727651313260270649332683737020698430541176932111449449010826410272030810818618150979744260513379968202575579305556000422169847933899842747538943060412649080586774966853102756230790055517722381942489345804599070420995685946043258764545808884177597731790424668644557668544091248187145603465795983521534812999097252085912341781620075345326305914499935762350955477169037783227078473674082729469710291892363972500922139849102509547218581084315928116543367149513656232622107583149644554725450910789722791056959897260159445641561012661412131676031655810765668932338751214296666557576362532068257189821376605834219654577735416017815776936585419210028052602336949340349945781553647267366482031875934479245395647185852105685794619726342237270286552033974029649765185118329080251869781735289846037509259821530514869490684408612009327146582925002277629579600300074981031447497673857539154545012119654128113281743486535279273172236208635315460422666223093271793141446166590024764862634940544199426451123600095550502881090261971302639950250329537386681743514520704084189423909282055368409580693057624604644408135114989630950076269238015758906520884090281444219500028109985682575219088522900175934839924675541685814686881653677419281866363877083354183982123105279664693242874944455148154698691845804426475942519199867030973302590559740922024556261983870691540335238722937970921508709772424693768923703612999381987489231849471705090733444800971380089625229227786530916417949488723337796640378066579038921301409452804756895844511218597301801241464157275693975930539693980662284242691007580541315702271330440089354520453603408967622074516580130783406440839181148282091692740771802173212916169026011056566239041024537306568437685212880721952224735763832537294722064161996145486341583544903153595674064436824369672706430161713578305714451233382276837166794699227851460115670968872922895941252163708735521854895897357466015961677313460876122042014237073707636612132718796264410618145895194951724891111094117340954521324243976882199898174843201437596683531973855366186526301179871602824154109360294227229763819139287065995391006693285315145018681979227181162622505419005105474159328836856625399519010402639628334335797655786894509854298410307896462052962504295638350378381136987157276026238129274975846304158383998995114088622768072190099640561540600481649192784178902171557730377583349812314524426075254642596021045075575915427693301322719527083451309605314897047067487615308607450069641509623954756147240540927942217486365000874660259665635723562693145381407756002648870836742017439638309404614634250036566633936887006627086431603593692675727661887399957180935037993498585092631318624001483397583468328447834996494591683289067533240623253963047478317301896552815263834373449671844143654093287666038190658899339892540863783101557849130892934361955761364341123125547897656090512297071796138725765908402305148575355031594522847218003042053734549337030669933166548611563116906701944243484763924782787209500625511895376671469406517289192536641399627813689385779441858575587261025488560874691712927122362815176794731649246671737634421149381523352037551770190563663633709990583047597284207024271141364660330842675190274339245579015193456377738270877762226417767187237515618148529969114818861054004757443191276422355745818201653343801589418938535713826125073811896905323193111695674354329040351877042195185765246076447795062766084849151985845553023699213071795650822820887991962410900614420304429693347965358364274982247019458481954800623606513526990468524772293550348441602331656611510584651603052602837340803019200818953137010622600801104604182495840082981263444475272430709292236263111091152176167272395995342197046262145529802806469820989556167141929825612004976301343595245972818725003458288305384903737698412813386264320016282568406826158859256019767148255225660287640720489535050084423314699392483214562300640138007767133412641960963209452137545370962130790913379267977737836509851978787807614029581522284075419499242772405868949169080462735216448467096317632754615516913889725694457488941474850722186341211083316457952870862699818286596752454227761235321497989419565269887766192725659829659243659852920733493195606014165835144812294331925691386053941363364584534217103731807489137273902920305506340385491634944795974788985832311853213735892329123263495479129354479733221782425636707947717608688224503812346679905508321668841595390130118920661112062518177608986626530011069424421178516829747320665439281408589442138146908354235012869998983043138908888686085528170006621527074896312504572942270025053916362159751775741226867635758185458722386221399223068343191723824514587000684684562641262894017271801328269196176343760044226373555266979888263473799999409083836632411545307050597493909034282830408351921017701105682659625048965334738124144972483926632631532666908660754498445299758790810102716818820713701711567146537261897370518884540347779907824174981749208949583222998217271024293497438580967588800077373959068567089788696790300243095713033585386785626534499549025057740192574721072014655678311987942821357069884221385279492696846348674054514964685825968283156577967353920178267848408557397366775595556612738985206376502382906090727875609913765243883440606842403189482946593908582342794168832938611664791660050786037361999208517324481994623530295796345276581471495280041641235870863653182622097969743603168642199488006916704121221986796103483687116824041570061648602204253888968684709763867592284632140975510405409433615431440019625632380661157270760321343644043187678193209550920624470801101808055922413131661960449237476362622025962704430915947318163662010467157312052190935160116358214415302986646074194467317298979635622321996829979170130604255138187185723844705415708966948797979909739717762494228619257708250102307633536901689618225545247543477787968017100014477552332033794184542485066212475676594675733671076272879899845346445728552848533024406020882894390475709292483646175918697582428591531411309289645927408903752612374717915062540469833015782609064149321276787629650422257176506320815380735480066597714060370441945932516217589488811695247479909708787225530498839111332415025515841481125649563497361378151691549495464919958158603108224545210816319095449311235104746075731252494088664556857298817605590965862115840365037550090581073795248543157382622257841332742808393535514815619269334195611099139232466343431888079471082715340439791991227314923828933169008343089605843731586668444284374595089113303826719473659022148836666882068225257587537864719623538582703278330971379954981685883969836345401777008394745251844515213501083239520230024237200571016581208249980661434421186398698712467950620450278335540844702596269701162331927687854435568995802321484002958399564684320986252215222872374744077458021800030602421911646495755821474977762851616197428898677029247344468741490387858804407183182664854019268437571550693157902913023659727832097130888694029620995669832600580362031428178880731250686160162141881884380476058778202897994946222857737424006411573021285596843980955232501548742282936132351550179903497406017419007905255671247154604873899183682766648083357069539983247692137909612164817915787706496917335998369816760063806064497418752363437692518525342749662030163712011495489488392072922382148951008716496381491575951807240445211198300659288068758591864018425395494876484613277868482627803094575562003738279174166910878115635197041905662972435551019316099611789817628624441359291460015991874174107082213797344268931366273342494795646633418583874076607998816532428765166089216374833188352785648417675695260356419934651052575480658795424492602096559897849635679720875385118036035918672193404609903455426389021046890242804389660655531731655588129370189799634195079857775982805362190461203878733193928533942304826665666201475892435894990174556577584025839962206186822816899906591026080038017150003220697641101639751931013623424439594486092864570989829849477881975715819431379019870157469021881090447760932167086526270563724706563637971264429627588194083577919646072851396924928333721403337961497396376023593588692270529103422798300934659623549124579640889865138738893643003474521322099468654418503933369341843624035835151050183938209743076952430025289517774707285685792377207069648703900114186670909289322298222564646868288368094537605371360554368674221684361988497518388188798420211016343414462284309660631867497556551362519454286738416626302755783974172038312114646093445085798350503891545066335115610477490681011865768544421979910273789633828410575001319068765476741919886102874678068208305334631966859668694461135641926461745725553503659348122442408416936702050257567160613947951764706096575446512408850910211217385420085239074524322220884803941115991610050801292928157698706421265545831244501801502906653415515879217356965673099842025612250464752891639514305507667728508085313575738690271992932560245011883369244572488321258215968499240233707988893213097891746438137740641611804145213168811072945773202923142914436546105501920091947810483966412765524300887703227458167604672616042014916694049857536578539798804791108874100884857878924683127560084560663889636114346567789459328660211332602564168166405733777026277272372554112089988307147760237894106215390412129196464355098635589322475259595631204367154071652378944394736322215700259664594264020706719149353796928722284295950911128139246983694198824331331672670127401691289947949396081822999940944745605926000431871452057836516303949631907628913386953844712532452567720476022116088851949464210800893634419243848481545529657320329494784140167193865575861833697191410739264837471349831657968145154394321549392054184534350480799046167883672050968102752842325576382134359789676833370603808246487686671491943154603184121679672245321489550108889668345416804002076505063919818385108719126582357782907539846841112906572447077726975127139195952868640846667474984895512263899232493731105508990508585425771377389672777102979586324123175180543759712877333665250449367487634514040307760475618542725232422735791524447734155646225884823186202852631344148380796764720849154404130405972905114714701693368469612977925822913154231182774451474578318223744863213263245720364418240736133650830558097408999589222553511797545332398248458951624701518858856526179444397424191563887701150956424012556028970159384281669110137125752661815629217135052839410038889347242963817735424599758579840952755057168131290200226976110805805533221082749778416802610740287987361583320776395348053762610458249415876275584887920528518995478954859162711767652628189633949548688967699440023493668791805557587965127833343622030997631544807565847784832299358208820463359677153212513367922338386190996125425571891171829828281201289379216663451307527536454335701247950578734262850992298936983049240487369651607951182816868572203982750042196202291303662032002552039347609728193008456970931108885946982305711275211271837065344794770429517112427017367662020999226430533071950527257931226749608474364846990706773884032125401337263895009633691385301882458047738827284867514331368530994818211532153837066639897169537937903562048958904234368874416284325214451668946138231735312520789001156766280136827454237060918134292071452292284915392463350650527302445063460112337899006917241772221906751929096919319370385099468524994083754811134169928321795749716026593313377769154876328477882758930984855510854885217973379501596624210894660987666127886360568721534262048217137714938036778502293932084101807226782351452932208743142230330958407159423935556425804507782477130132772848080946289622740964231703051199828238945090545210028836089060433050613414214107653020160007901522744116470305767648127101099336069926121323123252404899642664054998138753889442863446825264149657560692313455852630834346186127756432092830229111337954763288442001568008327284003469609367598110937215105231514608597511284132794255590643638299480078245181661876128480949388685494949344954702894429133781369487353313809534827262637712672523148847813621117690100355566483672195361793357113263375871731567222533841447805804897025782204976582130154081972843044207076281003151839871721154054573029437487035333208427148370052615824632311778005743091172173731271212831348329947610360548780037677087743555866165314642951095378424245869291188870123712375721828431503384178509013270214009701618355404964038006977694341459228006188120036190814032144254191906867576813691566840846213854077996074675917091965735744804519001144446437031260608860365334987233687996254501132556599992097008854914158524268196767377614569177549769457290481074827322591598237140264827958918017088211503599775600858254078501438208783359302136340273173423354802717561696688404012022713629417478482012421119047704814886215489209894251949298428958740000451720873251544216704101199514252290477845824329344313780365651852068095547948816927502009926649999819720789715038681054966129049160763451564971636802496691953632964052957514330978520120287059655108186853319739640563431330101469579473247946198252011495143380075288369525341946685689513676263839161633754367547609661455962634302665391116497512173811541252773072869155980384282556243050234559874187955672305333200055750118190935997794237872843174217220810490970936658329330941989618124370906131262313942505412866384837908059829751318033673135006814001501524887470105301254708560787068727280823235741097614989237574805031215519670072092908624738175144581827507767770376632837195253193503191019152801911701782874275988031644129637068615871183175695070905069982377350853481518485176983780281651559734222588719938691427304862759470471889498266344311636857275852647210703623962918238895738351452245089145227219307697499160597011598622537390972032357405433757416651583676349163371912908030565747397477812492544307169527558217358500093202851290449177161379484774326131884754862430317620610625246750701466576577342691175206864943367520550122586099111766995881362805244379845082494445986472954193808466602760507522526553176074353423532395804969790195670521032778795587312969065784425995596083815280439952238957470242358592359417317935636176124832031284177774989320846596075618189623902658368866581348308729309373929278851449121397927673495584864742096324917357510126756443847567624094324518978566045224858380705232848902425976839644227108302547510086125266688229857543002994502369428135790225419333388817297915329556306834121645927675971064967342855378823563257841934868680603690641376106925221489906111608441596435397944355365491705245051024180626937495822653933453244516751655119672897628949892589732892279663215139290331650139245191935946315721665630791116358943756642646624894560463199599404475153933458507135426765261935523697390990366382173325785484083095391042276335022603679638558163659937903323794812578877351974500403991296488900573372915780700900965919451307024937620287266778269292997578922681430895924885107641145786199259380759958636022349376443512400720491117462527165018514111705109649108082526962133103254919606428581348111101409832883369604205184138953144198535566179889287674622673278117883090957430683429044315088779937492122159483733813636738121993473707730666400886366000818428100128889998804934123406230202280764941057704717786943076071121936640242133140317815150859207295655151582991298793628599762288786973071179892269462825632260389124717625904541656855688651269032365155020621402371703276719309137297966947030161573889271432376808103556249161985338050024234737556477780630152870357985292881290370398715827352073053659854182346130673126022357806037124978288701463507703774133670017235428708381971006743586169918596065118894638395268022126294924669948317179128685426621622749328690872994586209495858151171194511218601046977845164086686573981774673143372058225787981405064896170337958437460162324735849156650750624335620223289343821641192430903402494821984463254020654248896165554117561194326083150105438008606413551272437221321375245111832647342227130308555549907040054164948977585392102309324024752996763768503935346475440282157199407178151806490474664314149161043310177610316789270609871097995667551077144126895953873071438339921178450070870911462853972837800935285878226231010239161626247599218732043820080807510767292484702986695650648693569212596190673202177531008215302898050457355094073934955375394971126668382761363181056756626568867466033948459449294048240457077399742887181182015362168166971908033494992991669810227792157917192647169698445105285245571906751329389940148082218711642436739858237375477953143908578923887382352557508813120449908204982895188918835204737296598060714932826198153551318931368534545279399802964356479870821548068267584348372890079510442212141395716278782890170848418661435572494070170234351807480398862854939046265762097157565448058323162891067311060712088898883570500222434068590491635013583190204703040747042691917412250647202026830530502182442925248288767583758144829063355373012144448333602745641274705347288165062797861967772680881348625040131576804767468914430115847564816558708869895130009105231194057001434291725810295370928649038018359614160683161437999131797686625835611596936303555504139046198518198240245944055034063904310011211580663975722832650859321663080574083941991677117832472220114020045415522039692075995500823758341882053152727426513404651397079400120168474948173071043950993507859562744808976948909280058162168199661893191933398309260049963102073552773798355235285635376037639672293703760377749256943624041284699674371549836501267200000740143898319325303955289148545016872702601012606846282770238885747282608592194553976200147892514676823055310986509197824619183909064956056993656160830352178918741139144879649441453475248556539392978480169545771823766089641496282497205333157724508758985631461684113651544202612550202167742492438519412668094998588818411939263066479505055778970894521442311734165868032256268114366235812341460397510314999874542400965031891242354350237164617812805797646665087062624760811283335988427434511977282852522263260661990408536764926729148785165210050383311779893165090088737592314579038600945104369482386328213997737402285551343247434996609282035261356458475356975336103472660773549184404780343025039286557871090893628756213002459801631768297633121664721077283608110500473339412943374394804165303886246497337064421055444850477806668604966813999431298526642632691265411403798280279817455794443784467753734605412153752319209711225782114294465598914287778915299086378069761537309595739810086558408654199885852693429920335625549590891930934738016259164210113830290116485670262286887594088370650716690005273582126524846928806765256261934536042899558686586590950306516833799675566704168121820380191775022811610992360197599788881738909138320028215868241811022065065165725872368823956209790179869758983623479932875474494851979849580401898691863809893690075917134735048235128442592885447848418797633648160511523412208695310981054377701766796498874150554066116528043932151487688068099750349305847060368375762683211192328418789066457342807818273297006736289556249504720765546747960139468908408113494276571380368933321749182023790950814262349367899761578271441232753626204642215368679842544780690205864036527967698426919617646198859786758026139687894933986758851858928937639256143530011394498582384071167523292012232345504000761024478163629809697848775105917847171613871303342826642823427147792100816310708291205814073298218795783142709379771399519253834089628044787780668915060310370536442767180869398725613278397643497326938225003084208953486626063885426236908987624600064975218450006608205650919402566861212864027879550692707887002590806263340649625248540458086177032292805359277480339087898545977623922336137723484149820888287542166562547979270919638878929032526747567284692077227463253301629064773867939488458623890927575229546211934576855838673635215096046616384912299280825056822054751847215608266069385408368487145005952870269516496650519738426437235600781270404040626473639123219778073236398990070914266857187778009638344362312437655821226250417947293265984170591205449459446874545377199038870434486512911942890757765264721873454000266348422654230860801641170886550612129536061574817647097205585006631320817677612889460640275660102315126111813327114368148159703913368530477938294346719238735626415175423430925003144236383503730283352701429347745876691039923052595735988651720218901895119971719609019628815567570898929707792925655564130022244689567611150022624205983169276747544055619595733714775974486323597135825337841683831064221844397078195588339596875156222496273988727674430966842562664154676021113759067332023994957213539738311943682231178994962841957284935881596669120848573932445129786687258515729927980300015334120405002257954968342598657153395933654487382940130866362164668130197758219535800982671357061231442699979216663557395783888727142688397857840519494615634215732156431450642564030311860883417965698537203929519192525793869812976242562777355632025980460040697677032172435500672231062166176583446792892951510800229015425780584876234304171519915487558417912918678403729241022289573299342685942351487833320781246695874717912414557977597300994437100870313364954408105982639623508082634807564616485019301407980055391872224702487357512168935639157184677549161130577072531104168304948223770862430926273783765018180270706416205501191070031298568534691184558474805247632655108294503325470866029122472701847535103417726352524531775632594680396646028976386288452752589899190418882517956758229711081622692247778320820775586490948685376059202856165186403127870513949166398009501507994012321708857954482395895206146884375126829303383921644429396120474181652606767035776126840667346813943079861383251574854484655934238128072464294357550013303564797147196462415605378577470390918827687370359939870559161776703075890319422010850665801425970550637690071530583477513973835895259492343351623740714920127120710621651082449006966026257152361221753785307557663130607610640826815318523728278250242548197920110557508474099218717778236492078921501075733024247764845680516948341932865314224347089680816224988874833409323339468443783753246582546876079885563013731431545781540999331387036013413392576430012867320211181058560609915076545459101317463841199147273362090444598655576319084271518400637554581497365748480407167846817520238796667262239723727978520857045419291005066409156993738284633322122258023819195830218036145890305909344917987866586372590608667680842206430528093811835511419432162118506971418416219362032064169295971765405189210236571322461311256800565238874528602234300291137653126480968017040794110019131079743936960324834337866655488972329813043307753457257038015374445003043028922764411147346182581566756310982172844223756918718272680680737096409402171219313401600086458478981188127401970118490365372913081886642359475758184689011029814796108502920461759541545060837610062197676875615027740214832573825638649972866714164863095014542172736949928718041286469438173753996130030088371525645796759880121227140832657415423848976415704237623599946435334425954451208108038564425319326631902865228886648209982836534443892664884860458652445866105020947887000589818709707941039822999435834954095864027570102291571991821523094565660806132749237502181218046530910125606622143977061327766638686908877174723310568334589016344369730402301337369285933366337123934532221633664830117532940223205970240710540740459600767581858610335380104885363391844543563384383590886643923966468498279128039600836200632617900712000354743508969707222827916894969395381450755265959996468515660886943171685292014439498759257853398520501500823118796378862726186507189209216439700841171717289887497754561960256118559654712081784793427705711855745688154611348108183669295591313178700563987697191081119700812782383126998416409688871861551215014002520733312022063399833046318007114093881983538150639451974470160101606632477728581148187429020655519677292322952749403399489940326078485970668052093597258449750875046252698895379984591533627344193706455696687891871582539208690415127394497134519042998059831794475228059214035612448222365952183321744230941067454601649823012333076147316460021102215670431247083248653480653931553966732035584481873981025017621455057427466063062920821423512747211017746141167995734118883227982586436814936196208053527600023920851143872037104083790591672670462066382991504259611893104090797170071305212795805309484599197503894997081788957358094587296704662840576374606112463170283259314178521011970422716512784576776661553264013621112039163040219524831843125354553247573715714230343157744815337431412318177450502033158642730669971363033767174293514163306431395933299129837857241613694380169481581852206476795881925344677771780486237100048467177473345901854728806057511184830923097864546855755200104562459306724257337772273295373864599015047397360238704874203839509508344532836500732912441568247909739573277059526599603481861239792306175727363465967100797709895176105060636165061240309036935809724685579984629327365731481171169330596719590378489859403388242320371248601488230598021525749699996259127085624403655082138547055392530361548754258862137784609643896993760411297364952215246664271448640032360470866850347698346711772673123780358969703713180280854967520299476608663828831560440440015451175534884414327748649672862915697691903034001186071014700448868613637124887638063052194629782671089940917037499651777160581631360496321112681980547699833133405143916148897129443934643351191265866308057867912894499832898829339868074007258038359069996487685873097914596851251185354835245597389669396337919069363431504466141745961793057160328649504146655791904326665164037874750150849631347585833182852966575911224977187517120353714885255302474757828303024667699682336711723639939486716971017117907162855048728540422886131411694625025532217000615935296525438189419195403539438797697023268846099680089662765818318402623099621836062042442845670986970889413045405699813365577013875513003233923226361218386187409514922964249497883501323839110298121337718863856838025986762283165557093184785608899343291019820685577914672811815628393492444818874423845776376304836707110590381064667836986226524507238860553034132816984426804874762728467920995134722129606390499348844630258216580358318645030738496789041590082710257578657636678795490125398528997510211831727079894303196894898522195141593514470746290616717652210778262011159564971715538064403205187399246705081781654000675127852942134101248374355224147596326527439677268086820304856977516284917744192096221904679800328633130631854905482720454893313263745744994166887556707629411813546468864080282720092137815920200619971281144029510189918606281239383856403948899086333894265693464291160545874961227506556259391161545371545913011682475146358992428178178331465723094999954957436576536441426056465537677611739021898204303246503112411196738870529939020823057285711742255712936286745915852487789451204161213417816621648420705457105862368765700830389317840315197539047107582248863566201746588357400915603094812799214189083264300420280756522168215570297687973356657436252692103197475463754026100783411135719824081606531008057971907761844933884237600202522851282764355500504234971673256699038151683869135414584730504846011692544360543856008151016590076772285224622214884962876501027733167213244582347216380442383339259849546359077355067976553516425176187645389514127187101204884128168848420821432006746057138730222315072486590329241615782822181521436299678318836613859693235673935101231267913756805108572166970193817902937965884455681358259536482922670582866309773363290100699826391598239001662733712592326313728473455558379210358058264597970571229692307122748070936060699237741191050585704249901772380420883103410540833272476395523225787032484150459049241023994273850882819517638367946844540978551843789409945292195405851870759321708470099829985514150630665331751182518481213044318554331920608557470325282179054930262396410679388706728826031301162784780339932122622566905282805753234596887234660169326546581440970515130114593508803033118489340200309647235083647662837407298753499045809685998355368536191282631223765267336989250641659433958274593235386636527645418765167030671277884115379479869674516680229730076188632496808193498674314415275301266433209051360350496031301748058903757866961450599654633765448580502111092120423951815289243512034355322629622088989506054540417625722343895419581285295861707409398178640608128938045127513288776612810817569490474085374845172588732711726143994049584706875792914322556125616990018115596421341343783805445657445909125429310342762654969800645768992599156679095473554666011665253140272012850049293868690936360817824893726683951799654934159237788143491162510083666641847661336093168144242761877303135896239135447801224757067326030617630242173249281090386295896547663903088075648097056428662838032178312423269913364535840015477568321521677940997429703532384985218932027102210917939311038798423265368322871683963751649335246213658576653454129105552807149652813213362754256684188861819871017963203265244549508589908912437283241050240644389484145809179281256978059351266552027690700384564564231738073739188655290322426131097307853213257420256514609146837242756262575611622283322719467928300063558574903113727307784953093678700011190537619837146830095725222153978875380402245453516859725978017848874989421692968036706707113926502453245965631028325576986300271665025523358403237368136705778787275279213989449885778448042910362071679789496595666139974074756750662091753246755557913583306002311304447860346660894535822486204746614566867942604474002478586370366382853044219390412984178980436272852471824568646107883188301968771006276664883130805093444366439854643156595163370156081222775467990436723940597017692036882307276539216959961564305214213176124954869153217477056142479321881561118258424440089894487147874775263922660224119779709621340868588284887155305295946568004972239917572015899700476197778991940863974871778435681091657654811265349418956033417703370496103209894026033093800125576985298232124650227063632154204962837825297441121229462280972997838620136049532398483005260931431056396580371491862134422848261625395415338634916178965914844704535798166105441575108739601528993985814179254372152209744450122572613631396890826118640126981414057124555008082813116007083190596595310240846616262910827622217393683831261490770077534982409016137373586769443345855443159429853978618102901603224400662261509399566266947559548451645211816261221575546090470581938973858179544469755503851541577730828791097672734150043292926887316925927174889292084387371130566421345769708654567830328628189559266360713013039170339165150442958950942629206447370927032894791955051108503309825392724968540507397247911061246844813796821995699318361955664103349825982865400903120603270512643925612067334334681683850524510946075868241579864263575673050191988666350545938826045173710837038775715837536681591352378473274176815436363894681624828700976781775444167321428148589040471595579834408128709852702453699783888680193289077097163454246661630938352857946475531261553088933804974019562739138508810519461837248773422892647522708687009569920942155201557850815894667384944866914873564859865568749748204354440083882064705948379641384885682383781279290197743429840153867985004351310745022639779451954617284966027807899238206401209212378207951909799426777192132200285908730155005854363432811853869519511844352000464729336478907769914044270495009073378024893391106109307675834843946453454755413770155708029263468049817327206055713303272177800418498166880261078377179739152456236532940840922646934193307808169270826555377480058997432115927658445664458698643391268452026590234573417597347584440757117520354235267178250849287009332892371682405318965238813772786112771674898595220312798178017241370520071963008796200685115229459927942673655387092140522675521495148097489352419982928252578553951166556889392459997302723756846301515338083373635052442726751306213715009886897023471751503345889831634184324293809503227487856289596261274866612880357851611662030780193085726538667906899511027245444575440177426346391767603304643663571073601292772114011227588060220418132373389787036578077137878564933337036398540112118577964541982881604043803216493836058314954855291667868337895922055838287287171350065631269174083791465500215069757908310622199534811084620983386734346275736170535086599495009573649553543308660674361142732219377696043203820411019627601534581893021586068502197048985513710336388791972820426234534821881272149285422164141221083496059793327864806421512576191756979389937571957987102526919358194010201513933123875373573182096022314955769149505401179383194116211864986544184854899039254205743993510675119956958757669000508118083317679097238415783455887039420102882619423030400774990011429858267110472085261398260788080450005905846872291438905124804682348487728170071099881800906931861449232996582982968557582583013418818504591098210942628908051860274104384892919164234370190389406057350832305973739383827289376297527318350194198562786730396958408152992869397311324983769075942578474432783359567948015468378120196476159397363388792481867553078324887710006719375695776597521165204869344080971359408061671544639482094499628704629934691457146086321940483070319985771035425968926461857063722555970289425413072489171320739160467052196208806797431827918777479490659778315415743661174480595458914282464270833802476009844313495450623869886106140915589451254807543813826440367774119735031906741903681117076660501060792542845584333884289937388133893194863862029066268087063990298966254241982135460848794756305499147315947318507144408108798434705841231259429184025400908757608970736650004101207093050196127872891345162676905456357351754414492214614604304239646745169617714885573393908096622082301050691994300966253198134961549342730705685548377420774428149819553336921518931753267932434760589721956006024656242691523747279836296451616279349967956402114273788406642370172940032367663402509336911394070993252932132152210335685313153334221315993049674370432644217463706288729722351369467860121433248146146987266636828904703991015587742021488084956755010349598433540873745795551118019561118396155218846742370025829972354836733756163085876313398158283593954035908300049664841321848387739913428196968770612391383651460872908355063752835026989096335555779997105923866410223020689863147993135867434924957708445889754340965462903821058650880444426974436780981643319420096599367298147464163748183598358145005171711594890930448846211768324016389226937664874969752751387550149704672995351425892723674158096874635566097380891074441582066968635076708001055879903832164882528169168575894771833097660332554000561614983236199527347433187599894723372027572686674178118305235796517262625711588890881266355567835140801975859608030382252130793754614571845940429995396424120618852259649245048171401450420651058759851336923820483165812763494546685845570241754737371453451393505894889422352099896342226809547866560765823793882042886654808560951180647509341534288267348014139046864615531168930236755770947906180245798780918670564060673130678525555327972230459693704673196171010412971773872491192055036584452164122800372627123888774748187785487557448676528409194912352013492389099031703847400826582647840756042979488844147687542342836724758224701026278212469872544426529495403383144141623205105579025965549438311768700562755892278649244910159239125923084175013887502785963568119057593588836588115264971140093196102099151598876338084839949648243232154150623494332088139412652679449995513557868220515728540965067018474785589696313056512556761473773900790845732696397743895902953371535573960244664990653283937527895006439992378058898329893354397592388784507586694581196761645138498826443361854132458109871316084518898057187912609205628405745295755732395383556704876892534922607069543522431222332035185471531802046119326218465941255331056229825240931374393466290254015399079960945549810335710995303431546760671019335989428878136569742174628343167730997289991559836995305195349620215250172023802172711038199902810643684925167660102822602511574691799697338667902775696893125735973887755008177424470732295511576761061840717914396656586867365069871522644380465114756683976677636955242585139159443830980712659667570363312302644365106456746500123549111878492558729272376677720261550772899779713581378575210414960997846303563468596125774440103149149868786553034485704069679492583457768028149515984483196938723646919497543553932535758236264469141437991804324854357417039507986575052401931541691137398862095313816995749434549480243449979009988340287790049554738790691925464872355218022776323336430869341315227342393235562863415591123412848046650887140900710678939567137213764743646056516137970713267788809627514161478284542385156657669495767840442253262697438948010409794767983456641073951771575993783294013367016142249054925458880893518403948026033579713438372679259679657133456710498726563877164544962320606400643481990347606686241393312703731639810082496439842934904554191680548934741906389303287289449897399396070323328404686805336915236793436195438906007611283180261899901595151195076012264439891946755498394325332226195229685064111409231039215290001325757986707336754752519091345679482123904076916307814465690653877915412841686952317011838457137382103428697639650297937792080706664816239738525898980873216736878601062092364208639749470365420584251886516501500234590309040753732395002033124495626563133503051250587815568377503671397996035544499048528394847169099248564807602767321438826235897913794236069329403402504110081414785151532723401324039783954000892562699352273840293546992971948786599765863845333822004957144594368270459486172522178075478403785535082812150462839493932640814861145116239309788468510229957666823222672840148845809557100186963579713309842894332627408461362195887547340588575538268284394247825949887238217738950356006132185416954318487955451189866358271146186802641719749030034111757508152936757144094141934021916348643866523809446623080753177393378002050566726287492567855048369931526908480595927658943004396178274789839420712086108966769806097158023514359413812039111131085499208377554890574995881155660833170981715246697199327779225656602131779542413600612525611248986547812791672735470300089396610956532689678147896371424441714216205919053716307522309352066478943570523563650686556703801759761394267406006408199641302190292675788770378873414030802826576212138443664811376665200454863096781007426216503015905628157800882863929616227739117583881580232648342106618674820907225775012154736282375558713076588334798205357971358023948802718880956362869255580393398208127762351478764757572182908372625544866126082255200781197708389908914633133234561965597942658305519808916925572128930308593448585933932516352237613556486285622685317420073935688551099931866015691233269266798380941321448535172405988047704882578356279622516289051284976926408863458112674252764965634658563733712661669502512750028139723168783055874919043499312779034878955940960340364374020096871825591891168913982703314444682303914338021082161926893190481123746617673239080618197356138526622931991255083251012008702619741352470352713022138822747813965281814862485931579355035932594867378213356063068950099800053173343881062408779046592373166765118975783070782535882265949839323975768627151290289164450185614115281334294289820723322376867159786544307905519871776908676572889074693449648674882500325768512673844970316044788205799536954488138317149288542120237937915898119561413083335884782197988402474264432552469135542050266952303899066994765751700390793524065001143557698615696062815616521557341558017198722737014877607083704812272611774690773878823599255932487638285921144409408573562319669089842783417370980297844629582160845545973569472091783036727558345760993574199006140722584669417819887758611740983688372446800155974766126504754689406572147772132600964580356451449299780388814711058757949041301597354123703767782175625297760311240672521889822681643724447012534295930311136769833436692524083798640412826886996042166442777166350442511086308157456420613269928908631520554637591772013853773973988458675607278875158643134232557336792386588175029917834848748969310189485495516876218663843453328572891855152524498271867268228238420130093304161247392023720647486772416979493798875423218901534646876339897713236803878265873327388216838665275487165984600157899065902378290653226271144600560684813758558622347533866404997076292194124413036254086801079156374901448557616918657983834162650749070123851980276460160646417720577628772682758864633491542584541868048462663657589656711495253060726345030573294569899179902739565571128442092846500778756069037043504037119508596243950401769001706399828269978852087903992471351325249688714219619938864709793882824418296817288996838257701148304374904264563860369700235736551892114280553938763161362335938441680356160488194973247379050283291899570309130961706715635574750376806787948456617394702039526251255909940489524102637126877941736070283307159721893646267313642365625130308220890411897469100490190331021195132767248852473982963808435517638953773486337394646017361184330056034403052222355519720724236855642933681913602459431322771687670560496383987289134936748538292983504592810180400790577778509409328427388314718320411788223248983694164740105488233505716992475323988155699854992193296324653265452798337666705491824059431718346228035284375833605154725734284864652086740179370326959068126675107172645136928241165986197718370282051505848213492242393939312540447399900327112487539862139915851094149984689140975016928051530392231609972863423460677196962972830556466042100460253295743314746891613121982111593539071839951284691034971307140003298927495018969495120113155974500871604391402054761397413788843470465536573462173247759837192557494584152228684610761250662973735111511063112008852966903538419330337516008153906073338210268661693246057259191707300996423237053200388432686882266230677978945242248541262161365817853547593048475123183198108691115076899987351767797410153753481894784955970045553392092022122231461662970321969002083297574489278677025979066347564676705832988166856901562212563728420807404630187889034827987454209252752590468387282678534742906103355080653338424770240730116743571366216593360003696516544562133843608831170209297601582551372606216644109426478409769939562986387669577380494506451921173677248870192072142543591541767652689565002137530231240146004342065230393086081682635833897415808358646290015004861770229019103537502022638324080727835281953790256175091417577147059982536899674062875293030713026516044369015627107097736081630808083074169414714119623214673128707963775432336268653488196557746629162850591713434043471514555490437832632384500577872288903218742612537998588144037050288269004951339343700811448692937542230811558881517468138142307324828778225614323012329877264059391679796365372528007638404367563400602518537860214054682328124795047553198512944563239706400689524706272788802745982092857903560197993973527277945458909434016099018109364124673331890137040844667347038512167517126842937562267848323425862378519308885727841514666869298797663481838829978527723512240979207877572955837407385769568899508772584583347243956436762205846129720411988032756500883649426711925142682248860431066327592367480346044394248009395134726308807565760508239099687190643796972845108101475677515553064164668010344798972645293983887356618822274992045681959831300914722389472228939275723975889815644393189031697660424830038492354434935168339592815486533437479025524526627709971934143776677491215179599583210645487968607642003578185093097283539356912713793114129653439051919249556210635677561939071974311893399704905267823705111963777349299085145078458758481842550072536563261982554146590375866311365855080259014635993413696573488848919676838535260773193146667209515507913695944141249596932097087345795719954322479177917033881570618296248396668516681325544636969858990699930945505088058503183541502534976667146531318746866633598440061239915644920171022681829192692665869266683570770901446085464148787900008922434331898572171580787417728211100941480538178733491260724112111739078110503743087138587223185536627639783900676054164424321214702158360576853506973232799337052199668048337296746599457819327716588785581408836040375433706752484741584654515640237854928323924739271158509618288082166846866725424806367954608136692998040545668350728085830126914164117818014337447368546285544531692354296117125783462168899663753025599291506823397810635904322017091461819800844644526207622594139810295598760281473101829902261258852556007207664573378469004997051389976274371068001529866204858709538866669685602052133452880680150880978468774240138184481104659530810137583785328429552161240822726894004779356625894085182238342067444275825335293848794780329805118947169943890267645210769677232207628253795757129910022918424770943152642569899013511734260784234236950913835192431801427116725725403555686281877218587033736095159786993511963207540968232737318343219029822371261280379191872944357201783298629234549858691472603753007200906162859163803593816763049579122276961891104897470104333196047366979916241105977663078027014435469223484634991707464049659732703338841008463818985623186913189932928024626184674241522921346908528267834477880903367211066275526531251872708427612780387939057226440355389386015280440348812707725933057295805972591294763383528129944791932806416728177579473482627255114166702550323930132471144501265438293299144473662808234318433850873091901536885699284233565290445701412894692702820716280694783224517062983272299265128634645759115774229059023027431115296602710292839672775596168207255019918446119884611961321425739391939135040273177297208532927750847045978326803759566568006848287031901539800283273915137962526398283478456588594739863832276481139698476525064961908773899085531671534201246525087709592748133198693131140793324450144324043671939560490224150455939595258056885256319297796567048980554375576329757293081904456144114406581527521562363539739323223463647945788456087856304473930089340749552773473597735869205979406162722270158729556412040347190496651575244894183985330182503089675146117543437864877304783366379496347266022203976214306169755994981145364612822064017514205442951534064956115630081401696671447402540393265280762265708309846092871931208609428100460951427795117668023500052363416891609195833189588753198869115257197191683628046997036694762149095320036585405609518673609194157101014124716342284553882276494650938909595289377763836901332088337333272829211629928629322464516081146531526656001721899596580576101584519777807725177707009431886033897641802437919599323668539268301230822522162256712442448505028329580461962222656042506887459939572997105968364413300264346747490739063325832990515641063356989317068943354286185582640030397684554432272336652135728280468425565486726629730733218607198276345753661468831817091594742934250283526521516632060657659646993820643652199331413182236036917653160593418067562861709567922038300285357769085826437165547728744318767997432228972980491191038856171475940881953808706852682914437987556241839114211755159792992624650383565385002008110179342888770798442647902303706495567451363049924453737485339734850504333443731970342704208473023250942432337286879403672538021034523189804957532224797432626406888607380725491596204770479065374202071020810602564837087475163102526246855382669400756033611239381019475819326399327869100279863080003177592789694805714287343673784568814075459013185698717212152405548780077881730606616238673003735276723050399311327733636600169693173385201682094526132629160091489696388995834367123227442884970672012083633360996838526267247404225223244031411453392446906978325259767273165766963171595130298467944306234494406545095639829247514096806476990269972269179360552791641828958804712862298136370952504764071295126524854361236033577505839503165830182475151872434904856728103706447911893229181338288773931966567840433084049211734318462781019440451217909244997933271595096950929928282401415594665133212036822807696783016622383123199987163958318962803197004958909762517142996442126477608121956197745613238020836284166816860879277769118642380217875385630436369044614188338665880462757093185921533766123601069423201664727561180410715036362237073225746068884525586860566813159713964258881015088692765806047825622679905499148503143852451359425115870690920160103995947871173623686574513534149363648453009543732727195597801673649823950062216306493466096125523944524796606420790597362369933773207848167311968806969514869838078031177020646252265315151788267631538936009183305006307267599368644370463030275862238520855655042537951335820575858213860681182717633310984586779121622590663163157487316072858921927854046068261690454372344214825079512123901245744078037256432044217171490837653891173599246259514710338028831415385264978862892486269496857178178462778253153125228460583395925585333569153339722432221764682986834730104669037795077909671506692421904966219153743401533569181305625784338882155639952568349179991496163001143370789677403236626485957960365087527587081587682073890767511163151311441745084320346872950650865905926364456667480180867999807192322427695696133962130810294155625676028670096074012715030216123896054886891089016998330106939368108210444321786067454073180127482892575156829809732753902330130186487492337574719092474608424120851116376627758711418206892960119676303016933609810890597823015963287932773060233252663646395208963335774877573941328099089930096208334792726990091069800071662254567178014384818855940257509386763098913266294481738189165876275058664464178795352013685245217540447996638531057376598968772411450967811618847932509146964148817797664565440780961097363631676583225459875141212163503719117229156897628965135765467165954313175140316516051536901500769052385880858393241327344709222256702224760689482886383295666822682621885454759090609869602984751090467956164787448741066272514208256060047774532884500098142450879190723516985488787668701809602352150514621694512470116550246787846538451464302378413957614781912659523098799785171125678490545078070433611260585570846828136344646803272826550655125432893824169491545025616743183364183097206128064403399714929734256797120868866997111006964168102958333050576053208752946209998290955926491684611918288361803077401235545629443683134329651198144967969613708540704656942085924695385191700757860243412026711382097712243685152050604990552064721840863309924891580240710132676714683258962465703548613970065172266263112710308181303178570726147874691736700396281976096863674191611586169487685070000317113586346528323711588587452901927043224019319069856275712424616249057092926804474619125295134786057731125904217713846553113252844640819701883148316769957841250197943856110579553236720898269582946420620545217612445693584500535014935029084300719998838101739899150393621726518560950660279030661708585861576470527276954622112743901276110184103226672218465840536872024554442733014728160081814497775745955266610643555646169948969524851345032634250028800582092160313805688270703311670245738040654913704603236873466725291786682193702638987087686283941042860253672565317446023444484622827868067151841078560677715140788200455345388896906184739953472926955953811102504206048537441729038565589859252937732071700547261589133571329565244154586483609576007248028124757003158613698947987745621961420271072978273327376127324655464254344226100663177558614704491583832606017095982468572373553843745133630552417447408540667354193039995781196437479675419371913478737348516246751635557799800761347534483662905856953584639219976408937331429196238133672184634516011918721857349379910162671170181103198717343895082983419054389611343308720270111120196073293578444374718559385241525313740815233286860342047895750211480012326969271451575306239361893096280242363797076363607885453481724751093098219398129817811028841084733832079514679764399950780680096679633358204111870746495791685164493466365647820135592216276318860063986473849995957730977390476727843284357801828678714779261623275094379810742745581385117085058035562457890349312633516252277718453330010893521587674669438439472431913829105328038836492414679565341763180515078904793256997452541375690897709250507458758469664102895012356063222823911766566340552959218640588651196726307045267007409567945758240349428718353069385622564667784181074492226043932290962682293237437523878422835216931794989810817974744307160157364513249624797852070796494915374243957339832389844008279516920680999717494327952397022554093177350476097049646220474332236770757899414511023132593386378683381539748403938286922013446542083519514067263469992973202499766072928572037426824874160635475046315841980175226975509539932727884867247017552390803683985675111000591721195894386561638357048198483745885397365402828822065818212470763524006197534502840363217313509503649214421034515136748933354518503843912063469229683914918914186338121504526040257821781214015664764455884208057105916411802244562751257737250447311873461570374881523557592712903757131605441631310231122945324030252702159747378533236496725783914173358352999252539024941169158719239089579319493572672522377280379321721665907642728054584367186959248598135759883288154546161314088151020761567119480196517185594049403852498112452400072459317498203005330103893349258375000929447527771621435016392408869507796515665596368042731830880379727982201278007655657068568883637936015953774208525043740759355382985679842361386875735983685870133177607352804660195172791631089932397986008583040982265972514024455765070101573676124718917797415773121494518720075328093717281509673145983451547640646913810003438536450823041096030747376697842496080529724550962425175559254924344738660735325138362384234936333968044227512029306419821723037169493531698709234675547604180307181144728567445506928789543704582237973862046662458080363077019890076846258855876810615396878959312053523239294718654387371696371638852806813165343789084671512059869933881256121246470832909059703547499676123715843239088886397460306449230077592257062775272273212615707694928194813403208640563040476881163008331727263474928348711594735660772230303944812151420318297360635133320028784190175095170375387776836852190487822069639268486965643447738514134520081882118738235712055410142882297521711406675518030476994127299538201865323190717643745482958263046092586384504173432124314836803816672910102206193879840545172635473965306470951616470397907276195999560008137190628630180122034878867864535832146525070095363661271263750321779762600118627671477548166142853189675308629630426023900252254548568778477817955842414448864207798187906139466496058370376117628328791744102391393947252284801226012990320471689446329695242317482854361523384960423444473219792144724396324752840672011877005319625830284816846994168852639251929604006620890938363591999801505977389927767110971515277159946098128123510530474206096495733194475272846219059204837852670040303836411363021072383160381655474009088642044770497378925194713194848734473559870634637065099677576074607390758922347131142499371197972076118208667026429926589613417026244635242217803981384756220534189861687218524639420856846331486429232250133700963057473921687629992295347754262437004766265517557368794848838230250075927461972292275551349299571382245581783053271947758115573689097355066751520211524118752265852088956568968198248469288271639601193875530347975761720936882474149662105713540245503445947635517363784233386667997555935126325921233044070313101024181934768000853004336426843649552680316915407877592645530917469624584858574828209786728982215148974016263750224972589185909551727962628120623750955589879955305152406662622247866136375338487872567620461853483746754448773477986065492990076536528796328663002963675457133772924229791523228942202474590825464605358983517806757839738313991565712997949652479234533773684540202122203061665815449757625366023700449617126995754614694189578066188324957880816108430839682191225532791962682142183785142920747588721957506122158186154461830896138216281647098859093321581051793907189345357876649165138622886187172506934700000753801337676526774646714504859296770003603949320464134417011083594520035227030108509599215634464315150861372995453754088073550332998500179445047432817417580101449065984236363093870508168354155828376543185366251802082958078814457280487248910648101745216404210350010577015813759742490518374455878953039049865124376028578107060953930922058852530098594498604990727834328081547089116039872240101527636903327749939843538545249179167465821042806629318964129229050216765666128455901650693365335193269959843520615586088212177397288041066224717532172890165559564087011153779289346367778586586100511999428408765041199651610589506649784326248076124738895812944303848984320012634383899828662974750468548709261228004701712758161137210118572057145626976908820271566393466708302870219800288127878406475269809111444046715091363509907253957137780235289098567565764515125761619578925879281639425837786043051770067477104521128490015912870068278610333207188884748315972311428439190822231486401635117253382690440901836172659075834934616862984475983155079244005143141679283931173830292420479535318350241332634424883811319582605536237995271562466890504235484901351083728791308012915271245614448288834456817496379520642478761867832325112624563691574715332492680286420336502161788394196773696633687404792372443984262045465662320164079878389645500746958506857261494681393099895108007076609851993342275848775572280248408946655832354070904024633368519269088250161587389785687107704021664535791719260111800886523715023914854296652541068299338558197383745774703807724306988687857062504686948547477363464555506225070289268079681137055457833331718873948403952990665853307552824921267190669869481211816649809584284488915632869975810596210464847664034529883703327008670691520792279367796181453667532277283964840542442996049128825989961977134723903032807144868283286314068665157269182955860683581595198623735130365910974047201859821194555691483359621603346380179702977787648590736035839296172364424117905624252277939267224458719039437733666459187586118355750665395146445106942389950570301807370776082811663848407615357272975423647397564507121908260585133780585483626784781070220237083382545065699566347000649503533388515961767664903185032719751966728221472608046026410327620471497760553010590727481668611098615155886095232569998133643810055739397987399512273031056530023769763909654472568831948475711577322895782308300183584064393871772696641592739512716154424711850202039422643468527186923838214751646331602949821129589098340173745383752158547892900547525298709219620905163052883502857154027082926051192724184265758257967514743202333651794264902554305219817013675634748121895392465800940762263347796867751614982998918891166600802031774869180821826219508300611461711687179763993309042454815732166358450447398949217617881721522290856274328727658161362452790790245793799727308058113703906585096532354250738892630268200856280449668311591547280546973698910696939983394103449340199862354772114976939836971304161706855764614170155563878551455587342689485019977472363692322626922362808766950380565860239487956576247403729036895089532282569771490302939035963553601065135768523958917098459764032166461644689572928862266329299138277547418440908419211159033893316581256143703989179558907055047896601585824025606353799471578608061553844118050752319573907840961015343210521823155342390802096345670164143772752172990659753062822179099118075022288654502071765347152452138752959841387525371954809438773241720971965655281695577350821189748562553635817120620531328693066482082293158800326172928012337586252516281806377580570890774406598947020792549493108369166788543685773409524658077680071367388363674923025863700391089233052504157777236795777943158611113168294523954488308168777890689856109047442609166610314404334482728763720005551728742056129139562354108805811103962652272532207555141124764214459155616592096076982364973335577160057940845403621438020614982369842857424521062896402151852089575625265621247478559447896076378116298331074956919933204836402767198351327578903902228017491063561772697481287756653589306968596393680514960360961727620838584255438894605626326370451160275652984891233663993100426644579987259384931018794953975872342053920791935007228195597809752067823494481610684050414694366406625654189583847755318358016065516628705980847014705857304891200096668696660515771672573376709398071233814142421963663463666391898008191935926038400317423279594920155939487046071483737293537462967800715272751361515688988411234085080133426687473149064264541287832438109244829780478360390767447385602842509276024372168166508463466907570709202257919670185987705579593057212163254796102021823456656115566177615556766865094149256829930911810828422259984725554629247416482913208823777576986010719279795524192408347038453809265562982469439161517073087269588296684067820137919411448625674331530608412860331030204093291794023728833310361024908051679601286499885640386464708237879004706999758857618991531702667174086526456038967940103161441685083183773054304063254333296032863142793637526885007662212800805629469065624001308261334781918604120284666818115098472330034639694268637161446756503546084668924608959906540194337546370588488322727040051638898710644749033100762121408492574711893870472861079209111137850819359262295640711273043388141841026218109958122870688743783133976276599669663700064894880746456477986849866686263798229489607013158718500076174467899284134593156278838970983869637503500397965112022413410372228266212893052129956024236774351803593345829797889482641829676322006552237232255194552513885097337874881581194755201609397212058312186371879369854283704647004006211813707100639739618656157150760731559734691418847617493293632003301517930795948133487574386006343105944658847149735058349876987057568833249013569374143677001817928587087450200437032446225181156839465223767319147538862849319496264045258553307567683513088398024812306557024096153458522330766317648531020759558672692946654352985677757921113792630360330615396550411412654250985199989713876124497285797750010338667226023522117113639418395610484339070481625514926986627026415002768203990082286622483641930975580104515675443313925339355808550741914346406138648812331602133108722728089583383051452954885925281650285466462390941976609209286212636497158824487381262326356924045197718597032509585843971294607200490464558033268863511969486487491168473568286824168370414807306389755554154462196555920926317436799550474057033761161446718266889487573132977946612341257007033502347367226687229670708047247121407294897259605994752955556362974677014552484158384920894400751826610497604268317934276746779077216822243731839170069045922983770466895579818646817785339827287165673692172896549737854035968373195448305993473476977182160049335208797183507832962186019101890170408152105703797597331454536497910786829538514078633451491175415980217985968701517680313772621295411650105236351427583629616902892348260338767622453412881572057518853396032796117047597121270197361552163948899145774506160561079822014699371426587793260548039481468126303297671343771625730562681473652728719256421265450173028995920020962221421114581150038074548022543442685499427998976122864231576833634717185701219976287680671829394504669859898127442084011706515313472791208986139933395358838649389814995882180527277316629446679984613846495743017500101607405045427905824147335704325821124454982955573199032478990480360859279005067805782023682056166839275176612889476508772409636408993411875729030900296305212332015731433918115473407031950468134485850156023726498578146267477709669938025358727936075729821930855852085169382468459715560293335372055777285431845428874521086195715447881090646560694663927657309156011305672287061414183909651058222401862376096130509839872590270365222089202636475957105126860686528675235184043484915028640410574475744790903679153118438646639095996666438904525085400929515394330620341064251349437408874167720451835865965400719417880193186832587222361766339518523828662446887061335011196684445011238343048355539944991692846803979958274231307174148201610791327849879884959231805314089848005677689229304387274812094905798156659681485586473911196930417232814477816826369159478387041187336755082668202184426358960232974184595223701442594675248700854184494650387202781788554040187890776294300585053148559830984737971524830461328113360841329677150192500441954846856519429305986451290440236117655138752005887177262553670129355528674979708561900192668087291838178899313890073422302838483145541527289366387026067395901505634084751129538036597720721572185319469617489318655261439412771118758950814306327830366326609154507906157367029085026342023246088983812942657896556152846540284592309224578815049689669355908802497903332875339024427616705529734320781507313243568438524771713634550137862908113974315704875734563029988144926887330236782509289340001011512418789990886052419058406927820375490320293606357044792673977632150666584206453559271180957934089914804286644340247633825702326389162504037122982528883345218885003260664790262433832169039208428705597844332384567000766918354993581673669820216854264080010438975862528459522713631706281072659280918012296942044647834048203829338831275657469179049787013983715034035293484924117774617148657055049952636285074592790164047140154816532334720823524623086943535671930244900095406210406754139235336523372211528001134624045476246237004470175001252301328923037300498520094949360852918041561554110947789871587721355145141735759061899388441183280084790625445713645594282271660785018488385061451005946660109395868229051056027681263546228017467379436956456433467896388264296945660967256076001831855671769435190117532645158897106583223336231291390819253948253759913164390017994098213945596654461735376612636434155557295980987175086036521675902451371400827607204852919241783325059014922886312464429714693426174225854357565567001772654361755966547673623760535708847581912770338002061926762602463326812981462425456294584978476698039180569083429383319625547625512300595167219502296969637061530003876210694595092145026993791436015324113968204816108721993039071265409321126681049646714101594414021263364960182741281746762452236443045849621417989394783552524918288935036022245219608287789434995365788392119028182329178544618420713981692950270301393174287810538262237311781847189025249255929787304592630433070386963733360903455987348577874219122034339867192358729190403218096632443381247236509978665569967953650256594900821488439329917856905447340043906501165157893255668637383209956931988693214400519966723905684932738453301841674562370463174835686428168102841167078884713498650156399637133781543001564324936784467182654657062701026529973340716843845906053521110157139506801443318019585953055363542349461746183616813142308818564472684386253599750995468822227439768787056453465535260554259900139694069364951008524889847087242058027391546615893002179042986480264425757735451436550088118311961913355336462775436626416382324927765834909163443791098245964142013724722324882627351348387177985769272694475813082559419881641348438553684190968671953776254818643464242084597289553621747826931591623684281508686840374823514220151042185051736152623429068060700308605091136035960389112321252909660004767252747768533365225361212710437166073228134430921099318544686193354540464378644967259910089363461430540440306117134180884708911467005946555424788463670807017482050225235104937592310205446111281837476563036973600007332068721049910088627793155001522847328910150796372763269581809575798266061022513454511166113650916281114454624964140930533462480605328340333242235551605340201036402702132187748576179455215731086385320069653374211630199528275418907280294300725567471516993392020433368414567245254909103021241283152453537536199711972828562036206604670358289602360745835522082324461878961474638955665663598551415339804315358080950731045575252099939641727657580021142215359025054287336818854854602808179103612504230303839773871289504872444961394939186627953441432355186131075142563478814079307255779502830599656443215194069717629203359335696183239872012776592273779565000127975880384976396900484351576665236505410955585975300541320362066721714497144865020607227001331116347949709254010059920842639352926652424547852956497294964987405527640056640218662043339171452159738070640541367414905943721949963264607059998316129773246548884443216213635620741024255460193029299790116414522102962392425507807414923548668344274145976478143331180477568158107871609939946278277315345807963130498380325603761527095975269382150378561681768440972969601881409666822630455995807506183627394080378218413597887677343912306673299081381510706949147636596768487694108116617500263588117648699078078693034040061493396557406380621960097234001256762262575324167919368573544682505416803447107189270949239146928263945716479666461364229320040465155535380232241534986942289681222745036035257269383124166259181308147515790680260603982870428086813911252740802804394807925380006361593649196047710490574786776945965619388800568589231181752260987201427441878060464186771092223298593995370660196763527903748691247676601446084234963112356951502132335869214825154383961935780726181418059141092444836368318701375194175488186275682337076098405679066286173940437261398621820159735808702671300920189664081293481172493720399254305664266897036858608358523625596289175654843128255498045455926372855281067141454711908123888031051147107191311007154819814603014775537074503876496469795741009992702100727573243006747217385246392667510815482270932748093367981824153180712930108892843749122877594571537418601513524910092445969672181612719408794915394224448913043241946791012182573101567492569365300115340353556003115812658837980682165483178044530583634206423561173755585741502955060049589277148881227125990500085293366746210942206359496468613290987108098550079848190384716142210204544943336014134507080562572984234346136818221866145619577837727398997518930272060975766463946164631060563902714321780770215697175421448847721304644419624626807567888108719959241459925873847807484027225412626413444910816654835459382385582170071694184753700443780177048817351178071991649949032444024233015837638208652328289103776849762961622732111650476301023783486593049742848490766973541465353002449312242260859976821259472757664465329978138003033717289889838444394506763093202045641118764403271515711781819427127899874321170645534501097048255219611091451718903312419878995994714349901862135500268931637259521679777042797750947871584642055640599801347119323016755150016699101058945018151511638515553597501135946415602634550914620341179050086265318031245911210992813361203455408868310095780002021753100675668442562444785627844726805218840105158847383132966490405588781384011361370065531050130371659125557536002599239046812638818635037256094041763346995105897484975750986354759037125458249257257979604574333965691289862857414184609037678665148180815001116154057726966338488945365256362321257185441020763105377607486605104687980543977864535224013205441267650464916140630205770043404855338804451442416867199202360039036626402301807286233630530777201718523877813228163833684053457460556946655932908741923613693027721815689706456260926663223478753695540727210016435316364004502937675484719996224545342660170330812975967045967291726342304073870632549957975064079259577472712139679662606389074534117598637899852229188384108078051955269742888939280057800473068010158206706581831710373109423556245564606255049378081642481083502769880712139397747350633374189066237709682307305793977111678578338509635740969598145365723573440603795908872576487379832850323161899119209960487279727423345702388172917674497168371879176148031959755597275268059833623538071296069747121299626302311679475729668818454108378802975681764429828511136527235168705478547210510241423691314583701251595502616513775021578071320928791943926945883869340411918682872269177875439458164233743265793913627562484420376117198990325037407736112520119538137722550446022582101378821655019762067286944980019499268777610565902113533401175281799865649800126805773043531702714158833876986144058859037761847451175452820491769601775910488115106518113727431320225273369758842414596250977709861279981415678772033529453803793782514236370699354775941062724047364764348265873537514852860016851069571531997501486718040367295723715400657138344750703973991687721296958303727068263552570844562627181984186343428859300004889145665252035229821384763040603908994209932905153156048941801355955858887900219380575215020771917251281065113231256705961869069599856158803951849377956528272269542502534882267766704194502008113198379894124162817550129162952076972819253799723940688270636764775469818676088677811438647810463337858547899298761871627427684047260567958872527839076630120055524949435760807326125003366734894367326824845500181104554618678340992871038609407922633707238618824858265818410140621752191630177256876201078266559839724341197781216582646686079546795917159903393615630393735145185591453015788677056978718702306581330293745956165164217008730955543578980963234514766363337101520423793047874835334771684256375993069651304944578028788138363434163170438277020117107377423210201215715033529656970073067069286783125616871518266249226168378839462717715667852165456519828814257892456441061489667852035412223633155732847227860282000356551909920132886703034891553536622418012079947015147942412263111041200939201412215706742284428271831788324019539268348450530436000089832827074949495386341284748328550334460797996362493667446210623452040655827901682328783965604092130836097448310685984109830525930389865828002976779378564862815195490955668954755963976274138892238769300440587417602152546215744915500668158697127323665198355339628097189117863966432120258805333164402488739363232737148623007383341191752081219968953222612329323365131630381268843639478537568818652011446224966164140296414023049369231684432114055324984788265605964829487542404132419011074122481380649749184276891158134721617751137933846862859263594895851112821089431489362005258083111410776322939202387811253538863900366329731934795121964778816936547283294195620507322549226332605564138434010656730596528308634423735626362356597411476825481972660417496605719202040541283559960464725882166368362141052634137222609276527920804008557989939530219200383978133492848977215950411902842547583483913767491528743399446657449517458264408969254552817280665000303857167381863349279930333787789816378659689661728143480443095163358858360126365078496033415997536425382751319421889370030009695519591927204497381636779256693696858599174126774729102584339683650803482405524305569104702787397093375025695434204022750975723390559714813948358626565095213754005326765051187220179494469741611990475159903999950141172879773825663428056024648036114394574406278221499639285933118045595881950408643123941612980895259995324553539630301165886981360240048361005622446175570403195580831307905353893962461222337688526151555810331539738017560463774698248906987710464828783612348726011962497008950181451409692049515361652066139589780543333407559397088466499345917130646820360919990171487690716905912581580548689511794073314668105736264240310582347046817925724052489364975514481371469705311708352864769196263219874667766712355356074387714805411852532492962694239472818902887591691498213681435254041266838956631005111872676009505004427508442557796976371830882940806282781004427605900874193507297097291767667247052218509513345101521331800488527482591351371160019724050528877338788955289677718637727456619539852921963828217052279165171340923406563394357013665350746382340908482634628499849588698274195658547399171008264481101339809802253033659537792232307178699517803966982058062104998174384141574319859328786878040265662042354870532044069916286698949491097036847421177790594123865915124438868778093029269041164505673391519486880487035568463771523158418596645475682738978399259814914391066235525700574545400735855791007539441541560469142229353124051197094209786042197676029635412052859291525989697238214900765125408523163421108568819407667063611785198771790605629258208160892322580411713895406098996407497193076886921326759285347570213277570634422194601452785098213979113143740615758595778652888028933290740813275930043565460207316581992328812018096535989093010428288754632779020924792956067296738150792571986750060623359923348911099630704419233332762891698849425210150389258185166863812296765173502041849018352002986982108204557045274616867572742757975059232102021762723106087784102782988897798845893051071633596781067173356902093016230254737357635678135730347974670779882587948892146292311018598300736406314753491417545248100023678281178855306789708287019544554481305300557579545714973675995092905758605782030815766390001541133092275775944870522006832580280242690432371567188223174716293533732957047416320936768639736088008671481086759151944878883681979470640314914879556386936878717737163818621583426559236648269015546888387628842866185031427862605193235999778682390554327077490373800378908443694800292325275049097486776752191811177658907001185153776066781982333926407335467591777121152554464180089570586594190844924621462010483235281092778838736936616701096710710797710845796153005833171890189185428015606731212647784759095102835555309986467549416140857914483730728993704171974221069604010890626697304778507163802922649975540579096667183031519708925105957650228760467717237456815661742305310612092647196367892838459449337219478939730803164898113046843439076154728035343940487531197189273906949114417275172884767142201754070044087627419143482693252746944279679454506363077125802370105232414003009856470435291548204668766157000373047943290094729034922241843730361171141317166407108341978900815153780611993522018382762144836907593256319330213434504056138315788614754341008093985271470264503404931322380873787260883462696879870775114122622961526052892452990276922411741290005634236740932954951061210293198666610689639003328359419616515568624832163530804200163862534944463546114311217833257143721074552476612744114849673239075061756915514645615521942701098729653314144842927748989843345706679794343234643343067380896229932596303348230065429058988419588715632101566933579275863023286488135120560870905676560913865275712558105959939413153611739428659074735109010573323781929033351904865924674948294280986637067639459874647360409852935305831833440189494028825098476925214957872305872786858115175143775591457121647780166201635141524191526160282835921491194656944618220668340997960518543063274601120400799300308695631073849675512439432254058200450999571804225154451782709725518748786361172888489488026574557380829130935269366829672323214661914869901729975712672681763590390896339608778944107717713351634113086884983523038017167868539543493293421771321455011994148251628560497397223310754231309784053069624944285779502490241711682867465956716077348159702687235302820671909515524567364859951946260274168671342260762825008225371040215080689588922092332482053041555329943456820916418747640203245073210628410632398039933703122992616005349285537376030932008019996230819108924750784001468063700826442988449863895482541163985887901954935424827150946771525855185338422288931111604314058120423024409260300036464932545744754863398920265368986279912378061873211863759181163557088154409378357688824682850846974421209185110808244870827389645780328048934326082416575389934983351485551798997046860125252666299889198394196076090510766912067713096255932614926718774006055886878747675648767802613469746625630141444556662427951385201997884782964269228107517346908910371535458030491662625479605192975647718074136557250858670921418692739610861558957620849722864995754692529195221582537034403209780131096750366254350642057342952256843192899778256489663262979329404427203197271840197739615746369131851874037792612966144664339599652199725824857799048695318678413547471697115800127253509160011064276067419013293819636187894174722149921552641067969458883656626190915092822212701975626994511624815164973769465093636677501014071043999106437143724691884610938129316863803268063062273827858946179570543729612984196058721858398422734814115679595477368165266508009199866941494429362637804831510600141917537512795575210135006043847594810083590665871777617745345303346704735059934933441095945831002662794594229603769665087767325099908675383472611221803800961278672832694492122802800025861189192397261563721405520179119656995769445543635782913326006486350748160174368661742415822608007149209084362578853012426078830382058235084993836634169830765041995037951666247890862643417583342374112007024446863911797930760942077599269579041822908216888056567853905740965641803324908552858848289282234560721529372649791177761576260664095588533288786700036088248055236339324366353240256824034307075144277712220768972388789340978968623453885771652822051270453423527762400053359878750024666338534312308309793362342059080290834790363251641963656149247787469114416263610087964551119165393778993351168387532624653533578889483293619254237291199511315610720816087651165697863140470643739734233514731191598206743562992208141344166831941749598189404812185384348261668261739563741404012026332791930084917122571716299519225428894169616336015652915452020269206212222607543308266722371273299877303448931227984831656854098801314336525567256703083993272216695393155654491818052812137789445584032066256834202393954157608082965506141709565915017223216724461727142599151618901180074567674367277016486299368173782232304874927536237839106570681165250541994602092124966482909993294862338049405900388323163423029562706743454407784839136353434486697213264241368945368099702064500851460164271599253966536498029272991865646000232179954823984413162014549591957023853158230543108114262974540025708114911992416302735561932993553451230978248307087657314088523964396922574690473663160866895540381221025131430262037685037956266698006324421295541020923117697856515431829363873211964029224145495845127746275824162584653592280084216903286207583185297496293569735007822129457870212263517676721034020281375152534778697036685363708545095453228234424874910515318644491872511649605824646580280820011130751977345695440826171544120287460475681337824553620996853156532970746250733304881708595347605778665281081016080156631386867423682393129997787866685487465872640515806751941537622730014155298459807043889582487971423786979606569740738529078893690201679470029687307866903251965052669219314060762846802726475550807176995283444580342322500295764554641351694427462044387550767488521370815487772104327948701814172685472010132305490560150058778608397014300818461370258265467213124705156752679016544037669717693671163762719399606264081731257865788030136103496622847872457341748192007958155026725114832147144096318234452968361465153474283506868046343353399800510018384765235345557673711092325281797784723019385978458411921008671489631178362410366982457430724532894561598936376286392150287772376132158708753531856994176629086624950658930623246624646182820193635944656486619838845873509886883639684902731908736538443721488930852581351385552571827699111918314880814876012064018418155569445579490861655084354701136883793363020931827813216882851223270680670923304126058758185470865438510789043623037400578507889092216055596926894511372368573830330705545517464453282109335847308505172879996316657381881545150965818455274300642893458500343428384604608817357070598455279553130098032898945587776785795438881852530534514310424885450248193080109953831815594768872936984388836946616785534444410267541308983905521576405135440160860634378058383834840285930380460816694596122976379401104324142660638780425197476873255574688646426932349780635647727883377337499843959737294425389966332679445923465711213496272956771984404040517476910736249368698811605068666223540426048446116632728897621563341706669906082009492140772652245255484046457045567291697580450243477506351970521434661274571897312534150170845353984340618230841868692769669413596245344352828442639293958548441408451395484452796595480476826807319045166291116158664664684531471758787837720769480028325191295484648017694980768239718794135811560609087642017354127188375549266740748611882556982985387681871127710921246331497569849713886429490143270011054689763455247804897332236442734152946417658283093900964623612226053404243523565249638973880216686407043651084246217928016768532541254084363768540676710222416589469637797795842792601425647862372929751134056192747312124793317667830490012555092979574096248645266735459629497018445485272226180928655490616076326226073569097932397367305187674515396776269369424039281952734521302276031512577183213258732272769783899771744756656673203161965484293633117100879502509486786540663816665823411553742281498580773896590130485912044983153517086666832023003031892763559504916629551814871111245826997656725299182151631884889027004921815323622770011315123477514330090209324237348572222171697355433566650574391164729439230781704089968154213561004830785593781159509556630307972993108679372411229685387822398699827043880252214673040357586244281233288821381752364726182667156574222469777330385116612500459360020327766509374765516324540107932553511792801421473780595296815983595690617890830975110598148741278802188050829149391086354151334476526857187167924588681617752092231012182108205984684438722035874498954769305296088121069869763098389361013472696108314873556499715071612107059051913133138262030103241828793625851718656028773874961443736866232285735584129013061646576048145430126191482932239866938294846924569646250258806854722292288101216559053109147207401470104547384153160349016120401790502127345040130364864129884542853247335617012767069570040231455927659064191891340985071516467349613753830021251931012830456772413834369039917210388136928652093236695308635878401186592468907785945069217907062190884478847319205472392467311372169457367843172800740397058095284375438459743477442678595380102786660954976940895748401916994728955045188156646350109799859842077811908107126850327880548883325392901497782333480153079627004615128568153841384238490002290570235980534002663351770347035436887657909576389389259067514951242596612896469287637204421941211058701572470967236315276801045940158650317741281157944256211687491056933626541605216735360791992388068267110403417879919585957313065859464025110926505006740107186113155742581705198258584054033329358329200108644492173371605765753676508611776437516564674478359965188288283779115322125014089669278254611242142117096542391847352660820215019919680129542728074729299216776961609446526018957892401053424054604911676573400065134843498100675796384580374437733915275727384526512501750525781433854959999315556453734826883761944464338210942841747585257466277261669625757071383692110873104869144781940372322890751025427189826096202201302968788981494803232355132019396083885868144187697375928220197717870354049088784344233226427878394013672314051506784469244356568197296546053001547656729685022822905850279006137583533886687752590305267699475954239445487113403501032161754784266791763032903190277268564152637179425403951004397655093332588237355453925475883241344413063630646488290486218667113044711007807358110708023303944348155487515887120063475297368782046174440692784768910316129327342869875642320733672255662872684681169307542707606601042562226479340981398739991793471174055054237937166921629755258491798966377821740580711412022833204314318022818055920984869949608186293000319028503739708103680051421859396161644818604123602790779825503178109051819058711762951145305768857542538558763081137327541565212979513716226023582030136347668541432242611539192654726793812501930204017171714779947256642274303948559256274289443540361319558823378785110646774485948433620425474919591973176679298176748468894110192073170341239247425760393511681842190001223751040188688709495475283641943895312567186281849985562081178021512892225596500529758391421864530436924373412605959242815562005021196315447962238930438184680893074380329115354164224941391350764746796876288632939811680835829178600337604761983751611530693747996143767347434795241768881699135450327591202670668181553713671196387828701451510918483608605870052803163293894488656823382458784525338593293212092597311616173684484762313153803661244598644287015246279471634335178179501662017806145860761306610586485306599519065376184432797040632629766212512171839337637041805099856984194646419493405320048915877598151671592043710191354363653688683415031525955319510957554177837879851429467101017915381987573181788343431390941752050217867262985527149420785904251984049356210788963362287941653993128220080153107159783725858832273940001516015377895968455348580176713279002632804699391964371876384117743773237752008571382863927849528147338706743843185490258476446981135997522532158098043638768586632295830291418910418398244440670153988376161169962920581824121809743996990258184549454576693738142733071834275402369927290375037121984659488122977683281850638021665541642573121326319886101193156788881470933013351567138310428587270169178917351188365109754515083789505328654146374055393072305711789377193867177663650913221503316738609356005999106533627889784887379310678171240437668469119634127655823567784936252204541374479907869439368040101362551695540205034447316988126399154291974099311975227222918294593039978500896127772128820464700724164457631702029957534226545567117745312300416439913100040510326066862222284843262083630033379141439796780031888277110340504074713090989582567452139189831870844874581348039285043038558470832958251235735870275957089463315582779027896577618932919180750972312896265261983836605804675862164361112723528909895444352891489221098393538858480220054163184889466423209325513799578584551083326426790538715204946488313191910577382552908607204856936406011012137731612696845440957425367743261512677146619595644634490229087105085391899698969714441103869186895818271876937718968174655655901189221796381274475545492971001613758237447854381559647083122183517882851021412210557525773180107390665840218762255061649304081793109429091581261693999523628247584575025098119867204096680986464324887430519583448385306294472791728218330530106131763754030200203021545124180353255772768663179150050573211218317021815551339070239772982394262092774265066213603573722639134987201186608840567986700867227502044987490508920967902892715922675395924181179775404375033322634019284167523561958144599128270926523121406736949616830896273301720434815514935488912969440069395225872420217763832486317701966682148468149849299689130897375015904373566893018224067191892682882200063955186684500330928145206085308919036369422685074390708104768228793934905898705847883988263307997311347143622094675931746229279114855592893530619914098982172725182839888835326804720574268917577792136878923381065003692909547541087412671657443363583524720409915024121892593014087376952129767890158499083759889801418227137896393966058126467793865532079591129760194138650253189150312076014049700772554346890124956315336756331490417394805427994341367084472125187645210898511670967124290873824555379070966483482483520795109602418244915312509003560344236723864276507308042819390476865362942464258898269276934293666930810058144792645626658284129982185717742181464658220918646105428454066932044925936363573880036496785177263981616651199973099314758583482623519196175655304058482296680222612741574833701612092378126680799772243049265093346265878754639409874626790990347501806371994656418864381427214299847899630406450410336766040994687309547090534539389852384129877113148803394859261627197514697553399895069329592304546299768294653575915983563165450616771636593253101165282734939307069972242014288076699097040447809551740565151067919958937688629839928745074312828506524734850117543217397359143143417490414077364751978821328237343412423796083831174412156252884388113351440007629696629356831478567375323014001233780998820657491995270258434949590372077430013367288534838985127949977671629295556420907701955748447442118812783910787193285236214049227312225975428695066567949251473500461185920289121474483754190543690703694946115459163012066425391825334197343195590002472315510615070884892489559578463913306499763251174903597268424908476330251825560648481269437318450227576334106364569159070556869108957051554483010649947309381658546995864733439186989913584663728379506042984771195367402872911977065077284455220800402588555533770686198970750411343237541101786123431189342215806684018429035134796455959806798414975297978841329525636475444807824755219520087823755694405432309379319929532820535172743960817994790007228123295227792662739201726796059794036055254345637781102875651417260967438519629927468069053389906964743748004545636612247220550344475850854106053415972593733901793352081457111187720815389408632504665268821967808633692087633898025005659289606663656713912148159531719166921075234928266553753660119744734287332528423904437788711432199961974984964026100145548862536938439624862103910694964347692428949260460399062021612361286618292385543035354996794444851669205228937702749921154301732445687736474410216733247659212011471067258056862078593569571576749238977916254222621944890321096069756121198885205301680990508869256190634896584399328898247837221757286263497405813706027868714662951988547831838857453909311997680283607626223954628274462830250821093390410045819908945314942982033708639057968301902611014627240988355490529790604792100088184432487606582632731707935543131602546115609654149083548563088890806241423171466454616693545345666032134463875148768368769927318341548363437985624274758806855877383305268303846754604681693708975865509856534378144725223473693656544464274251535323849688362225924636498398144353324369079715706843558800832290793852870287893512000899764421540854244968682153967483404555104742621042780498105404864920252697913858147934381354734728090344222745205199529296784310486190648515292316163141794309978163716542875397884485260086278691257894951307585084252701177194875032994298225067372288677684475895600812335446794813520550428408383127453556752307925318236251087457517473719508341500536401270455096693611087283840463599908539045798274097832054155362414409022495721535164675931923089475834457736246771083020116928670969232830294271221813774495117054422330444544780371362698674884687390586567661063855054858797644288740939742104455809380958780841327606924703761727792953249140642961925539104926393265774827703674104921053514684964812830770438683285961469572046216547267702203851590320613605709967293126974057592648253347826475851500467090168169645228352840934072710328702106761412494179046379367480546709109790064134950075085023873827607367234878128742059510651060704558931409985052860508790107108155259923628852399178618896856231623924825782354918451275783060277194904522001825627149338451099017004336918612003457475623263910588084273513778551005875593585749804647848958226958049703488430271767726347810582679122256082070516651671149099158072667600448301298669574674664064446983084632293155596144827504918993104952024055728634557026988662190028333440683996943352395222210536993761639127044928620524025413180544189741578692672635884656545611769937149867863818058559569802067037390356363396010698073729195869421298431456532487701898644778203845281553336584778611937359118484608455585384878061159378005479511422792412729483546863933985106402305728043820311695300630964832177442912660238823160955897419832135476734846291145474072603638526664799309837314149400818200040309852926345287599957507467836735383193441646616574017275971299586169113476866957460381638405867660850776327087570268775878968241324030513791006555247945439173519765159023983569322284210446860163131996327889313170216093919353964913171335098379392040656005857735153716642560689570013437131291685176284181830377001830300263708662024781555003045578779990193135307132073831278962741421430688109613026007615774234428175116669180708402044296887152575697012660524544877549711103710472863533386091460793965527476844125903689036001950622484414211408524381735150112247844359943260519540319635532888659792520457098384479290141223225661574414089456032621152925517231964124117721414951080594672107458197798673073440778028781033012335728106823030232482139138819215914132210308682277860627580207434449409437847006313982311188849783554924208536785373061751379357776725905512435213072550370654509481406582907447591937421043117370026452326161177067760841400902919014280197759997356826053423386279256128164685523988639293929185331955950459903087898360515574608375810393360166334429328256070070870638413115767525269061586311734359096015500190552141427286650317917278836886747766528531626519256334643558110557422802862511458347074568249685118759643737033759219657253491716601010404489143616511837736157855953777886276144954973818025157233132341778545081771447078360601220688495402412470812620552639296582517617754306984018980082564869168547845141336576689787124850682937466509187172629908712147801095391718610755811747213921455212736249901419129309837194564271110415176926499716284988828500062808420675879237562731431412310694096208108130364139790084935985726538169536539757193957108423493892677566963890111923005514594288283302499117670072940856960729830671437481126368117354759628708258922519451625884776338656727189162303154506406162260864776261949316596363176535615364338297823413274358269548548218032913074968617230199192444048866630974341061635744249746367976182960698464860372177266404675020225213410006026383881864976872479965440230306530051815826136601137067261565529566584898485266173128702011131099231817902660627956566906108402752395256065054715298408920755521167711627604921850640075951803088369692196898761453631024440480983980501588736553341181862809900023285461690246075672466768183530158137103516636701805432386614529415240397638707319859951155944559644476423154270544451322291724359704863094095343144859958976155893519226201339854089432074182711939673360704058195695174448099352315594375309955619159971871213503775535353715191268006280385884867794157216800459688431168442045129281941251463896011671314695602553403803280673461843972004811302791829048761180166868630565228422539083759566244677460033743993640237698632692417839520915597935623201232524409107986589815772212775946014518764168463695452245529087593343896709895731291292985836932437172730272995876599164519873176606219886066428386578462022941335073595799694123570549158184202899844413643321779259859016488106004993239329501739246061028507215532897049271359890856305859015004862549483227976897587663220570813550783431042122745109505399910009694083485009599652393520370439268722168233748902501980949150871768464447847880131234909361168148411833689525724299712671091341104800821628192835387584266982849003813168762328077394267380993672435795681469427187198819612542587483208801544404116579339037678186147812613067157320153105948824974753407919325599850988950901795177914130230425253993622527699869648295571396046510278433295440607074160625907962544518408546749455228639557155559069800206028577460180511416744668347453832280212628305573981413850983475574269559003041680245804147298364016877660587382890657632957473191136899336031289948497127025516512731459110699415059460788506870183788395971651572988024967504545258305052788083539685809929440822546896510806662843626852685462865268150738496941864957928507265362276124193059597575327722696976641252968905042914436203529119497750121462005740551587162595955214197289628812045980028911785525821296218955807399116526845504212581610976874600718027933153485506604963476061739096387256137568503695868662319372602879433811277934706590946688464681175530999759000319850485061979859061520601417693653754604429767713106994168808054884014660553625509820442223928777717985650916920345587203737715971274162754716302495106725600116570731261496607684125627556697714079546578062960998836395081789170126953763110589462677500031457804022327764806488309221263302866639278215705470659723491513689685540666458053994475838645028106172180584726139691861170314584588022442077205819661703726000707504777039826962496697851595070404427081654893642054134134076643921494152819831987751319502279392286493818887443504094150795903261516084230126405139826998267317546911203152578404699083510031699705127001793140987961177639049060354198762710000095122257507809175615591323159407700885244229762984416761551179234300995734544667876182196998903332632665820927431867587686777089158822999993525107994489154472158484051733953593254828777997920930982374841430141782590220303507764805214079574409424807689290593324105057118140586366688600732278767967622083870102974843636879791627136971271603606400321965056857340347545652141115807531321746242750137568635622545875662376533472771403358885965671108939057523337294844301637738820367399816822791474167279031995993070777205682499150946738120025425444786909470661241871984948819812834117882667108238071800219865598092303701405734797198218249664692169158665788227302365940366131562419263589228737101037424285026251140202561009757551144815779673397242750988597584301967407781487474628629274740064079128186175781875442355916315091261435572084104909019851658570441743540218913636615049253703690248195476785922786374748910606977783941673858207141947645291394765854058540356977854483138575682009073605932320671020900349288998744047301741949097496830623725536837338334320942702170757524115251279339619541892769641404320677979291995300741174776681061721440499317411967897806039696187693270613050554685285137855292038416083651858591643470675935800012193565675333624613641517576967683308243568393744752784310941536267289922777630179315451891100895836445712295280873488331709905410284335859853045185422399096379170847454401400304546170070462956574819750355319048306267768207014553125961110106099478106472750810836337540354162363524547671994317994613961973364020635519365960567737582616478161165625819706219069111120447775870761387793375892112810204680758568572690805254221617691714075031034777635186591931072431759195944291054637808966496391706070848997134890936233557212979699676698161232140191787462407368892331922730539135712740278880490680438992426134379840150507295991964069317467650610397542725449691798661707373314790312439953825632364249618849775204589220345757134622946534489880477979343544853743966325003678626998575102811490585340742669875603990060976756187687593818669417274127486051664719164864900672759009778469679545533518251992346051679252078701836436232288913457591254112032718128182652539249572517149697409604482972063427589668057819324618686421629709210993851323527163103562890019881055602949817896041150967866865242639457548155154916968655675437298620316937822734946874150836416957718995262248398680098457190310351208142181379100240085934276326282381388707738797480150037412251955112111407937040619827145010441987465706934119329389319042558413020824045207735325929233707486754770195784340810238962677833244863602844038364172057385925291588353343705978660476192908174396989279563727730944403675183774869456094845149111598139632498806181251531125197788056544676881440096169779808271418242197202994756874236542939518472710304950537437356620150691031380150509618153852120373071721961486032188567453776358359791032257072224544137889268940998511309422028678193751175742833574507327902508099668879193481497223726018797281107142231354312084920480557912131454118869383972999653035366387243522878749420213898863434892353933240782910740444469704449132112373116080758757650324582746332489670590947702420215158000412314764580582113154604729324198611152803686538939826289292843827960052690184348676019175826968798798456140798330950421310811955193372733589213044943078317421706188100552673776918122936477017598136843172550538267866379995566934571917483459721709017328005381365402618249391573512135642904584786659726979461357609694262131965222778856368994257601453172401276683197172993798411705690322108777403236946934053695197308317305842596902070299268551835200431126320902940963614964924400851985208460939504894276248666572706787476903576706848719236096455824236574491985725499701593772724381403309970250669667022919620292728846067477255408840000749127808182844173267573981315919327522411953660927239004527467890288556157288522920235836041125301418182277937003347757781398153992061513148368917352040337315751682755940719266205481226365941545508105873264654961433402077911584649646356376457076886518060785512135917978754151110012918198321486231976276503667856230624117824847889357729437648723427975809811484750049773218570246402988722758927859569643616459510848915637340840456724397419301694233754536392617732213153224353595506497626112521019686414068594285284062558305225235976910558405340786103785071104164340153604795684376652780908082346693206659005874581671847627005458933731028828407449480495503184830108204492627887862802051678803763895861148890082735098335213382626940315757531678288404511711367732928661719559000931980280221996967075440326814695671545273669273433733297636594134895815912507993265487239552249645733715973848846309136984450608869836084603867950904903764621111551840819646982117038648452830599416462458508516872246461307021888839361346877002876157788293062343072017170920867191234519043642642324194827644918163604872689077010071788705764973609592347602553465743419945636665736044295912608919361820139393294532044799882428332438471862802646482648944987261969436598648230687791598610688284821194265874352081734824268326117754507013773343434930989418853388786290587916026855615788622933822624665282510810836340298725205693040978744576685456424240866004833545187259057888610466046939042076894982433778563381052901285528333609852239236781147852766431157746018443776109480067334226099432980483976444840940694369427739964409521472771751783748776609157674271066435035274627779061289081832030546102615437306264288828104370875289158581719299960954611181106722788645691387114276153860822878427493677176722998723365043141576035635622874516628892901755674747692607988551145956344774686147660058487220827548238256017493018500608544760306184398133340638451514318731353499844192634362535976804110039154720738062430674408558502964439216678411247364565222257593996556840721450431810435290802567703307245264554873077230375478932431483764062521865120680881352035564985372301900311881793256203869086602209426452382022342997568804854921537506161624796628237087609478771813641549501436387243233321406147959811753658187738738546756424749302797818749162864947710601138432402818336996372759388495703242407396430372050527897555310164514367644078683664323345806988702362935203616929588295724788310813059834405790112248904062752606663745652095587193017323415104497664882338277433946097728879979230068343794084848979275050545074464586771959920880395241333577229974824887083234978303512322332364292150450276139301727998186487114746226969636734829857714601603251873319646809840037273133384813063383618163629667870535797264970671793962293530645969148461887264422970053957195477386674162564981982720589418813333167646274817079373455546283160646727223611689855117723342957254883494239336578613077032285614730066735854487105028410774360849394233419627263180050878370886613135019449222030473472160173991446570128400481811031478283802614824198042536167561295197821292171015782883590918830851682742184932582031844301769007269764298541563186733526120422598242769641378587063500743609641098865829570311546889108657054393157305361750858255103062265678986243508712047915442752578948603345934637082032757682982947223446101353136365939775757643067098260509960136588348645451166143896482781792074555592636963029111714658280175269206671643520015282325279138980147720060271293844590510986210364712310498692325395709375477883294145379528111591819888430491173999535934882283705788272672416659273878956061286151980718710206446688295870090263356957064033643023105762854049799645925480230116231854784303872471836153373303134668563364986978388919003705272714860747455961030656997796794927166655325209101689467507185315902498985597004261709256195197019706760326299518756485196151622450544202934661175728169007331464798977823169795561779990717654282457788196892092323346791512431429446626153527079083167244812024531221488397020244932639754878212384740834114651196890792543195299935245258773751787413835166971604240096913588627562134745723197390986241323287411188543123307489283147016775216261639649625337504150450569597234684474044442807448192626666492879430801341160493915694823987195244428359280550576793530672083573350950002414283314915102373583568728679652511654015009814807033288785520377854144039159346371937345049475323554730370185859775857495682696623919627634136218477225922703841053645361627464782776971185611049493322340891486666092423959072518655044388895282553565250037673743545423339241106756672236004517637765476933351964814208540683022744959064055882174538651222205291675960312743101978242957289595071625862353791880852754057512950231520126529162929426012558890182212109158831301928640910922642043340359443608173170959364318961869010680846137716681818244891282843370590958352102247318784424591818089642540280569923165070752757812645863346836750252140787522446722681314564865136065226198225761303147502321363455842648955961196825418962927790069390144770506710998672185142990242739134977726056337875301863998004795997848828474061661090730373305909436144338274561424282494911315817228237258021570636218131146579421856961333852257017554639971844416811011199493495272538386857900773624860586722276687992135575235842538509806679137282559260614080584690238322850987621749198636975275638658774765423592954678446557683735174286071156918312314869502044297101962809622412809547963880108163354884387166638928565975637899060395381736004336386820874151330508106656099263796987927181827747805845418562150685669502742510933921516037704561477440548560059364320107289773441836793603773347525598456646422895997604507653265863704360481092933947274768715671395932900322266441499910681713304614349274799548189842507451405891155785713946319879100001960032669282221171053006963308555045952271988757355104528050526869738504962476772195381044067457787550551135207441526484848428252805866397911322111088316199205016391214748276128893599996608017799575028160762783362780718584480206759278713869127894462611689506263928084448758747714156618354760616229076951501864965464415067612847489475106558601966423071801946237820373345030153654770859750010352582841764791498332021266587860437726184330398588041225289992566078382878872561402926563630428789425050856795128132092056063130132512264131498998285422604421873737248031992584682251663506618581098285403298167907227024811517264135344051118998397604414176224842945681056841407291379922878062212327391012480297775532475063397420632320210064666869853657779654912658690840742756236843100211480025564523341223911543026230669802475662684300758283626581357109779281912247700782289366791204362848153642435334446162482444527674984496176678598306637946339595982203578940556936215337236878383942347283534392399239228227628272993301692416135659203300748000330351109234055683024201255024208020769499901619357137845359388293559947490298869899009277824395396049213019293683889702895346198476567818942184528177272351685379579304654200774043904395082578303957432098630533507229407403561824682949165420480109205364877038254167682016649162170570628301214889905527866328883073780884422255563457500444317453184692398276392314157808323279440497787563928177131667748650657179395171929027752150721750466529049930318672664634655723357725079293474674458075913134479868678131836126973332197197871367785062100200375037372971312055905103475231804809849574670569239989380010885806809232472797692702613294412693566577210076034585157042937713741987890936714092749780823118626038129761295109035277985983011985159819996051739383383271217265163009602429555850165384250994855943755769419715675095315491600049481940820262700162557890096026709523632465759596620759653244063014883120585901051630621380315321763872267613791408000577339149752174133880991851502814589793761064628646820219753654115548615033898484221577752850286727893727591159424035118539367766142213498757341141098621380083121913613597291204340342042531084282575124810973138030222439773894621164132247638306929449037019425059545706633617249546162249297444793053385498293409398527234808974254037171684747782453121688975830036626147728172391135828528634398666508904135466993023591446717459437434474106261988611587181489949604298445369229364632213182999687337422635984328997479484967738341430955794766069977632371144540648051605365372001906874797270688688952108032677488440131272397368137296669446716390550035963161348123694611316724194612343190946417768850884669818426813062949955740881540826264105099778930083751110996525286707197507825381632682580644462160826051463041629252772142288477075928893063653670615720418348719645593140492171092228041030450704363525345855059033471015801935977186394953279410855806725940506944856961885585764453880319715229210599196941954576192185866801447867184179266838722546687783866798908853866046126395916998488065732677882205086354614667846203784486598375881780217916170044548455584719247720877036314308696043256899362627534904639662288403712743159966849202019207213203814809754524722098275963501991926025876690894176745807949479600649421789622897618255373910072508278591030000147275929526297649759800329796581681137004845065944532693017082575106155209404614537722325160425551304660122025107803817267764811420617191638513836113040199589174145257958217790750659017695773239210213460967509428225295342301594458055257195748827728203874410225986660869680546915487802209063545480104689045086226308166061721315425683565059053549796876751043492052647220104083324671911221134061363368501481345527745041330504272163006842052172004519955214770677929538388676605059091102120910496400100795678291209815951698702378590302952367258579717661637707685712346877871963861209690154036835584770113585514691695491194727297320944166084957396556190041686255965016161769421994248578010744514248950736682714697864246878925397640858312632476659132402130873490836707548721266952899192314695675471662909220871311334885859754004458729259069261473409480600483418476665823085065914702596784450363424041541532415407052888530694657836309197777594831156852740852884819925271359230646963240251379873765631732511966908616819598298431041531247738988832973951269727006293984982992594927048437725282597630756953256613719051864275233734823486132250186263568536672141482156977112250588425377083665881365937950241653671390064877976100997128587125550270751783433840145950506226766087388641319246878460594572142219768041333980240224340820318317743858492671371669800053523570088819552516975162322849666227774554675685238932664234287950832251084826317141330737582840608051562945527873940963192939897591269651418196448633168217233908464721338869202434155794597434404818844061271410891260813796727094780920063220753736277653480742985903246288851788218363738162896727967512651987423520806077080569738447154050185858234889524796187065960398639931648312017159219502377752716560018069174882850855220236400962638401998577711988928106375877675168515030750909518147977055356917845334035585022296984269425892715219070722016363450757236731748052242826542284354491377634211118691319833739101184636962111622797867582289520546743155501638041825468905873882682766442893262148602820286100240494701451959643767478637347911492911860999827006891300305921685031208791678071193925545946888594572712745033209727974429885494928060126253973984085752166485319351528847178155907961607739783168537638049416966665057555838368335963169481429118671471961224827279310399772158956650249743488053786412383086698659305914953677000350713306611490768232684049318836945270315000695863075689189680920814953770323863493146591918483445594826285920536133141507409275959461864946883983322092136211422393353948273352101406115009900953719021279327151317754528313051901243552608539988842665937530907425005172684714691680968171285960788120158719373768209832898874916415508258504965102290515061126668215426428219610305703814250225079689984192828300532841192604462332760251681497229964588251356487943173547582259926814573710925857835126808556168659736066402252903434823687653432076620130092407270724303037598547917843764467884381694878056213202672272950827623161737790609090611885991352238727960884864550650095343340599219201832488340683726411608322247994931910582749215738486016721141215754391747672682475572316450462414855585426401687459066008959703710251664018538402078358506628812497022545115937404117034146727063746050514566190107885731803613553872129914163208236407466897997786231125067249838805668561186340449569292973164913243232906262122837938575256984341179156532724985926771974331602454329160785754750526042808201822733231715041186475355119156083532699259897712785480782035341020726817535657244516832487233741087701895722387717036271584828464079176525263200383104012900745164253134753250982414544990208775754393343987415177368542582779119829484713343969654782912579248833260839947638535018075102903024570615443416230856875630133184215005696447630419497358477639090234873549484279397885784093192486267594410754675114235658625793358651646723053799675493557352107794383235527336464235185888188257512478225264251726684125113338528702055171458380131451080939270127470132811903870655375140988626792820344155967101336683953535471626299918801954724127355870501449736243164161725199960171333943405736626997608287304861822898900005708497651648458314714943510493554887119741789847341648876726686755184065985898233087474424578950380739129484343867961527070835706404080526413869694597545438096572733285998088950804074581330890596040844020995492229823253941411841309292888900333475204819565511530018112660797028932292530710226209548603395150951673863343936640496455503600048387087859629141876742943418285622783659267580620781278382798242876411776192421319606674022576066088581974826021885958949588437011526247698422230222533164972374667353326802172085446514583476085629265253788317893797865854557212007180943781918534403222437293992336400818167550859631940882684544225585873651618272806943880531005515098254002916416660750427083990106507230047350168613734642219245807906509399757109145977234044399659324067155218504166507061143721759157451459490199000322601555740616121139286628305700217716058872066953385323478422020268970843914565755834677047690903577958857304230073125859383008090073894881208724287906497727280197687557733396559012045153090106648820927723226934871290424007725130066667792096357125645246948180240029736337116944783152673560345960947139925918258746820826788791384941212444340650320329766948724793011654174232335962270708079753999353810500108678100729198508187726916781662961781275448516119974398976674197168170745570590109396883674870218027919974776366911442396333541836244097505966133396099292537992786490853277598139221279988721462817047456398406939797720347946356743411703067920289698036904311399140901675423235493264690268997879487978528652213898594021007995032471667883165456744334323216935622241330713653418023822082650709204100506182629762677073071121197041543524914249369290407760257243531090539010715713684671740277796695271824158457807422409152822302444348239558767095770991538519761605573657958480780293619259118581511152821951370894240027220666938110932096920028027213640616511228414810372005221678140013520302494633476405704070875732263907294897715591137456460515627192844750986535479188881992723005012285023551072809133931084354396444994234351013640691853183416957647081448022403600364790878877506071365200668731543068141548891776898225762124408104590257944813254721890868219215035613854334988785127250269237123279964947309221893306023714490428350895083558893194645305820986343260451036812649737243605999635837926380828194564689900525260085049354191043923473148996028443591631926760739441438542669544219938806575442063556168384660514760086625410569106034279488498556787083981946443857836309083080481742907260667355915322439363675750352816263355096430352156617951366961434644707834631321090201353287330094240248713064263084123148033390385864106872783929690447386136704358761073172406213990099858966581400925692911734169426080779685308224557309311104240386257209273321630809385045763326495538511165725856169869283785264748364707774963934640483986991014664829552981990070981643582515813485712839047019199244333558792302596974696052912317087602810869914564768359692976008375238277760217516530881597664364745081370245172720923386588490410995357362689481794909421252371182342740541766964138809919096297159149443556720066823874940587133163739414160911991264092396812949526898002176673400087695222159120088289755449357861354444154305165131481575022564717418712628736270650137090269644579488654288481680434614898912382355548456525489252169844221292946601287984633047437279339054577526359727372013930857454671536727877752572468938944235612700730688645108436673634910054886516924544842452990817364002046810273801606098185591898901910822732463597869166474865037403154672744880079973324706678908287584588938959261157994861334340055974498595699822869636279655215008789534461071855092688043342809678524465472227660737928670276749854842472322502264462057209068159277292209466901685468625992541755834309921680418441982024795812018669516111589274060931518156242333583050348151634841141196508582851091811139273285480524923860181347241857542323299666949346697960956943865733553595511376253212057938518207749354128125220034649967573870119347930816064637048896827047634963673104959518330970003447096811323638544278516063929285434406130893961225856412184316364401814042188498200039647421146324811176933985381469731809513197534142357015943432633696166091614577241901256263045721905234066113148290302026108503725336212808649743384981506409995212841503380353467701321345236937488302754076774188205818834850117146270666336060212664018638656219779517047044150870327669102820218850578888822303240201666075046310919484788442799550485371694159463127295159184488375380172796477848929351023643320284857965075228529676264262838470999192216904572194924590406219236899032847922131752641248056922869641488346044900179378427212353936947378724329312423327767049850615629225312717026423490954789330858416659216958429773520732224619622469142818897259489635966549183148944862020448302073018195032489357605060101922117454973965601286762941278340254088124165053828712460055332342534739002346933361238055636601859644693102800622765796893876020834950618190746512117948456192195848362983868013795835505636248842430659428589888841470339700613250539676201668886743051411635655041271150257532782291443212281069407844455471702282655318926929041777154124669880131170008344058294247538881919101440037320882402785207896053688211766738483242221687694511220262487268301706859603379104682891740902654984943523910289576827365050337446742044302492688112334023677101556466716273204287804357172964091629638656866813812775264617536127405705139068663255215439076850994625958376637487642373589427904899421887165062172815624355549934868037571257736800953557173052702025968609893677086121839905537381099729498167679540350440628274503313108828540340265060409134977372209461110571763406264800731462784102504427026387260972245807171700659866974311656626817081268233937899244622158169486321261407857789984385281891734587048820853446627806176033958702747143872783753594528340907323880360211655982539548335513097154948392253460287745751097446187671568461530170565633344532929541663324641750843601321389553672323576826362455792959432713945386602320665589509988276734585424165830729696382713541338925555816297241063717041977382615075684380169905488560505002194768524579125820685033578446570733342216802281889516984515944374427778967732356149887192385992447717020816801777237377515724341157933634788704557354499571345541604298609628839104353862589786958233224799888252463399731178956175010284006206044022784448522811752514495803526945996144433473360927861474610232198168922277782629499632420961410294278767323657931416807065623760571935060361420256001356283169216030891806695257858672075100231041628244764149924951509676824243367582318211415472906389296688447260170421142769394724910193060181167333145607810812671822786387491776961508358669914488246900643318308862199611381642775784495230503028679421930918208100931602080908519784043600929410808901965981923965572071937682782620077575997157506025225116551088868051453826466339834159775856576756844008796842950141213546773139534104293071682592108660302542617261039389513931614838002675455969787996448211866591629254355048376540637480258055372439696720349172076988913365964809743105924148773159409312894029851389430324148325066374951022644148036406434382829215805733617196000887219039120201620376378261110791369477485597863059751759697668169778377226280851120297184754218498920732864010244716242509488575366284417844621675917605726376240524706546818629379794660854842905929202223123196134806810789242753270438279839619987671942205212168693848539880077478477846523598115140867779175111939904347526029531094610488973111062364692718394127211315713010474418348789337845658886207937448918882141236213526502120909550738711379537587549914775915583479066598844908655443785549105377309765809911513042227569093332801903730151919884343001655388876172077594185010773340994413147161507696139761679562073650260986985236192769807727541056905010368673440313064837209523988401804926855428975656284438609939164930365488897344562889638420800359951554748711893543640966622306133089487143683040710882296942501922847533071398340277704378910673536030114328060236250630947677313924596012706085333474935993724492522440440836316871568723262585755827713279617885860589502529855994632994815172132865648488370537086854211096133923190479180881769781583352387514130097754191937329193026123137879106485742537551620922268155914151557016933033728591500649415703389621818980146485374165673207774458997791679541660579617536859784959233393499206031267149622157846867501757026913527558967373117110307593467359679072956995852395912479852963768037728869528659764707513656417130952044910134102754545289295517635884626193074053192589663531906059198486162293524747220218369891456431376699399952315280047937453761332954066396753928746806065350009301637299900538458745557088315968212829731863070064298634493596939619274654132980392380995624588162230811465378455725034103180424373152949746315672157116430032075906388758351125409173084417263686384699269829105213796152392414741582539199925426033341992091905583906491843776755906946253146208940393675560861077074409542139600498281061320143855340139073223313394259107137218443806573985394797414606691042994267639498178767937402755834736486835886271265073110327581342525666935781305115677782330755523916029524046016495960804885289194396193158522940823832741525846694723908618807787892365995741784084200273729859170331230884017637047319683150815356789651932441985253714924709421388515767908346850978860320172606400373980510695830467648021407461459816970420327520363412375828577658822939849878621579318204423432040863683010548912164075662558231008806593211046466710787785930751756492891934426955191800795418176532689110564210442842513030897279102996735840052555356256600606183752642058553645037277252762399445910804002251247858129392756305472205692000408282181696894979621199284276853650883954251091059654406547767456170283019304501953222001922577475924946572540868567666594166814843549585479206820203688200494703226951916569507177216257378185350906984464806341933084428958520343303127293449442565866267149028613787944173904390958705494364252532498226203551506311356316657277135925891977399417207911546739314170218047788218972736687265561544111693673684428848514010153751679700970381505662299764861781195580818625782032361528827668152906790481872646805096181066601523442678581986601254894358625689029233810337926972563499351579317335521874557312939633053193665701749684518107351232922591284094406348979837627257256657335268477753184092501047440237014330134857482071038238070728389442899502744486121664404099796917493810434495562497318511842782238353158429402420126693114435290285701372291533463286979915803661046159032400232636271503999985940609040214864144781079697453806240531841138792746187164971457011891610595365790041798457047580578652494154929166466013703380481223256431844942825179756053875594832352525317172553530922660975270028181470945901103202880755745485817121969977743055858730104744745084209480704213225013939299528678249211462041877503335015267745748454007487201113811495773711213354297951003268747378300684541733171425988230273985873948533417849235651102890167870107084026590901491544388023291403376141156221409326157257754634310188113947209160798050766938655586967664532676376361197937115695588915752073582198993233008800169837604457813166582199500526089864379516078522521332892365840977322489669394488604004298023820153108289580985068804842375507137811257067897265866297051171261356544387628590710275231406127928023699233470698325415105254130823492485365038715664344632939939117084366078811275744847550952937053364647642853664054232895640913290983687159474181638674469932290481517855244335664900786042793892419012551772749338988539678474931210801208517283497340511630665896680321997257671024233111381830927029623728950409670461678428242712945063402301419996005426306588338963930460609808584574236080184945488840052171731653493530667823322789589662333509877369339186504430765860649419359748011599265792050446161023977983818023545985260494432197981750256042088808919848202586927676074695981465303695818983579970000038980825382536501814108701201673482058176067545340531250974854454841187543509995073462901128478529066518719413016644369655790306822909491682038464125022694370460815823398008013550473026667911108215242258773477232558354368950877967207596232992498261364601471229364444036325734962858298228049448621389876191177760769317939529485457043386676875571769025604759948008057249877513671499753742350959341727488615739206539088072026019943818938207068215166147688878504879740664625505412710343799647452812631902043440298831641350474650754189919812747128176459922722185446223663721480123825872807179890014717049686611306275867213886883954455935366961458541588624767623899789031957916057695303327156145797840702111425450085295481314280505415357904506597033015233234388984959397096999570236498968391043085278627398450842400508643813480927525252129131631967874551415842635457928476996597377984414553185560743316495392121721484356656453404531195647374738917407231032713035550634411916884845639411789237489640880040602909734809199578295518736817415474459914169235450135334298954008891771622966260845029139786288601827449742788092559905499181139848516264591002334277485895646249672380811261858547825637532892884570907926991444530739306768801299793156322581652685425229178676907839581513788201106998431045770980439048221289719173016575353707706670695576303708981030182047822622916516146738067414520071143793095779452207009481915783293040831887357379994334413274655808976968534454664576796335958337925678682156471862546488870772758561098391717676283176579020332226979658611360746058219135453122535571834103331767236696141001428790986375768971085511625808769910320705369518625434994070869779633984252409774497304917855291729005404115198483856996241929929810063158659853228068631201372048157989920421897798677218888477270681211316063191908602969833512306885329033485923996824317525642381341685533377233006122856189887644788787908643190706009419168734643584912871892918356256068375937968589322833265412273490975387120884619854648580860163455081066665483293626099456012151483311924740836649749497881605470580557186898393683112590598000787309638466828628519139190752550103159657436834230274361425245030364585299452898047999965196855351675429540770194303533221423213274384260778250416200129909243562857843775378539782052527867864254855720790993826700308220758649297766181822388071228839256638870610303779263171025974787027848000464086912601119637677095788576089968356379033755328755190299730665427018845465272727866118449862261562773880310994010736617087923338448887801339790859876713272055136170891267734148180859351935824344641618569155346744483452400281886246805766068522214379432443303615059009210034778395394171844387257861841253408834511887410889358078728139663976205815281253188418259323529407175862389506310136592207210497794118835738901613473720281037419392494192657136061689862440597899925100325164422339957720381801724126275120174381361208148479561660091394198388771594392840195444355858321594357036894069598679347694950758192172019056900135471827085385509004596668465856129175618149219673409483339648630790829417005456428721054955691134442737508279953527518492458621256787489618991470661084587557727068042852823013978264412420566738512720383227131739907926043130827488166761645886985052816422685150385877739295417681609454887995396255239954149474724581565366446747822385412146467222112082564478487326602367266134849188832291930640910110345029844867017531839348892433513250338080315257569365740535646622814743825122340882913674730681989348701796051306472664977596872279891272354180726612789244370954430312506170126816756288437029361100530150302040226910047782177715105322689799027537214043607954747308028920141080306593225718091038057067145321820862978869727041505641809781031195535275517325597729367525356887878123919884401547635304744435698583393882149718039142297735317827197397393932052602414005291696406985048189062818013399408246703321949325192697827909195951583120464481329919957404935537940470209455740365111410175259326254907138194399610976240539950006563105631386717232816114902600269213713900153164839969294965166905471764235531201442797996414232282041882949531947889633016213902393973561304475977693108558637573370237477936462325377106311019674334753618190322027015451806231489999153084697982695222988500298164008710110729092741223188419876528357470895299435199039998619806750362807987079599004310038642512791799979734891767725764546847303408471389202420314873265528961757453041851584403719892394380915472163123757307261847015061389594310667293138288319323006765025897121663386677967620788021845645440895395315611065349569370164498322435837688026180816703374486567904838773512129372379302834587483355058360248304732265958304573354383967994247648624309151898966886270689708716272473016160544757274933358961464529504945541852847442581281044906443398535971664879271442687428579727302032879426622464020536541724588016782746249456599669386586387601360185386535840470810758624270000015131713816073973431406592712258055825448405952603224705625717552228373858045395044341209772446203542403874602085321165369366166464110394870949524344232411915082099355060334357820506632391427466713855257519633354528663728342206137164628450007015289937436931102291163316452698448230414344009257258246975833514207860270314488467868940956064276147912654656353511423125357384378905234368985154649001357928458167906946040331317535657054949518098265822498014085793953311343932378993307331767249920481392356594018652024440196499125747228149004862407943034715918574258953289507374850452246655987393603784405334147801757227475902444045317107449788870448602040876998042323363390060492693949393882481743319151310781374839558385480197717936511454710877207335621463509468307701992571390345578903434826183474711278471289490016413698832994324894563056885160668773642454810966081111534618417017883540475314259623097189973119353634114266631756864233210911556456165383007893725022007937408471429744738994555218459558070352556971497628037279906044751784330412520659365033441592187203993130530233246970647889405614342887942799375078414852655096868225018104475906805391057494436208282016156673771348692393570623437316983855038506817498011100246744186613704802773275004724515144480429316171853103913070794075421677251071895624701002757419284448962559795775872282725025880929073088253154904718208316215331928529307038177853125374719279861192095435504869812315520722013556358199880429456405680918784598893870542412929323117137428787577644360551453615396538223912882013196808049918281057337133493381827616960074428531843244771223826198648793707842583676730959042062028149527187395486629294860296567356931104776941398745737320803620663980114861967960227105998285995969392976731434044053157210353744012226674733540756821171603701156335383121020878568008997227131348411552490984478211162820780260203903542791913378969580970777126302215435870945951740704275674781621195026511328746193140996423401739465850979731733772418013757498995732018055378952918380982356106890226560333905677070436819994522046933721448323638413851691845857591098849782709737019394593631464233786890493132547285492709166708007254236633377038524746693920511171362909539107999237336530003100695119404483073252282238480677781646268806223122054982956464426765832398542024279366821518192498212495620780250342814290155087430952502452748489271243444199380686031128786736380335596897203968136560142421646643836071481463944557287170775277481394752918650934002908459053910104417444907693919085741692759599800415042010666892579965126466439732527464540442813321723893989203970838519155949477447854395300407654767146760679086242011870222654729136887140845546880898611885458129570583228435725381403836538207360272809209101879654033437190379703337160434018925262924911634074379665009026087069892889959301920711131246580954614341874162223795328413855825055383793305350443213909455672264265820952260135041215333749547560297989565312261932922580818801831883218175033501752466099912403132788419356705901516221402118200590718914495588273272702057263795763138507253797767180536112232398351900126526765293166367099296090281047511564955537554060922714682934982843401617902788319226788645245987888887808824049903396306318176538762795595662043227283667391667231534627184973918166268444840786318560713524200989080012973653767677626656590651393601136048910465167560069532758537530777919196112057720207664501492850413400665048660114741917357600975709114603555414713977187136246154603556379961189308910955503772073514401140576238649808225689796701531562634836234630012541724234809888980106148813347843158177101038754969321297927231471794980552473413928610258590201519732614433551261922447993795462424559352412348265688191809674957752466850235965344527780074264125404208386004975846813957248300163775073721937104715131074574431699931689599121843794454069312045392781627915626470999682120098468011947191460179118171799457830049733807125406817890006867183527859843224088484815605780069450803412341618871105309912719043992244519715883496416183313675259969776760521674679643995168815151447723350311143070677404305037511611719420804611860345752727777719406712163592415089530250965351983498278307309250953136684946070867505212992611249335575526144316466602772054031793422573657117083453341289080444614616123324485226073526592619491573206264655785767319170478142297969824643735870304879440820764071751922551422265498487365518154490691879308336196344956636132827381023643377677871914237912313325081074729047922224046732273020223049930570748223131361998242583419133937751517005009206364219783714588837642835252949316394817696025206683493825192131856353577308552295914844153141752772426169553363963365640653928830336438497176934721574150967485706261343158372572679328566062073524675876876429374665059591606567775729471963487990996751473548337229869713265941582434817860613732332483257549917769263858663366207381613553188607266484656544976742000922117913284483700881590971167200826959392757769866997016006599500056805509074549495122728011987907889573244805820295358240009800693063199947659952956907529966301059906903777907802324818408737260661846748908933707133017276379161838206238695460378543055926186490168473328725731898014936233324596002976207794690563295232853937124343201002511339703633574253017701669223172795646668388035033358999489126003005705842091321314994298804632211692995260109708160821019417713861567750966140357376277387390176512332233854951234313762608829002076766251599157770330611408695207008581883416269547723318484716620147475918042651756549275311439296889611596663552468787236543081911344865039379743876120440305835568913537715161286719134269178758374668631359524366786522772954688358039512891233699712723055606700645689553688408495880056024748694268538273701377871411366663332931827992895936252789828557114805350617601910084403915597369452566440618026998231760547351900013130300758682852534449251623117753013601595982232280155775599475855526333138362723780414172486701379356340183562857727945556669693190557372329239942987578334886576136468704663019153938443241839516612982684099200400040497939636372475360684474488700142253167953078932888797915462958190481586165733784018322286060566127617355915340726554501725396142820711534056370168461220897771222710702455266885477043499272303918703089707181382948233002256725587376914492939147299631816540097081518729445733584847253960383514209900461649863495636481466701696525143863234605329858345798024289298443078776167459660079119667854492092555452647868039596079121765493896895649262101246107706097850569564767310756297679569385120827129345933011037422626778843295837824087308283404250907755281890376764034117393395241472973123574935602491394463388871804948090002370461152967941388903637060920624212521461082889179820228899792415630267502960590378760279333225095621011495373062731016945886479526914477196954168656682960671191741666271138004631406451844122253227191046208070454107327291584925217260082809246613261795666951464481118073079661133871731502722107244573016779685017058810761175638302542135470958840820837303472593177543599559194462053802772931240120569017243338918972135047070351481186089216611963675573339714177595053280205143399245164138551573969317489172346510462698111950802642231288054505891337478794115798072359708380662448443225272775695113059446467032790643362185123595005954019941208464327872074622469970775921408697349598861269731196670854064537762384253040983082359751616021715474012235863355573241813507519715883632765860690727326320243619984906362053162325027512001375362330044528679518823522669763161386105525641127605294129302247608871340130498842653989699155578869837814382173592702695217184816807165481718293327114986076256039560494299611541732258255763432415200396209726106199567842108843520171753916931308419243647215486391102947919067279472473390365810807845759498370592192946848085979482822131437025537480657457608418791631943671335612190686082712455869366826098879985784855752259481541700543524338076168749632124083696782561546943157529225362836675904882931280620147629056770565122185814571585014320876009633643746222194777236346476074603045377245427406038922599221059938417626398058111697991055856490327099068220946990889658690301980636536599841569417718483857298410844288463239455338504329658917395590654723792986490748506364216906657260617570867040062488993226589031466906012804444088936430923671439744800334731173030234578061925120351108219664741632544320537360116003262434490008651869089003079959007129636578352198291161593617719167364801689135798105961697002678016108686154683385508285889137784323945661108860033078671492527659521370256753407273845795147248529399485378442807130441622824243091423689541465159920507206595809977070670059317082514158893041322979427658868807799047535236706995625105734990480744614289467902019529203612658162874644115269655556347186747771143437530466880008193846796289986823597582316834789222412148990609207128086964477645322571191417407789941341482432259600540829674036494929755978458706437836495713548670504499666393454183292960795913183644924170836847538974981568049766351194123975568751794534150494176307600391679526255096852883219501585817879739444155330396378470595129323745572246540466989968110006419941500572367442011538094623203847833737910668011474281498825347975545712677860208817362715265269105898473350777182117815346352561392544817548655664344194791150867594750741140014246260407328301618723932963705381352155473538532226969728032655070996879311202893186754959296772215362295900987173131394005306482841373644141108254136198900506449212287830356633821420701071744270098009488160103165450456507507465225021709744643155892414220507164243398933576387616522642901250161137936675781609725774619639624881738093877137872379233456717452864861111409226437116129358095810257183969153687007190578947570857985822487064023709687176813053978541193012011155639785153579247953457885390257356874994039570742724161721708077617700699504680364655415365117843691657378568451012200176791796346344197445882385100797997795252354939578579710481208850389929126332353612496159774146270980961756522390926056183077323386442403864085420580087588768835121521313388718235118836299339642649087910589624881491694469978669789932204619324120169007844730416821658664463471102064825668266635163460201539414930247906637442701341403428248444318355782085572256433475816518544566192627756471648888463152827382766044127195880096318545838009609556306401158820390970847519158196402520036110325662275007649125245141827432291054786427842110595038907687388304838783631515451294423593583583125562691688835899261112764219207887948532947886628170109314682382297779160471347114000696105675313014605813391522602067716252312660255880362444709817271734278473197589479275173498650546701546519670650963820919913172669629071366012342397574901395608864445192579597952073433525477664612842130954312222682343658539041986431394713495561387305913607396396686307794562704515391827534388751611830166051514753837218334226565704567801022146531879311218645078129312650769948929812694965812656751952841386696828178973733194814346805487828458591038502209491748019021028231937559200525762586441042903139235410768407560257381234893231547103031927333771143466085665828529045208390141473686617225351685512142338203087736466356354344529236805105193494181095473530948901743966894043182490990416221259457246062291140487475051178203875676871696173643585224481640726847278407455022744258061519996198102406708229536102738555976505298787800891605629374659012226073989075377740605317455879390061955166632536448135591477197418700684925831035026903166945758623264623111922579032714079726046497238834327969465923434837873287418347681010304783004672249120792161051010491664301086129149127226779881370227919081101652123511983410842456191283884223173385056454188639108096219119270220239085357478338728238037811958191417926112713205936462767031728592235124462646576644588903409847060540291257250883237922453798766258868325253328595583766993319661240327332903363848339263177957724414481516514587328500301196809104290852924910856215533885613952559745673797624784687235472720938239872428915787761751189292522022747241457934864329533420923821680683455000807422358790204376905474750253174468496111582757297665857104561989272172247795082746849618231757036270782229478711431586263641935212398017444724923951747487569502538456262109326885319778922249583328390203065319050687449320964290744927534533147652109008086712583392082574912797028803323351280904769747087997913271487448489535131066710522512541282030300268440473375406588404015196752347012730089199274971998919157027245281950900703392409400890177923695203117598980610943630347390348548400469890437617225383118590896022513932708692333530499166833351279838170091041401567164298453901714188337286878908938098512184860096821259784699812258810068646537794395583549830711508259995421445205250365922303595964608220812297394177951614327633460831501055847166124836875105552595281137844152726026440015680381025536373464019286374267890376521243167945602460788269175166392180157868841673446618397746175056645687762744076365003032364587977303904412947253058420005753615391755370966086901602199425379115595989426467794255249845818534945186969422861543177341068705836385686098817193596305502225779796824312245285108635116182771306168463499982382187548151371827399415309025771108041164457824474014925314299030567687973516070900969220685669097143101783924785258421674945805727350552505202696910662764529991283988489175075174341236878988405514059529049751471466477511558435764526250950430765152209130411358097023380457520147811007259424267037123379880366786150314378964359541143552807245432270829549209644447597702269501732940800290503671038142942193453462134898445007245284545144502058831984771330401316866393076805418300550854875259766488893104145982074031899701622888077467707793189794618737765283543967389781689095420586744197494751571358576254718284770932361198475355169892648553342883437190228802689310949693678538326905906550204029544666717708183800663936430894909673521272261455387710240400244641328055094871748704370539326929663158137354527844089165545060489678611226774330928320419886193370086584554003382910431743666826258789993512041055647426017808548587158053737349585573393805707645032993673517924402025646748381436403271439047471517517201380650897735950483683986724770585324645892400789782851426174382019342791923747807220039375094482706381562994204783918208601429101034061094079943680260213278370218514604301860382014871568669654303177778412053213479289347389564422895010407876288811520578992063386220644511364494611441626364959581369805079550504944606430657854792073245207261558320579649070413774400418562798164860481012810394696950082472746956905714538295039804524106465074712926810543610797598075853014689656719356800086520328699021530081937036669565877639791026155426972867721644180460001956527683403821675376877690535000106550365268193464465157466930307689378719927297627316791563284958363069234418965046126798427490665924419494871333068372107494582427858046919922410646311993945673968837325351279268399723906833479050167127731096758163838440220146863040725910744804246113090852383715878210121278793706124814367447523344475891930591150322336963810817368795562532670323765144732417192817131820967352917669627767913405352275280398260796435333662950941312404296302174995981688127092296365415804733698520257878179320447112206990141785809769329708823765814492446778250424704674473270623520642624947059240369664971359363071722470460087354139475512190572939171748171137066891694299371775135860469944886066516558761897661608827140338037571352302522428937636581734240385788867791582026457673804087401256366863063884054689527814497289151353129141442125068464428080433760107673178286080027210440553458532686802209691849492731807260524840775912889855161156217187771381171802934762034036673587957214544032095980733772393373561279577786408364580640128679014095773885572103731249705860623090205306418564865146060783438352408302607509033910662101946781149258710304794477691222294872164842029427807648338823240424123784873311839347482288018702708172572003866702237632581909020129714168358921144859321634527664522476442884377033558338279725642699467875790702376373477018841233885232698302093372144018092542584559382325323141603454884105108022752838200271999198603580335244991001353604592913047031997622753214184525173303749048114287177433035192637955059043276949837898353712964651142806884710200307886775524813486772569007579667917356328128083047277376142107430774387128483116767739315121872764162796635044420873344482083221705258506869165088038341073747859579885901295791259440637593709730103516779049166999558027430295242220038576987199430972208430814397728239208453519237025357180700837596605050978926766620670196458901791416026743444471643971304254409852759890039043651124416726807039124236867417821622849586575414470168415008222571663668380108650754225964362041443147576005780555399665470984152369989566406931596549027428689160314427387655842684436654885282197691199448037397471204512942401927983385145965685616082777396952740045287620522212191459500204002675664057401843565310955521722554920679256402283752204565524286385745450671694240507332385737666691475151201682357856141051367868847226514779743482210504772613440912019902092868848055252146052877562415053399055268051366051971621255337033795226582975621810374424311647261666971191462874857928800227668771196408394454862846611201210741319635592205819580456537280240064524463352301377822532990725921877763511006712623455170939849554136798662305741652969401675503059414956092287200990524894635084483847067373435804410401997330841204798489442762647203016770294386943902319859597320206019430080464226553825625668974499305087048315612182652930700206070800189655025394638189911389288014759672202274908014739708234705094761696963308058758290476585490650301391110681434644889080765706431671848156063384513466674917444122110314518923717533343292997519344433404859299517816584096557721839674216191792541825407937928376776444808779762045433876230348943262966895519998709944530809463028024433736266186719727245848212545561380531335430751448661564634472634674718231956109446929264198475162669872917725927742050763218378978413451932695604020080412028595128068669358538256434941027406736375676702104263928363764965720704812692170644610913314692227031203563736853341199716484780716087700264594728604575768563160565608469165214098148085019284222393119333826349795428086396161132050619271767583478984743412659496889866703775652032390885166417873996795340928235485046605638452622088430609717162686995883911115762593347073149446807233556930897810215444209053064602697799119290810942262166820776493095537130392178602276908132777766530796042917831566324260206380476260529610077336421178371704400975630482401729385068516535097267313101538367553102520622532655616198373116846779636063516961611246644867989616112809267783194203289771164746716806894753680741626620495697374096924383584000967530269242573034149879960963222212502683090364400442614807316004256570486511265776261084075596766157492823832167752983784315995571977288204687319271766555736558426879626294330177200085695499664934681828239611098630394511592229146889257488821587709343361430932955283544977113541512306522861548594235288793044386952834109455806753896905713499157380362343793926772377407028153004709404624192270871861105810509484266088253241415356932686379801831687315358047351397376011686422266445478718229668177425426806586896465865371269354223313955618285689401326142127277462218396172222014310342566681682660898366853449457342451443692595510014430105445014715887447082001495551763681537064318630149535421292528627932480583137561360139259416569874871506302455865402535091656012803181812039587320993985487811921176950027584423294718073814415772501192090741089578263218191878669735370008261709944000294277550204492839725803662154946661398062209484862626939111400860222171060440668699201716864044909562451016091499576129496688538717934858600074340754047359284405116105720447978738448617680365239647640179809395307662194222545064886489776246488334224999989751334874848190919828333299496215526499066467739231107962211225121766170898411165890527539559184873871029736863590178467018022729076007037581542555940011364199317504076529923302190671215426550731790720366296033965127347469141823707317300691251273202366804492866437857558799419833732010389403647514334556982555770580208678291655611938108830266006862506930933280093223578388839447155478660855866755318457355903122369423417383199536810191031040217069888634638848014818847870855529728638860815599539685347467137804468304415727973423720977012447376116304470616498385106330012327665832227555006244610143201582355183540414559808050713084830736749414102384173227223407252186036203747941961501973583635006915565416859282218573582402869330061366109656062034044610049467401098171924454455537363656635127202942419988479061920853969296000685300977810032909843605294284211719906319974646346560724674790144523309543019814598315585892226151025687164206254383327649159751104779601572420028426827523756892004971743906736296149906937772562702886829336682970658154290793822442870107950090957864815191621783778357504780975269224093705481550489873626669395855038076657293810577838529481508601842223589811387313733215519211292869986453712959421856395946999869240441071734420965919594494098282509429877308378003573200649506776927167954662657387936218238839434680483008734437486891864753900530833976943034597164834752166563407907848830602135325713048576761340625701629185570198161265592451296462777954688861300117353742030685896782330743100779213655512236419817507344614538835749280967093419159473970923587544977375631083402907355611041992410398517211164504989524567084889486302131084503204360142939618376513021302044077795169301379311586525537091686397244836497292722573594855743054571329152088483745939407800347740916181635148651388404422251320947094272284644264013337653702888130360992049751195278189318275367199142685584493119989341422050172832181035026373039860469697146896115056538109666129808769992304869879565762624611010133882514223585550405693919123475768688828858558072652202615394878789126567961094740873047494976627831752553676683374417567802025256989988638132069874006324575901933557287838675377802349251852573616224905633803601489900712914016719083378707854845950414965850773451734442098005405438069409011780815125312894674665746924631852080508672797578596599112245972790724126087722850450486974505958404141833334796237659672844896032806773038133313498423013244238838264829821363092355713992756319376118246064066576590300696661504158087702845056993271948715920269801415871205307714736816428414814147511971968970201929709308943399613392210647050038702553399877890831082266988761424721930213985176763303912190125829160823647040810314639677897566005294045445595191049946320419044874999973023755638155078470449862636530100444735800261469324530014635813347970991855452938128330151096670751332197070030098434401714031515714640359373795096364356278743000072650972057132997115831339891563746276980145416090678272431964106413879613789109676787738673914857401523200926943926036732374978698373430561039449733099557765013598551347727977147729916119814039326190528107469195063787096222925143410205480109267036032998668283507281924525636559831112230481553783905055579277378394327085871469539393496998274205770087374008495990776217834875916269448758872920320716378109721290271010894483427194968772521971170030838431072561071235837514048405781912205545563990250794093580111490260874913467066811537775976107844158095386719132755578091369513545502120244247288625587522652400588290359398491162066595880006351212099283294926851913154480827761006090745284111411133569536438455649266040956008334705570277358574320949830824561351212586819752230601061577387443965957446537921643522450032955965521228978402003716585266135161473105044880190666727948871685020657594356902755048730676925116536670074440813924419623292771110059926015255186543050877053007097409916648889659790424813984427341166104485285123751045658301366351727961354977298926378393708728581812276840422251777810126379182102941003617509671040201971310617577874450591347622229574284662612763868129523095177307622897246967824520397744616067793468712500989340950016210065405704159312516335588794168111341904103098202335677979636570568162673341288727210253786265294685472180519163391548903855416788926308708156364669300837456547841348854388027636338904454772762133567088337068944594714232656546953556942967766040504745553287896302115743335167489704326526375683367719733383869863254932679460419838484993226926008682021221693720767461163341216957302122889728304681227881866285111986859672686410837919151788153619715187415152623145563328066631545225311894912695280751937074870462475919377652906009682473117760105882394370672860499240108865316476344785932396523218247802451939174007492905605882556834189652881575924596824156175584054953877199055967726454748675061601615166954802716880059756289311630642829492606378502496246946821815173255705946900893303636949994009915927570215601961726679196475641190102121664240828149891754194598372928214709217446826363878075169967433498471978153490847859732760412841479361301353332090263895008506928393309282610684167150027103490205142117687865489268401104766955716501225195866120065791435782177655296229795895425751745163204835868693541802160620988969853383771061194437356220717347250239642176235745078078582740458316259401048139290975396605182207918291273624604859417854921773317576733307374567201705105027031669718951005921046572103922014778903393984324938656942043325093763138807680034844903637013340772203206123896333040604120855887392586455568490245399245524222526844604019334480258352910111392597722280412997752533598948948569398044390791342428529438580154073753857876129336510337913927155560273926590158052285875148061361628630582931805155790097697725664279488334985339705912083016045131882836199412734068369538720075769853708118373267686206381495260151457501240607763439933517619875279645961507805733448933395535970375001851748825573029378502664604179255283292540024371481840080655996464728975730473085809461800403257489422762524017336834492354415385721757970014241689783050116834328362297169150485300674869745098717029947778383192019437334394558314858557745273216993680809506091471242224962096389226794494377585345669950939257421886737218806787966843279946312534379505046112086403440896590931093558319740950248528546752293965409910142256784894746988227528180259881770721775898421630109695170273026192259273120170316073114892859741865136886453824243445707811036657010362820196776729091235109889446197803755738197752268008133066768558793520281954038346781732837685194949550583597750347497387890738667819258611408843992511669069325029625573269434363762343591175510762568397641323323482261665705344934881015469557497010294360628956851426966434071162530414955007314000433812917508271168883177335598345319272132036780183003499262068424423666030261263579476661126313359508749622045163064966096519030152630620423818937104397515568172796070607795218289395720902815174721221286674500368307937102573826926564430276031544782739236053110102823932345155250903583269673242366680034943262742181644008330161945323790188688277859122227364755983465867762982058170953054221668090451616686374580070325035859495374122727854387658397516662807122793540344907152895306314346558032849577557771419076148863650149554807729926725836193196914287022667060377485443487171555456052454326573442466548005370673265222640738107156992651063236093010959308036972131365255111596517823401277350250047788776043498686105839289685030145009742127117788371657678347661737659683170853346947663268414947609869019114410890997576359142818644545927736154268624727798925542518999797846471476486643921628386232214291001578206934593620506573499048054727779060480037224155948588249735961169981908919958901967532322278315086557908994804632814334510738960354134220853320705970066287990119655647842593140014430922350324874189470875278054029647451966275312398584247954020238373932463420582156321700841315247546872274911369169965066783896770811832512208258682356432757062112317890248804664282200958004890956246383999373722217528566933038627221167482578976786910483847359144515574973649082792724989076201298771612975164284056653637326649282103170948026525840825196471973794844265035658365816392668534079662540427462643204224315434964011504984468745426863111627854984410177795948270730378068567153561252750694736102562162379579771508731768020525535190199636709906443722162205766959069698186078295216261050874498479883594617784195162702745175692529063678560728457719711084182409921254482915743906110522945119409827132491067677293252771101502038513275333966611315379821492076966317513449556503913240897881101080439603408586827680427719327432795130515617577025809103513625676643264143297834172827947824654964975336831719050380142007604845690409440633837512702251968421156062536176650543292727785270991874986225001730539527083431639988339448829966906234810408173401560512646974231364864679408742114343451824868984912116149286915820966101527046110654596422471978055886347205837695037296701345349599487773957461966712192034613364834026411081081091070636808558778167878859179558652709314712098845233456174042999500135090188382178654315032420621892460270485317379238793234404729549259408053700164951799589920992327636442057543504697804730527712916272890591926260144457952613275474392531003395329921462313337533657651109922434185044821744004544863207534675847780454475263515902057150429587706171827693716199938069427355987035625209535129777004352963045127489978455342023195034630363896657696137626696456674264796201685805097175559331391246523156584686700746175178597725798090238542761954021096195945668986601136166635680944097845055102137598314584769950426693178582563446862818202650959350501624899467049744394091056175273331567661990484751823704417953989423994627037261453121952583557089961192841774952615206716328515920969418162423634984708882465657463962235186880334309394919328855366316216879678627005675166239400171660339545549413406408445175909490816082099460175174680661769332578708253024766205959134883517379549674393086901617153259180034250810623598953102425553161380486849685200576137464904347056209737826460707836467782169307699168951240731065296538789780615357144124022861749705000516593106434972934877820043482391615863796169783577045730155462894332532260846056323658711648490577403514057214160445683952591280400174991496324474322943338209370831619158004207843153641676032213730412473549870398179557189629734097546334978337666815253223458624995498842983687769554793181386851568853544158453938811574510980895524060227967753058677401582234425182366272226973622440118979511755093226933120002791351824953944279647539948377806674471636314123390040866157447621925050634405644062848172656956815773429736114401813731519761786982541054406168473874456388527136883666957261086613750381861175430829471355254469283978319699251881280302314408207423663293314766362897131612372944363496522919636049376711484526294640034098309722836802305741582058395354664404639605080505995421848173539321696252314834162433541576420569998167472358019315558631439053845827353025192694748636400268184150357400505805957497417126061494608592308406651009047055378171466920106222830233740217193789721366468371846291769776090789669059052955077696769547227370463658923241964747177071206049568341503183266298367842691970867460506101569194653020481960405984547198818399668996441458211305571240994012792714186606650459362175407458025725119203210570842991627565453071396680265756244487867627440906664251184983134764739766667485276871536556071353766560630553457132410453792417430625782502862232700833456709454806283594793445695809370524528065975006987881313851461641449126326428491798816128818083504665697266055550562846959879389894579160088405242424058882129083205607142120816263172998227174081898498392442553801156396173036545687806344859861605380938434018069697958359091513664556209608555570487641357373533182034645405067941722434814057516982133165519415554685941326461851411224790353995654859750103666887527457804118597309448661754088355049142782569033470412648341877344627806816031991492492759591261357054021561405766985319269255541893730433052856015891301028867139680862770679754678063969622164109098024765580380852862646643402139140021614336883679343838401752240123982563615271558443417390560816780792513422041482231464738098055142154174815200947974186491042591145390576471543431229792223274351413558755747302156673121744358520656070837707202895986718862364199266859230437779721755218337906573143380138105077683811253948785127033749884992761402709217052293500226602486816138438511912847877230943774854459386640344981886038391268267598241377095702731939755121495096946745224321067350718829161347705790352430966912513801351110899716849252689638976208778538725336485819837282675511177491135323533089404759178248317402074251141783512443709465752967753805426608697759638530389724834318936212915821270523394087439651716180458498052929894202575464326517916161815761274233282072601775851688306174270860589838510500071587771054319816034693211122217350964688027995342655761731347302134222306758587103804435855190692612174057273493098409740695930815032776748884574322352239273152605490762871545014696711996844689303952517974483014115490174054335290082825623834142579242707344172149517881092906499832000015011222306872024363538397295710278405371743189065503350836821318034593190391958254329619112430584789255779790190670086576697588881314433843346405248914210700383456950658173121379477560075732948905898878589877995623688867850759092952936775362158033918525768394609366069476282910061388302046869444303837037834355270377696295165835372581085177338371324841925542956203818690252711899111241841407598292428593642761412442235058650033634546795084895650697132089455207558428731439051049656678483612457112235426465554000077587727588047048017974460851282970398509183521999891953322198679926701003096240668244730738248795467359360940550164245687616812054915606506175513277049306566935728762824902832659759869416712203494579523249286290043660791489162668959163198103855522880676523826062410990141965206225312295144022909982237599004044416374767577006409730481307609915240293961708699385054949227029405549114303435372030803857778738519285017994725257405179870263006808696251664983720981318961376596441360146599297675974151598071278087133516579995464322562086112178152712874583142118705998197315772444945712371100497865859251175595903175227685152434443773898218445495689890264950724491907626230363021270896184231054037418058799243355544302841181438513785765081888039664204500895204879457008926529301726567191075314053579119158794074510957013921104701149747979126282556625587077920169066610881692522375379432525677662764904785086438522013637522342210289209712438217389893869567049094578427057119521956423528776415814266129978114288226150460912496333514052823477519415040116913134379404935763995986750716912747143454531085808454614625408368376807185080217163912392997062882452593462053076458058811039929673337780337171147135726773603726911010914640684483178098463979491835687161835719394539709694917299765498455296435295582997297372103651423532000439970858242562300495381516680930062297769249768312831318775956788882638884937392075281638922735484938314658676222137504050297630697407379840661511378132273924159903225187898687035828468297802024596832828564408045173673697874034484915695123105952670591483142020387587359684617506366908429708791600505924331952294163963500424049277900085034565012930746203200517549718294811598063741134264470202483055284334945168951421562069823501636276261723157094416998779721112256223077006552179181925619004977228916125333647927887566622325059992352824975057304218552634588488517136505404530491806967441003299131438976592744344822153164998167729127938151017139590260366818339345265771289932479702714924736888287194153427125457450653608525254297515743990650595582732840508831230180919709218830247790734870825732118985488595347638680473015009466171463546708525031286137940540807782359618466216520145126374812219586197639686119262034070824156243859180380462614468935828898215861287151697397743087874159483481596819077571181051905571199477817792624011293725457008738953163148053801761845308107269928120918427454307737641811203483268771191089101756302210311262793610655789420081059843872418521851754882393713582155703797528331692519011970935663640928904104631621669565497536177389205779240568745254157428494651856334654820706436105250656002368618603910427666099648929701130134129271140621636331549722896488960223085570787043307178173531024739121067094532203813556236318762309315219206846250355655135894692374161774321772111470716191853176281592420839545129628712214719253428312068301843147750476086542695255424358094099621770128013269231626133574795698344788484967646929585420370750040629130533556017484623103154478025718343578730351543307446475390065622052196284585823579344259656613260412903965906180964237872313126870934697173401410445798070468725290733788525774248565050131818840030790274127926956140254388662489429638723641989641389128089722744669359965026132003811646170210215325226992724805620129759088205561385328045458075910737514775915820187597702643495150597969428433121716792895729993478706399632616700089918404090322438768305641613212374785577284251345275347190953484646806164302381253552833154678179103709434814584889289100018445893973370953656512307009755871789556934446036120146639339937245696883126068774893301044657386330929612824551784917937678090035966623485608849552613841107783111741801633661556938808161630372133651339355381139001216004351863067371726349171831986161491990829131314797766430439654936185739656386361580568649309788830543638979346829185602202045325824477233380374333954257377215213018690125479489698163693136015690401907163909376296213773264478464242544047858501788347248980018037246268259040798705318276341187733720420013167858927399377707966754168657441190075524318354313514362561945297402348289344432945581199925232595922496078320390979326422246118535161996996514044344042248262572930128148448153316051216837562880643146782209195908630558416253350195038754747702333696545210226526572843351839283342254525495415916761636911455375164013796905222750408255946719594891385204409009036221819649204705127167871617274900082890978141623105047991667874797646911325679492967907806967652778317411557042197220437607210062645913153868032357547802671091935911589968865108891166522214022825214730731496017725024826077712314582231532411175598304553216923104993645319209599562424692254989524569912591186432823450919949485364918656625215877587696901011327449210616667917692300907296712630184416614671074026986156285491479507404077304378757210892976892977984240458306129845346805825506300851663738379984490545670875260004406237059484208746762228058866493784167974784139974964431180584375370786555438021854965151093735790143209557203477829803751742254129030112320993920995731042762799455066897394317581371919794324567275390681600923496027767346828691124208106960276719367318977975951006786200935878040760591266586146876711020776974898104151163232827546782773949627470100787009954921037066673424565126588010710981481849655228891521062407931325584455847317457801047586106270819981030372512700613836714711666761029006184337977804744159139751003579359767921706218263984297546271026516355087332017392951799460867425927799945147227628858296310469602776677867075203130271874688925954075594669356868800274123365182332576294801111507109045841804860204272479945207747726785837701571693593811950666025853945719123063532493733883981660159334690022898997095122571435810683380976253341353985984409154520505483474241559804864302855584765643044993299996065551965182355793986858238474640146737962235031422822419279944906775606928928414672159703028072965134288486562861776652082489160541351698710409823508314964965338064136100333115771914608478411128437699010610695431060991605269179912814543584397200334270528155558598556815563740783768760048895534385047201302203557914120565222177332026553925495289545957436133014401257149315558285735576581798869000783583294867089064806065818602526204749985857850878875741462586003016893571005603475377026725556225864404418119809332434859517806576618632422542281142426841958864774920884738677607569411950945521257214631181522113446795498857321185688322374463767242051351322490068293621324458660508136916897252794445201228982035352381434199248395959374240699388683248643947162110300787044090788754856011788264233691653571503388331444477307044012271105172513293384616716215590020290976434548253305038200854179242824961793347010363011621372706447306195431775445159856582882673524107388692531955952167751384403146077237603652439325257245820802437356847259631977971258693606661257504910279610942648519096494581952339955443318752872212260860054289421016481180134673789168741294209223324695968364775190416341352216912739764157498944495415306216268888106716700420198362436047541126844891152787639515542516011475005323104137035909874444573750404813207010825169081472950106593147212893770565461041922716096973816202122182690176478072399061252897043053314558735640365491750638224857617831120422645391975493209932380635944404404704629416337887490229873430204875996836123860030334007212114236079029253227461946501392895530583727124245581414973968238949473295717080625724314743956422054819023736882770843426777111287171784285954092866119089044804900126591310334366022466646051900026874985471102257501059371072255104702106643156974525749846448506144436549048930812745828754591537606155939006923912190731190898338783357399837189467061726331899901907179264574088634104636460069786183010449293541616524134887990299607325077743051899487689781504096544520578904660793098874493022305559337816255179287386542723911679590519008238496789939320944131178516665503269284415909132754723085943633997785407637560287089836993413104963949395527292283529244336059669644553807296734630968955651160130088088865773887782465600244388755910814971852598931331219480285241518595636099956662208631057976552708524354859311838508056847060572542013849109309186517308029664681106066874090008794654992109127729913557561186870600081739756543012354548966603873889406886334549838987819053506316639668645216687521821770147099455701583170553254699261671825651005025405026205010314562891024399471945139751173383662019830300185695491671166351479520766497198537866880870281845003813201415121810612529054077278828099606259156476569433107620930302487535570222672067639614473039177640960364470770667581213802897062736481017360168378808681332949913049874461963315212429839278280319468252792235738923595666681803417983414424523275216468414960084497850323338031624850190313038793015338111601610339787257423754904053935053491281371888259559052523842307981283462570136722780382006274408334410385518777282320467417948859793338872756473069726008122262604283961473959753685774228619216771080756826757359436055647209413923984458871208183812258932189416924536521725901746125677885957536240885350630539514769503529227796518389485878839331690221835840602716498989599423281710321319224096672672586193831811526251822081820458693469843984881806032862551510490336195771335927032715909615390049886109151728361591355352928003127152836778191968085978919932221918027676155481265459694971069524376722459311105111397676888657528853580119772636208666328739169982683096694368983314491947550647338793253822197465289444424263459417867687619479110476967263590360156202382127719051611350166954525823063913067232985178272925333506207412882009503638455329789461779537094755119520069953455536445683896576357900375714641005143846015357663806811953540454191226659740754834164559719012378527410883282726640927725134970444148994690538192922667045424385796157645660425779810671144720283809402409587759093459619720303031112153938133179588384490498105381183961378587375930006421322270660155339907644564660497462635619903614448421262385035955395115696477981717494535784593677015411224454086554545391990187877466243781186980146809566038882930048577282655143536315406930712177390337453039190372889485396999431253260626211079053557705476054832893859472680021086251049759801777494924324793227396019036117988644836793232731284305776166434957826142776905302789775957431547998924442022498538905533763186604532080943239567124138100191395035221674048174556046585631404615240792230999965014276992890651025437785337958394041785457264219925690357168316456601001861862879613612741598202387689397392416915026521526514731576647479215032557945505819134552472314891247153400364801508298495227501187785733108821866541153431799631110082387279605556484903998630224500857178194231150983736795433040706172681106976564179335686895288723719875793042984519991427302968344796544331090850705722174948187752533523544684951062937361995779274905272245241964725602328677912135390573629958296972557159454761834666531830023994398751475506396830581469484842065530377855780530676168977468464285388004644785919281684716568154086667455715127359210814965765991808909887577314613345309767274026184458117682547056924665795416156475786011448133331901417506347267915243710357565670832225772378076583212891881917035972627010735871268565739985196128239983982048326500224897699278352534337542684302641512300528943084955648824051565895728442969909988522003136747525970152241359380728561599890763593387642915049781967694335559890998711733508628896799115484019678538739100412252846146393942024828773121656399332577436271052051026753686206101359383437035375459999310536953669968638173366433582983414579619134840454846584142331850467539084333014593199812381421321582472653820354526055460150968135305926111637075627525922693458260678542806781515369647610191573282354520111668700073977992398146802263527496914639800884381077629143582202078501503198035860352796385089256835685316299851322209905581672227627012612953604312262985455795593479581289209454251244584696353888915046443325697587832110686622774963320606853053582228583950906488201997964418854801040857209953502211594277545864384177504703262515982251560653913582341266587441815343242489297947578077007886647148980895705445834871208803298998396544712553144325546613877385970454724716515467456937003414040207390525563829526301976304845965129787009997126934955436678698567775000106486197780037473667306541185391874797314161089257481644112947730576862304449928844093330441602131776875577592222889040488268324701225584113064037451699342316141184312068305942394556063504961895771846700575903335684381188837828552061841651719144708973605701442517868055042928164804440173805261460790429919581398900659503376754222980532921198819339567137843582271930161215040210169853140818165488396119974607672080047675430029242237318913903197798491314895360447378784133536147585005563226373452296972093320837116889234450214856156234355284368552786744639023681279443067565084946953083386907232795949614164143103873890920863390353511956216949337263596152803135998241993005381030295298797199468656456802019879721316220877445383353672646051847601847062239485909748897523518581641077428564994341863225783642464466742384031918204710003621669258056248961574296788484238181664689861101576507626173848395183207228480551766522094474329318512200527897421583487084961815301595112501277685131441584550060770219993075442354015453819080366712123629307014801501872639500699422737934544846683203645633063728215876182493987654582375847776699956866912504427812557364859634798623159688062434414796517543177435819087600424591537092801399865989926894510122906334708514571035091169666773029491405803308988051050046492185327099183743244947433616092611003677042386343792211272190864436323850939039958306438244959185974944560654867262867480364883487641618123965883953185956582815372355416643810837055747624085888831061616193425099756505319323498913130119884657103614316422191269194719144925868011738819825339656516142881652247984346575257824087427599685638635786541139028144945663461193713074348594494148511842916165311280698679565781621538243125675207675623258293314663282718555734163866647274966214358744232392811776183564703053484364798917268308151634170659846157362129994996713242744075396674314459757918737338277655998197515996063825019784437037903209871673495754784875834408546909446809639426960653480008009821887624422542613968398017555003507640302006717656196579552390325393149513663388364122096264821529839113601950995055194624103074194326642402420174786520159502685884835686564696148344975973863096719696995579490480730268006936453271087795823371438327708489761382210545386036521815888460799595524058183617064224012889495857003060434465672063815743559494178733051567930430674911422814487488400896951471790732610528216308934081011066421450553406108986679848385228138317226996264434228302756787786418024595685404371106543686987725524888099067339655726796105945284538810051709018511483825288408544754186103301123761253291172346290991894364975300651209419999304043765842001771904787814404117156119373864464564520950515448890806557476368500313771849863580172403307957523909893311319282916016029609467531221284265025595379680219189489084737824586730163209289142405435386313669895337623131450954816377848297967369555705862307234886960932532750746711940625413230229607582186389214781923321272423985739509060744857684847679070646367428826847717415368124247221203797996202669467490906550914076886982582220392852737704891646555380011826094347059913513023832446955127843526138096108853456775238988102541702912385740474317126690208119485911264342101458004447124785090030789878623717000245692008694984062038076393861520006842171074462749939700411486897511902006768444262136036679781380553492451171874886155094527488905727621370167386288847569252640977031431591721990542762239000463028197510270249518960016717426536992654114664553469695181776733828214732831214367092359632450694461859692680594095478985514117641982082464171304953409419653528160229372274447350213751046039637019511533243308944041329014997719396387580766204244839325930277934435112551558395419771238044920464482981740331927691961155025742089660941621365239850487745088731619094441162805628623231141202776338948827669778171208495242578414841162977422589050625363461103377272241546077672880127879284910588530493649316701603036819645015327527521613201532596840695184750429558654147966755889898344188424996375235367443371735715511479906546888512357180029789189855971810735338570565312520202232643504769250090499086906069147679740806649151112476845984907278743202285699759722660221043317716191484522379425318469377037347886953452467897489167624994386047642283022877399205718093594263526809018369182660880132022697803553662531307460091807365009485870861675259039013311482406143740750867310845614337607856705664651251912286975732444519300565598874848180621211741444559907350722382113721412587441832101364675369156520583572599589920636318343101580451691223606310150214935989925868917924616846854609245672987348076766098451912405171065894134186188313011475803749845108036675529646001441737057764422266155664101126868526352140363814868031412490219282360098099400024761606823228967431636336685725112586540858051450899144104447924604954921448908318248612350180422073484423678690443970304090763541915245224867769071961305482874416779306499436504105932621250523073970529337441379766170044846529408904801017593723811366226799151098992063411167881817759904798961811799088796732991493390778240262624996628724161683466720435198413820539454521010954029605095812574190637401417213622708522010610483179198355824699491836664371883274093517715719342821864731350049175208824804980936880131166894588531583839853100877117516679964146378924018256167797961659054976433255920016960937026598638425018765197679759356696916550553231547574329082130541838212453325385911776183235481362118752970687798931194453801951997506529749370401483912025613649292083148077854074940657512727960422572476449664576550460194417966690696390270153173163997825451523662719490988933071278167570767674046541168570297129318348553012546781372225501473407893365497744147075497783466596939247634035249127517476661914549315594105129683407487299323924389200483050431369991811781484869369663256480666920204134177125959495916897151325572335720253493800965709882570710975007680667899114853122833518998579500794975848370070351138350268829845264845658941829208790167121181246343377061886134596481490763999981718153498946009615270924282183166174877400351866832300245059272649394914285830650330152246048543959090124448186471029492624525693289873094496172787499552732337917136178924720180461230065799060478410438888195186324410508007699879352661159300510012211401601630985166569504402057499065984200485685242609855777077008792782518182876685693593608088045045633163223061684886820472649433866153799021334237375539493034037594916914202298907747510950708438712308358999204954043531817220385818691705910596128185410293671294959687499180107176925368485179587116810478198416398741338367335535338989538460094032780584850480613865913047281821034418298366103560078744982582750503250954520439025598315462230500554426117977652174205650381418069867834406024285396797520738838213092408198861737605644489048751728234939051278714309263200835864149510303125166972402517529221924131594865090850272286257090674884289002169264013876724505070897789033481400704864767002924497151654114229193609435586671869113460830841893817733994296995221787104473540831697159789935457681729822618414482194974192088377756397410314128437103678039744867830079254498225011322747202700260925358605943874919337217843808644104368823822930053791951689665264502898301258805043374622316943393357836558733370433207102390000577351220879804108334395519193244620262739797399929270037444318639611226899663443599404505285583116316304279448019499044977935260837706659778397334285483304132753087676859167115995898303214320990119773237792277291771998163851975354611117361438970032954375773861256103702645123822835089286939059362935107441196834524975825282841168838064138052224507931009230631862479891452088756274975235535776611690422120989344915772407252704516329764606810705644867426474086609913736010507287186292052784226880691562403329994234720493434181646999655560660150403186069931697855747188708817916098210665181127628987876544072342924540902236372823011978225520967331747175196804102803052488457470769151391579786750680006372744424083451034465734221497525408188212928119196858865409515160540473515853302668416715881710005785259360822009415142222924201846285366960404686763949267451722688149459939095864455364473792570715411440739685178157647140152596520931631453102105738145458885846650247327884387349861017546246594247723271872235584473317754840052535330160187530283880099728758779185210162018351483814018007108693697851326105077289924749472246498035595161851325425482371851642451988535343602351375160735784156065347422126455403420199001432833841789850339203296140208334135618168549909457017321171053691022008749419302714267847377597110096433560737672182910754943613014160431352975455177217249921085093674550160013543047200008693590759484605141601078132502520103211059229777934958650782684448786194791106061987756011902228737878556857039218062360889573600567831781927952461647739209978890080506885064643669359788846833371857548862193949644851693179150804211894982005539035495779597806878994041401720786377656140910276183138970517877062010580729487310872974524303136532255987917961180634148697142914690705496158605134343722378850878037533492554586067516886460623242348428057894507330010129332184605188772926170212564436235725222472439970380234244285513204612177067657354592870813653406345300594458057510891134412290996891086322397406056690868323017898448795964156617322155757263912217586187599619575193734415448773002273960714469601041802018192402330901612991657861631256228868231484690235491633708305878883057520053971428879420746657180643989874359106739875134689034760682642204282179986763222341070433213718746669942584572303259497746843728329350749636103316933941837586856872653250059385608581370136744483069256442058689223670934304509505184309395572996993407346917055959637438701919883396974017875964322288072100887172604503097976542609642210423453599507138707241474901848114545881651843528404905083899510857797187556783532360655874407604639491526977435655846063422578899132762933156895660180202242132968347583756316891876026830225206194659651930456536048628173264068773804168865782411319025494835653759593840249526576395755868234554737293450290705388839645868366435852483337319700853389783361773061222864663467751064073404670014271089859696469293075297377873812866291124387807636627013310454778159501693993325174714555251721114036326696783419197096299915049662306505905817513309751723862772638735264965414819622299012284281391085378638688764631465056734070444650732355679322299905399535301482633490953043426558996992732312092723664802315316097611498718902159415701103136632245555933402625298733796813394364582989585724686042733122550198682807931176425707203775372652775285550360584840627734851493330618795612256594495525339924426449551141796534753799341103103218343263470185388830577892756434068281828320124934899531560486740260020475633134949783954031003270924814140962282928827997084430002324064498579636480052385544791279310673620751451225097758240868382310072652061707400595842619650500601515276725557858868149536045572298956498119752616580129318886917268098579311057478692245215371947843327713788212957656586599582186688304700778296276180460437775491168405239138627429253169946463400701785568833614279661020795010351463398536163361720393511323542105197642942640116628942925197160871889058102253041939806140897734287294611197524265463974002556281807179608935675619591890848381038698409129796192248028140460691418495879376873606574494803537941468853015468329885423628006113942745674696967493179488440718627942263856066115132471969338280717593190655762725581814795379952451234761112048585043603070266998236621060181385188278818453047656195042877863577560243936062652839808013500850565155195613440705729593582192221627779900432638451627587681595702142166616933265858786646307358498739839493240114649100919687069902304581053499237702108205154890607901380060878422197822587173487878987859363397373498094305554591700057439749501157394054260055329949777105433681002909176098604376489661784196127760549307048633829855551507307870610176545673752934126822624744237326438422110470968857808811468592033613973329058402472863044849916201457477493957663024925640957110324267600666506429643975213380615194646263661763128544391809338317847058110019398895383764650184557598005637988226442117686645304274221106645754756944536023920026355236861375133338046483871761589448871025638227954945549002505799844054749520681928378469284592804701276565614265329847207801084131146373501347771183084810392078643645563822156920202257765735088773183925488177513782568704345739962849287192009573121834820435261177182388982537552591230121340217339269677346903648929654418254935286007148936848376446166733864268886611438140825187151328668667428434764241221006062762680918887567101007368561890630736133106157566327584238903940658757733141395240895337772243972412833311822714627224519185917582979536156959033582240920750285973800683330971286569970441819075334100397272250175028598361178970347779760391341981344936130172349047838485109253354138203958104402546798347079479711847458069364759010533747143499696416127012712024791708606235036698218702824954028677048048453840674547403829251122769801825708530232775768709169139931514102968444528094487385863872434950466139921997613426159891982685806454614751939532117797173711845493061098253573594099781378551001956461812661504657047510780987447497930896108375415179488773232045341052908303828710019107360358636086720535743068336445116117992836265687223434127319417105869063845806359874435908029368566261304264292392411396236691697742146532185298767511038616671793216445020973838110031464163154735824264358874040247930890442917495739640641763089171442726987069860926667956543360689912203649680243573517863106319324500449849628078542678074876079730216568887794983663565001627656406309655156631363085696716955540943069361696786452197975896849149752178780694639540304672359942233284546553205058597799679642486017297629898500636084018203288373037511707712272327516532157645781045069610266140152890439036941090108581763241967519590668129706194311015075677647577781584354312072151328522130961206919328994674780998437653780944939908056897630702151617308754438700639488497542860994672726484005976488782097136204914014733414141061542142391648518357813113806242491110944443260856592527010201158251648485553551497347289719934167330899058970409184644229206556485659196956848166566366100644059995870261039736306771749840471304670543324726551875022602534129926850190056643789166559486216948417161922110866549746000328900761056698281637239650686175380029635958103810570999660630084890489249312276500915545231244591511354225526987622952467158849187213821434395009778900294315277917497886433836148647970912758188672117219172657048828559112715193101023875845667325758852256048755995903246618372593374081481065498016033218946678975060440397146538626462235306611622635513649532942142648192765718391157159746755828200470223917736424700506419061231671967050350129139740465048410807712015786685487737348488517640362807879174568488338650766119997971639361145228730166261525139463409550816869044422694083497130254728089476970320435172696795708814113171434709432952275443484513054012063374019538913760864439044054413803915894030024736841183001565151832922916420715925185167999062583945657340514899168375280143103286950720834416539728814987854854687672275331055664535977772442796338597145138087982909425641601300708174827896114843842989687389014418320585085963273185073701338626275252526908705378274627165426827885167440679717480797987659361943744818391519209747721523880970698702613582573721175422168338515892158117960305015822290869913687644831648635922689107861442217882378424990789080301623734500341993960305253807664207529706434890994793670357215968653470754932672005576847373072673734911277165426124237264612034601899364555986455664444052878677148050886240946402491141752572621086392946332213500384101510095835406383090649616189679223631514140407589859106601515866981912674724757349343878048354263993548916547773625922578378379874150513339937455036920744785698515572973894172737221388791875942301656778130795051623688708640053720002032957451211493322223890941895362137055919950611525994123623241875488750904251990702898456233185250716938402911896429249737410633564539463539716284785116101741714451230055389245922897466291294288833930750457581210635020218794296848270214610108480609031665576870353064260810254446535472528506651510744128239949464047514954981226790478035596388456715200148755951728330591489019682723171856245772168493727203019734041176010426633864036178668784787895718772698636909871808434255359918127395048872928498528590042522665203638662429928428926826402497109071541255350495621673601650329383623815608881113561255730509468110656937452716573800858999003864997178127651712317593853093194353899787838191588801061801249450700714859346422000157012186754042502360276697161057298867479246871969875292998711705283443012995046250427075370271455831308045690290878692837613698666520713972047951423642036283075021269813323492697842615257450902640624438043171381349994968837971281941738069334610746128472643612072350765887386177953050492403535445779031571077129470614880798449860229504755802705871979438831623246840418839397123017203468645802458255934908572362586479042514840953110676150843918961005505620950799536524811516811703699239039318388294921609972648434776589224050937573648343432890452083947402863391886276598889561437424227028716195019002617782770915286269878971653120534258758807474747651033484041443478909605764793274314711567745267806272611094637897264209585609430262636988781690727774775730191189419902055571458560426306267390715451239761293668486132749271949871016020896008978436803465259094751449979636317837746562598152019364936052498256799782272544267025341871299113948463367076733720323934955097380658250777065070927004135332354927968574578413434978547144694506839787567808110053667122723403796765007503971151443444924821077282150696858559601505058049469173843515052714767686048272541251333758708459205113897814020190603181734195693825017689068576658860071761310131073971868983394220159003504064500139772969226261487827653024091048842488923847070663657026387345834287641984187034342602783237469675765966353134221957658128046065972121621440755909607835983373294388790976771868446388024223966419407585020184551592928831649173207921007441801341850388709644298581883170690696049680913120413800381187533110209355093311570991250919320982584862040149313993134053104890647346358530556161080634200921511219645549923816548822544626974202034219550919294414356950825227660138695181122388352380631855950567699836642242385978792738832176068230137605441133515621704925358934685670637513890285095082917177459169089062594545100259236754803036164158122560085705526734268187008786754006705285670512233668983870150874983264808656786355001375662169202689222760624848005158991202521698591904548738380721462558538587104742142817106091455105001270401797426806737751717368880655704310132394874700962911396550534942956232184150881018196655870696994802038354613279644202471092570622974032294843754356013376211895080395732735512843075759952746146143925864757261537404538341167403618951500821728617186192496042438623570900071739258900245196297296193893166899099616885620892572351089495799164541098456400961324331802372277788204801947325030004706333638964539735647454325342192237587310785559907368734098436637496438437473294212460529172789715126065911558721156252437250624047595918232625085975867111959273863631495937023635482213160137807281583562492686604353476541087641399642686247832131574334889049668153022316827836324130783946087723348453887718872872626279237107461736049982104899207186486116939039824542805113807186691293516307107949255596370235944549497672280881261662773722522769388961618904365443038797940895029950476418744841926230114905938402120484169051253333390376446460733877539378717628457886757808105236734907824252918133932341494690183013291301705199353074394124864429950164290350051474001634163048514603047706562939003889548087916626348748781621418047154423180835537904746102068264807427240187096924722533343442548197919809387105372121398006233620717794990181962342731331342102141037205319307677705364161488398201456467783967141070704909513393590721978494858953976275170271955110932085725964666531701698651743743263170124467726406678367448309274758952660230015700702395636210580251830917607497846756565299397422977920539821395303858738764904008271358438945982839578899421908756570308803368660171234089137224891825255964496232256392706494960496820173912519736663914370146498389876624542481604781781403786565086291382235295168218924825764657223901509866087737515048961203599277786539094995821042124130799162087844241586987593164548512559909724639146517127007993914781134590287634378647307497483026294952932700869803535518024459016358087361187445849486736685019764687360394361390160710912238270128816575369036554861057415820977186853077032195104396956153818993947704117518177184469714132042910481497068361275340813433247125172752361509182522841280384455671412455262530595503033276428213122167166814769094018219699377401273057429384383979512615531935268855065713330569653207873016733446209673386270752603991849238699306558196637262761756715710647054801831766076344029359745787314659012755067959604147018639609241906561490632773738429941939863632846784680997931314928509088301990037216791691909231539733057204492734416561252447534454653162395505857640385697744887078386419344385632692011042359051703445510227850962156369646619472853229670648287719230975780371107010168497748365157961643302660332873908902483847800464454798167099182909491719131597976026707758839431210965405771650799016057314253444977434162875184163478778659142329293663349150600834551262063244389387345708960850576128487207792653439584248218132353149420011141558504038762806849543655844643949549857313862702574304887871277486724343234591271969817623636146285731498774728414172694522180035059199876933551796804702596620400271802892253593995232209993027601927930724560533659070922689693135256934945944248894968794025635296118808300078252482203887567354231535622237305848198223508665585176429653814147056816531191892843492070633009519122713092864058386637770418263215357295216167402319877674578577489729186890852559066264896605782081820438988720410952934857436236697699508482431411847701717374010229483595064750070016400147323014999155986241072335468795005665613367623788901191505659673091896453862966543793557981223665356726641754257262664486970953714260094858507890064648264629770083096432872767940999862716430770294033579614000416957638740593830754401197429757902462619904259737160624164917447019654340000775420439809551043409095347262296801204066670917946083832254740773208776264740001053676667396810655461144450867908057438666185640739440621271009606139586556193100913844325650963142288001140494785174330908189409290475850007558061842174809891915912840112162632218946846841124195042393133684747207744794776845832601964952213532884584854059271462639984305404174730890127771793718123187915848413034357946835174194052251790386277897824990710693681222693912317523529322357003852968511422244357347443238606097467902855055224160599494463085094170884159419073842412156697677781424344513198887866198101331078163124560301249528356283003483849272600586789311730046438221575985189641080870522644063320012822084332673022875391528660464747903249659697843700067774839133564335337683584252893695738512377076863395296598948780067280779162210096732913029776858295098376451220466114658859199532021795398136368495240173265874220358402748334218325102969293299722636961401841447227212771400971879690394468331659257936003293952981664636072874310230055834580203109917433243989975901846202521475231287354343572252733271509233995874676164304350241711909884968099202099001086209818814678115654551274897480627684863927442598718828150181478717837673017136527066013090879759959846247546584263193364759620047574099838279864117537164672395298566204537116425173472864907631639422756306584518306117728676064163345364498978397818615470328296652080289812475442899842851167663979941706797775687888076237815599254110558963834358759940667832320004766734374776223221898067957569274727509381100158636023139474365485521057454736877182882220245032168398728236882506526028888573987446751089367849425774962248711536511520303051169415717576981156215706188529025270064954425645431668874180132638980098364331997116440650278533986687748457540733167183320648638343818015210688012059427067478040682136881591771622268387361585003828923706136226876902929162975912327532489772680777481885542225448497812262812844179912460010513561481312675404279901065741614889576745436890662251645269446506355785601068354540392925491291257504847600744319448237572402269892360475268574894081747854036768455027792000323358293165046619856342954398101887972846009368017190687926175001040425916061901579455560469744341904101297678491617159205636112781087821852077650554124866913818554455984310003143392127383953756859651100112388793179035852170263492725315309349269540881024803450829331988728614350004003575415724776323310632806679645525450690450613950813878716063075445944551772231703036410887576666396949095863856509252760628876923410423544165951146256898949587994790718509416865922155275950502057005248182459522363175722570409061330485034732596050739356037281998637696136727185767682905624207708844076806244301860211786440423312016612955282482982426397458520655206275615576667311889533555774838953754707052232989446237899709168162092935150764157364104221765491385303175322691231782878687424547818392819671752427226236635034018868117326326993431135545505975272282902076279592087931891313378923931639163413768107033372150416608398293151315020419136621900008721851671600416479753003796850763831435420818404922181572364063346030672637789566333000603552032673056614971901302293673548589195709820003879799506464473380610363093080766062730503826013169600684529689728676616879554353760397756670352379045572333281436126908696744926656671359042231796321251723429877942606132729933608050965201843478307457367135630173805447015518002635232498822103038409298931112835470390161345385203175884701695117704301237472658235388880079314111981246880424297202232414900864303893913023805987928807631850807607692849217745714795516279328600473375204928614864191078776070803625223576359160789511322166183027717190497334434111671877642937372466383491708246303693273535765652496293439038821349681380747320990674991786816501562607368586986691010402282414715403983681232059629046389119987518614241469602890565503560105165688308162063203309403595125657636900406938165966088641426452450480398107264183245310191047108973405155221519942786018734115891408976934368906309913414215125003988018761709674147135773011962057439667698765812537652841805704745144308145227560858219259052997626560038843333333263846034158496957720106588451760512871701969658998704622466527686421355161474008709980973439436533815436909759288820048911973828391325415487087051175174961307186109330405064218930414633813466483808889125671414826678427677133114318928053241982711594578344338560499189343904593101327225048601581330059887594785778033812328240950342341943155923962766724830370506480202514412925530328993729219322519879249934554591881400339813906248313875219866185680553762409836562872214498730576255142095029676821843675173421276826179174466786096610479658328032986841781033055287988059294341267770607941398176337789996942013441403445732482038682474226312788541913305486348292474232157114686560879238343551683261669735464625233485428921708857092695660093451828382995990685153232381805278161296140173462353628733826050430896926554244938430072944298558139163081161535143168845401984437274573679004722505198190249171504083731855039944406187366242109544000425042674056781265846854574324512782360429328493482591675053746091427361572881032386009208859605027821728021722851544557040057697282362028094681489195054540884228883705867711606730860627422008841453156390924960411187455810769420279800203903523811085453223092799606571385774201402646092295767868951389984572586314372005325926298007379769450647892379709055410587679218469543139261928095270910089625458863769267822122822874899809285360850221919302029969594187538059636651566923231798203188066561923113766630662268638493566201642763850861441105572714950132679472436150602300800265999397503043342571122192251249224578974809785390296926788849751128574440291481421563741796603211486046924912274901049288028013720227201057700051480017596289771316218746579268809352392624843689425745490308370410890857018775254829399481969862197345995989846137342153798124310133763860895266040346358922940255969860612476430078406924979473035891252180399005235953054864433079728287254903098580243022022293945019752445860152676240265079285531556279251032890784809696677080201173525574835729818092678916179044510099047706591600918568016938156561866837174170722204871992096288351719424927959594908358083885951094623838499071802043589676022204413970471509398286935284662476729698886168813318064138463906119828698622539976204379864003725636443489014818202174001787039563188202604272991827674134199424115646138693633234048230726804889098802762584628811836169680357062791138543361746299744638300391222681405985787760182791141435694444327991497833544950878882998246461674648785282002936260285009262680871929767956305781725364514252638773665104880535262612699860012138851679352312563948573430009097831661289292020772974615507729588353223790938967422277232357504272441043048528148004450884197616442798206518024149788345690186382870271890508869202271429387670017732308815028638332765834978128838995564703734071309582591407673607272502341821392597220609839737026927241654808794105363585820739049559002683441967524511575760166172952907974875477657057288047579531336698707367590207524963826489192334923635861828889516800285427919753791089298489171824347800338650914589128837609573800163627554459979034213016435155049948699038916886871569662744581338991681354067150844068295056655347459296322588831332659963794627761855634322041124138783556699996712341416972105404861717222695288546450364338390977799032300398357165837624067543099913791549330511774971539218070933530556387163862322798772488648564473417378442755531555049525435170161311034949414213171070252859785155511441248324490233524630605918611896643912523961827673097248178489746270741727785059833668911613249653275882601929337730995938575068726650939994921771332882208192325850126447402444697058008793478486723845236596575143147121780600583171092005298609776603784302076906891502015298695618411842967091441153776123379797992910168796981911527889055216587821708489272952681861153644297178677053438265418224676279893250408612294200769845457718020438384459499820910101826411528995724585384153640588245168031356351164789292266404551736483147140356962114750500653804187970292451570642890499537825968423957257384244171290587036447078800539463020748886100671338578343904918028922691104951393958622642207620005249741110437758536302840728559092920327808226794211735584191404179619002127893776425136148799994008730507950286041329563593522708928299318987991243944574937573957240084656785575617471621139363427854979397759079405988299659243329290456612807167488257690706974560273854133946885256226662839552128551099413142053364374148030309120488249802137372978009519317942840088751948032048774483722392342589486931153403898121293880679349032482880550223596984309593554184990707934794868788276328655192754189774523457475895497541120978539154901240306490261581340401142141334286882031569468315558358093512367571810808966892763324913512553307045837559628911113718898988085646966155444059974393149706678289785436461879121380369238006949622777966479154453866749624088604933237841520294377298463994417005952257225566853597521789120820779777404522400608695893944724294446153860448806154073835875342340248744189538910470347961362548132398134345024384252254529271969101765889010318898402676184052630594614542003114342074389941217873527448203094520263306874547834888121360520248504931500264966026412244093665910517027878141656402530371761983472214709638024172341672479895927723353698519915706559662706127633724825390386013512330265004443777877811727742549723481598609473316472127596205058737043752965992804760094426659466117629976477237811682855370079062140633752140000029126708683536165890021075972801414947823093096715359057924410660290840617832710313772394759353264622269534802861594802092795460706607059443657446011599368476709464366342444891636355760397166122995292202984683548639663071084322333284573298899589678456064987646302805290339207821968903010781206675725500523004324048308978810471978780839531179167179692743909584162288837359645654974353924339666368563068222000594938249750041305089907565320654247047410786785808206077076283220223470464007112428086608309233008583005345811071707893089831773476979392928900535812024986759563965357893145156408861312429753612736737326386185657795744378297129216251619410116041874242604447779987981116697957707204608568199321649012185988242485689556180142917600503041783703015075159629156381981529234601282253312823214617974366718387067234545362083318779640425251628604380438464430153244812110801380003008592385311987316753657414068468736832711388323520814675174221623007044963197318649400330851740772928463350986046993364378798308322469903415675634350074259450648932754726902423085709975649347287380344602233117560785798839135180139697382078183713998352333495505324231843673318132265683640454036427037531054088724057176398842209653638643600002814481218756433993269735303330023592465057032385268111546357635278255360029988776553449058551303522171445062414532576211235742538044578318133860037232134582730948017964401921401282401531480474313236983901438167189308290481687037504075329585827576859974982927176110943037596401019192435945403919565949375095884127857714291122918141528339559488698285044630932543260163196172740032770974470014400992387555508119810088014253016740810365638709732753517214675569572572772616610231771220501113277621861456227003596814266768093830323817788227045203489956891754015798196285740530194373076500002391653008980169445487232634152263765668891809808377015835529782691506652447168125201527426806091576297024993593938844337033206705300460084821287234132554095176254283444161853145076800949292418179706827884946091418123896491638418117911156678668322025588437187066898923095903144601456335553135491828308040773951556294847648842827296437985073765656087087598226083062959622109115767035048958226536481184506207138450385664376571017686213926506318097264513042176236844589647588679944914941927987289242170571643103066112331459457089311711409933666031468545205881460401298078055367500235217914171295116490756475970444760495116146439298912681374542437714891699787633679417653252738665846945907957827430640011682620402118502463370471745891144144811131026483014354773201379491775858315068780617978544114739800767001489413996008200101132628106557456218192106650923677113640296816406330567656361461263659959412744320401570540378652008008363182136008022628214967943922996615265180426897811856276333424650158687384904783118272627750357031674975507944658494061654425509082937234054017342235482891353108486357228285088796370396576841312914075919815301157160683782412564328583700530770007780618021685140684986792730827103361744693271643582968724369667848720785564009060139811905266851400945538232617018436969933282799794736590391560374171060986188135990453293087554745584427196053282546561502037452878563984087931735962656997872031343673665354396240597827642238325838087964122204655738852712589894136789764712549324763727193410157887576441248633217498399943945609900492378228066281749873591584618862582153956080615158581406737934286039630266416526840198750359282754052947747472704231924891843357456129442998491162062109430739067196477897252859105203236825059065574922923281065033327508691357816972471858874031590256182055728163466949471659174841769629756261098732108958332855709222299346236135056733415586713965030058409996590811310124300057300598181387641425043504273378222203419066381053908522037246228838812793999747554856898165672984337096786543249088988320418552992597940717450472814759631137435074231848438719327448733297042694823880200281603752140711845717183693624386301081868909805382720215684892987334395461451020984045690949995150357775107624780574209361521752386549500023922009704885081348319411941693118750990948963144655458333672465316819753593682765200209089741089812909025265232993295107998470027720650488383940708898205671530848446105325422808985282729486276064445408965239069625203369903848166298933118528158270930139603015671850525414965647743431205264262873585884140892100801024399984001650460243177108093446777909839108753322127288801436957464369361592387509902318008099915859676474455018640967873511493055404646805472759825116126455241686891664275283223326484105354031718042817684532224904892020534744068222752952878712064143410282988290405558370253397584783814045225521026982228212201720816349958264278701747531928088564510925176658488018134796923528876496680926156846164928863003918778208883365375286022734182045405505151539615144198197866738899077034333406248342436137693107689995170509078705247949445360449959451749625956774558621410283959698187775308595687524820947507551020437576051443035872672088843813870127482262562521889687505870949526436362704147951678023093870985396581432279602689284399551771501501548495440271344070675346039393042647341987237487296163056282828150027449862187853874089002008556548184926706111719826164880264283558292270045547344260281236690208625461606162793232926130141350463970586402946389972152442628504737701552483110813625492511284563711746268097590869171375623089016350777473159745510311526660236497243831737088433589377815182037180527699963397093181981994566304499249938025625147951977080962878328768113370951952487444014609663265288767417087965561877317373136384933373265233817667633573684483795093460496564773655027912227224397053093910502565112016124124960800890898836962587913503797740843767292183695841586290046890314670256589268378080776710976016056123421496794737568176240932099554626047819997457127927551020382620950792331118962085891500213547140936266000831428951839116106960076299080526272851381700355932388856590277664233655233516837126552126805948562068888809519463949755899564688769005959442441765773327818698570035761648557731723871554343720414094378329407940667131204466482462125638866627778624233225168555217126886495773275229701144728765260080324241158106588883283757861918885894317567828966923970887758567693458740393569436827338342280206286681216192173908276672563498870557086752157752239838930234181334508205115818376985461211410589003390189561998671395702705444816440934810872708049555182575097350231612081508568115495868345734496123818998456617054263051120412238682021285870729882850822834671287034155581495369459836247754044986407105001532393409439845466904564102671644113614684761248336530088435511966945297393842769126535775713952073342620827039042130030157423919801677080152482973716031995379591835608213549578962075425392596985818725064110691162339357949728684261413280791380590155427259587650622538889684686955224508111484994028045317901618955485178557160952799396142836978440855121400311765591991996823885565455967168580851520667450686169529922846944743636766043947912444471812593018448750125444460040872878438049397721055828705606863472102838824985702374213059488864308963139913152169432081975825484886454967227586656227177711791584986262527977715690547759365139353328842022314417897848423123783217739256394191857741001297956186162634549108320714044906161499391843037893520777313272509835274587725298433589620007863630281216721774550468103362319318727193285006053847875877432909094153308248350831469889050978135516942772935436114159007413347486503440310286334080280528001817538549661088079664457153862178853005205536479142414775645744633723279351391135155603070757058418357812065609866743859340932587337419663180673367294965788975679410549208773634297920196191811967550947497984038152423601496258909458040158940956065762792726724435726099381689970465616368637410494424337599940619969251942744456995682624598806654761605419154045071934218355414431931811383221830148296693745244036387291906621755108666478663285901111174249014031873154947622088017173740200717884519110199707694938756510908616380193537402925919417181473725101972612484282121086232131710888849412919907347543634408144716002071322212690361513300685714074538170939645557198194529611534169530351596231753317842903660631292374737163743500641474577651588923386641299796384683395276544655598093042768562057972533562374282370001488191361423080869432900729145754055941386078246746376508357084720812902430127552038766142336094121719828837808260657447832195071945234499653677435573607979108945578186879480043293359584779186194701431127708037754581876396715710023760126679383502958695961142661633257797108980450982146811984901492370457553490861723299650571616349304365421475078155325444342549565238396651480017477163045499099195112223900741636339555532028204752736985187977674424748824469927092893825552192037249990312643009022553505775746731237004919872435127140168679046556759732286459930970631865307234874935908718238018224595606962351355422369912360914197973561095697657952192131330081882002037183101917208609310836366816072950325374417143437956612037623810352104712732498635627649212475555811962677980406590407533097779784194026087196929183276383651903245013506749164519585651159652076547794366831168296592525377127509356338480759934242944575546277613476294085089965275225613191179813313242105854882499895702904960118349060691695714091826945479254904135917214674776798419056789864763470404581851311387948317844438459385538937248382890129314093125386348784632188244988523261771173591586335541479615662886095831862806014505103922634867003244275444692995416531719369558555234360127153165149214342925064220904905156762891641766998211432157950106198641321249506884828042435872459078742091089275381072290166609645429289640750664494350313750113134337529799840710581434198607242623218153655934078826225184000026914549226897491204908727770563567669746559152302031331180098894196573952656760473063327638129746739274047435565058933103297320182361672244871984187271567428697456585523057872086297926034409926563346967021880315605062605080921922497572241971234072616692369670597842868220874423670271155980710757080840598312500085356441565990092629682816294947086496928426132978480134469140028037209235821071797962081448809991829368235851737432200809880832756711289389162322080781393197253578350420683046018882551789575006301143557192994840144542905822183109994908935352814653867109166763641942455674871612080797180881065464281177849898353081844282815305581713678281303573299815766510552951714958326026575236502412636413480977851840482216580429125832027406199424504437936407667020143302815691423920524611268000050393487569186825523680056991963920631137931860755218703699193405328646101100533228230782366854884703158345160845964989894774518344589517620595617852159741469647622322015976286416739064988803960446926659637605247647111226249166866601680911673934929021614447690993855043114275116362317387477958098429050860798543877095759813675877950778715243258161314482482763949281774099029403523862983442026274723663609408049400616600117079190499334322212589018307732214129948441326634304400569833731733539587610114790869375559263528811348360642613395639971453909335040054253072713285279220513325594270704116611762236106425245610714245706946581995863017272452263610239094486743531465482536132123827700796558137916544921965280002285092496741652445409316460981066617482322297032308145734208803949549652055577565111513651519393023084566383053648378220370258173201082386715907993016551069180468368630612841009110486730302764864044725720648333747971736587760578561770384631829653164511970808538182798748273630105343811744636376969348710852481463971766143208503312236741601861916767182691911339299858732517941729515796907976885132512580317860916943808989668972706052947336718213398581711105132459493036098992452017595558037970613373353255044163526517673787642949455448590212707837103310253224826949506199077555446405977699981433538850786941681293883510781367693062833781722183456042121409299387672715726322247528164276786804444277613626320957987175477941353804464093207336148818535655746040291391372317459449364113670547723727372324397143898059945030438514199732900601937229853925931030006112356588456615080411672144493418679440951759746600872758520473347990981117256046237927857263677405549818180687862305497847054455745877891844557282609585209518924530192097779093573937209993153734778423827318999705904918474989684542071109753238118179122717473343828504277820546703694784381867593402829408910589808521279755829125263080557693541818435059844637167871830613832566553211171189652099377907778363663445786799637286363883416263347051142367823151487010618336316172452757121362057047057722134661355839336511397652552126297502421863731781159916848670897907430291727703845664843699168698415989680196777492018557537547122721919800484116401964516020030715999763180027743145905296546140785820455711520289320145154985801311051060367460219044009642809200587789106906037405681229295950937440827762927071211823577850672094664808607461938067561159616040952804185244533796123201035266311030283299413789784299703296654379336227520187004235874008004166768920226953413202405863839383420765768440378506078234337262399515249886796435509812539238720429455897127331447409393349909931740975069234165548750511981575163694308614229156292221322671430153136204114091218710242437827383419617341003231078372960981638502554232307499668869830839582479331691475443408280663858910978534501811748178206770043281278900020975786977022236683498557301591163672631072175828787277862859161930662876590712755967121622423884453013445529888250034023186603100885100987284772080894162454536535437218653374689416975304038406830093376494886108427715161934983260152221347958226659124250960466376653542394951476330006800660809351591283972201026458499084482124184526181006236064703314337957860212455072394199206616438238177757724868767791299877242313915597873974446855805821911889001024556269142789583857768046691754898485844491561643920840876134276377960142640449105251668165778977949277195336519007295312596876943547737128084760206548531587412390925266087640117993958246652364275890182257590404224066373795209898027719843220356750265813900727678998208820526398872932124645222148054981071143475541919512745618346282304034709495570447267734960945195332760134679700850662070892238645796907146813229566408280758884266340473706761888221533346646480189523485548832688452453705557293941031456574021583906143280451543549071687596780290053566765525484846620676751283825050410964391120540476799124078717335396060307039546060103839547532640749846602957725936375526656981942698238666716428005891610284843825637117898682189285228941579507637731875811438580182937694746390967862684437493649315807660709209195795941122265114730396014614711423706895049222777226806914833336171046594750936479340700154977904827673319333178624683618766547405383741719515952384654862404988253312528926936618454042908781226380397399375529605618758980183091064497701827437016444582514603238708659333978701827771954424356509990863014093117472882166373480691773366145982857763704544522525206956203646750575152417757477582694920091382547816129709052695989743021485340838150783909902101257935479718800355710602676457038713727459135611332547926986688903628975129038493274543209114721459218957848021268608874412790883229372350147957856381137043995934183559292784080412980578872683747225542975081975737412596616555476127668010802747577186631113926607450515555688413458678111125083030067816630119697187189630953652059323343593407363689852715715263152869687223579409510526851149878203339456608496520404045930817678085063258176095410552110426468371389619053791835146010605912956807108470168927059923890017293375862115809521488198223679566051796518886726156037881326456531272817976231385761013878372566502643025696724527572500047211874170822268610661072927928813687610709566679349135390931080217805632659146815306784870641158391680161654611182372306457332662045760901856734859200673063373002556702916612885233139030806498092509394116143536838871496552147019263383535670703866313927786428043282900051290638116609170468823191986309581006593214318516151878640095532299998228605401432694022481209617305581525067504032758477907566926132116899465059882685833081283074916544931779956997417044256598010942948655118227599827204966186511031827620933271970665882849671254871753314162757549230585363959545601452519676374290831603378817156570081661193237633927932541811989200707683405662570593610758438469537325775459421326546739115284121465582962103260626245840268809437689720306548202864706162258448019682472318037796091735724747378732915967534830519168622314284343865683603106611850464120464536710683253401679067614468475805857482978350446225072635882250167207846722835965104221693689204217565436024775409560202114969611983462227493497790391199085554003650003019739328950520785312363930630360304740260211489940959833205870519057586378895213057547409133679219364591005018251915810437020598671461881160254036769154969098815496701398502227460197021194326956576929675549823583454176910142991668915333613348327768304078201316781493810852400837798734086389252151253773953323964170740517576524996292490153621167265827034201174877798831196859648762394967436719935885147515098955174871513944236748762960939775795465864842979923599225886013268362513013643337279816129613034062763901158683259292533961712463116103934296223770427249494992272677985308655708672785024675105781986125251618033770341834441447186747349176368293379935514751874795535542872129012156772224271587757629365855415980680798572491886027854641297602867737193339112923657931137232739492987521284972584351844375764092751249544698398060947677386600409591540030526096859850220941886010227731690591935110429285350629083151548477141635826988757594162273635132776815077989135857436116240597813455166925155928030558676574499212083731719534866466851743897631765320741291682704559821642328852046119051050491082131849360941543753903529880081836158180461254009015828829910838955518282634896574447745557037126855913496969320053783547392453021721504932304142342783975818350815301007605215295155863642463944219663886387720528959520008306990860738848939120006827752091600480655802426888710301944100862203980493297589494153700760437622728407606273173974968386875632934214674877403496077351752368306639115570391351974591053565292019144428098777946392917535119378849037840797600774680174415228307959668164350519761604931771880921925395339500992471386367023759295104935246214116884973001929168621654036499703590950179511232320708013480860574419418759806756005286872161755917165422964162833569222632684279954936308302946301796406917956176096980714061870763268611714169292941462700133912046153811336791827687678293976839189036046129823591483611976036073412875220586837654194041654126488290008112967661926492560587733441142106106128191486844063409056693815549970276120790540566181438327524388478210014896631923704068124612568669967752814996451163089657295980220102181105989326466215901571401451821725919136286775709733801650181672208954632132665640175261076879234703334015364912171545030317120479720249790262602210629143265675611593158853967292062651297023514422191725897000905996263643343789226692692409114157566595470890172794425108029645587394693900556829234518574144654812925777328799542575603270212925884992368721885619378281108797110854149556697013690997694488280268695552932819086168879206188076455632384133172455952186963369627518185022830928319432794347173158547290773406536435125060702017836673451444725328994292147668128332070462217354236324555315334261752726662493977051517413109682846859487500083624433339679158581166242515106586864204524531550796918054774759530598837679628663385548635507487664557010787651345890806076460047712841836892949951071945215847009090257309846974661228843155246233733949198579387525286037219438013977504227915884216164896294998691486813806922683068034645786166181633409836616062557489342406055341250910983543075092268256616509643569999626756309625601439921183287733836380233551802276428325308158674729534802855391104851872889387790400205172221431035345218898089607267025911489055475720434719164222391190942013023043026747513250146206689404050893854329203010305124434767104640825856966786966067088546626352047041496158574273498718331465582995485098746417768415588037105622158696992961873126393401738220735258003433829154330529244131678539150725705157244942402875172903012384671785867022731371287909725677695161142855742033887459594394187487101528263718693529632091362570070107996198535747408393976586496711374505836976404616643787305450693074092446326516406741466826294664254530757347732101552580093730728715237938923459411369201523088656982790957046004985484969100306461120867014744531865967775639423579156240640821035537255426540124550975040093265946819770959337245027481203350023903245730335295509344573902736561174642256130065798493505702502543714478522583757054769481263615119398048256703863007928688828527979853640144654606415652245901790589885375620744376798025100200913965366388105186076636231681570565450538887745369760047120158355214676193485668062673290995527994047326557096995672282144814262177038889163512361545794099725441444620563514408639323001505795666480948804681100029207186771476598758844592352978810025781557363013825047488011809712701170402108493927243582939983206095572277390689271396336830871680723377682278107400208215757095966900920735061134420850960133745724661492959419688537888555750307466098542473512862966099085011341067062203346387596974970377905706526027317535498990129229262895935616691634404940851110527849359681122917455288412445301999971212885919147569941180144868453912351020637282097166647485800009473173890908537703132536002669628251177147248337420004739036505824207559156323486934016620079458388114820443653649892982686628334950369008298280670162901726510168304295295898142698600959436569803627378803187244487507882328558258870526307852993656094221104865972404389337645210722371514770887659842847165240735007642809784910598761932701063617175260342141246911534769576044840030768374189986243732914942385659908077409714372042635340589673961357271497146466109213166282500667043062975229460139629673977428137645035940277416793149933129658938766144041545265824531740507411373462515114040873474412201978878380014885596179175953877891884585758202950843719323690670524268033179560157212081021297316894332023422148464738499357942749132874588373484007689810373398227491182785528540857857773645209260160642319295808809194075023754210320686624420445555800764052388455980884611644377324251293859201820861253920926836406815003784647579193839535598256856356363484466620959039432415158631192227390450121774971701675690064305785913412522672713391661607467423550879771116097181476010568630379716147885018800761522060682096859532897745855889897469669633856444335498676333075489192735159894599533345852980959119141083862257236676794079325572044580994799643680504992454768365975560607723709622737087982416857241251958872422266499196132367729293272864698617075051393602313654728478956594889632109801115157775567717882231714686046054165713102653773254748624886653261885688156332291216647628770507293344905196863199490883125039420663792571574499264214710785991651409625529989692763550210325065304669070125940524823091820354519253661960134257263982154777928458562487215729214846903051401155902853629838312354722225143246041518061744340436936130657934854594786062940946911779152567680956450803234463568841325245946672747278814183278164051021247879816126087264204564094472336943543870587781753559721960790610583148775554306859191271026243185559457094276961314528582426836595906266689824329179799864832080420480786951176319331559510578941544961820510159790254120775932774997658417910251213427782444078133146687658029876801591570660689985913231041119208767000206863446644291037350139917020825015485029850387085891524787270497887560133346707379360413599575088793705086583972679501369114939601056066524253828994827765205707353252727130011785462481162046606859469426642766216750094550548454516864366343978685699719438837302789919852247707030953691291523608169795901826080421609019144427677522361641023125390874277828508710986438604846649792939029805366110326610810644710233057944505569143193994733326092401413101624361010231543941824438187470689571664323501931232388962327246907536463410466081592278742661387716427031393847396853919591735523071334925222512914174360898332857818575721690395465030504653416396953514914879505865907673036131214456786578125870791559803975251211239781085488922046204157176957080195248306306103424901770020532783363326028917597182675527333794614662204349957150478420750799763517173744228342548053142787364308621434484931542458175320012462037923670911934081537951261643703689903791007243381243669608432209231403296201987596979104232884388559070494385642602781994820007558935006946988600349067439373907335955962331291831111204399445712622727289788218395614863637284737539305157015661962182462602115778176306516190304438693548461068185506905224451402697579261470799925327354690521705113460749101909912196934376068568937877410531515604536209989654410491856899965220093150628317737232159167010466581396940770362632481471872013172164364269187315057438591532478250852180983227971087741854650890604899667798315401183542620769425736761969319639467197227267360345757356481812600973405141669370290373991979546074134892963399203597186158060903409497092285186147907016280389349741360629635578750294740997015638197718592330124882409310361828724947232626371205321729995771583145349616780300992335917457610827216696617641620210996351676575209949835618883658484112946058417929397162660620788990872005354174835479365232782708129467470771920381478925074678730085644601418748807182206321637254505243530322347870647674281390772129259937696513568378281670248174141573030304687337596177718774859644158192158939415836945926204088629539947627938193809405248676482486588937594719218482071533655856919907281515284300967948516065468244124235062963048794449966142561334564224970849869975940962705930267736957910555983540045249967456070892933480870394315673016414178603773261965310667571990416659072753147174603415575926058609116902983621525227166756646368247224118236252904754817585726403970446456077795308593384490616610713121747848525419607703300211086167219671282251423105774419446950722701897891474298895865755062892409629411541854071836565316905579097411211172624623617684139080537189243529963112149427354556475050778843288335078064879366373068351110684673245978535070527241151246122870688275505441408181323627238591710481145969325374928639443188412684183718867508563116930432157637916338166975260842135884147708123206390188639472301176808089833688138617062569971163321722063503504540678967575067652247828278397439902977562743653321191116817927848914880341951490225695698784847369440221410513995646036215869880196308547783805202326754825507903528457512053885545103095673287285386104796295290916013016952653672362218028565012892804606627978333575064114766670932645632953919732751216434875196512617101707580165911918584065579739023847251813744291896392635305165155992797040633179961137426317906730192464919355663335571518766047189964273039290147007195062756055571640379232596406958836016093938915232178726920999870670317244967403732695288583595573465342440335055865700862588337903494300619099517547022671644452081054558799399869642109368790364847477904565807057426628119679268849505094316391272032977092249565800698254219005027790552417233004960937543227613025044650139647780343908210472439665951857322681485416958562670165215951540359902371816664999287644419079786386863688740176590329726710295959219204541003143264988676436589107232701577581972942599621404729527370710432384282391949022123496920585740844782779697320672401967529349317960122155661199021111180973105289323383021180070355038394423384140185975394657511888474268017867652138832074837151771892351579408098422552873724103975786488502911596652148180135484039758661084417458560362687894705220670887847643505719913512079578325706612363469312949138546534464585246982632954036523534897759312640781035503665958604144686655655196168769900427287870445165768228504687471793295598030506305473627139662611694068112034877771890872494809482260540401989474783650695283859917224309709743829434974458078613599634434890550254946772667636454269323742730645381956987342428968179071604012614448230555606292699133335486430983164054874109466725726852304154501457537522184041293765791253483995167265219180073035380920243241852334321476958193013379102728861450663307301992427614230011009415576469796997950580960663019502770555743953080267415251887538983360326206053349716609631436906336799944747661990629503155999929330452476292730060594550461830934857479329595087962534810885120890131750432876582110750692493629329839245388758651557645193936198123890870552752409466174391486549953438012128650197715266167986099332865482603870485780587671553803278705837280411266989330857693758523311292023690416972848733739525661918750611671705910872775216156094514230829120517081280632765728369666785247059145809823436730071823181275201521347378660336034094232938014847409590767991380042820674559976666039461591709271287348203154896630354068659524520819639530592577211361600433758731234000816515085471688541424818233119836097973644595664608156479618935590524336752499579409626923593933861325769634442138049977934953004579102696133687590585846794590358823175712911356023645578793959218793744198149005496818251068480863644669373116646343961414407622304506288643447988370861367880175244241699656362525751160304185741675516352829043251278115050166113860319373824374162040221837853502177677360605277515141929293593113696341713554332977141287886550236800758801313501464671810642082089263946358235218336835827129178608887528894615433168145846495535895064835951907568349782723749336961509183068303303461727462881262933471381923720633107545330628262978448795073440230982092531287030159962955155010272031768809178391737498399781515430015412474344291576992358534268495372158970523966393660996515027538501009698536509958908682063953795988128848125484860830300724874721595611180580711073306822919240375462169306042004184006184157465529876031938920607672752123851307616532952389528309177090981172996986807346628455546939170319404519752924427302731037604377595263887307415356516088514579416927525287933830959243238481224556595752640986215029598042334305807311344862314105635883935468521066022899282292471894966617576520591030136551281511181160507446071527945842093463890596828467803005664564332335350504985232218509246402134308803330847030736891353576251286333184472090485901118383180973489179879308196276799822633235042206304173489707026339183118152816413243536690751720327654938393851740885883329559485032656961123024063933660399263420076767304648562982226166093493860043663848622248263500846376155832921509640775322400380706187293822335939527245962449444352735156030077759885747162521066899969106009968098348909709462452954426534123229372782111988059227404735816343082111577059566227978318245347185449101100649196883517488431195778424840716619741648963441203538735299652378673303260374804357092224967803502876625709766649503923957993220885191425745825887834537234521792434728681415169854240198827010265306455069464031481707853631631415749587885027533689668504071910140463623088198813212094989708239397461457391176588384682235795676065408978046547184224190617006160583844118522402727595132460083047105106305251996607594238851122827178345498758698761074557295352493111051032665541284783195350529095682369565567430750449183316823620588770356143950336994688414801709367920273582982220289897471877001792825008353301077403827904114142725696549521338534148137821417850589204178387388391898882521072796504344861433491116415619398385251561076885805377261656468117752519841793652231597880635449360011158622660315641564682938250848611356707913689389994293923679852143514457645120845041554310047501877150852640307541826970645642292481433499527274877709424997444471267063366590668035954800298268656795208650593779147682741351476885876495032379177810935441557561169991250048140417105803546942412674122869519170285843466148590261909179540266484224873571081312266659053762821501540523037651371379348275957266837033088669077552179346303450278018187267708988332856814006078391052428803831499449632781539614412836459137099876320855055626573009163211201174716184001905641763461412589152912776593278205533200416558359933486875068385609380033424941796528424575116664280259983837862742443949089599918513725890885618243373399371506611841658816728298082167497851352023814298181230073317113446744871091772457793536427839322622233202648123212008418920316768874277732530998141454535891039421833896390325409876516494411785864811203533189595192697755663044966461527053690173143951888685666783462476639283134408121207734484648878945164087910861671712057356315978753701285312501336713554078140339307591791740811846314492189106529104423269899735974341847754845281292662003747583602113694748547392252276060250879683567325014962755399187390247536617020870809274949794563546941597008955278685628143937527076609346713475971229625221021985797613247869090037287652569077767377628688712704343346306007065964161791353127444332198312394267650818756554556961321311899590606391806021491956072046620343396014672981223062000767993885895776041105808066369165371899843261923681934610470772594100752649647631549038990560383309867999303901399424512680239480903479592562018608824062719557757376088177846726714833500800760158096161072912397012227255073948806688196605836594046462600680417374424936606480966423821335578435862922929410538829120537725472290333186417900199546308253759509230681779499865485255811585833388789807068509712862987049224409762499771458607727723092209713064269234050713207639270278100337041620074154814599254064460550454473523947647066374703576353579774817420005094325497367785631220038586973339360250058061287517694410242078982691193331139423153746041039214120194053646209293249311985790348149431204870965569434731182726959742749374823457637877245790996003656633805741161216568262697004820360580516229271264037065554964963246398621687442509315380352087444565271573307586864251898565988770239447160835311374912335120714448676824969372988716082688991234419008329212537155163014817794504526854567361005269729069016820122457690482190654559179537392110315199978710849547172957475700271613959178813234759732179832058024786475659717668520276632384411468935295322136897480026547647739660634097798245478079868929645391192727857901431962523421476854433618018032041985584287105617979562259695413691772840547083011894569571822293200799876549199078355710821903124510109249501341757091333884006980426151243423137442649270109993917770833489493880257658293497103787057881126070294486116036197421392285073918609708427813388310436758383606924966587011186699255454798819542029180897822029662898848884767911033313821182644432659734666195900024114982747491849476089235842617109652591402611331990445243852722501866239637367810425338692193786052164999577517057266808390093709629689540678778535609228578007923761749497242547366039924066577045388048574096178222932614305243046804763650129709894456239165988646283395166988162443958448812655192441831265923300910190936596752408802094844981720932536554382798072020223043598039338043891411124824366447858701830399896101152724167271105052804745920449721675496232725325479005218529843326215545755271191287858055788436457029363488952917811703000676214037558266363529521860103564390962193050239898472224003226679936799118935706156022826696606236506551652507367670404161457962886901485555974177010667164757293865223060113757887400766247192900246561872829548501498906901122330007707658100965335724279075302573920462943292161236168554935602409500780822108135893569997914791760182562336299069118638601086459193344680848198636117595589543198523294933284021649148595738864262695014064504766038886071533871243511749655728007517694513393525767034325991301354488180587273755211855350607767175609786921893158488411561865405114540688056286426022804063853898653969734568051702661788208270816190967963924661247129747728532423480525095395746005098383382319829500285917823145686684996525144564314355207855886936947268093378206229425524012492831453738813393239930799296021207097413069743037619919909236330033049581065479923045743641321609481658645492319263982200068590473857674688142905616853664545996817717237311599652121398719160066321469374951367066465144354925050640269030069245189363769104425273448746557120179133201242273276697967030063591007734979593647407232044542647072680705231920721491502528930021122027816141987896565294759523501318767909924847038524420800537250884232014179626312335326463770228492743394431499730605458517513989305476670770049631933262211266119438414751673079597474551486193963199693417409861770214844650952664170305708996767768664720194167574455231989086769513101581824255427857010551420502368268127678086620923672830748596369482826276022452370129831390518608520986316968760760741900499632605218131456938507649965227051395931952847367859884668758502648478611209781867819846963065630711915116294446877008212814703367187654469183557180188250492082533514262608974572185125568423570898488507927856495461943163915410039028025377390465012560297808363615095125724770183475469671787687740414537107395956396519737187973166287124616970438892512686705963606436597789434398962878758109080767874068769205581950120750334271924565054519470216491086583147954207029479750131502113566403621308361462746323504452498683632693988908246726642755052065799925345237654373270321052830731634296198526119159148955600714531151259571768334789723175312006607781814170003236975525750252357873419378398124787878427269216783210799444728002823512879527329425092350297115467299840839196776324265214993477425820995792392890956905712516269421720379568999013508174381559671146803825385099805546298891273438421487170264793371857546651801649390666961902914436275316718087282753255009941385852272369291684907165382895195698853522879549766084921050474670672654306312520061217618626528106260390806373661453593296131268044415145108934699907870683133329065961520684915151692969239571625720074387346093163433685952066667079090370424977080815120010465608893471582532781062189737036177330078423311812731287669597020961330266292122050952445974302737332667914784072674543965701679438985101382033039831564825258858756285914215164161049781717048230518405739025085470944516069439991276431360881378971455569025301771820499572980939898388115296699421502214713232639119093481068589681875737254368389678696041676983756971038682971803071203671124807154749407380897647483108329177887987651537559953812923285062024131999648973650705879866729249660674195893949715248097433349557760505532415509685427928923909597989211892866926014480266162251563925111129957683222728903675903416905334399438529620664121350394730761427297230395697755970501215786191677682823522781619245615669706518220300260130013761980182260721235875750071012924019784674639311976386840999619324496622152004697938817479054643102731591352578791425796543894401454490505939893300400324589596497377944408806479575225352962827905507872492496250875062360761360108570133400451795221194134193398851567230956604613007458938712528596099691290689401118864995387470727732095079912496195129407024034008715997113730213633911067319379473749838501839588822687806019687453528709934881905036713442502803546368651018997523506790717718536246177244242305785301745968824124191730749144150663848599833319506740749112837894550848608560177689242500981577576491712918826282181332940284004065770373880905971117093748953923812529086117610758097006894829749770787617157571776634384864218580690134634482903139621285390976933789624256457530648002455620386008250655262600108566624355820015951164338636491542331784543864537100889154933760000974072967116882262270373361494137080751953347633951433944285268013466771119416919190244605300366314059713491968167829267946983885972066989268006279228500547339488845600950128095072927964984616480765095688383069670023226719236088916968392113747302371780850258883549003022614713217046387683155805034961064527246834869624072051973844110562641716253052405219757680957918927083696275591720651705136571087274567943063061737222486214539084568581550066870305501607726484063672561398867579411714921835151213620224970504837741457857804977526533742190941916105603411348571413675422200675118938219510771364914393736865238232803366990632554745095232471667930493426197105475385997899198508594157961943522116448426716306744278202212831198992182338201165524715062134574359992707985584651093412606822080322102816698754336011495698294642295314895132040297314172716919907283731288423883817751108034436058753069549183069602983367969862774897419360825948486857969835602415575676247314346210141578055606078247061998955052429416469808948648053325856290611771283295618089211495159215120059265189105885306878152643048393918881824994471053818499679641307855669133245962534567787533753844126088707453249755205941691856326932492547867380518053849065839111640625105451501317191559870533100739711330273926096565731068968508428402578627007492364992786434220126125940593798764650083979293539118628382881004493697892935019932506414631732855787191242318271568259914401283001925069858880384425604277601192400939914400114660621154533937449476200454276738837716392506985271394316397911459703645406012703127080084626198879868383336066571826369977686065862553131130191056097538596786756488687792189572430469625907951296632822861288487929655567570272564272581260016043155115621305356115062224307745254816712039936245603416547095565575614210584365467463441405330171684737698735707322912422471404180504855266137713241613554154929471652103637890171239007783916481816721945651400077859983426505164361373598922626458242738832171980661280786927302252313697389255512162202541902996318155843280596204381938397039525375733180728935797068870551813851448411879775656022174718776075272477131917126709503778270475291459003513348615609332230274527636518469434064594529704345419990214436914279720642047180119590636054621096074138820385640865693220530155452448502895056305167209477223357281895421314575989310950919199271406462105817732395040849998191877617750574979897163037017161995994222224276626421924173390797033734285115878250054401248106579726119634365490503210143036458284571041371478783806712978113005667254132716858606561453299675378155531119350070380175372232838657807355742107935423724042486482960714990977468603510299777069556441726964719961357309487264419393656646524484528901808806397675236690846117481398057803988897325842778645924025620760291860329879539803594439482340682428566612252660163847720853567751976908617622262492374982308627810787858792081648156110057045442416847227581133456486409096317709379062257189305084485366131080748622345735657413230608550937804054249112083466802072109838637051998304683340998874605305951191076791360577381368169161140071357556813988548386215600751581942356090933498422276351556034176093208789964155414353056446739220109524788213428480984849892269649324524661668830273771187333281964120749369707972487046442635783554501389018274293847573864310538167014625444143072545266217826800190567596715466572493163146721054476746218784270127219717982808253481564555747111925480966599726648432690811864691107544469562833144170418272345490613235535473081705817918486353425375429264822977106310302575534295826846994260415375099747807530746105068214856147817843724579566061616570196778540356511052702179374759806705604244492139015589045787387867434608059801563110051735281030199061156051357465725528949213246987470574940991875899462620662715761859480657540754653866239562665639123793454784455255413111896868196340267707611658431789644425700093960898857722278598260688409913674565986503050591781632994936788553872461747857044374236682150468653571621219031099090201415244056038003853984699818940718985345989733808730550703212549657692090398848226617015021844154101476264166572777105636502839099152810520189126615695758094473920186704572331953275873106440080195767309295627227850385518176197039316224656483125569102445894815524606662385171126591484699413794166072846067042293710438917860652390014063498878581934155103312306851032050749007562437063270268000534790247092367688119305813914105485892414622556545818161961730500454175914871554658815321574687030085945890089318116235088233683873274649883815736808117484914910399805509653450044383188885357241490817152288195777954884737083112768985935522303286076151769717916500659168130038607195401172825901439922835791495484680049449960977218155307135028958532971181065084681019225340377376253005214984635682448733051368549690365077275055584947896362253943937437609283423357793303681898197156490402868152977455381015999238530647310112284932902827120825252325163275990413507724904253890201268260907261929162496172511575326097959695227643580479742079990621456129073788088718770178661443915127395908007579239330275340317789527078922554888437401102544751295641298782534491321612920294460551663766432455129475273410302678090149093633251217124240609627921905064416977007816868268404846104716943977096698609152194164407227538300708894095720834035868232875974696378975805734709907273951609871477438110604325829038209295742085822942026144623554221344046062237336084798642923122456161488895654924855447995960369092340319624087719935063704020620669961438178967372646817595810736600779999399962847808054183854431275854506132831463688587932947603345627879074521636419084361266755554959513522382615158228396539811777968666196485502228528734130927403192697149578740678744528839832215833474966104814403590719781523887313903290938261810706851936962548454153553217593601375926378739249800060793294504901159159921881673807493544461608430902260861825462118318339765648332067974073128821454497702263329502374089969250818783337578634665368335555218216543519580351037857745195468141969125797194730537092698646247351359647115186759542327561580582447939795344515529224781293262430197650869927227557960009092308752825623856315384116064667891089438606659970395709311578927422447716450801514001072793359018948395173372315100015174613142917184206909962172431367754337431651191277903309928083029282742712580198609397293786506630981831413638635431021788084560575012439292965953182898038252742480534237566408384863065291886425507335884035491130046344557944261036246428338446714707460369893225721027027054301310452737758183894689299137974239474893907201809997051625136385670483220877253992708213326760296489089050995118047130386616527325111674263529139448851791279798434142721933440792994110281635789401766194985916346346841038070902255213440804591511548130770322953099271036008439319232378517025980649734503926463277656292512302759069143397781539896611886578484727618601743609320357172262002871471509905086528698068642904656009835115909655798546618188114130171260686506992227875492418243143629877947337208081024615510499629434143977484686092521888365552922694500400311419586754860470521927846610768444594302760622257871839153456686262967649351029991392272180058635547399203153470841555755898593997956181508077393956871876100234239896189891913867777402751772489254931738415412990350209326325426424448751417511369499090394010918750009832142577175744001324370823209143711442004695492322460675793348160569321056555391755591335525001862777651899469327635524397449841633846128375159008863615946644226017211391564253501874066626723970886471759508582439617093839740014359511779501239082580839055607698929880784808335258269260105600161203846982483410205385126950530494547132046792642369839008849957543671868490251982793746659455482870778154347349870432384545966700666131448856157040311357287521522956709629983002555708825198842237341879182675406221739828665753403628416767927409437574627694763116381073618008250561039959231017628256581901871275870943510606235056507893088200278957238158747643928807340625390866945638149799942942678554346285600840105939555315594033940785921091423891030569848700927094377433144991111106541162790266463422740332563047796117337961763795927134126803331874543019898819554067220197548915168312872113328381445875974674392791454321796457447179992966793553305156281449659821500143529533200711172928621122981049338798624126458386744862403507829705577705575069904840746174121050998587133346122169884257016776803058093821927483415816300001341838629366653132431493662639131513424570704548720200564192215658121170089944350614611578027404326605682356279335111581735651853967117477726294801463280602219092069144128291074201431368499199959125304364088021492346180700172637099898978531923106542146687045433274314307709519211344030157547219145144997996046182332538431706144372902390582553186466661620774095589128499966194915236539115987021631622082417156737786850198264029318457014174319771566032614696361171151138299303675856607254368061380901362439183297780026581012703817787818647915179645830247969745977525311890654380697912433026180750442730021969648627569950169357756560895160099302339537224115496321589328065303674254995324348819359044725597552024090782137762175371193625952005089336799055018503656173508646123958997016417701462460411394168168111433338788835018902127547283315437981479419287722360952874370263147903304388754983134366281694154031699608862645649183960428365429607436135153098926173913991177126906117795129308570844711877994087103836801862584322046263735246366939768570951294877844570944560848798096904343092245363835932137177899612107203035869170408562746197309628310622276912121936579307278054266220890664652840815059150568261217341568842963637613636065931003207212458138853534881315148188992066695120216856769018982408154091275522748306423293014633023852816202909067309320502586574784911337904189636154301037106040655773310318360488980271738918388981809808516875840433013524978153209259948885107612335257130690974483391550717146728064421229218719429727513229618753220194757013135674296873325603483372702589435985137811231118169384273288921822491383719136047865303183389649599894992154439770551833354375123283672229992577215652230447606159748854362177978809334689944712603093720252261864465122450283961150805985567548241236751512074921323836068592560555047735956482581628483527395983447439374742418702197136070927062206599700617651814758137502967121566736540442611890706805855661335299287598704213334115091806801974279332817001908804107034327244467724933171357636236642140449775332346780694282045222910676228780332122737747900940985978158737157602661219926451060173461865012303286875996203497871603673465208610319965055987159935301288891735122046921592163135843394205209897492949917724357903785122622058672114526039516042380099529934066207656536222261797948080201272862049220320777302689383224290701466487174057088827140224538838675055073468182998101752632788999917265380288447130125015672243605581747380686172677315397447222896823946771731797771161209959329051856155122547601132420471783367855878957404730567614994153566224427029609038408313342173995755801136255948477976115084922579475749822500640218206077308617078718150247903554023597516483567775189709764410793462301624219676122389089552341393607879948581920062511086722667228087368062299800053124973419306856346920585562959109350302570327991993523834797383837330818276944644132118379531350469665679018199515328680099461839155816819509648962596193060111550862876567072017343273225536017076855529983494418126495498624082148519090625244981725949186974589913129601550014879819077044707202273798494585266874942976173852773585160738982583906154699787434810220002585073601648948172873546604450692876493882282574105041586119484966149177274912930901024053375586494030707724350642279525209070320534022409803848765102421933613110523568560810987221985194409922460491701480752239171497911169351905583403825236583525792095207834015969459199975405877443680088919427066364940778891877834313509510727789413261628571845237692813334241873125825427187454263297258320043012072710390814798514564168457759256945030263227362959307831197362456404025908539344053860922837874737023507896826390796608397361634417211310823709091860266009323992774613905111737955533653812167671345248267493338431196343749620301153877876757119356461057574022301580902618484678067749071492935906443976195529342932578556087104152684277347419005843161040679188711031297367533266460224033021554170005236885517075929018205920894885420584302701748055171782853800648802523854436011915822027822378345133818246617416692515037826293958728261056624959453323903491359743825359447433014612118068164814716975207433988655309338851573149526107508810932954167385719444987124125539267901832943424851405960474025229555286841195142782639810483493128824866978637975173621210421947605687314649770516293769802131579885271289700843284993093750959242825337774786412948020063642413866363565501450455181544259159285437251744686630462745352119039180690594719713839053633828519993791352454563347252738325989754730934981156603495028839718013647894071180476104521783235517598754899651598707447910354287134992692199499490039321370985799478716939470979132671302775009375487073322609123579010382183084327413997691695446275433908519019625888520627754792665529121297350258500304911584923871189604490099415780146285452747885899716685075690275324506592462604018251972812396951042750203414881386490267592650015808479548351201231800676018114352497282437183261199899362880511367479006135648136295729950119018117194143564741200468653278478088186507702117504110253583861146047402744319182298759704015549987455828266383481085525592079600695735285741744276140931554355361795248750717904347355356333465292525952385674848516671897560443360208799419622283130605663070967805658240198915473965784750057922265672529834255434823597956410235045061352743619522273334017920861059794740156803801947478344147407939547748910461488372972121243792174287909609358875853372399069199560832420668517203630842234371358987268882503067004306086309257959248234370453827224630866091857216089717819267167763688809987073191503503067296647824434608942875425719311457145510500269326946440776388805333397194490883276610515470083867842672941769641992641729377052493096693495965233023768732978947387378635205831216691017294713421028969049091289145552079753990301645542210389983025546768430122582011552932133530242987598879989282477950344536505524556154203916749839654386433747108554554352502223029828737352490486639804902420366177075955755239722998481351293578724632013351461766347627228508102773144074798697048136746984392948617046484461335620486329193029153492598210552198263229319997218460546906524314957672995215792346820247846636016650427981834208119319119022396360083856369039013647592109354062178214375553533816058256238209966631783857773431036660365556518664423928668521206226444599366859868570165366314539348390965983445941809612585447083544154066566482804080773752307861935914107465487768118560609114737425219314019131111046673661411746418708737223801577227635780679780296631442021865998006212139897627165548174525995040598649358697745830663418030823385593930439413075085930360810534231163402726875327181315327820297445871104626840857317701788274843051446366648186343691471948813551768429818637026378122721045020337713553766839064312848598009618924070093103395086408124529076160447740323441422508420844868638591987062510139685897242192290768541955211197530953528322661259151840411340639067532142981884405942293578891967295734176799428861816844486287671537930932828126698179717927048043041827174486664521864632748026874837269536285547649832124740184103629565492238806046024457993795143485827748076287166627548885878583847539048925092399168939470610002989761115630650424475252462661512804988426320862454411966905204402994700432685632311627096946889580924650825373904526176812689343831703165326313968288815701434933735033643006262693623844995022273628501818561299164738823246444187611418463185614331037676300901178401927083943895811866729456269222358613675116847060453117290601931947004640532239367508540256501876925531302533381830398032793574926356355314107919780833688482716649401439763526908736442038264893770205249367173871946341377087525973210410222575561012678561197657220100017160855893757503100161488526923910784472555651532292920085812309671465646652217194590942559255741735811592441114284380084926485028016228909003905365781529855300047758263029492169037988734960236006979275207022602925143881076960879030420968573332070346761405706926591683548142272195684897757580958894796691453164163828852237766603934289918094488810489678545211730941791425670257796123447153610505447072187076067103900631590579420246924326660256874276298736710612722704005995930174714318754017611435627559889245654075765518963413554020386408854902903852707784054869988269811778206328327352122262469411038023381430566979749757886425775679715314727137599595743886489225943216508447978919238470339322122311169470080057797382517847835566606881321992522769587640803457501395314023526188217779730596727936079692692087625919345039079168584242904796337568394782577787403331967743602073161095606280814352128141393830382495813325254324434275871176113850663575200388913945997412116073576217880650362521263276120581772219788904999853777147756815561161761771297295439026694551517432202921535488421815752856822970432254981017559554968934457348461072218664687806489921054539747973991813148903402579499855746310992440476710972315014473386743244261019741731650334652275970910356482497366543125517600123131998321695657040634672020193748315561672382613678094571939683737647463651316755248158031093548825580394223956598457641394413623725847815508512435009815375286237432151322561533256191495418552731444133902394282644991195715815089911184981008956068207123888364861104356846303711203944162068712322966239407901358759556958281864012331288415345333449647033334817617723481696933623192858556561485004848052261385951321397730064452293217255461020067016391136441287458778142439637247543351055853555313225100961754489986942987243735468528643368229802516089086760427624431612853198234340506272716147148809252049208146048324928359086967179764527176400923990904129756856648951302617882386527863963988138424663205310757758794496910928311086128861126621522116580833032321914667121210698106686594929866028227707512627919852625959655542308351331246178329672632851226893851770717448248564373224567809787680369946623369206445023098073225501259340094500749558738909269603426618726901044308387418296891650274124637767397896564300715606016677811021225056103416759350387948410790486148967870087057182060290874743994740306564888174242409561941241901858973204430565714413885571241624235128172171601699136843735862010717803074055359923442525757368027854694070349055403073723849375810631461871639714881574246850418604659585613300142184817092293402636860821416447156943192593469208455849117522784117674894069041333043803124416489402867654011881446717203250844531025915551852780696359173829326436367770795754416428000706743360752287205837067991217596512396893984178837421863744519835512814306914804807121293128025618192028330584811383766339429348288541243556945078979755696462247417930360791975542515211496052942336508775759578515235554570359777183017176291144389728853520097199214247717289650154120541646430928610296301446937537379215145039918518562249190910936885858223706070802626177189704695903355533755784505465418218166443446279792394057578720731990891675520020533843279482104079055494854090899471210524435496880581655391070090000852996268038455690365126530680373315357275558423264805438598211793252393486244381444033287827971063719657680806426015628556620561843903780834986771116664024832576630295384769175545482152170167191177253905602652855688706141007581386513561273350935513363537670208477534618360594197250977590453254648784436203419545536570272548887969848137233429453445167994861099014088553150563007992349208728239755765707661630135377385846100532834988332274075524980469848798817603740743311698288432145062886011989120544310105583885548925952492715005362274648743921872315375730004015682880988092867648231995867755313704845513259666716907687804993333065265676946843848633919015327366669749226519612268384070797397731905359083485451558484856481061168227250084766476961300011553098266687719147574847978508667407760148872124692528272784981190485659597859197817449770647627332834558834725631792261715502157297913092449973942660681165806076073958550843518432280136335042138794046243577785263955006864029221920984360536388629163655702669378913037288673438190807933944802998099768941814364404417094503147321975814830564431876486207322913995222111632283095747409187305056898138776210380560480892449331041838529960322030128010756334381034957747955465875851197883149340047516779774862773298819054833556465304224809680505444176419643149774443108464806710150471113688005344701677297170457829655685453151985637885594764263054920228558967927959270590226928820696836951318053872328542786874207925876097331517984854552966218047745774257269292040403446909574958466452513900378265694433412647868758532218774907048347453929995516340413804300752254240844040956384568289011930485241154401695371778744833976645272071050397131649510249325542639809557821939020683624315153855756455777022784774672544816611491369366623989835341828931536007188115255811514212618499410312388676596351776880532156372256626101628275053290411864487985068400944198088949909645837700366973532754086066585636556691855513481914644091925182606799601414512323805054092280001694366171916580207815618872193029190746698664289439596254121366029567196518960846959011351470956135902728437801296332453392931993106704508185298640578856266177664760880812015072510039330002929871994276609814268422902239634613086081518837723266413000761584067290482755806058773469820453632099215983787375900473572625611562964532108597775107367123147917449886313114640467933504097782937171264883288909829782670656346513144839345400754736121816795589635960725911235643967948457031062926183527083625665212625315422628421333003001232298861419536561717466324453459525992922518459482685626547454521813636128464745233094956280897823820391638426677323655858738187993925848022957498472166015659168792057572450348660295724801871101758723740023087556465766549831644611219614967017661282599213295123872877143142440670252088670531080967036758548680350738086802329223503271309965005343797364109761030157671547157825410264300310048014487336164818839129309216555922402437180358126716518851929481163886805706103304645565270636086653560268220571963612280269884332849049791897302350473458357740017769356357668805340081839357326743722932614949690448149316975560618368457946192686290792630078547712607289207405445322579243005110525883880332772224213056535073563408068657377854189764170970480347079626019132266343006038058044088294676814285825514587723496203823279949649867531985893270764495226921677730940392288669471277864600785747756997363444359713131468043500391616161745242556908259881776349876917564126110128826688087902819865382986127766914006211704500873158373116372283120460280395301733390484361963764036297510242112111791987345909022759430559348825973823091798346118509089040318440267640071115555077355197792126012847201095009642155442458971538650277292253169510809473029479136838622405907244333207023718973736539814563485865954412675446250198897231798441947310112760664671889514890018917355349260294094386936474928475949554377526409239123243294046676090874481493304312537522305848077738182151312290354872038611689684722341485151569889565910499773098647981049876591518665102212425572973862887609587506034846539532006360340257874219657112128140180552260199122689730737879452458370483469945881189511900219157471296970046188070925749872537225849070195373551759401973988893386934989411405958591518498867371643516763085692496184187044374282100777018957872058688747925810594439173378132879989849296382084438784177088288013807376131091005298618362600456381020248686224250352218971148429958469078201348559596710036961488014122515958192968332376035895436699768224515539993224048582988164273622438362567743675108160576810323851372600323054475792194169526590080763200677763655484279238965915082475220506916038957953461393484269972029226912893514961435765718821767722877067321259810913531273969351959253611569409402646495523299755290845672191948109706761661616184320233707116164415401048480596537654758593739370419948286780379891203908320382265892149311624540766147105365982588490725460641678929646367369716723351483694426261463288708007985656203204189500277316876065592675383652242225910358961070028320890527744718202416363608612558190512726801355077827726400793740698501618351991184082427604444428235070796473649264219002224316411185158638061803751591656121427544775796523255560193962540877882259087642061238551881465701897730444278527312937135090450273432502353845434132066287005055541044963367411460389109590537691936980506976529367200997974659563199495050226080886148488602833699514878096990946731657480336662550438824050811897005038220336693383456505508937413633087018191568267984156878530564280051021385747167319632307072233997665085043610433722956256580135879586012790372297421359203275316307293400277560863603539722683175836135433376961760031490219283761590945385028620084252892690816107088572398033496814385238670048914188071726679840410539455309633438171606294812152413663425209705617529126864783752477851857680033893284132650056418024400449386589590362858881187254924097652313825631196085727234134240381392463511263627690826961241598499307424569647513809641592689409324925830265035394804676793234978938053100511517928807828953626979127768693966753583862935601258256916123222313825509800279074652112525258438945517827215557048307382551275442280199308876379582661867890416032361358623160062539346732677585245259844712227509632337382479100061751896177064327254660538764332011056617021088886827648246486832147730080051339928600764352836382255672905350990668972237531923526935173737613252635084164453010826999123447210935886123392433972767521187378202134307784498750540594582166691089995489432540821988018786926760544522436327596753279561097558828304121256353496007749064301844921416003019387271445791015959832693397270731956466095404616731836925028571402533274545950600368740442961668871581049268985243299690632361423992840818611130406121996337914717780944694830834635323380236391813149188352901316989659962409951010443560937120948996945156727104041752824331811508448800701496876048152080970885982071464139394937518543021903902029772157674100117703475881311000713761016456812408841070913949244468243111819884366462220927214355618840156846639178080914247820433133895223512111161979270236839060211296891744221840883704053358661686498866474259729829004729089992757143550787442894582589616636980888577917965686332650631636997986193739310257758867778574833536295427899890914616641786054488447002252350967945597200146413688043795637648285758545683887603062036713634868962090300417622256681953364107990242666382356276627172811333425293336469210810211783615400394124532578295762323212521823871804258905860714601528275208214678790688094163276415551773126878868678480092582426126280151108725134124195691865902718950722012090342800717418815658622006663770980255659719928333228021279062705533531359140812731964454383592235181288535795183984672876778791416775628747879036412983644131434898057399489523369675751379132430826310543357137251032058616097524010648284932447368562153964162244828120072577554591338013953864148585630698346055445502030033384971856650984348323044221305581621079249313275520577553620865944013937466532264638586009386222515673717526725078590384513853280766556477015345582749607813412801509080518500314199501172762473580398478755242438537110172662234080855994679798247303417221293190120738922747217223973063286775411722892360538689079943785437644776290746831126101391086011299404512031756703191476397619558689399705934260613026128609752123719324598660541041404889999136333455899147788795383724601505965007709931348331909576152833219082903353185607027084706789187564446433028192948324159506508236665656736731898980389696204553485685858449310962277051020896594549430581023930281926501234011655431486515712867673512844807291580249251722125024223683712766510257070942717356621176777838926953340397848440450306115641798469811461371770605360860616815654573331828891620201753879811407040667877181835112176354387891135253954100025339780115999759534723671821421322042533815770164959724846089184554041444750628101968885193547498454757254886152790408708642053288867958081342581327379777457155444486519944025658531966655287234511407367031766278333854262313254329033901347809573132619579706694758147477956550015022391080421375938795890991440047873026104945863947235695175662032486654205401124269565331229734574353470247916064118521826234621669189044585132200553535068019225627911259704934034005898935995222390541948366907321488267156995962001284598174334949323808951390390994209415483806785926191134803469932190350158320241109493980589407393705233075251871276355889798150812986068719806095280385066397204118375445759828856277138000060924033642249082640025227698033012857046284942441333301924074709890471161699835327630160612466945943952357974355596651341611240070879831104433503220840667851905628479834766410606354385260772129839909040196561604497391603573055032590295602658258141368482536093866112006807975185806516990481119517443044017820394321707452914521843449613305643273737876584614094963332500228344783640990159003014485926142058158065423262001397165195500134018043229048105998691318085581329910730381100652499877429037594137191934686162162327571667133200661566922786630188600064635137827375342361720381212793240618602266636959870611306374669306950946073361739325565415840073904753325678068697279845092108063838710017439950880596505574401815833101928157424169973047226734095678072922757560833760591149185077230993136195981381419487557444324612005581309837488532373834865999548511029604647615313893419644867599090279364041312026777365193747687888722848810393743459909054494546636726841970524768828399828590879139014488284369126923207097603053897236691588684442298379943087811834445167301436082118577181805583497986356606586728643710947317327730776661827110654907691265504984198628058053578773080518234879067837949496784574497647977827763650782762624112853268502030067625897259940300291758611257759455505361248962854923294213328839090929372047291427134757344496362491141377172466950357745135947220260648153299690641960654497030389129933370942758123582750307339240706111171450553027965816637862805798935484444077995670834286059778658810518474440341636381290998665124057035816172290614662068402990725482628953278213924837372446614410905103826482224411183611366176999421343875887512644582341268494887895848625336864305033751044040443781161683602210143730976964302983464075790590147967882389835669691189103241767301379937558775569426659177572915233598309163311460831434239359598481128301940347787939120278008393118597676184705347326564292354030944453272564785870920968318754770619000641965593880841640347578940496063271343522628411799939263279705913602475727916435226387584111307935154191921672757219554005834253725969510456600606907766809394633906331218812444213682985418761573769130411345677517585648791561835448560092583118441925253283987797535598351036822176280828001974013409760786323925211366501565549194973518713709485148686940439288771669910058785439595061560449495848378196532628154913764007560835364388192889552794504791475778816940718517757552465314163733296886449466457322776448810094060631481139029021292499920881673165463356653937469478899653379036473661034186820264114133735135882139630424639301753752277138612722042333347120695075370481273345977308278178355249649479894614295250342301945557036194636366118126620788600561000689475844918487198395116767335150429613501922829917766775160449752816775917915625849587779590454167584285366094077649812063499106205328413215157977859474735075588388522450387369936652534010219276588076082639515578653174185793205140554024513109479659794793224770797370935737452031282814353596145447308299716141687090381520517215808290909651330258364394013359347263833760343197252405479050994270253625962869459791499947614860233349727162421595055328918324073642744810971023725318884363307441361418954552508823867032513056145750965107689333240855402633770911505433410516728580883498963690981862604213064758380403915062746669100473022929773523527394049129151327986581326051972824894223682663928283127542451390912710343688534772812355917746237830315566298927321093736545039194708365771464403118673776658910199846116145970255456847866700664498995075456228871241296256415337990695995629933751856520851693324997772920612233282326987513435715274744299093237669318442814681642952434354597776460404594728700424200950496113183588927948254135549637410687596142092727813283500144639701312534455374149421727131670819739874861965008471305977755162929057342265254147095442425269005467362651746209477656512608647506265299537089513520957403186675575131322525620505550131115064282834746672699174081872846274885660902352326994957905090575501399067245564666505017603518880584744406991792831007932092133470032749775526959520211589131678897389348923847366408344689029471905490963594211076899238704304435797874734951828013716602594771678250008732877099909642909068737229395981810193332443034277119363392568185818386248447255864841402063839889367738335482415953423003837870895187066201827819303073637457073673281114351977817656547544072109333740598489301798687233781770080273899214534360027242028031872455560021154457329436967166754596713817047267194323228335890657705808659924553434669277414026542706807325309703507681143410395435825875064546966499327241381930990885201948491515886220004977502919089251022757959964521284252674738162736241453960538502110679632424290539010945657391768465449347042167308738318078518428471561340094400654662322527222643920811774263260462793846861033097917796619063674246760136543277261901312210324664723661476179755577715967343368348447990372162859632029365453234240735884479973050009734136101873997272054768835553209221467190514034469192890527739494216070190873643474626120403586696450326873604102370188508343097151249554900658701623500457749323292427585634494991133410997494056229992182270207789637138348618951871690882959943990400639040419481569169598721986136881108643992976110356272438880886557199133139827543195112744194078721694250514224886400471977703240878595648787716273601644065867127920458073885256812755350575874994037968975190997691511173817229440846409066032870125411625204003504867230861531969907609759815614376323381293403393895159403752562939950589119772959943339005832827427326439619471336467645023089592144333286961751644687775495109001320433431069509685190296448653979032576568522210388462290208535976038732367671193334100613384897786027821927124487439735278746681528759620615376750406384270327120257019164594637569997751065000999806952185933043612185407707232861737812481742125561467132708834531434294863039963175636638703669171180401029096236959271793941370789863299678552204210578466789082195163028639164847861695704250297849398841336748273597768842499417482918654859302791124940899031158433985713665560070678265040246897235886926655743871346352987028057451878394065770725535198953967898809750034858035751887428194735750664216661237547203192499575983470442824717613179983466083899775868759944588674474116114839584560873370587840872727032042455182235259234630143137808911586223042466782563765089578518719260443552994272974527106805823448145594666452694343169675584813275272329498532927284445626592541533551098354033992277440492243819338777723481618793281230205965401199844119046010028934398485904798244846109407859018048972318351898213670798414130367715329166096902483835340555399293298270387524636163806611069137261624440778654038688616245187162448705515512353208558623094022678197946652921122980282455598750770986635938929079806861980133592631876596002433101666528967306605790411827449222453622075212889977967694998187271690229569329009976055638608679194931811936960336310604176260421305285936084529592562068890260186012469719888937179538277216236094554677051734582447614744280459200544181245930184691008720115979001250014665775359430308903547959143861539264390975983465725199184842498397932821475356750580452891190299818198544570066446990460770876053807663466156111020266751715747776100728545061432756879003677785735069594478990294922746117378980350291555328496845228310796608240457890236355359204903868947390568339653746257730087727757308289667985127558761654979303520337424987728898439371652094358726455278929637329596482691325393001604289098919162444486061346889394734224409034282412690026118734052082454121815468493154086796217408984991139980384812225230371160330966310205210943994984104840104183867107211981699473337952468155954443057144295001760650826402986913685805375349353305527294505500005548720661826334686947056058071347842589378310686462961126692010790651562212597027394863400193851683106319752807381004107119242986092027829002222881705782671045401629692075632664645910370292567888578747567300529665687204247100449125373690567698131942795410163400350319239526528432044280266052703286440290475999488809799604668102951420146061496465654883379922741872729171591630993936294281661712679123327729483260262175453909877552212472875177775677348238062861325150069900812697325407900600078015193094507902639043293114372489862182182123138128652035858071883781271572185480550336501481543320774602679770603887943054333458282844739440679026170868537721971413645940709091449191227886523243907843298804115765524886202066385541798838387974317731559674768933221509239688736686444252486883654326273118774788766335097309184216416497166062812298676104970416632864654188554942087482271418209288291610094775978597861582543696127913963003201151500663394546196610467470518726906362650661016356173027109515994566650400056843477260521980823565614470739206841837720635317938427686303033418992080462231462074689122467427452433336977107816707567166301791568409478789459311466940024653539529247277020222631792310295505193754224509606455851502228473035374840265417594521322686779983411590321168275938889804800170227295685965014792764657663377500962698136004966993019530380456428144060695621298489615514865418390192808616740868913310891139688315616617771198769117564206207019463619059286974229096663091298265359908039946305136209779704314962145812464267674930241216104898736309737791108706718877869063107238424256297861115892753319095148636721081083717055092536367532914880635074235070133459621914386525768941334916551294365370641737849920664349129115487915677545243240489853646245015718575617276851970200791219243606279463688182999628954921440144683129453507304800670409969777138877364539676835595780289054091206596484114816820089378904820022519105970512416923404751391569816407601660160069425554319728566308917865358946216098243142149840088138944462863674960318754623062983770068169005131993719982344954891813475552155280111896347048961389303986366694522109474097991550829341987512225104249490143474903506262954143934195283714511305557555843865625432529797404776434310372912365763424718015261677372373749680355033212056826938295919071918865268209825695928295749839661478443898719565574240997369004710078641853000739083788704277108550180130460598961963360837373008327100780647577264644905655635738326686228095506850553758837393202936043306748761241885475011715061381400237101745043021288909481210588346264411260756450423741942212698833582289730395530703034718682395237246601535906617142687984990494174688086095727449519091368804350128279946039216459599500344899052645366887468544014517096448859544030296627305195875290540102185518738089779111119911572133359756192824329194107363541480059398333880224771509833924492534470496418251100190271428005238022790508735379030817668043137910901034189517126724557332512855848204664340875643277914937615692375255704632508139595003570133735812066942467992558614210161003132949224871077650308438898716594457770204664324116650471712082230412145652654379394885149479411092496517270274304014746029784483487210238160541139882156596418948937801260281779350000688864723302182501738098310736301014389325743561310098939972019983105762935417031614644036093636999295468944906388114916253413012288551389463484716507341492089377609656223990610749456948814103347811215520795311304241824557659848132286173267168346950337977202682924957884104077716016124862584158144067684712047396925886626410124539363965123614634081262019614685235869030106686662824406588126791861459254647334811397302211146616352371429220922443056174162326469727957065686879779887780954768289196308952405451729949319888895646468892208519084907316131750219788468138810897978604401254872671703247696581360670838319381970935157007416242415370668431492419635590852008577951538484751397414302504272289714835807220004395622409412143208901759857344370414333403561901494422775997654271217048811988407033246371354680125836301204946074356175235846459415871217237371560859985883664491129000035989095894542795182815863147887501568720596708856404162070521522056126942374867314587582795049225561322965765695444431545529212095062352800417035741755922987347396258613665945465852085230403063635209786949101896621130400318771443434764733807476624154708837921116024310214237126244125286042789217400139928211852089819061802967326894704025214018493926452769391577955862502853678962578636242833379283032774351766645613267846259749706374532875239699414818949924136769269760765154677710276046336154348094827552274431132722175974608815800873339307109623421470405468179131972283176911522416444890787003012039843445599122986045079274154932701045606555784987991224134522574561094652256610168566172024103434396868110328839838536729680942821707512175836424620149741455067995568003546264626801901018252108275912590867521587206784084383638718875195071767770648743126320332881538575969987657994799502859333720089121952491627007325318175965253785927565177262930667375021133566425711246000586144063869550879028241686073450691065539164692265789623066024368213357953799203132824343047147560934660271689141610475244568749025629403483141463285936789394449879642819875997327321510901886475129915938060695063755239068642486199529108822002854752798453898648315592519742639782459078168227558838713089058937152493981480277329976883939334718395710454575391343169023668144850432575801662378398770449607259641817270370610221792576910107049677255787454883709159923871715484121292309122325635505063160374854466900265552169201622827302299300451868982466274889405836244411497997214225692428711364975078014564692640250039058557155291650724148886341106260331893014781711404133057500271154801017601620803090363786307514669924172612224626844827222216573301545287965782291026979502445860796613952099450864861313729844790439107963315902477063222150771378599676137031633816435472813941650658053171874473284485191236657067576232898119737629919726703845230451355354916815531299704622309507199353714286480305414293190296220818003249577850731012191280184041061451547451976628018129676730868527224606194283942855759388470190446962389484562069566444273772193206237442234919805317047236566545425211918928081079881251942876093894005657211419468875231315864055609736338801197131768964214833097814210942942095989684144284490097925963800564200488112406292968181076517094147707589030350935766023975624583300148197895648920886820302056489333221198733394014687051002813000602002106769393256747610578865536723397649717664743160070068154137837854130963940654368586666417172374446602765505825810780422955239718649455816025440109460635844966710968218653652643783642106239603533310318798312556930165030799747646335547478167105267003360267739211854370481291961260261665395515092107460408179562073226490943959651369477012611126048549998704859033022978784056093203171142203216662466588516407591491124801742016149440013512275624997966134132928807322109910819376187970432133555825234556708511351820951438887984482905685196549358446033269236336418169201686636361326282179751792375306927843519944587561203028244107053639301476975952813688381665529375694058432097167018517820718386644891279519923668794617556849192193709452683315747657007791530703853358004764532132996120596146913769251531209984333606103247968314180292444314162098069203685669583851690638596920873501516879209900592219226585498587119736588225722991934617525321696466191683652163424764415647831436424119643193624135994242845831606997626582133944108132285635016467016706116991946001829696012256262069962929905254022167750835118672558026858790273879690999053079442495270203244571808882152540694493433911551623775073251528920491086005118819528742325876510754990932067108890224482951969317513222475028931803246554140546444940485403970275283282921329394377394203332860189045692560911599395908656837126563824787458625707609022463513711877874623294933694020324693035168038295101414673234349108259243106658740795563298683830476644186676326834310070691754398110245371396745053027785403721682721204355216341359235038770521862803307482932211078367358310013058833763856742584244684933076750691755851692595985873017324492180247718379756534452620451523632476313521370734910332675620827373942152329117621230047678526857085996815314514267723528698166113894481220756098579200690251674502599856177359673863268840430338824083973737019593271343243286072892396454756703213418400402257601026409268443461860037466289151824800166715119681905679358859054560780508644768130365240681700773478356767723281437661516530281514184416038534128654689049053333613564258915011165634607441943379189259741359240801724310609745693942073865513119356997492252569873368832537285537777641801134901924230492500855463887920893053741416767015287575614207155608478985886006376031273955684463209013322906390649600899791474331630767630769260757569737874864298362374840996595131470112512351168304620376605667377672199789744962132433307435662816628730316207388541574539996041704487941909059852244478173213766403566129301828459846531415156280868789254645147748313475840829458923008122948998531125240211767322681232488619654839468600436441006440556583444562915711151125388237078270323906236861707545179911652020284270839798305455176671213075008374216432281035286517463759346605992416183799706728481375106352965493763761288008639630287790778216838558091964165010286893155584747963791648580737322055727983344801905346143720847697431774970273301639273651568747505331938601159623614218425727428217924519666261818161184713999046583556090588193276566680501426567116874864148031262170142579304715387310656177265701077202212530491187981567066786334151004894777780331697606074055450655995348387222059222137743173174413197804443891624477583865914878647827598718320249152475802134238372430778592994083209924651076246146121607038927260105158269303766893839142495444801639943049079419942468410722727066093713794504294199192585106748525586063405642413308453148273108980509790533798892899480444506496440751301711589552960152377485541707205041681348206454245951172704928158173318699260137394492530709464448655936214661414538840196849999658202102381549489756664661709401678647357558904926699081776353230726454826650858886795576288496138823030215738615279496846206794775985333298447955431178903922493452936030018689395509635025349089287941399572351332615375669565854255445531596496057817400547001238914266479727834184840264709561385242199031781089153196395829274007259576758779676474993781160339735544842933384764523073212173344325627739666805385672834431262864783697822984658405109259449237454333196556067187737625710553981025446455084266833579657913213933396332030095354625849205812789824909935446292879267549901379892298243088096296358677127240961862467288653768499623607790258986026588032370826669445535746534673327239987349583250769847363807465404147436265986261790101638622861944858194835877098521945400861753004746837339013726679288535153906359150979989617796190338280646013783659947930461917396002277764811683234001054491524966788892648981512219849471481122698774620265349801595467598514039802811618922465291815120369451501774794206272054855204499612428151869739874439941774167907375900494351226246925511216457193977785724547412426551836333430358707523923821446374446370241937028315647813743471715521354322917886961675935831765214762721598686096172049182492700058170172416814714118663923045383383485369297618064557636017646854693783068731053843204169277637805468691169536831566908402298161484919124834729026302626917608752808734141432484427802043464161645797390018790557921870752592689010362332096348179623599492828697834560830276591287903762411134793872930031904570745862270268311460271772540063004409118941438172921373596352974056675472830640856547249762635130327867550383587463593732134122954371720452190761461173021891999391469523003057338801491778453912562793479003596988014208420072161872865318249788732187174014791553614519255039377614255562824892648791301084487443866154846460173159891563383864773669916517364586355659265234603411237483669719095439589594758798492888438298233174303068337175927105509752941638893756074501178636711797030009465285153623274547352981314086383291502351657162391369013288870570873022176956691012020098540447094563614192967359612989991434581565298797526653712738151119492629954810604537918384204800965226401622632042344626666697418835893614918724627951611287587481816291333216960288083335931554642810457995075124012333624995459683268766854440077048312509893014777829673988575352957123502624082228168169615613299024364744331053975745541167899657079855775188134278758209074439614713265147404876287062072650399590559418450251580572615164615052530839944057709471620964104097343089757086728691592592798013584463203992361386906108267136523124185649180229399410734162934844369404690990179342651265744426777819818801906655182373808969487442182581942778355025143771059855211043196118519349712464306909621406378444303933696139195768767613138918625150495594613499290419161260127091744582151454630069663754404745280981526312645266868524925101836916673293755534129026167040443830791184083172087739763992503773819428937181978369320802166714530987421231686263163855808971231312237930548574043125040405515449691167566590674855511858509094389943830815057333566739933588178584831828660483539358022232526656696820588242051296440741761582399436387513034627190773270428755974998528548715966331502756218143859314160867773981326341205309245942235051061878071605215755848524277910960030318224315176978297481097818074064972314292601576384589168289473325421157100191686687808904757624166643058203141571124198112556643914426373589261934799451342977821379241800534966112737303917177628144795259779948311605837140927410039725529222836292639105923575513722732627762336284881773439065311106276577753079337323346138292254391281538042569041701467086356780899549892064138865817507417296894463989239040404794708098595982594621824833610335492746790028343066940433608410061358386092623693164401997421461935678734260278676136765609428023251059998803631374118611101680605532792004781095555494894720237127825979474591451749374381454197885832105693972547307677007771593099371456101441801456499878223255877459256237914926544869879844196910705977430937181314283034007947279501573723286688629330736638438793098246912185231739660913691454570465862678138780956398067900061370269256321848529138691968963579373345793701003317092926843604200498150107370548955093039998816326399885076487664928288312515764368802861564000628093595570526361246331261840849200341352511216988479881268185802580372555078941983363539597248818431560165983587943186152689972551120048959974237003753602459485489657450891123654771656625582851623600515551247865273350523909254835787262106362464872609486120536974087993654526437669689918899081535768521857384943649855554087484940541128131590020084817494920342806216081011111649853101276867026515298844635488675317194629284481820869368086642163075820168135389197072772418961734017358228713512573619058670714018379910195895370583253773578249790951183993354802878958424643719691842621630062071578166351194404904303764032804389318716896851305594252299655595040951371214590017700462346404831586386870842893054106092646797198189390154576679820756325266770787831070762900946663608755081953645111347704929121359308608512039209198300347278251460974696188053746938714524904068117492352804839174851043389488849400507152891675447809109717943716393325114962352352950797926607531344034014409459191399741970057821572119769636488539308492913000339229137084565819251971929980163906661149707304540108638398226710100686801620116472145193321117062689044778493372885572075214760795986883887217822469253492746100501906737475481633780209165952367566083244603012846646742639885440363153765653294793321948168773366839863800730643507110312961435739899140538289867573150765553464768184689333659336075684858891287246924958587069327531947782495493304082121243800740407899396690384668958546262218421019429223307703847628323687747427526039381929024929431257436510083623876175358051930904511765175772187144915455927364996523866843080800066143918471289020797550973816431234839748785151310285614241771937262607203344026081247229841770371946912860652156941529988946156183070391434499292960377960313240043524827872675076793750364896635210488683279417847449808797035964920997027832752671979117988650617013814604515423789810024472881568565432932711126062819326899954547656222662599191029336182641897202810515835230397816195458085569566581158366997085482097427378683320556116353969381606800307145023574718847820280132777656453332384521208263878483739515999511308627041318832097056921275593329235872082533645652787572439246108383515251439883331439702984884448990861129249581345552711026646686153727784748102609991320965945802283462829855003149430732895673433992779364409011236652044561333108490124761268196529313135887474115937782779644987137350385889922146908257122035896467595140217400691474246358659043310169536325407224828475199791400457791838045308245259381976851302536696674438196017800479948826372901605940394087461028988077430377812598090486286624007491326756345899935141810908687009808304852549052801623940325091036271730366525234958198805967748589607348110255082822339133946065826361461866152739500529687261973903309958530327427097791562677453952845465787501906458763970086523065958879001327533775589669636514032707916620739488374486949908049951332999678283456973319944041513018179991025062047623652787316029971243591319637844983049569698862990519134429211582567244130909955458180145771276208227267410567056967833771630635663928393000481660588025278190670567805177419209022986243994471702428650053192636279861599564781837063690140727481496886380079168101269289666873317705041599905623653402550682584850118491379243780973682917295755934496926350306913846639461184721517449101394918787419177882785870934792636521125197963498128599352011671232969563531507866818898129458040133716847179308499267355648741926721193079274360914433677047470684862127577815191690382512771616621664145382610935524615811121691882808375798576603102864649140188015020542620960063334903883815880788484959124904152815941247784715389308286868779761459858898656702695882617826719762834282774108640130085691542437929282661631380979273581715859805190938995915909539530440292385836262517044063385228725237202144319243877821539653233102653892948162785761544764574659911599130443112377783006092806547561868949216493839902033974631863209298589058570572243804351611321415204862442283872423293526551569658154995622027545213867529447446818669211480388354887656415702756548814562231948677106998791557487061800707996603282935798915904033020808463746226548373895642050258639595694933008277441910118639993832015656651906475381477225568765940688749455614016090519802896194727405136704913009805697292161534060234250693553535882628721402843400740930457099376527156609384794009843180874751886486638720747710707838384035706702204784948472773888976213292129623736458202394787605535395736238442216669792165873224499104492333371569246604104315004581965807603829950158434257288435536565481058026018425513439479357723322721031191216474690253401678713442881501241930952213602573936885494514207075716368498880362929274441200058530219201705751289987772391710242093933510991938376643438134230992249553567242763830649348554850443867273916119870210668987464741607227979992552152757847950941839683370534884502613287936026701497942708121562216749771392246255965126996404477397852505117137791310385128454937851878815243124994928305912809500528106237042913263445205923773891066575329882681935658959755961480928887026621314678761869594122245805692447046565875920533388391407767978269225671689255098078784603400756542625249026174080325043588348851630223483326182871303511762630984867336779571351090578760071938006164417193241695790163766736941940745499551914585079650211285404169098161833872514657113756130913806958854680617151412746839996505816038808541423386148495018117344376637180616005377818095561894072703163901704060326666515530827263842892523483128972581956572710623288108118734777525312808692344511766553647387182653554023922220063572277394919195407294368861205089793903211053148913280472516766999145015538859851640270518944307901625268496724691975422279776746847759292094843869553047943815399279484384140519514464865520746575386671528259390579708371802090847596742507930397064331159903801205051562759678557160747316081291747144300761066495753554295110659610310284924329489556882513183884081822692240339116431496069326301649295889679883393815934300302529414731528075165245462784490516828879688669690798210412547765064703803475395005578434021633034097025037790680947386400702479880564578525649835720352910115601003894883704980718019371241681874510283420920536193321419882446521026287370139678435197116234155261879663247855902560107248862836537126146326310112982282254841948265391595467614535714949759318860982022734456706288196974719356299125103124902340459040181953892858400533187223387122421582202732953524225043404413864118627544119091165142333822675688834532869487184519227122315281746829258531685447537976195003122684773821134536173826909773155354865103400597684560745156703219301976743980204145215057464091254810762845346703383631962984319171369639438580907077060982844277789821651590906803822326278622889116879988576170340412915556579922753423099497208709672640681586486231394656582295884239008917690778356350909133225532005083690213292550583233114737591059956295906314319204290939331917820731578123591186628057495292124923850144230085595904248765095243315454864862973595065541116912039217453501659694940682045127104870344478427661877667761318041691547096415242231808331243718582224892806431878082529854158609867546087102515100091163894591772414738527450365517063252679047747424053526658832941458409411883250786376620382330264365173487848131493727576074529701367040878961885695237505745517258596906653718197869973408767417659749102852850660825943124434366768311198021688398356241264098493674661833497447412916453911850538062731137752717981713646880417070227795332648494838975547080660239745898676316870505869074575289688562228307155659046844077206867633640070362391756983695282933719578394426307698021896915308229310765167640009028353178369101501895387235435152563829810328969359058666231938541563194085702422023552605923993844222918481471046477009330210418323008634959268529241211883696311292316318190918917644137302032933546665225264621693732713577071863137804222169324388815064727381613782036311640148597194220186969722546076571118536798105576373384175018569914778381544242614918273195802946249852417116286192940807306146303462427162551845788223715331958562436604677230600909673519733243940773939930608212516760508806404306765877590770326325713111783241138095619721404154902826633382573015804504314807031243537873999236861428138599907873287798061597794336879355056060830264740150438537551354092332612530083419728583501562460663489349058710711593615753134161395303832197476999316142812663229658589203769195367056608677103020288808523047875172304369976864116423687015033911007843654147995446947885852916222994474669552933553046562853913003668622766497249763245535927749517210577592058676245614778705002400393580182529638009449076809860431285763181250059914324563704184834037095818535243666471052068100850133302348857567608112780677411058860987951723936606782023559819879532929426759677600630300020813880021338237559729737287147042170061986234532898964004956015944642466373685261642700697267962965651506199619143187442410489088998795567711074078942927651991557243202573370279326980868130516117282972307058256012965543551262481662368862155147896652429756082295094998284273323480784937794072278246638678655580829688795039370431902000084923231093103775693302273856392245157359062126511463881234225447393538500408334871616491017904658294033082160730644244306915169158773822595943385483356939214113247487619827836363349719470697585360299505142102884897467320111044778580598141288121682673701410769608602230464156354974030333974577692428963127417826192735770524144082755648154412026799622311971160593556320143066163653925320265067794759074630605409759521267542723447519275440782187732462781366500080684976917883651691408103338460703447934910473686975484221025653822478993699281109976230647433630505129117362523652446352229926512880633637081648839112835185785924155785666843848780298410796342514261511437958086145519376828393520856142103849517295576273679184513130727103869709249773046111707919888613601395120661287789497831857980125943296913888789134500023898183628424824134996073477094122424175630519376132940538583451481714131457641846213887544032232948041544345832956397732401195646491728168332517478873546899488651368741813005067809962538207344913924368739933458627386588226305812806244170358119380540110921809025758713981297453335343884083407005025939816692658025758716897739313542788254527575058314284217132936245725280144560226923677875144023255431214353225639412180895239861484512988444891726245492216453750810673065100207289056047644001383888578103785679945557124446948766335590196031154219013494198536967307537638296166061774831218850998852358184102591907323096123992873978983540887326306297310624821978495654850341482395194689206780180856205103175056187033357472404987175565621056169962972844184853472944076814368106373178513463523626570262730700004825509858793686257647812161433015191854769113334006077620434369569181905406170670264054244241454213912420533808658936496671776760403681996194258933240556725275392839807190120139136570400186488733493082303172881115091910499741609778659558441864625991435654345631666391776951638198440962383344944557333593682103423956068020489541966405124516431620933545771838465636532882450100744299242724958328949003005407246845611529880704357551862049846118069030944214577856677230241827238604051539916327347925683220550636683470667318627006099432055840173705593213957047157225988214590029739842321209797777347042866307696030361132492085038717844659663377967708678626207096990003756487861677028619531765394061066777283026800994274280948910444247608774426322583300126620167261821412976237624012292128625157543437912465989634628994952272592011630713937413277793734396610703732719857158370278432230321534947046804654867307639229310896425853377678620305264765761347741616126625525731033742386196790236335616860333633457349006871617451367284107718629193149300116672989969212003207816000500752282612425313880326590160380848325450247181213938991229551595868364289424430320128893953340594521089177653105788808786247913741790907405471564438305988118754090852994813750247330905797092677687150362026620262955490029123804204206991032666694109352348030789174225066009339519636427691023291877538540363390873986786130470051947368474646390569914555458048582317125365306647483643375795411482180944296866041508670776189620734671487621206950958216502277192975030293942812978624648268443091381425170789881762748476244433326528068978517940561447959078544465901383862794646203040502094620514210174502231709985260752211218434211482957037050350082923202255474335626710384367801926974785112895957118662311742978170183358110155857196029409214659766876320212490029107941922663539267172213894089884067850086057357204560059519118316617204429823044987205696446372867197292494610314304907616791862289879672612395158230939861236085893401098887585564428448868750840643261689263479195375110822287047900431878347098026781987032076498796031728911067761235322025915989074990024585311087047117285265377520502606315437602887768611745715170691393781388985743052972134182205039129960921979698311108676398262872826069093162818766466024320389272525292279439884537410417624438413826625877611853763308436146351296139864059896571372801898733141750482760406013054647833901232658157927243966432191276187921458031721857557346417391145585567390453814302247863019064619046081111333026680664260144729307957244823016534816252706864993010269063169497146399384111513754027021299008211582362617304752342017108224292870847783325979056578500959223537802250980681850248247205776190671778552134147437950727807195216239574316913786267898259485543349333647817024223979438398148053844769752456017175917537795183828405720516454411549011407997803830230956534411954740137271025536216547996388058683368225726155439545882361879726641140560774060833713858934039598236398617373915255988596176802157078336712358212376783954174027062517353351576243599210790136201361192936992017020912003387177701965234151886660235111203705179597972434409706129677155766259855207346914246569373741400223025538340025974256368618241513397778923390670590706401861208862604174095372597282418297568285561705715038853933986355407574927679915766974832902451196894176518721023718949242661059702455109012661951725616320512192782709044063883017486584790528370166070831597296241133683542118352808688090319073751097324113803395608443046587854152542476575008853471382047396464480652057198785943247415377973881187896255028713239767538862890932602692834061307524673879147285322601009958333276442737185572327936945381051396441505365117817656390213283959909940012994779743811395231080726890212688851460270055571622378209986779987168737890327098789136791357852700100311800097581970794692984356347691970116702299278111664482536208674436291302298601355369330032682995655161000789547753582499685018949896779875204086690749520546737922505326720524548875423181799738517938031941874921671108851200293660389141349724256633150876993669898023071460288245867129836143088054629573785101193422434988346238994573195841976148714298308826026591384982696397434922168668205849003990160400886870108572302894105915871810031702092291724901801155598993738572793564826677973936050165021670052504938669825211742520649135839004464541444263371320371288930937355901275692307124744057773602973933030498918549121963090486949583677543948104511491938444386200949500867646174774621741629966204956969621195585499063826938351877231037231534928063969188393047353966854741479638439650716772192668191837895774969694587984452403910991607501904140513540224534914310510348095157573615994074930718037111429705492177446215936294463986213727368454939237510767533984163048550785847090858162176305030442118502910817447482335823775446910147149314632820898647753115014658993978125192198433016312836382098671938894295058905113205139445750549347103438595009259895774871715406331447031356772695787679404318926472219939195522650033765059013218553159057069088884222880368586291009003487062507763107201341188870940793702189391201514488995985981245205427667870164959222112325347991388520572331575606779262609639794636302122130541812757786887311051311336000700540822593055036015253645585094869101969106859527657212863831217980719616567456017716718492988901458695904029413325961058549667073266747249443239633173671834230525750647286218045649377428679334512366931242751268818396356882847908092339864239314984919233580535956397633504784459672809581276207505550260131056837762705664388736044846074620917271028906455196108117916317078554386227196871130977389963292466075461886038305865152575649273176917474850058994217214216979542502335189184518044010254749266943783633841705784804123823284357758392476842660795445558872949155175423735706749737616133706486983404400586948101230300038710426113276816980182329045931811162198076668844670699340842834389760343137310997797336590833130922119000273041272886279685048978701234198902869378519833492007595872907879534934799252601034198446181670320321699064220365891438645381153724347269931066285860451346382119089496094405107747613749737082642528503995794312165205896122805896295252340840448077165493983943627981876076626834512486241255351917476944122276363012128460839013849224245898435891530326496294582710302163759624716497141364121128669739788561275585364238159881913530126768143548278203383964361784151163039802378545378203385729240396986683968459414335457112193923366420392619003358909567332116198310470022803418470759262360038186894625800648831242328797611210343520551675406303992056599485380717371411800119725726188994779515874203349737166602837481330199266793195415048497257459098916296701760941493925523633354506241738007287574022801512144396572355345201606424702975981624312370867274715632830332365382346028170861209153505855674917163787850833075382951637775709379988733377145254853710993536046644719199496699970217698590611231885975809601428623489566510092577247953463099341827028666279834477774128344815121417405099497183429974386644284418364982136714103173687709921813445560669389461084426905087753104304953730708823990067420415190728317071607977472809607042943279329465707744086089919420240864738732684661941167956177264667644040051084910779775952271340304281521329035772456367667634614239649343717900918960630661383158430122576885746432843214273193676592315072848118158970478044916898465349715235839004221057379113546717832381649079631152178646359373073780221072038317777755750909060024430420312171756132604508373605208093705496902462115348400935607072487735177249486733948606811846539689765109577324878608724757831237630464519099687145988264271140183170775059082764408249110487138642073501568758145409663560649622806502807313803949426076266748804087319813794263794494785524436017451825718753561145745290781582878804162073041959012446789958328602016199585373082623519253867363247609412068682053956171493008107048337871870856180455119543722059882585179263762966853419170756495647642063476800829543381313886570897982584337024097532982856286357129032925798251979312628035017134522822240755802952480421534578227688457351151509161004366252477377532121223548069058621810146902038120008426540441324341169516815560593178144774986677129929214654894202560220542113630251898526637972396444997465116941280728609732910782259706544224528523527336791264005638967795029306389200593008728797481847284282121853809759119857710429235414589548700475367489473429651285029221805787956559599637239674913808041280481441479264883290359346103680759109047674130679017808246581173031671679877655784306922842414598912138311232433632824961128280013712376204727717599854093677551812845287723972391188820888502571482868283998559023461777709856009331323639791938108126518117000412048112816151838686899218981608955092580945746447667044713557731967930055485957149744404084383521863792849800899373340136186189271226030612836155624209329896815119830471243579229128277444316087417722128390743409070629298922386976626226939237262251275699653457776522935070274077107864474496556082386929802004272610310890481906314867206241710975758771752322391687274066630500262823487417615497242521626907985944013248058472697332661065967524741275198451962502222435610317393311668899948408517503105779762962969392065034797403628898723349054109577015443986492668348130173971332709951115442445108623490316657100564583754174741592916139808482022079943043606895162862461016339043541541371586142380547505201717732317115933985656949836958430689723872740003516411756113043676860450309799825982526887534938815578582865218293803287978463651966092975415767144253302295502924247724893847661142348139571674996029666931435719135587409578249680496506144271405172969030382421060879000089256985784923029876109153696771368873890650263234235794463787470147994639933367084286187935438700929400413996900067948414311604106010290999433201919254910502296347433970750524194596367813135281797015651542091570925227334575322532707593651496010178808691283741980171487562957018900161920835799238823442561354532308858304671652497009483251238195461510285925364173131625708652600748961583789067881815425459815125888120153021361708211968096820757664971993683760016712213196278242407155734254675855161576116909995070935420477131164422504666457260482822477635474306091110863344304068484476384104916674513907122366723242013552796151030062379156101296247927637285886741156322042331834678540121041811287641114681989125257188344795431427611951566468929852984873108570424302872543779525009766540275375601609035358992439034252479366531889279398888535919902391784142162449496865695021304756414897634487397811090839563795244839338399092150528832372990399710778320083057299643635854198840484766596533592875704857878773471566546782911929884646758856239884662201981985469355890079998580461625331674134642777849025773672421179638951836939389029907962652899194395544096345344578051696820528259912831569346352750938325137582135382657484742038637891410601024335187759158359972335864392011736009457716498143329716571700464457250938214309922999558956647823038542328930627115214744871757205194754345067992663282975923690519949627150058992809774438082162883778246583378046510292358823948783377274777454433377165842531867882764642249013890386423785716258407799399981016865291390825198016170040051521291581096649057606315393487753526115379805708451927371984514203024635199259339553330718592919997734190698887068946364334834535347400270908818568400933268474468268224151177606073227069317092255488142581921800430037233258768190676418248736473345236518068875709683742477722165514922431876392815313063029626887689761343454470557287727661383907687555525156327437454682547918108100280475186761976193677111116697416759172516930284276912126951291711297614574415220312768727781536519655003587157317309960881670014819466131922352675728256774332088510833609007989002617144603326202340103415960849444936921104570069433979314541278503376232780022222456792177124317617978584615484383747158275260416