1
12
123
369
6748
4247219123
1232123212321232
1213231213121323
1232123212321232
4247219123
8712841928261246981
2629198627
174362161274
194346936828274
81494376489349134981
9876467648479632973
1731984343736927
8262898647694986397
2323176928936967181
974387676963717
761287378926973
989341319648
643789843463483868
312836967172
3487634741494638
728172323976386
27129268129328
78249241624769638179
92943949124763982426
9241432979731984692482378643623176218362692124931976898381397429247146969841639679484976191869797691328938396192817272493213179236878319614872193243486469796319432172936371714384394376382497964627421489397474894721946437694749489876732418942687189671241292679693976283636494687317143246496362729276813248628732819871967481267484378146942347392928967934937484386186273126729387912676831484149689436492631916128129641743138132967963246127612437347468719741381931917132623826832678132397869871268698464898616168721389481968126398138189193691246382326921837397494878246946924891741232367163646768987283723831312928383278382494278378741624312696363292379261632121987979832828237261843696934873913617869319317127987617383878126842389497241934267946748369676281761682496818316482482937292716284127818167649746139768624767242361487418918689632619689736439341738738241492196728719164761762782379238342843969469169741267914796424837282973493741849862126198381987819732983634131247814647621827967429794973784918192431269147918927482382312129218149638368178461483732979612123291298648623726423712317316821674373618214846768312982918789417494632416784147868178174267249348281487818481764961619616919614342423214176137278486989213217878672372928726161498634323984637968413897819361294796913948397467274762812919714386978978746462141428978383148432413727427123827242761878149724941963189647682496831428197874683786876419863791487673161963463832194976861249379819184139836278274367383613279721282617628481978216878479816876478729281274969262471683438967142174298767687934178241631874129269849267267689498476718926839814916893921369676897927263862371378436489263748347362476186437934249343137362343289747196147289673739289643626218393628294349873143236174639232316364374846236143276873817438234348942642437281863131832682163716932142321318976918427414398949123697969841893978431716912143698928321797262141974234191692923983814982147864138383861946421862618416481387272131794842123737617631794637213787486726829217929197127397612424394247276764948124938378734346721643296292712612163617387937398723714781939819617262879298174987324282627278919826481318187132938986138639146487686142184281486347814246984263476431341967874123679362686387891968471916713417129326192139264627126738631828768612619736817489643984742194319362932638979293463792176463978713948126198283818481893684342786412394384248974647982867437614274781467897621734743868763628424867471839617674168929343924148349417238348369262626241786369626976921347862929818472439673187469639864728232189626236278961486249743729269383212132487627243474974918619293879131372346848181212626364732619621846969136123763128124748126243167671642137183943729896361839789132197821343896721619276948184363736417474171817492386869872793236329781393742439364794893697821946719241618298796398726962393276834726936437127874818723632417381312181232968678131387942498172341749736728416732148719313742693816919676717191892186298471292923864893764926891631493412631341724672134294374136491323416269431316349798234839828262181469347279831313732461379326464846986319389364321374387383289684982164398123731762394197963891848748318378741724697261418983196474213191471312864231714674143194173934637292789873917218142631623427186943764386387124769694121219674346713614294797149269813637868329789729823763829729267392618364387321973616792979141967498147826836264919824729726438428298179618614729878671628131629313436234148281242923742424214342416748681291262471683916723727363796246824124781341423162742826379479236178978648293142386916136267834621239783647948617629846736294727937642379289432648494892121878232737636932792124382719767679849626861693434129123189183421474376746294682719879127923243836468943293416783646279294
7837476824126767927413631893413683864247432494361832863842192432849628124212643841293861262986748378184692164696724368269736242367842489428318647978363492342487349296968472794379279371679192742831431393212181767261918737143218484684324961462198147216983141729236781698248481879187989728239683219768917876719676462362429671863748787279723178716341793818436238194879791426891237641781926491381968737474637397192171841891418234747941498191929182643431626214196873716467464814128486474969364862897497192767934769671947631439419218786912636796979437847836162948738797942634828379314676718792862934313834298716739731324163218121938913198474679364982937681732719724692326168276419176936131963481824241924829172317323781679267846937484939393973268313697391842142947924219614878328128181438372876341249132981478984878469486463476346926164242421698912941647917417468273421727928963679287869171673941876263123972813731318949373492414936982674939384973798632367963237281478276712847292367192732723471236279637849238938729762182467479686748643812928343767281387432394396486914941943248328239217632761484163712368729282697471926438437374862927396293149231317134769616818948387612367946194218364713819421291943863929498621678691348794294986374916483468681979362178964381729469747296341624139236126274121296239398397849612464136364816727493481681941627126416823971386498367272342681372472867368672686463487686949628182861847164198724146892323879463412948967174173482686791687171249736918763463481264249138628976423731746347243617349481869246937319793739181728383726824642346468986849742791231412397271381912121984317212123671823917374769648613263676949167323623426438648292136326436491929216148917471487212323727234869843218243183681482473467186826831716817634838376939627987161282192689649364746324879434614868482197642729246968291624819246946781638312963164812423673693643982638383214829492793476738641268938987839878763194862364972897948483967821836162382742674672942636878128361947973261462689723437817931287931384697324324918649841721632398138293418718168639282932424697928482372139612932397297483768916942343796734383793684238437132679621434317898673743828432413721393494316764172824242393731361986184681483439869864879674798362693249374212624326768383124278123496273147696738271927196342492494276146763647172343926817691763748478981246924234938679424987461648431928349763121263814976186471717629317249498262392684381848742686987878989836212737382371638368646828742146724648636938192721676161386296971746429413148248246787232193762392796368719832136368949149832842786214896714679636284897314984697263793964691647424316928341673831627369462174128274973271392619197381919498264146232414698427278789696346797217897391782631372893979427182392384729474983717414828172386192196978242797414386986148314142947492394387328394861493976764342749429846721918283143917328984398978639793989434642639167168629384949391689271476961439624346487172347369176372367632746967312496743238316432318371821726479646718947194397486264348979421283867236324868239671249812313648481742646872321824971396968278473286417172749483212838429378197464828789492928326437198794287214272634612726296732394672736878212132827428134782147262614847316838187137962947621847329329726324291839787686713173238383737347426893287969623141716348476239636141628717642618673414978127827364978621243297413796273473943413429167871786186916781461742493428386173462893831968296763834184861342814194784167679471642927647687428212148382827386784198618182179748638437876367496914369196963187674169417247436286928128463838476297143731936941239391746197417372182648276167629328787174923139268973296296893862362386741214784792843128648148974642949289374393936932962679392437296243624126829183132418483798738242436974162679793292473479146968467968373824312692923287461628389486967612386874639791243723967123162873927924271814871724639468187149123818312892892412838312949614973786749472978734731729272147649184386824839764891732131846296817821741461263136781267243876431437923913893497674376379498931621341434968297324389329624316976831468794931379212321629273289474942919798749397891924732378126298961238148678492164869176928284194869481431842363926237276372427174219423496732784636781614891624183912892163196824747172312979683431432419378763217931893274249469214618973614783848172427186348234746384298628363873938494143486486376939817989431624143482472827489324249213713737276181237171487146821948946834184737328121729718718691963623686871232124983124693129741481484791379481829148492372171272314864696867193931281923823636732979368268239867246314318968964763186134321828146386879281316141749323287439398429147364921293713873789193123164187498328273764163272718914872697826864931231294746416472473696726391472179364827918241737149263641248989
9317947836838978964137341783131981483279743681462712879684947624972976174636876873934816713619138434689214326784948187964387931672618682196868282482649329826724948479381416497187873879726421686342317474182968167178261464674231676161469472871389818283146297969681732623876932471964879214389647161892761768426464327678678297147932739617481482184828617471487691798318376491913124689412937148141789183823783826279146748783812327212937187241232987498249491348293786478417134767378423139212631289196719821926492431768439394892436387989724683813216364178984147281837983762323921343237482893712792323269878629837481629387278129674176373762482416132172696234373873481232842341947387912121236914168324262843681614186826184924937681747384618384782412439686464216969386892749679178961368916824398126192769768424167373893832369481241426394836372817916241767643172414831673968747681261961813638348687374967369769871986924938316393492919268274362931739749476989141831497976493917313748247271467694849364247191617613426127963832712646439242769262172186974827267192961984942791723686979289282467613696716198161246391626841794287674164617678626983439186127241972984863132319847376194768619314783173932476273671327626343791743819783946249824938132763438674148191871431272618786392638341696843134876873972723768428948243423862797942824938791842783689292141329492364949648767123782398672784894172842673624787329343196761216127864861396274687286762923647234128414692941419298418789686139826368312878643916137318427984971792191291943436843184128162732698172371917686384642396139278394171427686178686737679463276219398783183687829264646297393926236476964936197613638762398624237683139762681846972942934787183836262439638432632491328761624621921791984932367374848312641848327639149619647636876263941978212362897938184626714872371624612986741341671829137916361972378213171936141468234139867986426427814141261812149719492124923147176417949169831297146849246934723761264184198691914198748473838276969489618184846781428696832424823678138264169693247631368631637369294676323193417397267174792873126916394962861814742316389767364614791796237642671673434373128168494317498484927674937834387939684329173939297219279487292172829463947427162494283796246439619492462786273646891473626161413424193462714768674832831789397892919626896138214937234782961346969169386213498384986268412187142393498129367167898639819736138947682486198429714926927249214161492643487917126986391836894717163189892432313689263423736787682821938783843817478974124291818476781481973174913738463978496273274626239489136494938143694389742831976189269327267948429713712634729678781716946213832964712791912631264241264842786432361468783796714918487479797928216838176792814737628187317262484313237843921632178437986898429414914961286143898746196924928284126138368784939737474867391698648723819494716798617439274692637167869489862347467276281729673727136724346238942726129698231964943927621429163181636747421749493726269438497179891871361319321932843974382164641791827629621279842129234989374248796268343927678183467468324967431328941298484819678719498731462728238736232347419637289641313189879869373963292821763237342473971681613768986842468138792314943432963642617246242372384286384184147142318927629682124373783434346218634678494762898941784329814874148343784187463793831249173736192369648294986787489379641368781698368723962931483179417841763424679346389721614812729174626961368386914639171348349812431238619679721416276494738967291726129431267691231943837236271698391841787493298474629794169713981642361793482717474287324321281936836961637482682186192762917216967424762612186813694724172426824864746821787871748497423216389837643291872464184768612327838978378628231963197392134167264249876431612784382363743191724718961393418146129789729198497194269426191434281949213834373174913727314218291973891989628636237979391267618792829626826184174219187121789173426973496262796874797263934189819492383676946769186171287423816917967892724174349123981976239164972962682142161423267818313486497983829829728287698376862431949172183873869436789614341716892819248136392894896714834242931867121613937491348392679869879436247426813624138978637419132792929121714837828162328321468367912628683463279897329847282832834132819672673293987482461628782898214123849897929174293813182387928279274191818428439376321824948982439839183682186947381727349716128168928913624628982832748469386491424838186328696894164967848941493971912184218739286896213436972467248914782873239329816291819324348983721389482871842849726281291283284648197323132939148698239689476149213637691416739326134387847327391769276929629897169797836968212382843839732926328279767879178483947439218912474962732723239429628472386871873128214328642989386417218214276313691734862834879231916781874392398263764847676793674124361861819867427234341627421282726812471323413648134936367646839863917217181613746812697163216287431896294769643196387863797283673976892768694243616761274934239132983186313916283789421317494279161678241272917176839364968417869127643696712717461387132689678418673879216396373183869868378493136376732737842361763274621268636467827321269834383984864893964327984678261418398146294381963723163848296948464728367913493724182868714687813724742873412146713873616414238278274768372498974631912671391278363421474671814812431792478412492879861416961672318324769471628238164323481497647239213964747639287693263632463892849468427182348413874238167264927328967878189684629219297174717329293292726268131431481727191946943682828273913727263781276126769821482471487262819684686127634742123727367482982126431763468794734767341213861691626761323813472897329192814826927921317376237627989178381389361637218786134697217684623934868179472612643786761981767383474637843649641894374396289896761646182181491721239867383837128313498639126289712843218161461861621791649869812186486493627131474873127879392649712823823641641987929237138161742961398636938673781638689129486279178372681728346294213431427846462916824636842476247863184918481967696792412893167924828429178718324823828962487417179623172743469213436374272163428286762178929138367962183696192318196171982896743168627919261919738476767287173417673796398761212191387268219829792924873697194768139719826389137232928761818182927697423129329238912376979838236212712437847416797621273137829361834121372147821949848123616471494626321363632719834632486737318692876462427391919397829623793727946287313924819698267482797684126738427426949382986371689349721279746746712724697919124364237646973146473683489646191687979861319739734763931941934267362471793698468131463769347216838248424278728936983984849148976892749323987141379834376712484267134793914673194613121273692737436963839873794846717239838972149398372381649362731394972837948148418736217324242742392179262376967681674673432924168187384139264983272183134216767191373634294624732193163814724687139461287171324394279137131473467129232712714731486261273724672893436769618423818191784314831631473862314189647634963929842193423794798397279612818968483247927638386719847314634291362681912491393129123234321646781812139328498724869734638432487387928638327134842183674216419213817398628764273129319616824793698924613816316426378929278173143737182391713274127387979742128361921691843791347419364729262792193498427234326317276189729168312179729363484794187929478919162343723421727487941646174691679176749729416972438348343849846194613872164984974127186384913987147371691416123976874814679186732828314923897817127363439142816792797913412878421838918914743732618291982729747169726868171348747897268368393249146837183891296472847947923797926737498738423281794234921813739264619392936493742684874323617479817139187143692194393819171948626476976347978493893289686927249382736378387248924684241937969748728471348926712913796813274242796161843673726234371687928793412898684796497232824138272919432939279728947391938231893486496194383282713614242471918247913184249176376734937319162416498367278498361782848967912343171327218971743962783273818643217186718478191718969249167976782739634679427641482737146269692428741613243921397919891716172627618762396147432846983712436914174812342912436817631293642783739837217128216284917621818783984617493192614712967841421867627497262642634617272814638924891784249641937931391463138218163482749187619792632341961674763968917639437649892427192319412386374212674272328191283734139329694231642374642748427487421762486826198438626789317274691427626329637626184234782131214397361291397939698692748971379347282837293246168627426894181738131973791474763261297627238636287862363289237274963298182812737369731647934964267371371763969892821931493287274912629691216316472436192867413846213942984732176363987319493861761629484274162139124212467437263183894971921672918721742638692716274269281624272891289821923218263243497693926128396436348623276732913912376816423292896968267269216393172923718917969268632146387961917493693784797847267819348261234673964961879187298927183912348169687431843626982971923121787618327428262614261932476147197378629286193748436136178278129428947367274898628698749189723873789146736
4728742198747464976263896947173761694697242613686283896134241473642412397289297247237361238416468979823648196428124146326271819124984162427347347862196818721626918721472372834246841648629393137617942674696194832462369394734234238248787424632634763941292436871328372162738313136979318727268637678171424967927948198319191847234137467428323791489293161793914784313128691929373821612494394634693282914279713161312746948239821429789638361864396248428128341426372426189697246781631486862763768368348939289137939896381919782474176976189686241812743797647941313461648438427419834696864274397923849896146939293727626198982748121963834692469796432719284626721489279181289693781874723437491769267869683471763146963237463943817621321782474989898698369128418618964687496487261843878967362691819121242323732869624271949838213163218739474841741693468794286498974676129698278234381742469269172394316428626494769262791649282361471962717193272634621432346148126293471394868434737932839787963632472983963782929468423832187478913947836437678794948264947684971321671282968628219767282674396496387416791626727873479394742912139737839649798172894978376734916897971219821671214963969131812694313682963139483142628972397141378394176434948783417281832791348382712864617389373173964247876842978981983871827269243626824174932749613482693462874876293737262929481736734179782762913943168464328169284328213719138912368978373276767869392382914736312921432637948978343786742832431491721341981323896426327427874231724872174613734873198687921242914617276823764292746761634623278384218417328974989823647631237171974982879328192964247481848792912634628478382816797642937274612429727983438984748976868384694197439163683471828264684171363294638437197629312123929219841896942474742831464286936918128924968794763168317379721398171276729417171896936796368326769636894676417282346246342374394732342834329836489216878792912747362683848726768728421296284248171949476326278691382919694814293923671938698281437284748619267316417472416947616312838981363941239791797386894342468627231643439737276341841212389324631617392131768234649687362363717878767643786717193412371734928631948163793174841432862862478373482194692494869372742621347894169368612786937386197436219843246386278687848746978741349491241819823613862846293162736417348784393636184724296978243469271842397378614176246716276418961943167873171498126473486762196239398761624192368493478976834127293236947463478171923738297934767432372392826942761482892143176374248639632373943789734873792828127464646961989197474639272432617287147418961961794786341263872374928434623179716839781347472349632349386372134736372826426796216846429724914138783921393298717413643879784126432796843496276868421732614724136396219134717181724963196781632146371812768948262147143142691262798264238392494961286286932732398319487268419241734647638626836919827132794784693484293492621392423678929142184642421769741632432319794179487371481687127918628167943478481781973291716768691749142176728236196348367317384838128248462818182484214349439231871818291642891242197864978162149741983871242321376972464673478696841929832897149682618263968982829619739643278149639418691389469242374391718931639793867683149134179416298921842836437431948241821282793146189679387363212163621946967163939396919369246918427212374639183271231989728673893726834938328136371623272942641913629241946834376874982479324197871487648176726127674181628474129749148439268941348281462469372813923827827962731293671724832498968137876962743987876418943972313619141897192916216432347689427479419164929748387284938179632468939
67267149641739798186131794347437626287637919178718214136386273487363836726769367919867868678969161463184831978943489183141439412179839728493473479262949741729638643282426737818283167163869684731671232787848749421439143269861424378316436714619372396764829769738736937167613891362934368627349641292727967491686767929419197297179863917214317834676483434121613763481282947624619734148396428271929898191782643863269713647461872962646497917618418243926274187273846986168369821946921943678626129637382464168193719848629748398987687976127242328314214268693236714383174678183846716136143287691787426131834289749324961236816796429678246976161737363643713171893149697478164627423231382717149691289214878937948732696162872148426173162178328974817386898149137841796312796498367269326169324878238176372196726423946324628431762394262492896741781936717413434842743761717482986736127148289321386829431316323642723938286134968641793173462626394174237963924784836216361428923873437623187378278939381642134827262874796281647646367241641474178246174713921493629632678481817872387427238418747478979797919369898718292968261878973871797689261483187349374983718269479496126847362841329746948697374291967426767684818231289439163172439728638196713747242376379763924961281384182186748747472639486748273912634368742768468163164749324346168398373687842324264976863492148246183481282947169867824391742368269796493137232974981969367842414384921697694821676927861267413482721846248937171748613728416731817167624183186964137369327897192341816373818469374681482763486987872768937839712978983439142746368219419739169164132616469689869121317416248291876147646739634621419623462197929746247397498341297612864698727691878324189493197814239898419717397373163894742367462198964739746491963942186974743483478946721763943641319124237264292613769269729638918479127347819649476412127683217479463497481261837648491782369429847843284712918196181269489168279828373943793292821919621942672696738216716234314764328797231461719172636762731328678672121291984321738698943432689879734278371276316984948984698487473492719326268149716342347969821434841632491382173927971931891484826828374168937967828178396313828932318734146317917469178738383864378979739723193461439213781247181298476963162934831748796932723697428296341497132492121912819728683762983836787469827178391831683478716917483434683983484321879417429264964767317241737972419839726974964614631831429164361438468123636949621218619782841683694347496813919181376913732697697968181618436413692161647239391898614847284716781676939178142642796214828481719847374313746321678737891347219149426491829828989876823797194876314182832418184317376828373894926319484713892319264724374919783794974367642129864168398782164976289163897163949786127296414728347812493238682621439498734278691632728483638624749674313427182627849462676941924129392878731812426932916969464916849816862949497482383469617498641763617632326184294273148972183763624746382638931468732921717289343929198436384968482867841313934796342696419738163672621297468764938783219269282827486967436497398384917961623124762142632823767364861632989897623614962726368767321691782816362694389748242923271869461878438342724328196241429369197831424821767132483272189634391297619616943246316839739743617484193637282641893821678782742738764792862741967478718214346162798926163439349624862472381817346486161368926276967647341262394214728691676719236741781962327936147169864391637219439234163869672924183979193676239141626326162326498623617431678731823636818194314717934394679764387898792349214361837942963738463146917641728617214248148747619217894326498426197294137619213462813731638768348341839836969828242393971813978638794391294141482626871264787271623168948341964687361434274317946181392617329782486473417831981269281373293934324146216767371481292989717872698736196793483916819478327678428231323123416814612621941672613672721418781687249267687416319413989192947982963849691271873817924796716764648218394783789174712787248293239417264374931431827313971813617817983673197471678161238949439348917382982643714976416794818478628494613926849324726131793791832318139268438263971932713763464714784823682874169794313924373689612689367267642127891839193898748727981397673839764931379634236389484727387919783789121619614837689238476129731267243716836393914783984161689176793841467343921268913146397219147273821879162964237932192787398178418747282162643178989276738642682636278796794629363827213786237378426782439614967432918934892643243938913641679469868313782989371727678672983716342683637463289643731414747162672682942486316932638693723189636787126374672932348242494343289612879213473942868183196929723292768727871838323874362679316716247824648139687934249713149821827129431936934818248437274926364392648143184839764827186198237497624782472714937147621476931462324274613941294298283879734749798146864718791432186969742429869187249461432468146419324293713472971616426781967234614769487912368349198383632937892636819684243238294848941378347617842431218976268416762484313676967962817176283948762162386348683728616418318974898329263826417621242396249767939121942769416249413876727187189879271232398129124174292319236287636327862314214713737638434898361916789731731862128623862371423216143643791781383619728914362876372397684623641849639636929483931341472897282461478136741817272392741347292847349434863219724194247894979427831646268162414676387382398474767492924274397428938278371624638617913748731821928242432138612963648468718919347179149491487638368934649428643274618234163714148361397168249737894879473941286929878163763216489232687169681648914879363631317131796364624121916734629368939187824218729742392468418173916928974767423147427679612893281291894716278743186179614864191419438734179367149398687876872841861246282821286824342171816376418379898194276729847878621464324746168696792749267398763289724276463914281918646328674671428781693463423696387148374873986347327673471286864271913824323864812729824829681932173626742136878678614718918674371819719719728798626232494918146963276719471371918923673138123687261796973171382619168948439367389743781467341683636217482949237613721436386924914263237481361364978216386218763868129462498396836931786168942868198164129381847936843476371694181491617181828763293687494294914813238436731786787646763436494892186763637461787219232971612189127849867318973862636868789328743694934987836763768637293731646386373978346279217279329868232127943293621474964294964219892782471847297497919373434162874134314694986274827236312763646314743198323697419678326896236272964374738396413918481239864748618739484193838614384238649414731341861614267393978929349268284983912346128643232982864973894249387898162186947291462384197394812128917412927213837617292428392832768619313731698984682327419363964783679784683629642932417296146823131393484837876767134986232431286863219867623241241417136418126748379693632642732181437439421498296781693623238678636384717934734848241298248684212898712149737618321918413231836848124376176272728169248138143979684729134812797269131826742638483692939361978473937964913976414879246878271298627383293124137919169697682498674676493187641427314639643827143942864324679273748164234868469324214716867821369692721924942729124867913643614876984634693861982137961769148348784161989823916318737328396736268783481839816279397816248431868326721863468313967412923832891379694326326192168298974312624129717268123694348286487437318917879637971381696793612348769363249727297861431498683627842382834827218269342841793973687941976318383642312137694914646784362934189686194282793738237414123632324862712828412482632196126172943923483932841973961938986432646969427681797231924297841478932941378139124281686174349814236928181749273631216186146271614168724684846396173179424891273468689681342986386971472983963182732862378273712973418171878174638231387829173239824364624923234384232412798318928918176479829783916274741287261686912769378293423269249873487298382621376318316284917242428387819716749684328328686174282986262979727267916829293176789343423986494727983894341383897262419761297869847628274823468918347847123423824398624194169612831934718234949429823671343162167868979373823424649498916262127364938683432724631632972617179678471697276164161363869393616912162483731671746937121374393241273269268626296138364764842846812839816413864861962348197323743131237428213897412921398219376313168282638128614618724232768787173263632484948986496763816149718434267312891319487934636369412134713432312634296147231497986283812384169891873426319679764863429323964891481963819393729363717341472898196428927291619316362731964361819683482387329842919724341817816739494273296463893146838639383876413639676468734847868423124239641737843486496362194363679134138614191879843478976271382382318292439276824132861327416134174291293128312684643618698492981212624264963682343126242714247282928649468127617931673671216761479849621484826916892386391728643617682647698313421314216
7347681417864729241476426414124619782786267439193421747672819868694624741794723738363131483836981634617876431694942923987642814241931396726782636183429413732784141276481423869247929489283828767964217929793694382124626836376783418231436376848123272167289483763874218317187979246361628484248269386348791898189627943476934717423414383693217438727181696893649176712796942317187849748674896961823823293242369739417869196396812161646272896839196741783712893918147137234214838473649264617327921672736321312714747384347619249863818472194348721219732942392327232196863497918689631392473426321837816168363231638237463694793837969169483138273818146731312614768738793623872439212982949134248728149723429848461491346412914134216961373968627484636198187393132636284942391289638271728932361979698798486393479249693189279486462728936716148327892141943838274126894623478348274219898317139291682698742734386767363496768671798376941693462473969839629729479462141379136232796717389264712138296372427989723467249361382378921398127843132737968424379689247817179384683614237921783641479492763782784271384318982479843981762496239842143987241978324182731943619479161318132718787431819169123932141867239494239418389878173473984749696264384863613497171493297343489629783828482468787264624942846492934768394747327649868148721268727693489823291923147426413171616836389348737913762718132428374981398213138147941426713496828212149376316876194928617326879826813612393298264716743238341636769282124871762483713638967981678261921964864932469147346218764174691786489681312429387436389468313164643784838137617927496273493813684341942784127628676876362989123763183291361219273969329872697218789136169291362463239629894247394823148141924764918139492473412319787247186929816213149824816192897283628946494272427293619241213413736369736364812146281878492932967416836968147392162396723747463239487676798164836139467383674648461613179716437367676363971478617973169329362618267279682737434742394932727141317964282767292698296718412713698763894768482938172626362149184673179791291718346742182843821928739791247129373797191864374932819486232696841718642438186126763649372831624673874829169794198232164717629378482367343293467349267293171926197631946724712832924234863842616428196412319719787679267364378464964364347362189848167146192373414919387631394186437382362731862729871684193942346121374721321786784219364849821342146938716212842123743242674249363684764917867824236381872949732896787824838414136173286383612846439372349292648943694347191627348149643713787218989319374821893623143183912313694379187187187374286896264176329797463978416876137671436138924834761428919872632972618341742168384897939794849298787493924249172698372629219143129797147417314793813297148729618961419792128193981631718413432797897276819163286831648786382671297971618268632812636274891384342464948164319218767636287212948487961424263643436296787841473214138328736219649748689383727418692934686378232643719638371637963931327264876134963973417384726963812784383987478632869841781241378314131263616317239237878149394746912141976364917919798389739248484892921347298469321742469738743468727261612461892682924764864841818929646434767321989147647137839317871468241964327168643123897127241367891424123292642786873818348969292182724932726862173287236463736987843138948692729838363964678491462463794913148238613687472612983786819184372878412379432129238218912824746264731973849168921436282139763121416172617313467128968418729218614819121918791743647931643146828721816219216196421471719382871343837396472941497128248782618713969192468382462414123942968437639247619839139418323861274696964342127128487173748962428694897147138717297949394386426183816478486974343862861819372418787438613724824923628736979794619237873937396936471948261293262312421483189431789193817493481494214121412412917393876319437838274639196967494684617297292878491679642176931272468929497439721238692974214862478682862387639183437817917863162729242861676281614949167939629897167181368672716321698989198241693489641731348361287381892919478292847132716131843849471824272727827274391416786784279428738761747963714242763914924382347184192841394981497684269827489864619312372761941397141814191912318632424918782647167918393691419423172396273436238973763181372313842816839317297494637982618123949717931371819373946736361976212367248131478429723726787328438979676191642792979161382493472176394714219323769632869197237626942174683943293979486741283831696893624741763291713896396787612767867897383682421969727984792424389316939816462819878428461262948691928646816128369241949412342971918619379249193813732967893269192972379361928719376168168237984897642461698614716747868126364367936918723963737968272784619367392478371676363863143929424132647674364296742176868231892169469134763212631393717626487484176124137841312878421218964969348312841917426796439781948432767127893938679629843878183642632464323842892917189471932196712679394141841394312464164986129234678217698781981716468271818721826364789282328323693989171787374849891646879161819794138916412929268989323273737916914396296272783831731317862717218971647389491679846896379273128647396487842498743794163476782416963269789612474397626964281784867242968171469786868917387328631292637371279319268943634267813642179834694798729761371614397872632673747437214768692429847427289281647134164371392379326736468673839782498397849824371428294694186469463179791413282428192749396989394172128163674363418931963872473893416897939769317474127497374723636792782787416748124871234291372638432979247942648147914676914323697864634921938414986936469867129174917693474296492478716837179169484678341974261214242314142646178797917628473638762847323786148189248717426873769184193769674626981296713298723464927842697326164849139781646972761829671834892121678481989719279291673976849238327412343984674679719132342414398273869428367484132816428319726793484636474972973434686319147217187239864196874196273936164347431383784963236412924647368924629786496819368173242162932972971941876892614378628671796982493739298173862428983967818263841812823921961294276869619324693946838492861834129143232976976272628243873239284763927427232323913981823716943626132128494843923784383841941949871323687169741249794327398643739738364749243619182931768164792479781819732968326418961417316137343829414386971784734746348748218786473763293417831464974623283683491682129424862316974819427138126948642169389428127623421823819484394846972346879761739424139491419698672179871498264672686794387413786846292492792943872436363618967967216723484684943631782826849264747217897638417292834179127473426463164279297649641729676134324983137472368686739484278482634348971431971698928638737362186247878461761978168167848312917269428264728274642612131387262473963479382136249781479826196893831781829369649262381981463487461932637171839686891748971893298647196262876283948173941762739231619192127827672782698219484863831639231826784292631249286197369142486894929291491819689324198189894294879431264171923189896234367313417876948419184617689121421964914293623283642646217479169764381238792821396917642149482839296742878941497461289746394181918947342646832176243783198624914674831414789382421319818936792896372487248676869627137249738217269293763842169834167192987218714194626828428978391267691732827489619284876982146761389367939624628967613823128462796829387936463913467938794313831384879723932396349374289267941329869278961268749293467486983893723724237426864643741782787892963624137421713729261312642363439873191686123892142968417464194674916216939249793974824717494648748182869789741398462438729362362946723149683163642932612749461818692913642432793948413423271713617689241317919197398682931921824741621697264291348968248139879731271976989187626748183292193141789721328946132873619391694687949834923824867813292938743748318748394749129242148623642786962479739361969613413129818798676719317347616127618683736941696929719393984126231896741287179481429474319748121384764321783234146729298328789767426314713142913789693838784628379416294321873297272141627392713981387919484748291646927849384949716272183121373489238749132394713693242892173632798641212686428149198934834178791792628471297324761426124186926347496424694876728638314182397679823279169481373217926939728236163864862843783792864737414689673874987629643641348978941613437378324314967216484274371616176942769368678171426249326948196316439834927261432642726129393831476924371391314121948264742693743963687818972463846473432423478273132627973247613816429424186271649816439493483273847638643738423182976419798637872818427129343427286974974381692464734294841363621296782718269863963216493471369683638297363873747292437619792719391389682794789473212323768164147472391971687342494362481721676847912734671431871438724178671831482181784812431423832976426324172416832363937237173162492962829348173278737287892941372819218783737627914673169687973423192798439671748243174348747987479684216138692
12381376828427632942794342684746364768183943184127491738269374286238292872682472876248281787464679238474789641494816914987289194124284678237817919413639286141949841369691323782164986162472461673469612379746879498467984389737292714984314962691648627389389714718243986263974318761319623213928319361936846843743474289674739141463864396436928431683768236474976182792391631286137818734964734312168731368168176874174868238636241361928123963732972714193494278237843963191363128282141842868269374269129136761938294318342393279739726484949891464169312827417419369479491789679474864836968393627867434861984749424742783686376848719628672623219829439632387918941748248236719891974847364294646976161282973247672934282684734638376726486863217264283134791762697293642848431461246176271769769276736273212814727181484314182167124817127361641623297181769238647269624728642674874792978134621287193632673681843894916136427412138693269789827914189296182898931396746212791616432627493723142961418474328141263897673763843964234148286947363973186796163929314262719172472687297312623163196981431968167368738317464164789878214982416316838183423276738272823789319381874272438784917293767484826326486928326989396267381462729267836869827634321694631784287173461741642161367681921497298243173492316316467963923486432387189417831913819684314128728917176189827379121413649769636812789874941327416464219783878617486342136987892648314726297931234387431271891712624639874141296219794272746924363642861724194761379871271619642924839689181671642828626494787284671828467962867614863197843812871637926968761292824683174949462484832792483818738786923769872368986924347491494731626963491689714296471376942146827828917323697647418417918629136731949192943138924929239197837471491679498464372481836186292893192378183167967684697479726347134739627974132624872638468981481963868792183786263791862768174268769674989173814214971762932634193939124791916317697432328318298914271728619462467617132647479392463414378678967696238121498187913478723869738738341827974823921828326769386367863497379263869341648749237393714871617812193928786123839737271471274314831293981762476732329671418173483198792726742463678429743218137
74764287217268619162634896286181746176197194321494138343416424812686721418163269198329164739467983843143196491373927361987873138164876428794764612939732494816374643734728973874746892921396939698947386724232374134364832849718271272787492738974862949784673298279264798319294373262367168217941694681817648287848747978139694261862186948249682494391734896712632876487934763249413648631231482838973976936319298389249312898287273273236192196971692342798741391623717496892819717139698261621764784124247247646186867923976828392842316172727843796329294696723892486412327297914827393168678794367698937372437293476168971967848461341832482731434962963191328732416969414672726179872763929129736812369276714919632938167929823837493914137282764128439272348717947942326134267427497817349761763412678761939161312831681373769642167931313478627932621767681813273492381313232139139176974796872897174973276327239716869174317812383784326827234123648742676323724717468964797894136131867639487163491786721686349319713896984737396439161812473498342718626493421721896964619861921236769814936289614982963183141418293974292194269781681646261797492492964832374318236132684727417341473764936173293629169267614396491212819826498129479237848213476167687697389483829461313692638342417239284376962189168716316179434714891981423674143989141891693968737823723723271296464839717673137417284948432138348391983912686123967482439434986791831962192438737984129398614249141876386243231314786282174194283686787624329178962986497437428482892837689487178629483698493962837827814967979238313863724296736361814129741812821238926849274734236127296841914918673926261439282689236147494732967498463493241928723797623123261393781639742837872329879328497176296168169196831832713914627196789367218624372693214736842938493173848398391347414943769876362949147281428642426843739694616462642792713298968239346937638624123639348791676438483131698713641314269136171341617838269783217348673176318927293492648718646317962673846384727364263626143819718142121942463418948217349498378347874374262989232362732629743219782683283961763671243246437368343197164134967
26948397146369726328439247272491828724376397689349682182382714792787383796263423691792918946368621463648673841816782716149139462198249437846384216319727172938647248678968929234319684291868349162962363726267137679737961616178292893749262928287937234149428696187136273913219621861249218218364949236173212189276246327942943149386962939214386938342972681418283862324394731272439132943823296241378982943894946491794764717674642671927492874394914926383672942918398429749629431684183239217416747984196926713791419184932467891349348746236176734371426426834634831973791843984967869293721893167871691812786293248292863832832171861264626493181617417912486927629431827942819719179262841836747148314176128163814989247969192721419261391437231319217961949427214613791318136392818636328284196739793864171764393476369483427674163967842496986349789349626478648264982767628217172176929724962817893764838136486432891313831398721437164631926943849134989283813913793469792398642426437136418986149214969384827189813982496791737627921647291637932632137936941717926947131313234264148471712989243917421812921694214231863786349672168416436474149134936969691764167342748321487924746793494943824187374316268672329832194868273941919321347869217978382387879124218682781963924328182876434243146123482176483491372943687368132417382149271782148968919747146263231216383474612329283289423763873929139739867487698468464983493682493217479681471943941496716912983437819797981319278416839469492626487691947439869176312373618372689128193797937424868417918471291386349171792134643813239321436762647184124673186149281868637842323291497471934832917363136213196212868249241431286134736847689326987974927482926464643469746368718231713831794348396948182931461491397943687327321367484832947846946381896428347914267286387391921298969689843846896868179634286361414262678491276727867614793132731326863427847691823643926369689238912617149613276834924319132437397473236894214638749763418126983642867267942643693796876812626182764924797179862161872897168978621987426483948763218616386984149189317613162493813974769836213962613726828724686298289492923949728232768382973673481343139728384936828929184718219324941692879819397928476843634872721897379721848184871389396872717647267618618318121429487946969682367194813692712724629739741723218692867343276249128942678379389192372968421691769161234814174171382876781291396769679318647632472769818483414691697181983624873763183671283861892743248719183961291218271618934847636316494746314676937934791728694236923872873861867623931976979681634287387618279731231731219492782417936864297878328483719369198143682348973193939246764746927967367268129392697616323148164927386961313212432179749868396916812938738363461498197161391764939639426731987416427169172482139246213268193489764786818286924838347917121691421616126187327269214131924142168197938981986967846728738424231396134687294918473146871981919189481461747424619861619361374326476797932412831329432438946347491962863231346841849176217941828627973487838613873286723931726323286382342768212413476392364393842917932813646981476786349481949467294763182716262719827689418798414928121294768423292127136792328216924719239271976474832626137414127292413132396164136294898672394171286463164976786968932696917638476167482983619646293917428214189321674848143974378762961783178162698686973243971234278746896931439237132812616397432462393716267842632628649673274821316132764148198946273716819467169238413947343131696376121862476362423127416192393437917679761643629692374693296364642732719837469289126143671736329732789682192874297839843821912391672763489286362847948473149691232967982329123176238491219848948184627816931497271284762386491762376173869764187493218476187394962928312696931316981418193628714149712879841798416379696137142696289469838426187376817873212974896976947436219126494194184139646762769146171619624827436976381219196274381321726737169862136817471989761484
213729173648218938169869138289861391467494183236271612734727378286491623969494898487696724743686789737341283629174784183263469618482319894269139637367948313737926198261398761878763876727314648437421342487234184691268386416789421876163718724872681793874371981879834941918628246794319732717321462414893782498928927917961326327948691674918469893863913821742972879349323716127182896897131261716478676142967146914964847864297367696318937813142636217464198421927971478429214173812964926867632126129143914739692978917121467269267642671714314784681894176979269843243626214198271328698632417273769742917962161243629618961647618638972872491496741798197678292764148143898923436986738946132648174317181384692713873686786294826129312462786717694164239382616132819712164976236436729463784961768763987327136812984316792491937681628483876173261863148316736347693461489239841212712612784967241817192429694794676481431269342943879127643893948916834639289421629713836369639618949864243463183782317163162672474769828938693737137329783921316278934629739279248412716468726294296894392398924949123481234194642378362479717236818921642961964848749879192393216429387372962738381462912642167123176923417893617696163273479614869712161464827494381323438412383291983249489624893714329793719237424262182324192874817191398918282481237423986731984346963714326392897634873941919849284248692794342717363641348646273721769184819213749198413214924361424734927216487986894163618937141972982418314636167246872174869486231263239734834987649328392972982976143137638674369814626843273624723429631629672732183123692696473698183929346891726879238136941397124989428641727231697474269391837471964789636419392317961483284878184163272343487323493678318914312631946919419242149879437198268389247473963943142424723149317929414238978239874824212647287919176842439347169842628612919817149246726279487282179864914876487373697329467817983648341817139679692326218326283623497272424973142464947672624278364642793781619423747261439193827848636967412893814283794232937812489823849672867341217413718281384683798798162938284631636297872826326319827947627134214349414919848487617627924783813934793748717818983127824891621984814272836414896931416836373497849273978241716921872972121894936424196838396491892194794694782719829148929891216769419342431397276982918737273418943793816764821489176342393274193674638681729636763298439418969282396792139382376247478614741878284312434942818182834391621683178789784963296296812643967283613134137381619736429142649127184797637369734826963483439643232432497292182821849147686742823216819428434172327928364382346464863789767487492621638692186748341869782737974136392862974932797313246762913189318763764297187493142814986424139479163294818743432976393741418387917171813291896328674193126492763931271789789176461862679382137169363143847126137162361361941827329342642863278487163879132384317497372372193613418274784941274286317217861832147234191873781987841941797264982794793821847376873894949789379281943431789693236789469641938938691634374798717386268174798689478321786183183742767692946161496474121364368613186314969148168923641796149468193439791871829718287969848479238326349624984916176462467193282329497289782826838326917489397141314736863942368637917364834618432124384736267264187682368461412313281679413126891684982643296147292187469478712412142414687131362181681913791967962484618198261469468429212189631274698413819741321234649273487831434142913462381913196343748974917438474247236217378937689219281932493148982784386926879616379834672673418492781343142767162781368381698674742412864178764137626127894682137393826147414648186972634349626467818969242876472341347897819478936782321682938963638629639373196739712683729737817162867423276948219192869262763476269274383174237687838974143841832963129284241739867328436316763647937139621269828429614172872896219897313989484819294672828634393816748491612617968471396483673761841471647279612761273284139243673878439421918348176134787873836786472818989384714939391836868941946267397179383646721946971213832913646468739817613739734214614762632934162697672748746918319272731634324738984738971948319746861272614798787892929424812418628141436192467374631821262987284812829467938214271916243868276734862624898987936892739427193413631931921926134698796287282198962843239789786916797871831632368713784818732484374636121493937378134961746192868242329124318424192982791634321741821246914817678136141478343247673843687236989634678389317417241918734648671918928469143428369836416817134898374768647436194928969376346823928346137217939482139363691861239469437343784191318464736976842819893412173497938328492193864232694274839424121891934296817349368169427649798173432381292839362472341743932749849817962178716429762328789248146934681873782624176943637973796438929862962924874918497162317617824137631487184878646969463682371634162429241719746348716814732872146178964964862676462367398268979868396431289872838676892621438148782629276386182472737317134869839281439216781496972362831261983964183649491893139361973868174174749143947474787694787289294946914692727327839734818686798269649181347284287178713828273623696497182893812619828246731768347141629387263726787216472864787648723919712416262397162794676426728364263474247949261786848138279618141747616962634314398261693486876141936839393278789348217914129241943842823679649243421612843693724289173434792948979424296817693482346179839146923262373472482673123462129783683626196781623294368297484648439821728967324361329427497878383671961949171829742196797683712427838632768698171912389639263613148132383718679832162169126174674298636391639674842183734893232478318742476124748263181241216916714847491982986464623231487636876173248312872469896847323497642181414846812829329638249317262727236796984368128129897217824643219869413683782763128131623974141396874172943296378176817218426849626181349138934979248618367147969784817363168232781376864767878687831326913941792982843267291327931698372384243237673984247123232986174683471718912378318267263436892436184624347263814863437342472943713176894131939719829172962487314189279742342698184932392393697987438921898143486849713281384363141641298216164683863437686248619287921832379632314967686724642861761793932316832634728469792734691239349893142437841434917849817169319696839769719231614719148179143832469786796486
3248942934292624371819784936976717826326737373924297296726819768323434691396781619741363163279474924168398764827842691287846867826848148271927924379813471828439687283121282349241831292327468234176341789316312191634237413974372421241379649349374786476389818769469832138212626123879292148164863197686417241234283969384347294878196196936792793732961281828414792648628984132876276461847926732142373916468134132678942896341637219748274169368191438131329639621298327968981731972363634717376231347297876872874219464941284747923628328783914182976827689473892828718989138161647286984981679878721842812623878974347129814768218713832121289737482643632832483472413193913271287162139121616428484791949626484719374863128349646218623919243678462362621828639281481673719631496136247469737681283837291876878943282161812691367186828193871974841491241812713247423234981462836863242782746869163714613183193271438424871493637912313784136191486786296464838293929679341636176414617298793647674819279327136216896719732129467283836873287416171974974378138141934943983794679639694349234389394747412319326823986173279686429396486479718769427827243826943692161762818361261243769643492634848379419232686469718123762148264613247273138494827821893712329696937941414691697436184943284127982864724378187838342172646769169734792712726279837876797831482197143467893964148924369217161761969869681613679236216716367386317938632364276329842974824971237292389434879824313183714647174626234867672389346389719186163421297617629134938321628981632821349184614217283839279498163876872328212462324838438372831263928174371768986873281927283262768617948627414196878627493291891384789381989879671326139494973196464839829829261426237649178932431943941898323868647682421438189391327827231696716363892684194812418248924646162347326738921816929313217391913292639272142978786241912941629381679498414167374263742618974924792431981273123127143697249682419271381479414173732136947279486914363262181928319469178797371817981423769826829281482697234392382892696424681323917237429182837416921249187192316983724146494276814316214827921747289626749324817496943867421797272496293164362927976427828982931393836941676746167386982679167814963436138498942847423843871927918764136391471262631689324863463163141736462626416487121329419237986249498976142471461916428949831693939189291723232764924793123691241693198617846168613629138131479283837371843412141474312361393837834698917189374317989276892729216724362469818762421287134368372393167637168147168268171716168284769782147361219487216161721942781867372418391687842694194838381981876843691479721781236273731797234389434761876726847981384134841831327161962964643897963679673813736434269692949294964796912989674398372641927493813276487264136398148938269141783189726231932836183616719843243284297834727139236749819181414973429834624347172787287297438472913484126396792824748492891271893241478927496146318928692787638349836731918969198248938384179421898376784219679793843981267326434814849628284978426931362947313647161328646374839867349273438489849173631913137191297219714267914328431816736389741293627964967626414146928692814943216367629243146949713284792642617189381272142317827217269218373174212841726969637396127818124971897972146814298762817916371276968478927419193267973463671242693783419864274163981484868976342371648381628328361386268174636323238183473143423168649642384732921987372729696876282429261713763936268283196364746391437491671497347394261787328927981714183471968146892128371369781841867414297891918628934213831386832724968676876296148949742729694927379818278486924894842712676874343161248947249748619742973214827192143914631293482327418687392468697481321791927439784638362697328731891637879763432138472142987972826732438372186431962317938982398296737623793632393123469814378281937347368984674613748962819132981813842689141298314176947419764616247341471318648287189634984617982178926138764132421686248972148316238976836921462972913986349274273979149413631918986181274639737421474943481378212439713842361827623787468749821436824831393869198237426468346316296832363924764196893193219849621631797362316126979874816342821326131878437894921732462423476968284126327183821936893893768262827378412892762934671238972148642626767416242648378146312979179646414891913671342149873132687878949691929838419832868423876361731732841972813264617398192496719768736418162324838248287429489186198714239721241867417234818912837394676727987129618384341361817361324864647261894271938473839273494869473739473493974362981932179429286794931313219238343138712396191263196976438494312761242723138493819176319343479219168946737921491831297389197812924768313646873297394824327248171816768936413873272397128683473471939242967816312127963167474369792142761783237986163694218283127361941984131283267632624694691214236393437829246129289128673871874376893426483974234974894826146789817983489723738616949626247671762761297216263472768239834314678164719198787196161291729364743269172792828326494642138697476341426894843164864398237262383929694684891237367932681627367346724913718931971727647673717468271387874271824282937239836176767214397472878727642728981787649814927673128131273947367216293419172983892791467232861468232781246469417817819841246248494282824783136286867321637239281743841934983249612127284687819874917473616428329246291232389149472497264628243786723649784986819429218438367169434236278294698918946141213198121936927379832321437436189383826364276717626398491427438162621987474164867613724393497932768942173129817423629837318672718321369182418283978681829287213178134684716938412764616897468467984836832921769276297321713291376178634248172868494787172619327281929612732898248493189162464184898362176247826393863273837298672736878289649161947871747468918474638391796283918198796867143819831913819241694276741213421216838683131831819672372124929296123261279618372413268172461796469497346281393287434847474894894724947169393294639143414982369631497928696367961798916124742198481219671936163731789348296194272134393629791893964292978986183963984316863939674214264181714192638389386918328987349462127671461414874164897838181816383824743267914167836839719847629764967268167898643469843634761679321949897697474683463724921613428627974146371423242892964276967471264341378496973898781484643812627489294974814231813162128783219634263613481974894898982437187148346714278123629383234929197681486742684378632394262341624914134267317896493463987689218162923929283639242486236273492969691937376837391781896891686923964647674831747461272121616268328632391694623262869316891971268427938428269234868124379693432719846769789246164963747867473168321683134182814978348163628231236367676467378146462426191781861738191736929137939479473637378143187484989763474969324162916323837417147218179746421736813216291429196469129712193961682714682162193781712146467476489392689312481717364697694787682463724183841916473493984723912429147926128934647929398171647967932426342878782498923898743961626342876172861237172129191928182629849428321721383236348947289397183128498186497373646387976269194218789273723284681389271312618476786281724938242689246397248216376429431429863697138439246327879467392973693174694218187392141434813431737637419319191389181396462632784983912696828768478393672169686139416472634768183712129639381371461863861486231841232698676183637868649476179418324681424896879214929714984696232121323942832921368264941721769637129176242848638289367869478942898186868479129372727434239134973243983232976782691437364287182673948789364396839813481324391467298384618734393681472494162781672474686437269439728989489812194628474971434134626919242468792419121347424216264746248269486181298329193921898937313193917843219762162679871312924919421834824329893972624198178467417176986296873726369287189496234261231676932371891484681269137968768138693246818917636396867863232861979641394217492121712169398379627489164712819723431936173179747439796734826742919673719791694946284697169814986149432693293729342719287836928148396261342426849149478439764128376928438721626464369292936921272486789239836743891819868149196798269742796123946341643713474739191232862878139714763916739186319626286234749617372834726398794679612848347632984642748278276434683964926726367986176976486878348161279232671437981864612821621818219367892473846294139893136174634239614169463689796976474186827124323289321429639413732821918468474193268276142181686194868469487616832763173641712491713198429372161826171241869367637618621342362876913484241742368342131264387896972418132367384849873767932432936948413832687417943136792171637941371836727162843428213948917326434179479731891396736142397168964918732729738186176418634324187846736823419163898496189373423272783838131617627686382192862148218367964378949491279717236176182432491972767941327329121821976978326181681831829197929726861739267676396161483186828786131386729139813192198691916898674374791914724643161631239126871438978268736176963263623479397346841764639862823969493421628724196176172681827632639676174323613173196274289624742989861871369783729648917231646328289436389483137614862847838731623814923921612397394247874842496163249143628967619674628636414261319392624848694968927214262838378247862631987482723839272392423198671271839278641693923468473496349726961916191642938396464213439317316787186964264937248973417938167291714678263238271872828272714261473121282691614249641736373717632329747987497291268343612498139738317328272469148482787163632921613929321879848939483894846328917631428316924879439891616181618369813741286484749716212316894279183414624263723763687618797462368732643834391878746289792984682467169821342421913462489128193121264121616161286431619346786297963737817832421976418497898467349623878328376419172346268347289498932789868141938342194689136942468263496839423287846243734643728941892479393163914312491786382138686241873169326714319189184212121619213434162748438769297912616781787932323472146969439396383873176124847832617867684873186187898687149892864248782847178694162821928912398626316293412796316268964971676713716812979794182729372941427136214373983879193647967962149142896392727691314967396142974263434821912474616942369794684261318781494963681893873648694291793178612494217417464128393841321216379672937146417142842726386821891917617982414381467248726238123628232129297493837349496346724367973129797836239767174971374698716989841217643489847143134298169261317241924271732832348412378673898471682938363626379131892193148919848246292621432872142314874123436797693827386167231937936942176719291919891423192641282328632317196727692749432691719786761764873879846738471623237169847273132463782713619814637969414348768948267643416129493481919172147216746212684941474732376493743983487863194372389874797693749218786749716864373727386271246376764684892917292619786968173723436286818613164923419737323873197323963497821291262832392491868764727478371621794938461437819674824327638974212724121317624696263283712478926789614267682324978749682712141417672197462419468783142938634639167342741871973984738179147964164319632763718467898164681287936437246726871294389648928129187897126717246819194281767612124916782428283296213876129267679392341982967964139424918346178316496149743231361632761389287341324287868498128237647832921791689619787281242931972731767671689126328189817841292198648282864214716163932861248489481623471621839687824297821937314192132383183236891849168272962963672473467189126217871838369431284683461841379148381671431293186374939617368164147131236141267237689264271781393946843137629462479414638346761373963641636394749632737426324323617878912462949614827126294614127696794631636743463846873148738962732983816361741289821734342819343713127418939436947878361929848248614629487962682683874616464623747861797417919182698786213634692793928348272694896967841694269797634829689713183614764863282462376171498921827263148169429469462412347964242928172979848438616973418421742313718724341648264127831648647691969364237297898941474262437972326464134142893632129343248739741631849296932848191967979723636121262916318923249689832924918163729697624871269748467131686764238187378742964823419141736487374983862373743218471283642739832673283678393746324943789848298421287847929141343673417872429816496869718389241842392391829786239189826478176382928761736173769317213947989421913619643878963723868681648393976928347283479346731478461289864363436169817676134219793762694719286341342872614131327262939316748279736979898712471746718618187682167898461673149316191949398384141763974697476248496467918313137898632894812191349618632631364317146236747316926149123174714614671343681217213623496281678781726298343817986278127642782896742323731237948297179789627347363714237212183942973476436496219823724143162124121426264642976364293131346836967464978716376237637818673987498241386348927462697439378698618161237691428641391417932196461818987896961289767279687213626414743198974941484618428243212639271821978287418212134721728764879826986327682617272417826287913631479148927398946148492674898678439163681842371989362812126789237428186369281642838184387184167962863719269741961398281296769438742816329493237489872124248212178437473142841867949132946274371747964978641476397683241867439624694749197164286834134612497813719236462141761786917169132819278194316932376292329687463864819782613928472137862989436947934879267873416172384969879831484134817892931938691486914314368482462924341868947681969192963239149381818498769169648438467941893927386936974179891729673917293749648372761367867363497841912971642737412736847149231792348128378917314731461481928416473141631487168782397938371936987698684636323147464962462637491893623869173264168469686342647289147392878697894714163131972646923147164769646134129816934838976172192168789784142371781832136934372374746383983484871941368728784936289784936986891912197637434124742848698618691274393813879874242138163289616272172782873923171974649798636164247346874392784623267629462367972693987698168737249872989369141282427612361796894383987639794671281436832961239147293167469239791691684824346769863737369712913474831684263419484218169723697936148932146729849479874173169824937431861674941246319817837864769871839834927946983273971348742426269268621278187689174189129147279298471838478437123649426412616846838938147343641681363286361349483231317676293926327818439381372826747467923712729497124262813643768212436872864694148363986926176278391643943824628694732417468923464621798781296929613971872123847382798363731472791284817849498348323919736941328328141761286191689687348431768198983283641473261494613212868369893484363182439616431738974613878782383891971736812632698729276329496479362646794184683793196373924827198693248138939616241367346732647694748193439183249368389864178296781827171412341768634236317298613737969278326314241826132898921963816716176831429146436949793168649794262368496486734167214876374748714247374936343934879426463172987319692679384212484364931764768728273163879149486129797489372796471342612941617267812463171421261239423198193897329637313931613796361624263429786321839183472721921218276471721796892313879268474178186314238387948781269171249742738462439879289128369737641248261694174949394787278469369717284937182969432389484179878126361914126916971479363129784141271863236826197924832849638149473621416193473728379498769634371987498976194673786746746743294927638743784197378489312762136747279629382438476719214827698287421398762134378178924761328623968494396439862691474941924179124623473739268421484914737184178282143126742827671968969729218138164843139691218436367462894748619367916796834383142148681629214126186346474981968762836387424126373489191718681643646179264681739464971293912429839743286797364719831791847492634828636398218182967298471862798789363879823248769828184123292627137686464294871697167141784898263432474268627374863148917814191471496848314627696984134232691731429394617387898396743864789712379812963182974947898343743192687161621816921371931869831387821791942724129796481231284361817236391624289792721636383732387373421763179614737479134836286898392383146796181939214737138493928362361941692371784293497949619287871387187928129682618968624818919793183169417379692894739698389686286318797186918641464242673474624168324712796793639867931798212867341396123924961963217292743274397839678262878482838962628921496468264286482949391791738938919181216171783641731832471949479617971487143619829684178164396496368629713643137242427272634628798943634641476163819294729826967349463163769163721347169682361739346796129416172793439732764813846189242781827232791479781249273981319618284279262426343896798187916767476727434812679797423961287412846286739612781791632437613686736421713832834379749192696481724819849628626197912847218414739349373981784989128723641278682161732879693268317318621937163216276741214161727986893912196747493694721696296948627474641349461826963461827942876979797214249623623683741693676483863497848178286938273789796836312712483482823981697834768939416317461217121897248929423176794121738368797167368218613876381847483964284138261287982396191492813676726132392147473914638128424127329847236292673141279237193934716218937269618741892326812694673281791837627632848283621371239872768763464372982474292479412672396267921647876462739831918673614183132742968296847878969278493963473943628748721219172874686393919673248268467176373498743917839241679831742137326487283467417646719134891439491698217824326147684349136814148264923786814647871237671397242789738291787962362437948217189149467898739437363416931642731726132827846347273817894616734274231834231736268497439727894692367141346294298698347272634164281832872624986931423628694828383782913498374298464297636831392678429187916437363719342162631392848284634274162649194379362961786342346748384734986741834371641869173647482632738321423926868167974249627232362127692131784748493468683923867491382426472476124373727869292367639418924767171648267629148714828186972483684713817161919814393232487378916237131243129341234976746714242314194934186169819793612723878437381726381812492343476942162612372426262493479463794193198427893827978743814914987426876482162492373491379741634632138296489329316968764391986916143846989191237121237846296873418493126842896412161867296491726232786164939216948642614146898383237864273128642634387183286392719376894174342798362986469816432436927324217212784194939326182816293862861312731927378647428343269672826384382137343674834328178382317831689142842894193914132319213461349871846328172981686718491927198972942393812498721367423874231989169678761319732197871746781719816479231629741429167341941738423689187916381818423467472984949169746238489869849843836917326363162932987818479868129483136989219473282913764286849671381363174717471418191823741967472314967969431374363241281679626784121929298712876974931214216894892684184916231318721676193731796929141826936719487941894618986763178263938727671219161748947248269174818297987247198928286939686783698692843143128219491924379713289862938498474212923783764927324937971693279387916292827681964147868787482162649287964137976738969848769318418383468178924943463868678169346184249826812781893726283138174941374794141262836969613617218486492816726236726738439684391421798327186249742491948264637878396237636482719261616471613198678432642192632843429191921249413163637817324316738236239489163786142314282164976941298183242693932934139683946263182713281436789412792781286382894247678271683818183689736279712363467184797678796929276891794928263279368918286372983178742941898617287467917671373471864296913681962928381349149783981987879896989414869747962614326898214646967417127281383137394947431767378313941643846124263474361913746239363869161212712749148178134638468317168486347973238932632423148927362329769814249241464393183189743276931369123486317691732312862968963246982183181329281829393164123497878197378919848638164268179674382617916498686391289829814392486193717263947687348967681493274738434168719282917871938341814612164241926838279197389748742312971648139869682949849218273716319723918421276486927619249479414917363493984643138327243437697298342946738487121987647948127146972391282637963621732934373871486396782471689862134634917839418697821698126389373246238986761414643919741296763478313161989376481291924283482148371472486282694279747419479792831838427473983181816848367329268783798948678691436869491412426461986981873427312378797464741972384867384197286914134921742794743193243869464237142737917371979764138274386268383127396837487698969634396182789813928937476239643689729242737979862162136718417612637864946284929481687183737382162391412969618379329164691946787983627623282374731746928129196829312947249826828249632872797197928421869269141821721316171271241894347293879869794746349717986438138732791486491784187248673976836142829748238146989274893782826819878327312328642183794131494642374928487398294721628286149636718734314847248348274329626127243148329473293243819879246898646321781921272743148187149816291923413742649634671969631482472971972728624847187848964129313129389719671743624273742894342167869178638323628681936438384843863219728989364938392741963216438128928326324237862383986397132839716467948671472737697397438291839398427412138614369621876182983981282484787171683796271729168147938494631631461239173867624328289127639427641393864278134737471341384687878698482391369239731678492134841416349417981794793796828421724931983432892414928923168728687691939686439142167463971494396784613129861927123729267284242432194161986919762641743142719861913934367927478398642827362782674273124828196268979292123948312138437967497238727627421794292614382464817313961829294818947173894734398382376274974168373894292387829696743848643279319849318928649363168134131246194384782631914689747639173967838193934271264928169678932438213948269474168962628616293698639136938914796312419413978618749467679282614832183986261871982929631618249494197396148413487416724794194879217843869698348247287131484679189729734324979894218231437494289382794868983412693412968481849423672134369396791683724938387264827861626481478416313469264943697143764897697398936972828723171963971427182194393768684769291747869474837367612764793897824312437823836298327473162184214837628623236146416984692868287949874317421384324292373694141893167328682318294893271483743279474818162679163728479394781243194942912791384173793237893939286392978729736936168486916897134827812167267347341767878638242369279894364121324893276482134891632379379192472982817838471646924747372182131278131674649734632761876938934167684382836738989629864237847646497438178149868786782726942618312191429637212696414292439793492932462628396342143412148989634268129284342964967932719187418783863142361342127681842483413786298471373746386814938424962826762616846319176148976824786962723247982346728789176931981946489832173917268729714346724982786983186862841617142424979231389162781462726738798419281689841248717141676162328919838624189489326963147919172647638482738186323136729168497981969896373682131834718624271824373467132694686816163816839391763747672961861271827649873786139341284961472972712346898673917234891794712989124813764783784247871324364632794934616238728398618917128689363168469263687469898961797281271438649429621463171378392184821378412378482823838689714263142382689193621986148139324329897437978216282878168691712326497491392697647271412713186712142676727689686397941764219493249868191672923474989681261491324967142343196381792972729217924964136121692797979368317839687126824816823293464674237146363721616268274923232374386867969372862894737683868273628468721721982743672381478436729682343249496924627471623239237691682463263184249694279697631219826974138674134168136493687894274137878936274863698143178192848438316723184381732492891914276764382486734362932384973649624241214126848236819494797946838134672497143126268148717379431271324894617238274817174149421343637341949269687917279238324317843682463482728627176712879679348797317649734934789732729167384371362987148647318279498624712764378937937919712781876316474262439737967979362364979793216724123141921686949769237624716963479846969374979684743824246213272649483614676416936721437614312816217278974794732923136818961982926942939269212472197364184313849472818431496867878649148213193836937237612461387438323468289724649793234316321383986818238218138761879162438318978429132976271847939782427494631383234827638724687289283281962941869863624673691328186927389614278363186798121619126927938314141823476468484168384121476213497326314747676828713831246192837478643194646762181617286734824349391947419216893267613484968313412424713746168273287141726184984324292426961734342381714314246318737329261646392184161241871247913132423416749468316323826763946798326461486747347434387974621247694371278214273763624292162474792821726324967469491241627641297471729167914982472637819298981642869383728163627618246912791318379823947891612723923841863498218439789491343218639486469879716928242893819314917974187287979474264182324726298637264797823749787131923874382734984836136263938648696867873724813181236824912129496349398482349893614728248142678768739346916792793628131374328627676748298243298142494793813842624236431819464734821932714129467617698621274634948738234719473698714371298713462893183876971271412146731432431476212941673196134974398419267671918237126714632161919829717483679837232616818382713879646239134978921392621432161928182741291692928239423478234261869261349717624943792847867313727279383712717676362369246317434267616934613843828639363916387147379727676197382848146461494897943692639613472698214627843213219814343186287264867464937349737838321376161249743728693972786987986836361832864286927692394271638193719247139743989629717349628126984836398386136342843736414384932979462483628389864126716319816397276782379612389694342467896384326372481419492474648191264913164379612636371384976419728321742813134643236816462437473697639324986826814189868342469326192124747373934978797329184296713643476864842634769148427864131349439461683929848461231347241647829217827687637946948341828747618934964968391971329726169428638347183296187471783419474727278676973843296761631497296726749697189823417389292931824681793619614376298782816464749679473964626873239283148247896127176384621217847914627628787416414131826271983239826964818347317943186167173479418397874798491369163142384182346284293798987679624929127194917647918398747218678439493917438982741923946216318297421891726927276743928321327934939784737683636368343489179638181434324278417412721728242628734723932616769843817987179782768132347297397681987672839762472624963728929314863132728631892693219843264893276483193793894798368167697189719798761674631462363769321293696341617821467838463674739876878716246878748234698497876186272186391389783612813684846164387983468691742942423794639276161463721671972128246184726834372841492798417291927284923616239824891261272639693428189497923893762481696934848481787274121342763491619814942313647294928734387179382373243297964321363421289718728328349374373932678247319682472469786932947693492947814316947432937631936782342879729123848313167814316186361689132682474628168121692929872414647262676419672317987893712197646342917181342862373671964617612498216121924941734131326921942969239648267138328137639123768673681726932798274312823862821731863161218184761839874149426829767619792763193469314816286279821698738413147246726986812987694712328281349632731287823826123913989392813781693961381437432368492912739867626934913613834383616782468163413949687616812313681497484796214284928628172823879467127498394629614392842189379282961634368287897393798623191284286296878971292976241987839718418324914718781749414384128787918678364868171326394146483612483679212346823683471279328194367983481361631878978189181636982493168697628626139646816319487679768781819781262683172391327974297639272926714691937427128439674846371313269363737348291436481493189781789394747439623142826742314891641923679281826941312767836217879783898347679821489749623927923963971682376969741746926481314826436313879463748426417172812939823872891874947697479261367967378926718728383939691948292974617247963426837426913926843713964218289481814237149747346848241982673647491247278142793739693946781942943681873842127321916141824989864786291276398146147921836328247871279167384398464383184973819849796891464123134616728719618617843821719134948396282189371246292893787624728291679472496892192871317497183798973121482898782927474714929868437182396742427812967867691686931429193413684874839294164286862132934962379496763137263767426463939893286417427198243476931767974891923632639747681434923274343863294639378178246798638969469718486963927679189784937873231916743427374946291346781439237873876948676894687836936183498619646913269496729276487146734393263693162896242747189791838481919816378431796842684826348161981287181892813843428716747948369414674719434124791713491984641789847278616427137946947816891949689793792874172489629263874187138714673682864949393242793937184346181618312148934843149821282831471627378216973619791314832413913841674861832963294789831948627976963724371737913474949342649217412626841376191494896286939471918326767126478623291287128979481329278961676261986163496847824362927914127384694398917219879863237678931672892379862616826437136872139478231373213284648136984394619438431392691697962867692918686839631921326763919231737389691871912424249136814382926937181646938732869372182341736286898128389134961824843914634392824828348948126913184943783763192947398793821318742869394921383749414697421789843892189417136918679294127679271813672614312786276416321916313417923864689191431763871426343612312947464613461676168628286946828131279687272383682626737683212897839879698319739496363418284181917878243942627376761481781247284734743196138942324184913682413767217294913698791361417363923423492696427926943732348482497124743767426962369747973189432928493781839232961236278638137481461873894686181784239686181324326174218346396986921948634383192981612617989828678278942934917967842161914787267239827689262396148182972634393148481323749482737872174379314286841361696896764747961396171471379369183123169646142921723174296386296263789493484831212497629297194723469218391682626723484983892413986267348674874694934932471632321621692341478142817843191214863613673869417281894676734873483878126243826194918364971434978184178943947897863723728469469749183814934397424283814179369637371867138931437963789276179319791248368231969878767282198974869734747239721627874986967341818389187818489126938478632689673637461328483712469296164989496721926286349249136912767476739247143162861874717324264876246314978784839381968246867137236879816842423291687128284262689197679212946376398318687963897126312626241729832767812818681839263629424727136293124368919483276743732461987813939343271717379316419189189276193929627189478434372641831279462796849391968278769763624162149347836824934748697631263627494217217817216373631619186749417294861921642718267342361379898613862949272394764194836283293123261341261683979238464874961491981679279232642324193494279321727137847162826821786317698743724834129138687183683928967384932976214624312173797864919139721624291328983194986292636816712987148636186292696269864936827294171479629692168718931276321787692683616916764683731314281814727239829893763974171863692673861916428714174983782892728723716963193862329127486179837671671393148141736869678929421326724893184161932498782342389467126312431616124241748636838146273638676963678163761698793898269286498962619473434731947319291691891839131794643979637176894367673763832182749613286464782643821328747639171463632949413281317492412121626381476142914319762371793298721219763279329141632623862462724379819146247819629863484782619461874261278768341731849743789798236476796218734126728319476482968716293483737671364868384732671961329491494989274696827868262986718784876728146184164163494243239619647384713482432391341643268679896394342734628931487272612732927414643939873467147379491374268232971263179373832176137129847838219474989264146471362794319729673878268647891946981928276424769397431642678979726849847638416923272839242764198439479239621974982796323614986371962942631637313162674682679483782719267968212898386179892846492478132392736721492691728976413123619342416846123487423716271864193426491739132642672416147474632639371686931629746834132182649617817682763827834643241476396241217373934182964272896713432486427438741483916472136432361671924348143162484967317473831219843819184323491614794181439649439318286283163616196741618414368141628183928983624184128693296324921849674764393432898732971961673626141492349418376131389393412136861619731328189416131614734981467379323421982971393942187478189796283248489697361734218163439748289624269186149846764924362131672891917918137826712983748264789898384216974162169141437132639874869126284986781913964987324639138296384917281413194874928641891696329869186391714641968628371217379318642636184972312643714139476787292321939424213479184694783812362971638682373689794897681261789484726496161648329686947879349763967413292821872412434938173647689639898628919323218714828183634898763793972917924372178198282632834274743987173186976292369714928146826839484929476272148439471347678149718374373918321837417364682797489267239141478432848929269218623929328127164781783123824748462368328192679361868293926193417641372861791424219139419736463479489717619371967686148938978687696374746192162718149761819812317378497286249367478282391746386247619867614938162462621274783131978282313738746743473464961461689893982491798239193471818729797181874327823238947341712741369479417481293173691371894934316369163831617812124971973414262397232632973612324372679761912632981492628461424861816327192628296831417613196919396794732313894616748782327638736794346837926947123739189821986843627824936392143167267324673767923923231317416747898939286847626896914962136263147176171864874627317169897696283969631834264318178386719369649616382197392647183187936163692848679463821832742826321286398289347146364729872321713129283617847237678271698268473282173946287394871212942686979831274238739846827692846981919674396261698692182819629231291292649126363194816148232978979473791321834686734734969786986834718781637497184348784694324146893298943676949712849843947926913968191892186361949312191289717326179471896738231863429296423424361479726191967678694262128792681749678617218269318174978683428696271486231271928376897274369763298217682141783894168181619212629628917191278678987167212383976943431816868978796164678463834627983429324832721314689843492892426794769628413782138187624292874191367971427313719618413987283968923673431648278287371796724812427142346242137671271293638783628489494672879671723731892848248348289829864347943868787674712371418481348194179348698949818191836828391282943292829291681762831386821626134147476289367861879862393168384232891629194864986329646798132971948181867673761392374946839847696474289732631214123846831278461362743482693647674794364687673163942812649379837438729749372728964739198437492126493967287291373727464621619842793982348348236489137897924863121361329714373219717896916436816489839632646926728784241728782937472623263798178217913978136192764619191649391686393791649821379721718313432947631962312643161863439638468318721623474924637914639174849382721234217896919764246193239238638929317614236914682967961491782823713181717284783238719167393462979383164698379894864141319271931293946727681719861729673797242314983168487363969847426172383421969891649239278739813136917217639239894128246782138796468689424276241646281831918728978493261269863978191421746783434921247387932689463242348349187971682397327276396278272649269719391392193727963129834634341891676798913671983138918941238637287262934391819679787434381214636143671368184784267312421632617838737498293683962736123921649687174747684149739492631348192921623848497424292976913181926786789634349728419397479131738741274369264617191867846479749793621247371291781714967461923821826198391962491318347613721713736297169691236947262434342479161729783163982314896348372163939869318694283789769798193989784691321912719487838234349397673813474364617841282362496841861427829191738934372979618372147173138432919672421437614867182496847641318616496718492626819279743476413164147876734248963179471981963728381712168723827126768179494126249238396263783176742896731737274219769461329418716712682414783183261246729413147617942731891971364634374629219846424394329832976876781276137821469317168673276976496982393786382362414163171879649321363418963918391927846392869494727842823238397486492131489298392914831712818161432314686279729428298194923842686326216829716234846216971464347138678284936789634124842674387269134936987281837178398923798726168727814621827931867174138684798436163192937243968371381791476242164948191321826319294949396296916896161476389179364732961987192764196324828649387276473138496424674843249147923131712834314643474173493412482439181782326376786496974926786849181612731316242316391491924234817371921493983876846297131713627896321792742146381846217292386419471713269721281868128682373193261849391812642834179712671243638127686937934876136898912498924123831464648489694281296317212819848161291467194621279397149637349641239367231289319164842491828763189492646418462967984737412628241214846276178346186927173613642472183786726849428786489321837438387132429217494629749273497127214327464169861736934791939843231818427167697294686242923289428692891636741471293431749317643817132676143174784679734312172931983431981929387891627484864761681649692379392363934923436326823171323213674793724284397389426484927934639284878418318484829163927398428649712628747213972321248762381487481649483238373914198142791238783934379614342179613717626184921843712742712814278646239672718921491692714391912371831273816368427478938194181879487347192941936891831327321723939416317467427963796274836931917371972184987846394241416134169698743264761939321898467818289424639368473742793829746918697696749821341646946921392418461632396172784798697926376169846127174938628671429823842463973271261464278492493676327481316712316738979841626123721732729363982973864171619419748164764873687192126742176161391464131348941249314284879218918132946712197917164242842913834962841878136414979848293893478642849646194374863214984363984621761648613264873149386921832781947289234636312697413148713143643646821679712847234263412182787396292478373479679491434394261239389179683727471414296984146481376293482434239826729234346286764671741421968916832479898163413418213721973721943431987276483162317439261981871614312871817349427383273242837436139618263689837484943191726819737384947639176171692987676938739842983134123472172482434143496734192681798626724398643879742623837898397273816967418984368678139298274716347167424362937264621863182174736782843926787821931982879214684961843686121841941387987617127274363486792167846897468427287861249341783947679464919124892824147862183219193984372137261218798476126179737834147891692818697864264862183194396264812924946946931989371634279642817982426389276213134989747698479434382793139398743624274943173796343617397496828262186414647872412439491869341912824214134134868232319618419867818139849147697127613738373614387814868187264891412973793787948328461731321769623181891712784626873642912494832672627219763427934824869468683764731829294987943698418961613761479436713836749437383462363643836123764641216281486863942693764317468696929627963439683634321471868934646319487312326792986297634676796816489832371947139641374379893723794128719261482973484327362837982364672147893294861962123947217262832394797397368791873873871731271438967173282416782827874827623718167963616362419181232679242827891647291468626949681489621419269721616262842731879718474934241893167194383719187826714868286329836473764683831927218179138964916162696173984649161326183698439293962869621481263143183464197918137146218396487394383934747282496237397874846437926989481471983923947397398169393269487414389679431324791841698476498241762642986128767839141671368784823416437472986214618789317821867821791928921713827212927923417632631376189716314293796412438613171362697398914374987131379714686369642836948372314362367248474742436346172643783197369239486878374634296364246789342926372379684824937234747191673414743821782872416286483894763126976271723831483847164976131739824389634763462797836781719687219683128324326869434343247241381916712698631738632423838173898964347619762474149134187396746848278943982719764734983942918131497638317239292393292434183429263123486293263927496989839718432916321271724634891973179721421943962138269698617648937296984274183214267196173129491673784169168494374791347493936384823973263273496361934162938981646869248632136824176972786923919297476924831741437619197916497384189476329638614682968791694789731283839878972147923863126393983949628181327917294784739896274767297293872468138634137483432913238482976239468426439491382193748183168798183842923926394161791619431673912417396926919294839267978739618491976212686371971764246718787214323479686918917697469278646962792429239424123717962973849476141919762194737182836797617681932314171838916417846187974826368272827938427219686326476423764647274979626731631326838763132486842682419321642316389238743784323214676283186372167197293872138176836787321217692914124236373239394372872437486232892678347213843493291848726368791796834673812826782961934812841681383463867696862473189146283424724647248697137186434123478162976191423128943914637693782197636231261276932891398727172164323984871376824824198247191278929849182847473732468139789839786372494382746421467126287371292173429437347269173248793729481292328169363764326936964873218732826292979468346274186989263164926731372637934268743184298678794697319836362974139383429683789493131871238436789267643748183764783184347839683764271383893781828163698379161789761914964692827927187241237617312637821243197914273726718749231364286249132987243719381363967242724198292827171767298349213986268612164721892984174871874391897472478414972983412638294324781434689729194161328121234638679642739728182137981863147671781898794273838297414268618643839343682823289783268346871293728421391283192379739824739827976416947914173273734386912683632969619823864927314376747423161637989369191984941346328946437161427169631372867349689146734328698134286763423871694698314678381878692347826973487348423914137871794927498618946789282384723838463486392692768313132128314197267217984243286341364649849681367984928983927941384267123437879718291727638984194173172181698139143171424716761439231826946863821783871763439826792739826483481248419218486192167123294318291261867642967371978736121394124727926439423474869463947961671826476141384972182382867319176161362383976942163678137176968963748373971637317623132743138612193914283871749617342629389262831716163927273796121621232416972823974247371732418747183193237474823416934921234732843273879476864929179142938429494693291718976413164638637372647696931364367329876149398474186349141363816241824961432826423821287941914374837942369296412318637421476176139247348798394243484393763617431681786423249764732191481949161981784814294976278429727164373967989314183141482427969387964143147638792963843692843128364196264786814897943286718949169694343969764218741376738984643217242681682674376893823648939794364864923921381962986917937483491684872717213289379183472981718262376272838738926383231478763734897464142921234721419284691393162913287197913278932827829834317248346196986237986767371713479149214218917829121949414798243843626139486368727927947484868761932817692686836761298283919371987191936184218482169194749816438763241841616964838797167438612963836797931963812432329712762614796328432397172123872962489783786378294872424868482432167847846294684281478712682791943482873634731473191319316867194636768324279637498916268163426261634327389821614394198961923198213183493121383246929214197629843489846132327314631826781689697371847614147327148646749723434271392948634928492927491847676729719416372197164876148924369264721916323936481963974896261421682826139383842762813162649621637327964691293936864926984848242312483643949878632412818393212676437987686787612671963919897696262432721727689463183419387243298293639431249372769427161717241397232928494784632614178989738142187173924218789183867482328391378278613737286416182692741296747421696429163629789374816176937393846324647847237428248698273617972473127346836487937127389763476921813486743967167614383727398132637641327984789319492146413812786383487328718984921262467832727682126312467828682164874949718717931721768327912372738216489843614741647463686924212648971783438141932492397892326941712372739167929494614641987632726192784392137186342168176168169476362921396391969826263134982938329614234218693234968184236492438436846142341494714638394393614973437138314983736941487432924693812849378647619396487871397678292387473781838489242679697286823479427838624219467917432673213717848261291869127316494732841348479287196146136197924297697282479474634826828321247219292824624983429431686473636416718369128187472712781326328383846824841291438648724234981927241219318243921346342928914874832142879736469128142169418679387696431829471617142149731683471936296492317816894324184271418439494717846293261681723743236832129281434967621814936123876738943461791213697891894618368328281372414983984214764182679343234636831297983914181718284132142713249861361942178687191979397464734693216726128271493241984216129716838767914396326739423621823196141649121261943198737267943981314981627381698376972479173917986238436236139671729864142671672132784182962314961626478298618196798612193646719643797191217613872874242327673786813427617386916347846376987846373714818187317632413793616736461628973768247346179494167879143747893781241791364173674324173948164182792684828187314383723672397412861363782918628616848983786327978681287394913836469343678676328363894713838149678248164368396342128989346789162624623127194276341491494874761282489376379232948697216716413926787621694921476949142434984278729194636979692863763123131234916731214698749697383269492973242761716283892696361426121928734982892962619324243963212793216197462646961929829734691983827267142486948269428214818283129263936194182727419691287242917478387841396461627141391374727419134731462346487964892183829473732313983639169783164264872179193729427923791494984832649161836281986497693136181638691863728293748349296719173128139424383241434131232697976893642742949687382917384363434327319323894692847929473829742926184234721371717467164198943149769638278216727893634714784298672346981829468627898913914734636798243496843874876436734839372618317878472142618432783147142364967132712921949238912121397967323461396439132492912372641961832369437841818132716879137683191689832394863836282872392718931217123927123943412612628674727873641819136898179713214983724394613716424796921837842384672879296863782389836982373972346982823867127292936231317892471362832814632187872139719232892739791869793863813281648728434892632614932796183189768473496782942981849439837192672148162939697969869317471278217684327674714196163781923717917893926464964747378724967872848623234943792346746293868621713434891676863831428731874924623821262849673491391727162674239426749294276313274318463186134367384321749162381923863787131264393687631268196471268421897831216927372794262626363434849317182618617282931872786138739727284724837194849261694827618376149196129728712123279296917471827237374873926323496367341429413617978286913649371819463143846349861462464938639289292479361898634147921721418792367283217673183747968361318467371916496472738147983631971297878734171372436862326263126139462696837493469698189481279246493836769613634742471281292789691737148462676739748964787863241821464263191876946143798673671276834242636932462317496123261329646438238376463932673242726372318968281819489493946294678973419638272946793174892829616194396267641928697682164242629487643496836821849379868367346483873867178198914393784839491494327197963962319721698682796713939324287921474317318378179636823636392172862343798386271678276841686791386278298367267361293893712787148312973428292892171297429436386946317413694927942474197474728397127826148693742182969368739846138174946918138283848343261861382978373647379462364286183737436262894949814162313496164626914783832736368734918384371241437373169131697293636313816971791636218194364732791236742417416341462736973439793149298197394181423932979836747124621474732624281321361492762479879842382821348798621321381317287989321894794298614739821714147464849141637371968794131262796126378728617242874941714169121279619271641739627918194349431946279712978389867678426729431249292313968489214813731679137627686724924769172964681439683692494249371212869646469631429846283816948489378361263696718491917682693781273171838179798247942321847264219639384342671798271424361721646472364186397697838498963673891383271281971724861972967193138963137984794392792478624727423969242968986493197628424987278389382621624932491726167284784719213723497176872949769164291814623291769249792323171642396328193612679367468278627931493169346419323761397979368737912369376896974934391437687649368346363413132864948964682641674972164916984369312489191738481672342387923436296414128931893693232473127371831362362748978946439487298613691618632894171487314912713794182634984396274269728169643483832916383217321249613294891483474378286897684719634682619328963738947973672316784868368317329379163618634381297698927134691489438434938173683716873898942461681463161481842128972831318727834239239319182838492147682432368732863983179394148217872893972987139297182398694249672674762169423838762162642971634962767831347947249376867123247912489232794972347918164693149619186496132738624323946136349196164872624263819179842728274127696462728267417476913721478437918439241381483767616729347934326867279298792816787179121239318216492396291368641432394783984623629314969487971742413134762612721496979461239182861976797313987619127873691279437394274731972793461463762129179641498469268181636981286491494792316928474964376982387914824378381817872127632891649819841347828472423947296934181724924824398136398483297864743967296393748262989248647328689696483264136387212318173731961816317697871617947187146393239161973796919284868216362967373764721812321626136132432393214947626426341323676914317216869626879473282731231424931316264143497182426268983461496242976379436419671834981489841369126837864831714834329643864723987986921738618476936189123489398729132929387614897619489181473129792414619272672641317398287272793789762363948473721914371342476974893863613914971734943624193496197248384364347293124868713464846862192696387121639342739242179724314697868623917314916213786267984343427894638234616712692734784684382816838932842862316361241981468398917982876746489147471896747618239294187141378429427467482913267384298782127379396968484239424728682484676827283193192387214721986181834787946282416839768621728461898624261676864947461672732491798186862323616876913978718642684396181846878463292421274824793138384929217381612641826282983974846792436131728176423291729474197417286164123187368243986439421267294248167896194319673168129831734393843492679798467241478426174362914682471372727486878327481323642419249643469892794164914324841867164239346389848431712484789612791838629827678267286984298923924861942917494261412929196283676741896832636836941468936367976276213129139641814138427249439198171961927273762171247873873782182831978173242917919831218679392741283638493618683472896329736393129426831249479136717172641417946723194794674243179431971937476483143639131414834974734723784839143471324173238317962414612924213123436486741416769819278493161717921742387972164834231769494781769192876436269878372363498383487697638969627831941324363646747938361817171878923846873218169814923796762493428273723698624327432394696249676793897863191647237678296487836242636876469194648769317847262314834678362314286948921347396878972838686894361898961347271974742918731314242469673146941213618439398374969321823637137619873282616243812476464243746197613938949469319134967138213823618486863613828986183139494123293939493636429478797826168292762747143983463473969643263426241416167231696189872689393649634617124829416726234923198218464241764962786921793283829824316142749131839698984768749282896194846384324264346176274148671468647429767937934173812718738726263248917979843249417316781727296362329689761367417379834938986491929234984137214312964384968374181362714143983863826432393648368146231984743127121486438962189274272718283879241763621931314184768984912798623961748371284189782973419412837963641926376768479283167287129486142169768972172327692781342472786141716197398643198218391627141794817184279369413792412892426286846741689213898179463479368438762187672127438438921361923819632696173467614963412894932816236148434373293963178638217627613498981262323892874214747393848198967693813723232124219426918262624894723416368948324143947436784842928232423921982836982626484179498619136328629278464187847629614376494383612714797139826476818283436486974379187428494736938981219742689181482743872948738197169461614836242678193293629819187821792163737162192169693692312967638969264642879168196712369463646823761438387878983826397361814832126846234719439194867897643728289876828138638138193232394343698129284313684292483213167169892781679424318961432828717827289868927879347939723923167927134297678324874693734214239369413284827694193179319687162647686426727391463687648939693862434898273127431284242492482439192821768161214636329194942473187878738193631363171921631232713823678761468731737129497949287147189387298728272327831931793437294918937147213798319346898139478683424267824671347491618921382816164689469194689181749423192876748731272932397131248127197192937238186264943879841787842893931416327472362769378494934318413838146761721823939469296186828768614319897414864238648783698713786839376192739291319324719367679236368732349242824796979417683436424968298982768626126348761718649732728934928747964767498493487314146712498148486468492492183631738613262938162329382797374947698937384824274948681291364192487614617617636437974232319129642841692861832148298218937396193782432161876748142128361213298326248796746483781683821969863618246732439194397196718676371643672147296713231362392847848191246278747276787198948137148614289214132892474371326146348173198124292387132684981893261798696898243497323823478196717324318323964174293146392363917928948482928637867494719269862871276292462383468136948127984362919678491279362169132437267948486764187484764928926791218648128296279814323192848931873746237696262923694273679321978141684393878148487864878341379834148974297236931396828964731213893261842673737431984686286897946963293732649474396713918371769479712427419723483792343929891212893783738184716784916821698787837192832316894817864898619717386242394141831374918374947392681741242361867343683463273412329742473689861721727362676794819837892691362137969682642927649318947473479898343686137263731464327387697187838461816324712697838628343128364717424216491862868391479393161643724279324327324694368149428347487491989718484827341817171473794369637364249862148314726431341686978464283437391281973647297127316296921873861923486317323924136163646924792732127193647861948393813717634129129834161673274862134392124348686874374294248237469627836397478296476316949367417469727842431717483928724168729787289363147281842642936731392481219476891636231968683269283962768146284941483247896734397817618412426191968496412827896398298949813816814287487136716713683698264232973847824142942394691831832941916289461296869269267237916369246461476179361927367813794968694841317217814279742832128379376713461416473732164987629128798471343436384739197627284173127218748438434631292484379869846123816183727982676863767196123191831729847212942813612397823426961374971462932139642198974813121976189463916971749246121928382423791683172163974692634298283932162132367672162149873148121378986723967126737871432631686186712838287213878481983269474626973736984836748714868743239146871642194713616827294819494248173416434142987421467841891673278381891676723646464136717618782784691729363461626871818637894362846941978923984716146317212468431697484743696829412381698721892969831697463471279792462434874348934732679176892898471632716489349234348169847413679321424679163414876172624397376318431274647698684686412696867813979148172424813424898327928489243862161879369369314864169176981678916197814986896984834148678383138186329897986836983749831398913432823614643676237219147296326246984967262821429726241694383767476191768918919194923891384839324787829487646432814186739817949181681748383828762494876892941842973486393868389626317484292934792927142978343898967319394698162938484682149326867823837296276723816843216187676834843849696743612643139698296813191847819421419142782793743786841824367372943647121638471761727894326413646942978373821929324369178176461483896316974363978726831628479314636736127324623861634324841947623938613723868312848473879692789642182172912367671236473916429296978362837827681726294262913921269419847648627696141783827121639473982763181743721927438918927142738162979794297843784149317614879496486748638949689729878243289396271231631647676491262346479463479123863483643984683437919689481649327648624716942317924898284316376916763834378437236717861281313846279716782136262741731264964127192639238946123231741834786216918921626237474671498947362487843413248123247892968468918973936282493834726479716341967423878462498961237917263783942989694926431614249618914784783284971861938318376981929478623924349172689376429317181828278312614273472468213642438939297923196492127129843146868737241263764812749483271814686841486234919491682694278316864398343472392626464834383167427462374714272787232614849834234161267839676739426283431237316219183672124616947828482463972393481914127142694713127126397146132394613416964287386373827873748619386413871317839426376839862963291969614346934612612718237989483739823673298723187126281317471943836313412467939141979148482393164696417646432316261769362973267184282961919784948941386816487243249632321676847837262141242639297824961684291462379486928349789287632174728379798294987134147917196261974198726428963787616464782181324182173868943238913794324174961913491218716946212682382824381742472937642734161274184172189861476914384287964914171768286874238292463728368796489748218628746841846243868146234948349867231232483617929273214392637196231912947862143196761948468921682141367892318246768237462619317876797263937249379614649218121864212734296978346219137327417936142982712726936792763767963919287367426367329813979781423217376813972383478241628217146172798127132729827163182719373769421874137878472716789871694187313787367127949694614693164974862467278386847873141813979627894318329267281923173263276936187186819192617483938147621873278172424198718242438982797429672961278624636341823927472747497167126438496836719271689861937347494749479678969493726272767374798217191616872628314747649423292161916381364783863471487246386963268368417297279494276969842189872147214968681648641327139382383939483871838216126391214287984698297286138679861819874726439732646764736174398427464786747468918961846479837491381913291472412496872784989874841926946386347263861797398347989867329321647271838728419783989424624793219693163268216381349849131932467683139497343631321892879762621379784148787897149493129431721686392812432413769213937946132636318973176892134264362731816298191264872874289724671281481497169347461627137247681381684791793213923628632427928969432847628178923439393813693474382643124389486762941767396269617212873497136418692798342187819742986961721862143616847137943174769363672397378612842419216413749848631742718647247827674687671674149421324276187426494249767426814647819141612376313426924697274748368796927631716393463671727497619867192729148178121832434169714326372967479131861749174127128487464624731837871849694349687389383164127949139139236436427989439473817828492421328476269813631784913421936762769612479232741218347612473736242876736238726832913162737432946286867182489893748239329214292732826189731212732462631861878467173148217317239246748791419729687689498128687816968412926869317196169892684934213718292671471237327174871417143127179461624834927893697984293261916392634381627928382893836376832638698383689646293249293727679431678613639187694726324318691236249279364782782713981294872968619814726243176898789371942864919691674138498974343827894784267136147214317271618312691893976879694943628923674141971898313176413427389387367697364738327624941426329467681373186498374943941924913439676934789641484893613469497246232467826763174739368294729473863217463247486174691391468723248197967874979191964176426861871726267894242649831817831496429317932174641617867681671426131494748138631271371863767286129638984694294831738238749474781762626328781274739232137643139618687961476929129464896416268961947291761621342749842478328362712318341981628246186847878649438427264796342736432846497367937138376841482636187982172932671268189394181676723472762798942943232474634197847162184873172732324826129232917816219213949341979867371987484986484741293918287629821316283476826417836794341347824128423431941748284643879719123841832989713723147298471926373743681842149167847147914347467429876867921287468698989672671483167278493132689368329321931916764986271826478496932137694682461978436973729318786429284627613798634627984321671943984361862412313973243139878734732913924737947293787969237217232673219623826946941384937474642639296979431638973986741912924713684264748287497867491648287861719284367831938637269694797474927823792312672827193131868682971472413982934363612192787346486736349697176237826968983976416296489391439826176912621461273981768479381719487373676869247262472316376467189728342192626898286476946236239169678474716967618396729816829846132727419826929431281374749314291624817914824347196813413983819841616867174328214343163429834918246431987273242971739628189342937629186341629618481643721649734762163838491439142149394723648362382921891384812682924824193149273961286192413232914743643181979372146794239412837826842381421781629413781483863639162317843172492746762878782976247416248729232769728237291621637864984219893841796192814693149826417913718374728318626717348967697132679368638793843417193826891473862461978341381839394623171398193912179831713678781463937487493239894879781296917691873929362896484648787823782898483627237476378737628264272986313618423721934682747383878938784718343846797989318672842497427963747927236431838432896786372827242987394621261371323143967831919642497973176473981619828186174186214797282732814392616892123612134249348232781868292378736927318349414148273683769241746712421846476312187289684184141873292741476729246148673862741739317386164817823916824132372423431618328724623462914264131684264894324187182128632693973963487384946969867483693261846928279848483831469214626479317267186414197683892348424234164169348372876217432164196284326782491938983963212919279271416192382867962121363693791321279214294896124289813169748268723864142639316146467894673796321964624783249832648468148313484986983496893268138981389269386418928131868618297826737467948791942972624283284148971783982131436182194183983818419186373892363169726412616741639821749761679272986812898784362917491947423974984971383812829748468464217648127232694123861692787463737636923643241383248171426274174241937973718214768438417234191673827968298431368791486381484287496393928126818687291237436413673936936924364697419372727641312693843436764396941464386784346219674676313143983481912826397467237396934838316716823816863269723634141398428323626348626818432131638348463636971391729474724614937431376738134219328972171312938182842698163161396816472824827389381421638739643243639864849798969132313628931739193978429321394271282373816917184629268421878326462792427136989647483124232147287342849318274764264792174616963121471348698942687842139791939824874768671639186764378949127134631278187421972324264761424748486187473121412386834797647897913268392383781343971796296941478376397989176278238378248182986146189796748769714863481623927831462982838126932496178243624216917271439123919327298948179231716197371424198413646879491329891464616213294184384789768421473872738176137962464974673786173698614697187162794691616749468121719837914732982467172839841848621278787326286727167461439264641689417281828362182492816727948294343632378931242634618348938297418269838343623784349618139694293646362376787142421948742479696291247376918243184831931976749473678761627874789769324827628648967147676434134148486792913738924679471969396438727412397172343646247683614278247643897263812989616187848634714642341684346478282862928721292461814938138171817137237626831787628982481427921248384723496481418716728197248728413827642913423164624946214713281631421786424231963797861726289436827493291947626834931848291326792871416718712636893931838734291327913683281318372679846192879467623283193793176231648213731649169461618769639874248428219692874368289274318617271467132197217483986293249468368914242832793626716923696983926342198376962373724329347392626148291286764148469624728941848329293268914679784321491726739419231631782384924846126178647862423148342719327813238971798647417129164123268367272768969147247498629421697617843162317349149739292614761723176261419372946246189171367393167248693828234849861631831712837963492724394672134787984934621496323714739317286491728273482193423294971694614968494194714182491963126824341234623479769321894869132393268248963839842848324148138978494219813827682846149217161737828619278298724782676249842329839293487831848493637129298643642747464348347292932947346489269693719273671382762431816127964363439281297243471438164723416267869769737424694842424197963914327693181827624678479194891764847921817236497136184313789427612374184729263414381381484673761312424212368216938264231824934781264249717243464367417698298173241268393742789284768729468781939423821731724836282712837493823937687439692642426919368287421969839472812324982762381918713126916329796249632138639239723482389432127426162816168468987691747496848436891713828928213293276424147427284979124617673491386487498426376849293698947967962474734292169876747242179397921372864672948439274316419398271979418194376821242174281867237261926143982626898243727816969697123273968483232787981849434186368372143164329371738392369813291767129628189719424974743439314983974129737813939834963461414287342741429798317127972842496732431486324219831482939494671276982163236897219632694263941837382763419314364676383817927817626863818676278348934632618746748423232363489821927431329271238939763847898921283897261728374291483879613191249683897438932312424768919832836146292368198647896389494367286896494126871716737286286986216292397979138626862634897962176493796398347161732479789741384741678989198279487989362749849292439297837918694293613279632346481938321738617619412138146363493493934212978972149468186279728349379216918343426282426748397186898282941383942197631761248783491682749692636218634786147639142964724219678983686741679714928386918919168386193797879264164643784131282361237367249749173914624121286379298687182328919863791439789368182784781841474918139148498174746963479794124821386373836831827164134747943697946968342823183924826276868394138236292861283284616741921273827432162967864768426291248629424138393193871348423761498324148369639328716946263762428418368783824198271914291392141389386831739219417627231218278484174986791278986176312836768168712829891319232131829196192837181468363936979393268979878278629768489271231429734249241462846361617289427347186462763418693749284678238728438196248976846182176826861683167693219834981967396934379476764127842762179327892134781392862467396782719483673787824291767979638361976394823246438236437639812792492126319627873614698724192837949134262968373242384828967896461673143172439493731924697468316817863613193972634139643181434847897989148793731989793819164986237917476872861327623136176734989763282432828371727979387939489497373821939182198498673237143828932614641713742412438383739186829191979371837432868689378181396391282313826894674268197216714927189698393139213237169686812969812473414369891674963872141694737423931246279436718368674981781486792136843787138938397242687272814176929862832748317269483296847614141746428621838792948279731914949784248932192413429789812147671478317481736137242132639129397419781378416412673648137272626439324631437439748479176286286936921416497646134323878392693829786214141967914639726164721916121982614867696428273826949371816237869131627398298161843842847179321318712938186846213949298962469183937928989189626382967417949487381719461749762631249261292829489319238191842879836281937824724636927913613684861896439623962347639236918127219869274161926938164713728438716891939681894238423236969474936263674938328343192123278196787981728948967817379437176232674769169624849681296379362761371737261286386816431621761743248942342912863186289892793484928268132973298489319127678746217484791713274237698491679679627481361978247926496171627341726732763214646327194676747681684348724143632613734649376738317673627682417283847849182742696129281472639279814923467394217294292167369813214246716138764946419678642829426738462476479437976169762384628714741847647163149698919816462197219169797982718393726271242347861743246838121374789768927816837892396418634797827381361831679363926378498694812717282384761861931941281287181793989464671386134297324834912948272394981629843948937432617218629798128949747276148613824673868461381469893743974212864673161243124693646391819671938943429184138213628936272131848467637937412178413764872697934847869846829327689838362481492879434348742127236716213287961968214189481692921647932631842389171961671318643139324742693294724719182797163793427383179237268623698464972767147198149238179871749424741767872797692898973731828198424239731718324219362671721729712389784691612787272989328321484321672672689216929818328343928646936496468723492643142821378483671371683769784141483167936839243623798232693869291628396286417414178361361319383693873817389768494726947643861734712462684983893838632782421638397282693674847213421467348697187963284247462896137142629414874134681383178494142743173649892716976147893486984214949364634179291816976136143194734892316838648128289273786268791496867936236929369623649346194382948287169284646137474878436374619481987481294629842813419762692982183272376836162879317173269296717416212794794217424624783242868327693629639784981498178746376376892197123426478621978218638631913842421461394849463839126384297826432326382969272931282869136424637491348384173918924369717618927319383837243626974681469796893697962487413868268163928427843274238919467946924761713838647428373631342437676169284724694278984392467831421381478216196423871293747242787424873147386263487323643416141491781423981472372893237836163646974136492918361386313842814827269293486431787137191926468246987232831468291626912479747394987218938346487972968496324848218214787246938964398326894869494347818719742462168623893292464283948693974169837243616742741273948732169243243242141287973183878768932716939791937368741717973218281843194972142349437418749383972828673863984768748384746414267176171962172736267379323262427627362647164646797327827298237372821268912671494812486484369827176418423741391274197391973234862136832867317192648743214868686348273289768939713496496729891439371386176964894724248931387264732329471821941971367428267376737939727846261437868284261293162727928328728679812626947898749798316191276747491678198284843249813929213982638473169763939467246961236784876864137689468628191312318368329321464384286239192128264614746148479614289863487842179284348623218916234614948291748413812898682676216246741416713769232798683414813812124613432146924294173127896841818797347879768234768621912714947191467918373872628284349468961491968163437839168984876796121219878282437392963782816368192676131831269174621972897314934169626364736476131934984964343274138124727218131874294719324927817638291328723897672438964948129789187921832931263248674846294964286314347213168939396392378397871974764247627473784968498969186421238792328397374691328623193626962316194742917646963437347387842182374132672379236849636382437398946496291316416269419263419621787673646838343242414294818172498341943492389197694634983746947643428737467371343418162741748476872439428328428486414386842687834191632839713916323976384368241941678468413839832196893186968976269321386321269242846346986241641898628143461471268939148627249149272492676934712393182841986716837647468134161414872863131683816842939712782626124791327361687896428183632472178167981398414797292928134194693739167184913276194146894372927642491326262464963612676263469463428967313493876198731398414187176742841236718726732169726371879839493897243489486247469313424969863494969316891313413172978418464182139641267928691363848394979879279171421423298748984929282121318738671718276492761381473967938374262421268138278182671842979369312712712327293862398136128712941974242343691364839181717374686818269263129428142429241392378798627613923196484794696146737276364198482174763129379792672126317398348482934849296341967936414634963474374137343874276147469367931797181618496483936891389674263834319316836921813168769768191843417318646387384169149713292747386831878397423898943987478916179643842486297312979896746196739693623129496843748616764631737631898482869294674249169287614939341246313978743937624692428937681319823274836427196191416284678187184767329124383464692379623212196786821696364837896467962186413862468494623293713976192723963791914913949628472976478483814196297473468463878246132163848714849289382121836282168178296372896489138326719431467191971721492948373673478363932967914676236763682846269362168974378748716398684
786943649496243649141967868931343129397696723176381947989234739643916198432764921273862718939194243987896712378731869134732916847834278194834276239189296984324918793828343293931831728746384149149741736239141818131939283234871329471924189876148298423283736897468348417249829846868949629832626821642473831637646391684782487971963628136762173247238268617828389783246383471684398939168374834262619268482837369616242612926894236763163898971429324862173936892123472176247238413423989484642836383416481474962769426493279168263632484128361672349612743714124678974391894687864263272913161781631276912182818468928369364942612139849618314136768329614932913731793762636217896769378924869272832632386981716831864317182793127892716132927214189347686369694786476361737291948712129421382187143416482434676862493163721737148374173197273931272371393161717478469874343623748792919614976738312473973283789416823797896978979389173231376712176474239647642646741487912876981364693986164928982489819892162393684286392812938276962612134147167284691961316867841949367187646724838937424187297629273141462643967678747618984921963768769142637421912873617437436128463818721672976787126216493434298243489361838729214639743982893987463813263839713979819281284879217431217824961943793894849741736198374962193727161967832736942926818364878438747391643717187348174287812846432816413134934829167693241424823197498937624679213634631269793767178498949868349489473839728386272931428261712917272793292193961863179232936234813789849831941719214312629272643412382367834174398214936432842641769263917262162764812736321274763679393162981918249389462498684814727469136131791946438296932827913746948172369261617498329284917234967496319418423747396489363971939612728734216279194712816394349671327428483927648326817343431379829798482731697827681391324318318131918727981942798741781763262369237214839367214949186928313691489368234237986281934878747183127371478294876718131427378238417372414617947123931386983862739341371714264823912971869464746193274293162934196481231763727183234219383648723891612821697212131797276148479489319284379891934769368179386893932171243812418462342316736364294939213641963878642127918482717691869298379218689697676968183813849138916818182791462189721869816121947674784981234943692643468487239478743481737428484361648176146497327974674343781948482461878476826787479386343124938273863424274314967463149872619214968276467868343824138347174197931797414386434898184968178721712348927196323638936247193463684943638394848143292932424974129469479619328432147836373796748714781381967816164614127272873947376986818437423467472978786397247248987142617978496769383862384739249862948231683824632416484291374989697217827379432721961464286431876821929394634843762417989361647927843186327927438343671938749879743243617618416742624743871782418392849176983796469797282812919827486816723961237969692139241412691782746467989628296184978978639394232672392649713469636147186798346378372631397296816192373247179189482786949216312414178674386748261828972381861213283719636212364219876439326198341393476948719867848471671962617286878264838396163874679194926872726394687128323794947187686949628913726284367878421431943121424348923827678276279392746287129184231632874796283824323169716842386319787961314342136873632432346979139389473431382926161269171287284389237127283981742984161826216919214283487474248291316147696867967192638348279819343812868696467187681382469787972347868924948743726136139168712942741428969314342198372462981789864826914826731248421468798429373298313246941273434392638689138373614736193614767928386184386381891813197692181723727197393792349797648649179379697424672418914743138741327821697692946213496471727193796462797397343292914671413468912971613896181414792913979479212374178397484283891619848983962932187294326137892646496741237276749319184869162364367249724682424626386428427961497267329316769839736424628678927363987273879786978921781484369737929121617324976176713928738269232361646483637637186129169834343697343148727162646168128746939478341284167143843728481414248398271386376146968436891971473198162764912194814932987381672472164836413984234716821349469631383149374972148398412791697892137687393162942716794813182672964616429297497364969219621328972181863937916213928614192787181827426879136894936342896346239432983847481472124692321837612183414818696969393184369439686187272896982379267873876969471872162849382764787871346942912913182968934614817368328718269689831417268349347923718187269741431736281892637824791943162374834916169416432927169723928212838168371313734242631214974316812793436496383868317932171849321363173473749492192161436439492792179369269426831838734637283269346876496231414392413931621461963249764832932384914213794163617167127269617386298979123838923131262484619763463867967929272126348671723212814634946389627124182316938784127918371749346471974329691391737129487172379429692729641282769478141321638639623848216483761896346891642683949731276947381474816989434324671416321426282618136919673864298924129893873232164629691876427329629693829139616146868249689713617497393171291919627683198287646396213196412378436941463241473923421346762326713941468317827983687894784714329632876934642672767289136732424817672178674173168132867462328939867321643186318212198426491297149179638479172436123943916216297178782416384984241264674637298284718487939796763864132121387391934872943264629874928792783474137626871827146921268917481914612962749127872672837186897192834283629673684891348737876862147868417271798137924237613931736173674647197169729239482672138923129186419263974179623214319414386174878627196724967318434247618429492921731863646232948437146148421279393649761746942496137493972839828747912413169462639764136864261369681637918724214138124974868232673767232613678126392932961279792346316897423416176876213642636436726814982838962724647973214297262791949612724287294372428637198612619176434167182162973628481916423472316817436927279493278232376747261672792894618371342489647186938246137632974713273438738214292132964934617137862823642137696812171878641316913794363293897983949738139837127181928127146418617963984164149678149426327184726274823269794698189272173637131717412936497631684979327936191434247182369628929693143964898173248613626343872731474382324291781923794323468783783487421492929268398674938916464932698987423793238183139243248278793796341497818134678634972169764192467928273742696134797897632496483978346896786293427896716927434971818637121428361989641249482987476276436271942739343736319734161464184963897324361947184723481398376373163262961947681782484231324973179198323927919294267814169184239164137189317198319319393431794846462964826217621383767964616846416427637191282862797898269614398629384679879317236929243836891934727462128628182978948486271328137637929864376191649237973148936412467632484283918476938361649161427616132387626818647416792632818947313674262312836846148637432843437973469627946497372483984794878243687361893838142186868312739743273738687263243278741374789294127348147281346429293219468978272692943748739862867394626427684261483428134829243272197682827878374628919212627438726262832791369314827961878364169268219839126348962676847943238717869163674871728697648269171348238462718413984383823176829279761742831629164818246286167639276817238764821964262649713961393782314738937629876787894961298684397627989731389613439891269271264792797171419764638262192786279739618949714918918783162878182369713623239848268679682894818164267672142378612724326342734827923924684764762782962836216197979279812173273267462989131394721239768626793469238687646896143149169376193476923276193927291693892463828317674164269171494164164723248376241628473482371712138128928763913641313913623961643896949187897892768316796497671838679467124738319719283986182979323476286896316296149498636243928929496781346416892749743816863128264616414763429863641731636194692631643129369687931629419471638472914186782183263216827949169147391246362769792712379327317928962613693139647839142817381234791864792179213632936762784249236768629761313147498393174919813472716138492476818269623182417672913264618428328416371242386196973127676142638648246361467912149147182398384864148634289828219617376382189142846421796467142348172921276924789314278261819496731378169236984264271791964761793963437978189787826161626969196394341343683941368429796423898769787493269363672891498171261247381861781671834696317419313624296373916897846972164786476219678391872839781237293624281364981939423741817434724898487464839721714821394186918131983939248478143487486163826348291238289793214179167832782169393843623836124839263264237968478928121763294769787961971763832814764673136263839634893682717194984798182419272826382897269286278282369692469798378783789274896967281324943637817862972619617962421846474697674867926342413721821374827831282684872849861618681313426832369469174286487932312748671916847323678394923741396387168191436126387986189393493132176163987424649686478792138397386489783876472398468413919647917928317968682871247139729691843674328631313747429234717269148732182698732361897232921719463872824689719729126389612314363236838316918413893898624374762328674726434748373849692824767678732414328278948962914741982748767973878932486762931749671383196349493462476341489498678394173919162716848749726916346347246943864968621738713724129681714649783717424781427361763272948414817417967984631817417269767642192967161834171962692898186126312164176126242636797637361219121689868949319391496219396746812918292813123271324619847969431367172676343141939436172916324329467631696363793971317286318348196284327342782349686878389397296836971261497491694298464141728128971439279384287969472726879793169434736283826123182942647874273672496982648714387426232798393863981232482121364926927163474681728383846314934317924823263797642968262936329493768467423841328386214762963217361343761726868126342487648272879697846749674282813628732389326872419481628712734194641294318612138246312687987149383926871726897624361248134341632141723249126193468247463619341813261398497147394298784983878976291273272147681923431979796718942736243641474194872348467683839126318468489384818974762683894817278473919483127841413617874737438312329636232483468747384137273493432362343437128137864198172143163938686467364849461324278316242396249719674363769167387131687696913121938476826931978747641847628412931617934939481394649194929892781832643423863723429876741973919814719271649473131379693428624867921827681863476232392492961424934213919829494848142483927241718682484176926376989186168429141891421292641378787421617419869321384631848396828137394936874219236926916143463864943743763742917834196474674841386269286389146163417967346868729696781693734287626789793898718791394316249213148462428269824717168724343687484686218679431269247913749328694392934818979471943946762832313628363937424946313414843474369718691968913193792486421321879219421479179196274347274121972973472694647869673746238136917812897361748348462924813948938964696898469293167468436134782187286262676968918473971393879418421861231371647862912949719793768498383198489237694827949876897674349421284738386431817432163417916941834971867162342631216486363789693273293861698417493498424134649187146374732891794187612482926724216414927121469384193932873241646949824847482494643834937928793793923637872971474174341296787641843246737219138423268136436728613492647298379139713268146971398247861389643739637949318241639486423871381864743178163737974782147478968484978761872781927378126463292961292731816392783748983862971484642726762932479416863726818913913916181821676748784678136139849468646124867363191747989874697421827286738367678792967279626284341834186387374736123762164139376481634821861372139637419638486761386726812469794727438637327816298617291484682839149268176749698476121813134634397184143672868264293841294839196321874943876972439272489729742429762692393783731891237476786489429287183437864871287894614274214924121392716816827264943789121878767213874321786316714328197293746962767864173939496389429298363964971342137873929321734838272894824372734324719717936142476162639498468324737467987147476262373146967379798217927836864718769397326978343629647248626397476139647898619392191764616291831618673184249161921831412498372387849626432687682623626936282168391494314787189391738398931264136791718183817621843439493692934372324931681986321234276728278694362782679268232847813831238248314948241827182387127279647349249682934684217324261819686346469693164686839242798794986712123934172378386934682389613921246437182791743439248467967264786869693696298147686863628643473438762647916139312974916427172894872832786942819623987292498626717648686386192946421269312691747871312378276872376123198792714863241797316243489841428138943493717128197862192492474179282128363829319432749132829139421682381489874373643979767294861629614913234618148472946384149197249369179197364941726839168297382413287832989818231981962987232971892817692984847918742646797481467381281612963798689326129292142941824121939312971384371817469781427274923267273198429831278764196286763814838914741329781768471818939839162489124826171464181834186969736184272983246368164927481493283239278124242836182473621943238697189164348723467213721483893247292796931327939298646416921789626817391916216382173762978216179162141613693212638147463189761249183749763136912917679438232867379376139879271967894392383414314717691239864672419412648293231367316478314793921983937868212313746748439796273647124672637262198764314938643674793767914963971839818239768219843278242791868176313287187673238428763876931492628947691832716293427942394314742328794326483213181616978129428961987436312436342938174391296247491942816826184194912478319624636412691427674891748724349834361831234218798314123846212739172714176481612641292146879462961384163978349791214987989787931219197263973971432138613147694892972736476189869872369313763796916891679894798139421313828723967216936761894342828613978989431834821329647969287132936164846218746824786861482478218319784178784324941976273194832846374943674379129847614912124282639186834726364929424279326161283672826142132428437143137387361379812628726923146919497368317284626243968676783631246218914836989481391241763729832379272483871829867478627943691432143147878141794982972487874691269716281634798397864219746167946139479746891419643414787639876478121286376791291416987197362636262481487632946847143231742624843672917869146849898983231684247648739749324382486234931314871972471641483438349371281279462318698191972616317382618748962197149481826842392141323438193989123849468794181941328121268269146984963412478963618398473272614931314749147618148497964646392761967324714161278693638686723276283919376872979383183243938423618732746178973429421643932639293213742367682684237629368618127342843893946824294134912621843784769491678941793721969492472687989742942871468493413821986429219183712891769431434939292193743834968912424989286127292183262698461284939123249878613124931841716419784384282898171846723919298379638147419147196926286473432824629629482149819841497649427219748349619147194372421728717239897143269371736761239813963769371249172714313614823819849748329817489214736724327476146376946128682494373947467263474871246124842967614161276216272763432827213278727418671218734198169628618147329437273763421684216279812416183136139318734769347219894613478368927141212419279216187898147121473128696281618217282892797141637297137326937321267963962962137917218394938618694843124263919634894187631469236316489148647389371868478272732476474316749368782126812469167672418784761629693626861942782397163628293173724612762384367132126462923673976429643626417613629124216943919697643719136878723918949393212643798639193984123797619324274293241643474363239412347684323139376949396392943178746284981948297942184641249741619241718673438272727614164291369647819281274782397274612191464737497198436343121814821428434832876371416849467637186329368368674686178796393173794631937826741929727217478926164289479732639836217472947689141314238691613623178746262872464341861212949363461467318641392894376797938928214842162137486913192934328946128719679394912728963628134162161678713279728987634821969628781276949496312764914121429186412418413132341797898624718617179247212747928382487634193617687369218319673841674928261491439848167934867381486838438726867213764697898491697696243264129812826162194317628161932892984197273167279874386476983232679416164818279328316183939723918391898942181469173798417468232326867372478384679868743876236931647142463213284327471728962482796329472463263872374821372764263748697978268148949434613974289124762174948692947432316471984949636293978689264287976461843419263184219197421426879464721374932636912792386237476947471463979237293981268748929843186434679264137217876231764634792193792168124374837148491214173967816816379173286318786719198348421489767183982179326792421843976982637862748761673196382492789816482619298243673461874873196141347241946843143632187498691219436179139634269317898241678184791692726248476891929294893623138349281327642196839624239718214362364372674161748968671383219296873842749423734328369697484898262821976141736231289714932438182329678414891491261748348686762632469732729267346898739218796936423896298694672939827973167262787146939291962169839764246986874242126179293276481437839831471469141749693242412326424363737429327278976246194321619813864231794968484124173268934384274929687123492624947842781294184873823678437163784967838942628432692892874793947348932878729673789743642468691768712612424964974843291217416468474171416834818267371262847616416169143297984341832817498383686193178491983472167126341734218439629716781438796843626464623138934948629648191879838313971861423849832427483847343187683263893219427468131879616432837423296976724872891327923781286838673276782634783416482678186376472946121914789827279426916897616478297371367692642896242346726718264931718134926389697827846296867473631878612474797383782891639129218473271398294268219436249481413463646493171482942363873247631816828471787269272783174612769646268384264173483918792146834787478762942631276476928234896831879236196183792173871476936219729836947416242671732134917987368934727437183212974161918941249787317373698286134248232712493684327471234219171418947631676726397243496148798982693823793768627696961484672321216786387216974912162714386936186968482962912731924816362467146271286942943948983168924921897684761247394671962312181393893873834236282478613169212191648943829781324393468184364129768924149348723262417693148184786343147461274271919143727949218978343939493641797868743278312831819814686349634161486343479143787429349314694737194391239473474727928792924981387216969869787179614378731792426236969348941824896817912374187436173869296468791369164964184327328436912637639164167423286893486726976369697947421983936849736231767197982316843694397472916819194361392184686726296719328416986971793718637471831924729313767128427192874816827176434638489217637139328271871719728747837268698791769813219326189237376167234863278618197232746428628982379328736869473832178971241894939472686271427247247863947493671627642628938161372621281812642126418938498281319386397618939496279428237837812198347978683748964168298232182179498719372746371342498234382471743162831789136971681429493986967827363838164946714694269482678497264979812413182136174848941393164241278421267294216798142184793761647218161247682173946496869293629724687462139498743137146387284797827319678472637963961481276491898617268939694269498146791963413641689798134349497217474386942641626841313819678913127178916414326397298392841282923643943824938934261427393186967839136921461693263784638636191423728714383134121423764683961984138787234714982414628984927273239213923139282962941367161282679813493193212467216973683962367949273282624191941421982967823249894279616826391798923869649694696234792976132938376973414171874826342391984923789813418424367868616983182841684746932891316937237231243731279298923896182834149636123169392729378718948427147187196781279373872974318698396971317624124739187136471737464939747197636128913286846393639313923436149469368764748769319439319786783482623128349749267373719621683463974638713468786236726171274961262414348468689378692317318793293234236482381627837948417963434764783913843826214384892319718184814763264746312969163767697234282643131891471926714296132868397241869467831313612473764812416346717486834719428131946392413198474189797978939217843947161286782479413646849876468232192198241726278236214248613718612618464826361238418938764282834738194364182728969417683727939838149679838934869817376189428798326241613748396938634621912417162987248641924129271719329731429679192817341843216267361462493137347916313989312737936194176129819482781292987823417862843637363643121837467982932842731943287281796812913238734192897967286892326342724349896129232982947271236379171391412179247631718264392681414716243897676471894342746323924129131391348642873179613237191837387234282712793764213891282784894839737239382398691216361374974348473629672189476423263626943193197623189463797639262341619369679847487819832842468929638431631718983879421213278282948174624892763628623421676124278386326134962467178279728436828964328931831841282841846324167414247974131867437421628983697293189169674747891817312948413146782681471762718697679831724369679629478317192432843289497161736173979898986382712614946981683263968121916828187214169292161318397146491327919348431724796372424248484146939726212491238148347942419691891674792948393823429649421794192326291393674837827671961838293943849323191847186793123836983478391276961386967237819349643979767976216274723242726767697271943439237869867972198318913137672679393213919723184369682438941289328432132374831281923147869879314763829412931237498738638327493691723921824894193191637263128328469274631932186139147983621914386984946369324931212461789381418389396894832893434981464838414671736962327978231363142613629232731246723731231979671736462826734131737137829878367864691781612932374672784697319614394784316737619212143764372931496743136314264924728743196282641496423964879387183972726718984193929379239487674687636214168394968236978473637967423761794342419628614962961384679274712917979326421737943832364761684389819284391836128323727394738693712961262383876284894891414813192793732898678484629291246393736867642731898247821682497893643431287238293846987898419746427632163649369234927363732748386467271236164989483276926829194191726493943739714192418937232936316837936938413923173723691413794189897172671324793189191938346429369269817429362983282364843928142487616192878918741829182798979631436981676793816748787924832764327494276347238319724394949129476236816239148787917624149634864781239767218929376841719162863724894296876849429242937397243716712617629342491638282141434868617961937249284981316198264672329137176369737238489646316189198968263891787626323767328971296871963826318498143297914186424632847818172462143473631632417193847416942749121721623923762194973124968721374814964968463123818231261474936732643284697872318419438147419189194683814781697491643237976263921474683463947697964934232314963967469183798721492938732374269463268246912896317394171239268619189213681463121263742913929747427268941839468986762727172768676396371491364878261989629621823742787983627236182173837374638414319732781916892379674629296969637497678439869437373737461628416767371316943926428418671639891769618138924814823461269314149376126283218491831761326196369437316148962673716742161414818374864847136949292181279349629263421417242141392437461476364329182617216421369873241846269793178371216838386712136413847437839263681324712974969817439168349647819783618693631871214849319828149168932481729646768619484373238681969486873914797142932426121474376839827394738981968134383437391678373246121698463842673698714831324989493464216293937683636728942716219418319173949691868194287842324769348738382728364712627164192679387126828183163489698384941267169129346987361418491749861312629146237912637391293278728689176818947963621814396863898342421919197242764636937827436178761729181967682896426316147687687646418368928947421864283461291468138937412478786987239383896147963219479298362626981714248616837171914239896814272732381467181741329143831298421643684891871932342498683186796861632694939363168176317969761824719472963172863834121216941387929379827912134836379826396872727831263973626983289683269636378164782193176746139234642812868214863439383639737627932687234293178391283637892327314932493237374769871676392873913838429287828163643237129647478918913639492789286912848671242471893721847948461873276268648794798261798936161839282873634894684721714838396841468349137323261639729474386186494842896397362378413679637294383724263638364124173732382347318379842938189297697671982461287496346393792134726892793468641978376943674292979498292837486972486396142926923732186167871241791931326382627642387137639129632828484219478919212781649616973247912823723934916169367686867461937861289847373174378438472848431461298912647829646271684832637693246137428292767478397694374698363939343276497814368387827234262479278169496713631946768762467672894796839679376424718381319616486469214363969319484298718312814989836971974232749761274898636938173868192348293291632343469673213814189767241712764816463916239416769278432382379416232784169427232424278193718749273626762676238964617942181384836142892672614729364861842843617412639349494318972646891717261721392384263943491214671861614389838327824363916343286318318923646813649738198323947183137624868298271736831848937812729316132742124814174727171834131761712371212428781398783296721892638191967897474674937463716321961481943787826197817463862641812497941786367297342931613242728294324691217424142841929846283168678614178292893727434394784831638691491672197392849261676169398626861934164749891964947631746714262463891396192797896489363483413697284216838436394782621643946176829247612342729847241231237391942978787131984291678641634926379496134341489761816234987132969848418324729642479126161837373434278167979738138948738276294861732476194372674982123461263431496237318146823934213632141214737371494912416796292496979413814761467164678248372719469168317278314627341369832196181927197371393697647948484197237672467378468486421267312413921381472696164376231683169693874781987967823828743872798129249719637324638361327943261234719376374383987367648918914393273747921262683612923838437161896476198129637172134697936328942826326281732629721836292898636434879264378968293812464732168719396974173982176714378434298184218419243194349218189847432783817464934161927172868231738496491647831243976384791719141983129674732349472141429274189148427139392137428478319379497213467979737647172167828919318312969648986763167847281363681949343231826734786487191763173184619283629727617389367169898421842969469486919741912898729434862173687942762821361937182782143834812987286847698193621681363128243292727131831321427683247183989323179138417826813243426296979717386378161369781238393261963674983879673462618179836148376124684816973132123417972379191719493486718318439742832643467126369629123271926874716783734193723268291316848982647261629876141972946742163494943198176381786963929423142649439219627231846168767614717642719384174828646876714691983426828393734784137392943981261262387974142718921283173483929814893164324676391619284381486847634197131786929126264686264171297423924876172921671796274292767632321282878249436293769897373171671369327197262146162912897616716138968397863986426487246768742648263948167181429648962417696467462981346492464138236483896467926964243497274829687269462169843861278742479494649323694239496283646161316386943891439393176839146363218737891734131671972493812391272392921828194391287176836728697263923182871434928313936164681419497147297247248241687341296894178684764642426296864876929782682397243961427218389171732724724246762478194746212732768412917832687138639146143764716161672671474283234787864317612471828921672839478641628378614364714312896763796942368934282434749492467212864268367232149214123934298724818476468181364364618762314148614236378974876437172431341878626128632131693279731237174737268683631328482128742813274731647823892171391876734734261326246978438939127838169149476929861629673287918432834823697423979214649647891826178217616818438161682723279817396328391231329469714616213724869489172127214926276368624839717237639378793172671261462363727434391414646178496196734718328727832943786489736936981263849121496491718423923962347817823943729727267494963286138349391724371281261432928326926131793161218326891743623143824793782987918483714687482414328621319121317834694763962124242131287193826261392919286423838463629214681867248232367346874262939896123746864628164242461921681494692439439148746497693296297879712797134619794291816276917894134269421634948736361349327948476268497613682678769862749248387284381231816816272739481941281419264219294219368318481237891717868686928147612829191321643427164131287868642838613479784969418916131478693681947623167969176242898687249729341797849623613637424193143179638928797343967696821819686871879787824847812629124292912672673182479232676232392343932498264193147949167389412646749189379728216121743194762472123739782873643869382349147316263271263941214193239878961694762931493478491312346429149384717979767836784843413749283423789382837986439279796787318941249737319749312916291936727812182846471469674961292816829832816374132318348239286872429364129128676493797623139263187861297214749348494187239627282196471923849864363238428492343183934946747279731264126318162368413134692768637343986736423238168214939616186924646829372716782913839148686347178472946793698191246816479463143873938694369491937616374638684916432639748214841386967979839896834939641917627616863618274874286239717476498246763143261838723972647973239828476478294194648496824169467178929434674263923724294328743132742716246219164136737821928131468918384794678369693942892684827686291846463182129746389414729314821484941793249732464267178238364389161237184392127497949324168794316326987916192163213748982483193424636319134689131632794393242431747979296839643797823687419437987862462894323489728278429178682346273721472964848787164921846323721374826789312343768487341497128928468487464323189416416781491683297273832818382918472129767349362717487384942742378314379696984214793437378746736892323972716729816314674728376831832878163168731328134976976947362373937647832961719263768498369269473248498467618381941948648767238384818627898129484614246831619124163178637171846346891247816397474917934283237817863743469184292813837248949834831729823734271629489169369312383128246768648184326418497392714862128274912464619136267176314218969124164369436942781836484179494717319876763293986761263298769414723874787891923639798393748493236793823642897279292867632384238273786187846729314963898389729747246348698289312327238712369621947128264721967238316814646849782637362823173789343949243987697274394141247962143868683217491716837378476349896839767283946369214872194797379194861341283686168798964613648236789412797139473979712784671732417873197836419313873298623819231437862681814976392984872964632427972827197178371269837678979261762831389629724146389896861973767234632696726376148269146937979131741947493783973639689412496728319326798729469729318216761867142617963791769892869761682896343467914946841934162919837184721312719141293717912439694783712487313268298962181781748912429763628368926178283291386342483197626784834298384241891794763481783613687278492878361389342146763468749281314946928916364848348282423423719641741834936386318413289817974237632386163789762867124931961938946826267241498476384143182168938262873792989192321748942971469837146938646372642378186814327643624842929123621373796942826421636178423834371412396279827941938421217694879279842794769637171684934167431496792129878246826736717246849682413163787871419183168791474637494989129473489327161923497376947341392872721462842837393239324973912376343747182698486872871681737982348967137419176476384371313424632367971737836412378426367436246817862689712874693212962921814841489493734389343964743247343468769873463783423823978383864176471648468978271284381496324873898143813646978362394731879846717313891232469742796836917838487931392961613786727316416248767413461382696734269182879241237179646989319262469326136147648931312626876174312628312894946184741761234873874726861727643829812379371629128178173191848297319623134797141724927397826376713474814634281361926393494767932412629847492314124192782483878391634931769423813869362173937983489787464246934213134761437239378373941876424823494719838348417182127819361473963469627687689389348428696474319648439184143767124374212868193737296292643827236214712646918718174682492436498791347367192324174238948697489613432937868674974137472487647148147249673928797349784683784947973138423213797483672978914231286474282841941289343246139639678364784846247826748919879162832376487973783934132486186798974917694983784279236146182743717643848647493732818317138648627328123961427948624146817916364749868469393841342372913631781312147182636869141346238197931634623249749792937871242693126783917498142183196932736717436813948341276786714821836143274179387297498781724797976317392981678928268187863467196724237432484929382394692423924832837396216461284896326713973426728498642319836949437136939378163178713626937831961894374783131212623892438212698238247983961637146178943431927371489648396813414872478312723963863278649676373627248127364621743634191293284141396343148739643427273469419192391817642126732723138437989172182979746864746161298216816343946241493781982168716314719412194796238461919497832717423762972617671686712713743214162647823129147972326242428492943191412727976276329343762817247942392128431237373614919616282697292894632318186239646921489868928172318989418424746743947942681761327618286348329687314716276816368436798793931867486421927194162328421646298617898631267689382961364734987239612647816796713246417941384673161872739618341642764629123637213782714973748986726918741329313762737496898789386743292697193147673931646216438681914213741789262616174727323691989761496782863814684314924686942423638243618918946147842767147173916343948634829868793479161463673464637196919268198629426847427974198369871967931461417231292489463948367376723798412768723784249491276713261348197921894147918479726247238439489469786373974721319318471292313686172472649842674617396142618239329198639178989861247418921286178391471314821849168694984124949128419729419164643438194964163792986486286341621482898674741372131649291612464234382363164164134167834784376414692842734796713478621317242432914967187182184214974672732818416872827312832436327894196787248462681743134398176347917419674768946126329671418296478736468738296818231728798737127198373193247246931796242839873242193246247237372868797941242616814181789268462934927326973769872928943213869846127676367817689792142747942382971624918169636768289236326424237298963439892728917323747216162816279487832719147676918317216818168196329679381621236198987842374912973678161623189369438968269389681763812892494313278324971746948684647392789372634762689247684747612971829472163912487836379789312193498717326142421824678928643871412483487127282769791892978493416426813479363178918273768723942687846168436128428424864271919617612827913747371963178769376341431316128727863623429294696734182132682326891739197283631372641236432979876147869641879492918217237976437363163186474278763423249197397632894931898943972619479493762741987214716283279136846292129834386843692614398381737342437321939872941898417914649714862424173424861767217134791864734212187939363472193139634968949869431671342726434263683879368989324831487491678237413987464841746161734728424289148978383612461792127676873469691432681349328476969384729876121246726171247263946421348438929419671431368364698384162686943749696361917968964737247927481616814987264894989739243131384934274136826296737673739629817921348627172187621746979249487327193613962948196731472172942487317173136921672623264267172679437392862423248382914219236932724397691346714986264826324138979848131841326863292943632963672198491989412841439692314813136282373282412727989862179191938741849829636361768631846824914213463643979141347878298362979298498413943976839469831394168414727174363797313278982382946147143494323281324272924641691313929289341898184627618918743197696436246181324984389834714837937237921319314243976239343863213192689498196286483867612642917143471467872463641326389638483292463137349126381829678138136312942348928312167418984129124639691736313623797282861696132691864976217387374698638928197673787471492168249418676737494627186129272312898971326427843478324363869847861748137268963476712346218438329282723769276479182929878942642327947389329796312721439263212473296879348932914293436767936261232193624817471343987379214186727482923913874971892784784328786761717874941237193134971479147292718632728216796324214694398743198439421349169282827183212329463968787927172648232961941493194617141872631671737294973483293737914164672748987318416373784679136469891914167434234928731367636974238218683479461326273289892462876173763673192172879634387861691924769238473431328418314717192728689231467678469432893687963427238626746383819376767839683946748786814931873687692684813167929786937897363623797463461968234238474638939687916718131247323178729864181361732832838242864797862921893769386947671936313278292982463146173867479479179234616982174684848972374396819269712632198264147216817178261647962421412127486194929139641234873292138317189276261289247397896127843212489482946949648169194286769823124361879834863729891876934283421797172316129316321643293762764149718128928927874896397349842696197346369692731812362817824328392473274637691617631793932967121627874931387143169471271727276162676986126192431976864946436283948417848294287894814161818363762864679838967874276781691486764367426479276464787141962964862979418318274287919624397392916832936473964849372863689694143679729762782328621673428414681239137874624741718481264127912716186731962419141424376172614842849323243198169294164684828296437184892676972743748129313162426163416238217474736181861728273617497326946719863236748926286368313793291686871862167416497469413261828673821437876738926793684346239192649487824141634967148424929242142716789629389791916368467861948797314723419243263236961641761317632128761749271218624193478167821942369482321948376321638626738398978138369761697479269383986984736182123764741968197873841726428137946713618632829434961848242478368394934273834262634321967386249698173962827324973461873289437139736176874614964692148767842641789496879161428391497878968498478349434692178787476834319328496949282374197162879826967631238386878363691782671789192184743492197678469231848296936249847478731947281382826897236381814734747249749797834918318487128647421848713127129474363973239136316384619121263127287437837848263138384384649132978198187978387496713641718691742167319327468132496432947138397941497421981743619378297367649624864631469684987372872139742938376931737171949673927686134137394628141234392393284831734384394139231689648396791429284271716896348163764914263272728943281421781247349834382136416349719326493926936467318492721828712963186194919798436149849824312621627294613483864939218689469794938462739864296186198234328476213138628286989781274836139287948389819279742643273624893273161972143261972617324974717898483198797121347913639897413418219269438938316742684284289847374271726783948461268926289321872184893282619123191629467812387263849182497168767489167489761968723761761272184839817483434864291929832162694721849389286281431214348434671749728297928793947374398484678724743134843631274124141263234319694697837127838327628121696718264618961794378246417918473737397469784247434329643619389474612796343467169431643712164939278789397942631643821946946129269827474982181939212196876173293767493486781284976769628614894783436464183976212618617274324764917313281379324789232919478943232732879376914913637634387693129462489481749826123486986492696876238612743612163978674134648193243617483193242367272843914618649319723873748782423643249137286926961839121789798987943986421412641436867691967147274796284786248219621924691724812349426264818782917682893961496168187962381297341476847678283723641612739782316973432386193717341821637193167161739164387326739692974681212131397431468196421698687862623262818964183927674939414281976179398298193132732349842487271738274843462497489484818397397964313486398478319374694698973939894247281238367923683787494717894986894286463728974198724176821612619724719474249347246823637938239817484732486419734383641741398617136134234796729231372986817478713961872194284939237296936916318427892721627343891964371627471786391686814926143761286423896378764616389787634267283648967367478918437196937929167864614919287181384263847248964623124271368697174123614347471297686474924823727416362329426382642362164268762878736342731963272729618917891738269649627292748791846161392474183824242841616847968167891241943634926237834823278979872746718423872731417191692149827829272791843943624938743746768379692636968126363916481432489182891818797628738912162879164786921296236863498671493676732723181232363849718494647169741269649461278194324963621649692638928139824684384898132894739414396281463943641786261878394324762682178121439871473412373134671796216732913648276414874392323976247921713439629728617413282626368498937636268617481868769419464362798181876431292312394327149132874828738769629824896421297936484849826384927874682737463634287869138783263617232948968691848742963964748943927973913749367892831381826874864973734824317962876198747496198128481261717692891474249268427476926218486243139829768672918626416789126381271784787292724761967616897124812713646716378782478121746823746878464167126134198642971346916863679172438394872969164327213416918694827939189181867838642424319127876212491613876491438497836176874632321364612327621279616372496369424383742918421967283192682392163294614674619728794196947972927169164837242198124624274248368343289294391892874183689286164737142623141249836172464879624848389378341871749178942797623676768121261646712182938263636132627817961967689496262383469897428963861721313974743649812368641969217164267361272186747836872721386172649289867279739324862472628187167367876182361437126812746467376742879812876739843749391263823617128671364343278498474372494387974783731421461781283819397296323928617292493272639212692684131429734892327273268983139439164943932964894384967621347982867646463691262192172743841492961691432417989364391927474342764947439484316387437213126782713638471419271632894379316367341423717231834643789174146184738729423438216731949189187893821812436738721921398797237364283273419467682927143768796291962392761798181981697164247141398492424369362614687989689349187247196347836213978683818383978479394637136929392189434131462198414219416247296149719649619848681791683164693438627434184284631796212628378342719497936782721864768429439124949379281973414846813828464929132983971426163839241239481487434726819127232437428127926169268216387864193248493743498941463716383792623463917846989783643268419694368289242727927969481827168762786717394298978628613613284372764236384182137689291284818173164134164684918128127942362719246387212162678917262631292161463464236213648174241817478439121619191942768438929349489182968672423681691217191328617428296837427343427414861621467439816391373169897864142379147194896374348783434624386313178298478376164139128137268187867849616
832673682631419797496896187362494843294949618629419496268636926381692731636746161649461974183949761692632849249274946343832717863489482384694262964869364813742849461984219626264876367142418268341492729674898467438681676313192319129431214926484634972439796423682829737149437989368989367141328913817391838273636461627174947464367313212437626237178346848349413934383929461474346769321821642312728262613972749863234183728162981943683694136871678182193696829126941496132817893874932421714314824863293141397164292812364862416468494397476818786817647436387238173734267964917279379648287823834141763638719467148182368314686367468269241783862346934127194892786731378736291241812739892637686363621731237472918641826261473941746131724214361864631247671242361723847496273629298169689362963982434121971797682629439163718983768241832874847268734864768789243634181942649318168916143148213873841269143719276761327248429214841349294168798746321361271261612476898463187824843639234261938484763147627891312728717631247634821831913496149167278369634937628712732637483917917936364769282839183929134261989824283879141846497638471848941394674383439739726473469816293182486349231493743437821846178416418249148712374841489613264367121231414681639498423984927913298746829317398961342168179131893276829432827638982617492719747892192419161898674269767247838497181972639839492938717916489698738124839739636816287323436714289246967623481347484612198461212918198169141784317149812319848768638767498417417436346418267162482326269349269849684671362713219389726324132396497341936298976498123932694317424798137324697374382891394834862473831313284121962939489789726179347384724283273141238987262373736921362418948148682346132348218414686164239486239792827373243274382142839294362923929462789712474347196216912798323161282971849342193468617634614612134314929193124396324842498293791738396284829296474236249787242842984818212163742326348361781913423171439376934126746463629196742616462748141731474139846497373139496231871427167812486492348234191374143296781673796786497289326784843261292919283949143947368326714218641691936827628167291876941386863863727638247823968936741369637816362972378921691382827424674137296318761673712362684194626762782198923161371827217843282912828491848123876397494624694927387436743286321812961879173294761617138481426462194796876492913283189829392838364314347289793292921941769127278932962729463631826813192931973873698428243712492184639169769676816712362823494397127473123187896427829439827647396746462482328361324717846368493726823142494871836463134893712763492383869141397392983643494698272747642749741369632324837486398416142349428613648141296942367829641436426424891423674868464918676462984136371313941418179732696823141821698296367891841347167141674818426767427426787267424643493147191242932164619327641486193478794194631827676146712468928613631319187392983173921863843283689213139819232821941267213641821231498323972834171263867128781341718368482721692783281389741246321792796962712489691763742142496281462621713723971241837637929629632168392191239641824728497172376782943827232674794872967821428684764834712484969812686173647474867938412784276892176384717836734962146947939268371837946826863293428762138381486416379286842483618498372617629687871418964972474132818396897347962912131894139671634723232981461698464349169829746793721392127676492616812971392864724896289834127482817217312628498483648491862148168681489867491678278764971794148637419197436327141639846293486373862141286247917827817369816921387179263126871942386872793749641739467643264173637187482941617923894828628186218247198642419316864243942739614274138624648786162313214131786961381984816763912736167484832738379429412798938329739184621693816423867361943827386984248271249684681631693719614372826168249616247673176927964917179642967637623829834896862863837861418392687916892363121926461638427131626419212624768243747478243438291897187281297432167379424232934186931919818428613969684812397478637128329183638167673763928261646241397679783643736268381869723243416243247328198471861426742671617942763786848483183762386432394849293861347983649274828417439861848681919864693414962798464291818219279218146231274319249814834682927623846187497891971298948748637324967812723461486938487916298472362393973412643821626417236242726864374361941284867373614636182891679628623743747232729871939414693896894216169691919417823928684678936141239347347287237918139371747428469684968646216324396324319747132171849716434896319392361369263787343748627967168934969732817242869246368984681434724126923823646372967968319327493736319132716178176824184948728696428378186439124946231369343237938326273898272924769143923163836798481984869721384372636721767473416989416121297831926439731234214921934241373121749796149369231646126734847891729197378418486742684672349368713262419768361426824737431317347373136987121762839293789124829819714249638969732737968467619427938132343616327928627639494162976841747286861482873818341821671698617616238736727346431632398432398468197369741687972742394397361984861917973873937639324978942373824723624298123726914176841393429238726493434267392826978146964296792474762912612421862913428689329296789243261769126124287498982962819191736392678472847127672431846929834194368471769693929421389243132479189741763712718678763241294246148131797396319636964347314171919236923789173173271723417876143838419297818386912796242973978484796171278347198489676126793173924839298248123893898649346981826984248789896821436274876193124726962368147981341737268219831374941634632146796197178949646368419679367271989687983687931347289718672987318472394239686382628734789364787641929794628782787216787929182983648918212484626143983734762172361917198717191237831678981828247296762181648372871291434628649691468263796264863918278681962689293639187321768342193981468746294242384796732397136132893839132312729183121648343646298349293947968696971917961969487174868317368373261214263827381426863149362963292783979169636796894316436321289691936136414912861619894179193864696348142793638186471492648421612764218367616349396126387843684381614818462874278671317474343171684897123787313946894137321268293793612132421692712672187197186938692121498131964124898486982491291846121264791794136497183491467198346719432848981231649236189719627187421964927234929786462361841462423196423927398369242621474941762398187468242129736241629649617297494763682813232142373217373492762814194871241486829126768761243936971376191691693493861621497672938273841482837437927982376149714143912768937132691741296764968489368912731431797182673748283928683719616949392838736383421976362193696431686913418372196124717364628437267262943414398678629176974894736378496764171787321678276979869627474262787978189148232142821829234698392862731637348297676949717486197397631486947462693919372396378494786967417918972468143243437286343418326487164919692164391618219474943239747938136186714874867219181349246161873423716296269261341298123918282962174212417241732713469727637142371619134168484979838419617439198417923747126931273818732943219713819416374931489382386428368342198764692163826341389297171246372919286783294373139894171742637147317682718262434184161967939621437481891783876721864834247974234964963184894128123437363963798313292617462139289131928247831412826274973812862148739368936328313893894319298934784821423929271462692679276812848268134642346724217434392361736382698238382187318187868267341214182798241939812329498426283128929278914292717239764973232787139627168321713464393797919363242321293747147413142624313863217879281949273637362376274374267192418136178487674924712838963271243616414673474726197243834679279743932363826898128918162846821497161463979364217893893917278927639678967896848632184268949493718246461914797178794829317813479367838398623868289683681648624178314169749731421926231819671486237614831398387343292824746747178678212478928281721823147834123967418413643843421212429864214324127493738683716189829473189292826979131491732696279896864984682463939296439816418749827313846176462786249781423836914241648147963474984162483462746869192978272318131689162173962396142841381312671219643478626262617486783684212636436381321817269168969167491476979316347492849747493476963429179636121282796289671327497842162623168346862861397479714748623989492437686784146413869291691972497326791689796838489782434294287296438484363191728298974743682821689484696874614293162986183484167376986712132941736174876972161987691831829836924942961979487872369376768468671718139429729721386867231276481432781868461923892418946481614371242794981476361829249471878216296981698481326218681847437972791869146297483614916498167626929798489876931862716421874271849248976986316427271783619282691368679479421287237372192617187141384763261624391816282687693639374931318183279491368384924986392147483647616238748468132834341761913196826836243868741286497271398291432312491864914849267287617838674367312796389292896249639468914126724917486867823184313621842747642639378189764671731297949786387848918924929716184179421681963981741734196493719842971931684713821328281872349128368341614328237468398981418436427928187642823267178632373148969392643747293628987394123191492619674789794219842362769464943836341986276219468686982816464219129274237239419748174282313698367472869429193493181619891828912496361623847383763986728619272948967264289379193863979894749121271913248191271267421964218623284978617379734313267242673843219781282974236482621747123176279872132323897474614171742474676916961427316136283196937342627279717923764243167816413272739627216874869789123163128431376496129167946837398218623486797817367979616287126971246297263182631319269827473493817436149629181939272497329289681874397291879438769167692316123913268381431374176329496768413874827979741741834861698679289239219162417131216372786472786314341761636324286434737893421792638634128717262326946934873232432182178732613263439413142931837431494824283929429874374364942932169467176383784932196238147214137472982948437629142397631378731648742498284183429487436297916387929871648248419876742313673871813146724838463124838636348127974384361243672731487943218643416876382678928912879497967847318712431841341696313742348264791298928689319618217268326321689843783423734879168986141697129496128314617917821378379679647893281878972343769874169394746264171676138316149467846184316291964969864736326971379481371763734649891843437972676396939472483818176793686724793142396243287692764641689712649363918783189264382368274676879439463867482824328629327618741468642198213173989797348386747962878481824961698927264382383184616971971636861932368948746162681761978179817369692826786816231681428783434161389292929694314187349826868232484731362321281724634843741313169742428984734391871314867841767189864618272787167231378232321392341243626918136978347171686246217129793879864381843478637914274916868939298389742618179681892626972686273948693683891942687169713463141872431294363926168764171728984769841878369768913141327289494373823417179829194243938269684872989361429793289371267128271739146864248723748313871469767648383289283674828192184128241261376346913763619436968943297189262143121839828372898717124191716464697328948491761676827239217913962318946946293826461348792747913939786747631898941248467942717682987989348786174834279671921267647323132324693674148628163642781482616172761641736273863438678929732464283827431672481291932324747484687246416362491218193836948362347374318219296137136297148716181783814247237423434323681968417181918619278238141628626131262192438693746126917616926973189848382717414743178163671842684398984797436763687214343712318764367697416392921246438379162798278728491362187214293872838679431876141248316968723873641924313684384729898248616181263634327478431641626269439783432712624796728393196739248626141864389396313941389729379146264194878274749818969673163963263894613949642176162726813814836243734132314962397129861968364397386298278369428126274278792171271269783173219328131479141619134132964382697241632417619878721718141614326797493268327348392648969891414793248128383831493764196946728272784172493684624123763296364672489861943272729239262128769369612319714328961978423627428396838276486214647273719217283482639831234973818621218216383247261963626724813684343631769846917973186172483826132198379129831263891893713218269812636423168634328412161243861374923937296192361281691437947376126967319732712187293979893683169636818918718961939798319283818691981269182828296379381892791948291836791724619838483829198696286784947486482379473718684793636968392698498791463649193879212397373869864213168747342186292197193498293794382861417871274713198463729636961976419719289296187862147214173239638486192936786918191629392987976289136981283484818793296367489348249191672391627439463231363893812481287373787868742784897647414647891861743898142727837972686362929217828972687287492923168169147642412318248624191926898329862791368921614148237691684849161498949462937346174961927327287193878789769831719638237989487238696434284718641479426321231921967418719263419727419263268243912648674138398781847413928982963723287138361689862128794728191491678347973294161687264167132872692419741763897686749831236872929367419481236164749318693263973743293861862171439764176476381781376797148238316819864246381426321317987179724126198613698147196832387842137461781697397361478236198249846987218213727126839361429693214148464198689198497191242178681437471371692739642729867618798434219296247483193718379362313868628343184697318618627468384323816173638472692148172393714638913614979634841976239648798176176287361868213419483819347439842843874191213768646191932374898289437976914846421712814128713713791238961781761472826987414919291846938682948213862683923272142732964948628926982349471878712841963263692167678262826976164797361272172343173149479739739376242693963914297413968467383218791783632713694161627468749181932374761379194194341291847196368371789168942837243868912816268718394676918989896768961391418724364169739712431987464323712824187464242379893414246392131393129674327324978326831638346797862379676181397397686767673461731373964919172642838192821427127616364168919232346319796478191892461936396969279797921419278181394649297179414847281792749794618963234879837278912384648417631812397263138383782397264631718689482694867294861679819364947262786973196413472367969623464174982732314637968497123243428327624834984846172837136348781467163138926313813734321212916219629496481832637892961494723293819737276241814963282691743841292314982832718494976147386824738479143429736436914142143624731471214743637964643873689693482817486286423936289148481617948183121243282426464612934126467132174129813946179293639414624718637187931873682749617497914648484178719263276173791768428421276713739124849491498314313961213983143423424291232973848634232423124796742824683238767374628126346924948239391679142173814816487143682473648638423614213792917196367986762818197646237297891246823198931741786428431343979194671214398343971926767982713236427429239292346278469276783142979617329891727986236939862646293736298276918783728249683678389431368138374838432613874269378638197916342329671372186423124983861614217979812947264971919713489328496123172713976181297427139719274217936297987829289683297618629212793986817639694143149462367989683148283742831436843791497683926796923979123783217692349392371434782318268486932796897398724124876836392124768681364941893827169476168371747621383412346367187426931691973964189828617831483823237912919381492389634846439474746282464129634347821967638747298394314619346348426723641373472123674724848249492676468764149691492127432846484642429482962876769482898382979878717314189149742932942632148212971972349626819283121679491981823798632872361671298314387143787274814617273138371964373682942761231948936836232398248926727389426481693948436891216494343497839624162184391897161362929797492893162793146423437427828284219274793782726782971832389139298374646214919693941627676919323131839784926186971231274172362829819419396424948389183917612148982969826781974237376368212627943464987169617896924826748126478129136729727616376274397984692318643278297268792763929724989371249291213939723646747346217374393893676391469428746792914764636297962827318317836826274349874632616127921714126129842921478739848138686272621692784326373816423184636813414938686379349872434278763292471676232828194163748241416496191986931287698737372736781941786964314294983963413783167148494264316189173482616878287498317976326794798963193483624734898342317281718363828394932692634936461723729747824373916386918917493968174893141931362943239717147926328641414928618929718473239281929613421273481867419763289267461432782329649434192839284149248328714621217396939738178736782629268381636864142389713416489142192124262394818784847636847418343432743783724693832719642878626294867671468617842132143128196737823973164724724379367672183941278672148938464184784128371894768146493691347237928784371728238791932326793172982417681863472841914184923643928932363973813616317636471348713832879791378612919894867341419134263461419231986234647927641272624678783297264781474969127623686169627298267362674313631737478967823629729896289742372893427187482949187362492474638483649826489684681797169189686729747161924713479761374364876734982321324741721438934934968637639381238728369476394641891912421496424968691739269764232369172426328316712329423747414168319864374692131246823181313786716923826846828612141834131261791273471864149743984283794329646927274184127916497248384684376294381946298798436864241274282174617319692142838972794247417168491934824394812324326417498938714392679814237621948412383472643798648916967981798236927892941682487121812343849613619439814319243279761827383684364832361812914147869386313139391483976198393286821764293612974361791694316964213243762982381761482134696824892474692683643784834689182193947138378373947417691848968942791347138627641378689424181739472816348367364378431384728936218636148634292792181768269879283949748123981873786241278638642346763489474876361484294694163246848472737672461626718492872768342923638486284847263646147976472134983792718349278417382161931792897692972189328613842474897178428328343491784163846971869481392147976878141631849891817971242927219686147376836217282428393732723474873926462726397381797473136184123689121831261612484721874217981797419838296491736194897913934186147671792747214986468628737179893816143768329798162716713618636238317672949742612187178939816726821376289612683247243929314679372969639181423461321218424827984193437284768647231842387342969381613619363128389284319267878916812937614329343647984381319321947268421949738946412989219362898176438946181343172792982939834723713168172419239724323689632787939863983832942136817283434749891232867418361761478268432617932983928431278789218641861326482924617297242124382368726729271913732198421962127832142396423168289878627428198496969832826197137814912427417176169869691314832896293817194923274826848378426282327171716469271891939618414783287643476419769614648178167648297134792782647126498932382676949861916163726248921746167143979146973897918323917489217843167619782184872876947947839794143726429834739291749687283482623919261281837941797874829878291842437373918284312326894821427128183278919826394273631934918614936168617419898383217489182438319749298719167373412836762182481782183421932643239264393746197413967926878479373686163239676868749783862684829182824817847263629826719376969839378637614398281714872398264916941267191762929786821832717237212619632819819238346192438423474213269834862319898949271864892678917193293278317276728137329271261463712974134343898764639723213697494329476261416781928426414794697438791269863691246283896941643182424864946278797343948917461894341796386869628148979238927317328149898176473769216393286171729879692141718924246378914727692874198217389136282782627196982121371417693414397897347491769636972983429626273246164638796414272376437868234284621426491717246267327189723687362823827142841816737838986346276484671892812487681294172474264823171238349463762461343131897831412137383767183824198171861749646727928137469841329483716161973891819316797397936293913813737623129482697148164919186297861239894742364183967979743269498287186438496714919139434326216982436789746949838647676762921819264789163268781843646234626121292826783298964829148987423476729343628689797132638174192923749891326476124317129832412812627683171497612183417839784614813187398128274648467174673723679874172623873492489324874727643618147497981248163619414914918419616892316261261671718784219314679286862824718192174862174967234126491378319498137627218127643642681969319363296867389372618689697916289434841847838712812989494287261396749393973491937461434819389863626348679186869376723716373162937419217284198146939721672829471684929717843849487672817427321493469719329374848383729291284848272462926723424943498941489326846791426127263793492431612436864847686463241412467318764628689276179836867379263493482624341283617464714214938637942342749328767367413276794821687261916481294783839691989713291428692646789828176982928789473686831871281829649278431926293121796492917624217312791967143792932318287184742762816392697621623139647486821347924927213784321498149474796492612413412314142123297941478473281417678131632383636934648167826396839284384949467841987389814326937371914738764197147847973791879461367428486326342839437972796987132687629467397217891938238618198347843274316129127821931246274232729732768981213949181281963791263461617149168178172937193247219436481729467473148493928474969619782894698914237342636478287636438726148638983291967869181281616782312729628181638219618946783879163126843734192414728981217636464246198294323214267973976269713238784142429423169831832178623472418691487986238218734639896469691432373276134629186263439128381864192647418249768461868238263914923974328273621798282794861629878123647831939734263136916287436798298691931943961389428264248313949174648271631612426298376237864131329736297139289641841768972942736329282618484189419312947961261474232673138364947939471738746314674138786732432792836762938368293741432389391724896418438193736749498482318379263872463413764234376848734727132987817676482832964179193931816439692437167682816719414863613436947873267613987624878324847628494961729824216919348691621934292672813492419467381838982893728921723128612176316897849891372614278413727194142397983672936294346714197341643286924142138497867636976876341968917616939894247614213293191683946719623479716846393794787921384382678671376728396497921636874724727368482132943168498736347217171363974179768439269184212919824761719412491348986978423894862389674613934981672919143143232948914287438396241374296421734784379864216917938746971817214179839283271346727181867269626414782684313931369478648178672146193649136468962372627927626241713698218391919762943131861819369261684848369329178293419829376393934179717398941829618696794764384732369212341879281431264192931268716719762924648912168217642432873796276437126942612497291346369136434321817843278194169836891938718921376892436918174218732473612974843716938372169264239831423194843982868471638729271636396968428738698978948631439231826876191642671283812491276798297139131682821343478469898348796739263762836414646941976167419217391379176761978696126161413694828679716462748634787296372498769379641781342728741646474917639736748372939276497638764128726987627171969739181761826961818937394932496189427982138273923138638347631846329827868264789129173827984796782734781814974629689498321612917271414361693716472814137162312946937424949616797193182481496292391798628431263196329279619294764261838729868639828381373249489682414238918461612789893898174837879712932131781713978983624876263921873218964878262386786291424763467678678426918948987474842983167121748217869468718272328963497419783198432847829192794268721236789712747197413472169142636421839689637369274913468783919487283131919287168648371249148962847278142416764362671642678698612673924147927468934179282313712731986843867372163183937984134194691219294623821847917184149793981619194194619647468369736247289181989824278649891892836461892989821639878487824148346246898493412892142891824812178967293989671842826392861498943437913131849626868131961824746947697983849498481763971838167867937986168343818181463131917812912928929272948948413637692942984641839321724784769642317693631678161278168478731242486284638938313978269139262168742637638138428728989638626812438676286481214276782413167626236761767868621923719198641982626134987827832486971363164182136437939424732614214239267274714271691487412969383438243983871848148473287186439281314269474121237193238289391813926734921392736719648318787184179213148912632187417467232947979487363936291212323869698716296187423438473496297697648386729784648343278176394781634632691296912979172416346182928763417169892941742134368638148484982741874162893179167618989212914676346131319383631397232378294126734137392968232347471398737838423962418342783692938462698683827827686761818413126897391712932982394767464348719484216214923462837979142892919729469167213629268439427348948316198632679264131691692941498393293476826219426463968413917246932946379282978768281869674369137316794647897626178286971381836879124176189169482693821839231397172439712846416132836217148972923234236738183462793836368383786329878492787879471329232827848917361726292424371476392487613276484139328234942946367348242831463878283629642464929839372762462691891624894896314734234396241273824369482387817284312938172742364616426483498138417946739128648364726472678393798497839137263139272679297493437927267462643742987194639649317861978196247814737498138973191718697162134919236169364148129127298981869384632929269212938469794286319726829182328292121327183219626283934747862373942368493128326234982479263143731718792198632936478943686897649493286464923138489367678347829323816364169171679824674938148763218178974197272382769379148191416831916169836241741372389869647323269183284636979623717198272148762179483161732127471917247978683824747918717878418492919894384727647481291379283142149247679812184639293948286813838481243474393184363219876961368931327313138964687374213486181289241737616894363846713424872691628476426737392896963976791762172714761691326142178147692381417297431723836493139128936736137628983473197276842172327946897269486319749212189187921817892697298189196364981383727842389291619862648213434264127632939673297619474389897936346913461239317164173973986418638362937862616721612482186981612842794646234834267684178694237186397139642618384943617481312872893128762324961829474787317813936791373494131218362389798174192612379198373196727318637624761486813121646491692917428689342623287849642434393869842634373721436136472187626161279171673714694234161789312174829621478943197138432864247871463848638719292623916434713172728186962978138469892672827893894217374867191642191983948483287436924769741813792824769479718761742963616212372748942124781763821468212616237247497974281671828283267878236286962639434946863427612431362693218416491724383813132868767363231639394286293974689723487968431476487329273194789147184736218693796342918246247218391497813274217947193838638467682126324268297373161693429341862374932681462323181961834943762621647219296714696418436862679718346267181627161384672492486874814314734282468346891378984862826347192876731943739374917168416124813629493487168963637868632649168647262767138124147974196162961816424268713626921634769132467942646368963861379437329237681428691373219467876813783734791632393498292474298217368971762617267464871984686748268326973783964234819431248728682397313929289461418236767312479341676492463146836972829748316137836146938217149476743891372837628764243837831242836134798192472814943143243987672619172463986794796272141838479197936494946847173743793162843986249827921826186374923471348974317434978174123481438396491821623143786269329867474767934787213943262131372647186328472481842896941693142148781613642978423487693712972378682623641676713248372831217364371918289637381396412131479634386274328627634793736494987346748943718371262949398793986914691398318421484791872329179623628318497648782814823814374214261921782171419624216974127279169793468729389423767267413241476149848782173894696986161463684738243138681681426872724874376139474623863683236397928492382939296169679234679817284392314293923919418472867418986836348412346243191474746712376931929473248263296234981949236124727436192189621864971392873812917984137864849437123938649861696293878373429432127181713984843434789832396916379417497824163829643896939696391341634616418291273136787846968236487172678192383824791326473249168482918498239273917424178986792848727464316428987343493814312698173871973474148141468279696213296183121476172761247269741746938482926864383727236472714791716932184397814169898424834696946948279678731363921898678393741214768437646862978762962629789264342923461671618919424969196947429816483961617974238162839769616183219369828928969496949637674721862978673268649314323783871487248629172781396746439836731936413742638313737216892197479787839721767836217128643646238686929163497689734716727473492768621367163164128382128297242812986418626418619184912682392913178949481873841394643149821418947323921264921986818314234346194123739847412171394979167817879294937814961723483682642397216989474234196314139796289729482496491826278687278264814696171792329296963481914968481261769314693476493868478617847313968328267642138329186748693846989393917946373194841474794978721943249494941398164784867298278476848487936148172318137323264126387386743687216891347873486468679392421748738641818346716129196392187481989836814868981962938248346979374246439312798496492946183682891927213961829264298676476712924924631914693732861474612183462468927284627624974173718638246713982362427379492868412894927141414849478149742834713129797279628343692469369289149171682364386148714786378713896243141894834984963767237614847878419468698683637393923783414913137146397626961792412749286942929216241963647617371921397641217478628968219373423623786329124737962367316389786278236293973496424212189478126896346321219692472841976817246234216129214828696734917342639249292129871937836423878764313737982836272437232817147932691237937876941268923748193294863289141749764723749891794973716839294796841942323913646139178189146928241282461486976246964962781846171816132938423921439838679343289376262643674146291734947836923968961842942149269781791972627268492634274932479496121636897962143969723789861948286837879741897497836984348472423234397821236861949148189143472891962827987376734343976916767897927838684861484271742419241423713418121262374782397642912639329146781361261729761314638724976874683136828181721828374249624213721896379728921419823984816416767929764284217498361389873627847947178474741793816291921619849382898494296297636919498496164976348192927473689313298342782941681283632692461894964328736974274176364646297172373184947261491639462741974374398427431349326817617949798627323476734979212696168761486876794293236491941792949148648184149237941386291474846927692327836961763179296197987963826973262929274878412868716438687138174813612396864634828969797342723632742846329646291292934374767629796283696862797178246926927131912718768634818213827639343961281621929264864847196737274629417642438737647974824976131248141329876241698348921894916127148482478494261798416897676891437428914924796471289121261847979343781397213637987963817892739742412728329439191674236278734614879749867147491243498623198938694296917631671241834783929189681684729262867262364181696742641734642947679181738326327183691919361393248782371676964673424217629689341787396393961614681876364638429492798268717972371412728298378187293249193629689726819739746714691937834939284742641293436718469232461728374828617134168712124694327824182163921729267923249768212787634834789381347121737873713483978717392649326381879184817172637873646498271962964891281937379281437181986291272689297867967923712676349612972394186341962387483424136286391421432367681327627817916729472493129371418384989791219718231491372898318972174717314641239496737214132623842761926162147914382827361824932729486872643419394287624146973813672172767271832673932946384683973232619831618726984713878791913923824971767428178242417312181827293637284681481732672719723264926432472472428917937371326868649693139416184363164649896391472768367347314397138294643278346436713828631647369641489498981948197892392173243732796487262796397418281376373817134281781878127418146829683738216136876926246718348297423181918264987196716384894379613649393761971673791487183167314396474264236938214626138741361372167263487978967262736238137636972784984173737826414698478236168193437812424818436321687876279487871793923724734873497181497349238413797924236292983296123131649697943639298679249398426274361942986986812124739241739168916939718624872372918419282379873213912172717346729832626726281743483968194169729726174936312637328689626468348279636419124383212191767694387367961368278346482327649697632142917612424729842184646349797376843128712176473761828267323213463871943172962696237934873812371397674867878762984384194761343769139414183719426837474323484124342961867263298489787184161328424764234232394212684632843648292846827136768919164329716482384924128419746782369293289621934323212189796262128143242367437624987372386316148692768427897321964843126347947391626828272181981694271878978147924372431641894312813689849828793239426712619462473818219781912647821373484764267896496726917319467947836317317841612649487819376326423838189137182819164732476379268181683189296127931362342769818619682924679286494271436971749736397423623478397914234863734832686394823789374972919397287942624829432141394763464163629161621489797296347843191496878137934146718432618979428626761836938367681736142912318493787824349143492178163826962194891712141397629479476823478247867232197861781676761348148929798928371794964236271828286476284621917687969892198636379368924723642486494368974893139274369721828428412612614243798414936937383216279429429289476246942964216769863174141762639873146137962968136129623618619836829481789893674126919261248348791384714913473781764631467474638493924262893164628983872142981989873246963438346714363738734367313781873617964942423196471246271328424948926974219727968469494948787139794824193128468438624746383482482863467492392612871472672421426281879718949382161634132174389183176147281294219636492317629432179713489238619681619386781392318179428239416747937486324764871784676843497827876432789212371986427472196348234262739898187271276828974679628289486241324372794642467987698462737462396262187362123837498478419182946231792181247926823819719423194182142198982432427923231819612679373843121312692383123946169749268139681348193936174742736848193692132768913236293179347619197431693868147494169176941812974924289874289238179613917132468783169626497893171941474139324967364934984976369172367618147827831494928632742129398979647636146437871673473963726184846496212396828679476923769216931727684164846913127872891497623939792343438683498472148468464921267821478716347478427814142313672974861269396838617928973929768634681942693183138362769329272382727418271846796314962842696474397362363963761641429274642192928726123426193627128293836784972798729139469843298376472942931392314964898163723979198742769693924179847372921674718314276382848167898943171671818169292461319128717419728634216917969842469679312497974728693291387198193461792843768731617678932164847679139373671264747461786489678786963873431697673797484342832619321368393891428437131282326391842621767473178418639186417898781217174817971371392324743963832742647139231761764982989696387216869783178494821936286193287847131936474381739247967421684949697872763614847672763734261371267219427327173671384378464863287
3671812132936216863816372126393671843426471846164682927347328989646824139432836141364629638242648697621214946796841312912723124326397479218264281973941818938461218637274839269374392191929364726717973964236362131287923671246341729172691276834214728469891962496123942842392196923787637918479391617814174121787462646827636394386919129129782973234743498128672438173432167179423121939634764727371674182817128212819312363616469627918729743494729734849429347972732763262818173424238694719821431291634893893613498738737964972487386364343782638287828931486764831286974836289268262636384248162824798629421369428724927673163616898728319369741762148479792682421374834681286869483294692386183167372328724879416421271739283931491462191829432813794639618182497926867929183126213487283923989641294263789476873616279719749489817471624289738267694213714878129474941938964897613176943692817284783264143142198671386841893481279871373724826191928396986191876182369763839198479846816236364342946926834878678164297428742149647148949431987171634927378747276189831714396347268219412941898627439761679478798983929687832172313284724687937629814648716232841693418692737989862727492163178742392174929272939324132923897981864248321248936437681484192136282749839869748176492891642347837849169389681624742628321213161263179621242768161826438264367178276921216863671916147927938297672916421242828919324982123862672492427362141436249418942979797919686139891978686781286187891484149367973414987161728362374389247436164381913213868764767379269627926731287489273947343978761281742698342938682429824148282979138483943276729719274978743138673461836467673193671491496746818193213812394236298613824948746962729482918184861389792487272936317461294964632632821474387614798427232612439891832947924937439437819612497821739631873837292712946372638131267837824272468262418136818263649172383786837932724989297419698123817494398727264796246192413272197687213874291738693929646949142919764343197641671243869418262928697484379134236286496494831287987248789678936876389343467463496934743681242163728192929383283126476439219728942912482786929143428137963963928969687927846268376436173247812684818413476272942963734127938169469897362673632367129718917396847186917842491393181387694763748684948962692692868928974914979492838189496432829868174678646272637894194972719483891896812928972746387379676287378124848289463837363893121417986421213436412793787141734143676474621218214869897214163631617694171629147473728931781634847483862746962679294393747967674232838787816267828783732148438498423867967362816321812142973263987412813978678432719897487913674619178742734728267481791828269673783847971823481641976742384284641829718976498491891498614284137297162862147918198636369732413196394916179271843846281817192832493768764963861272698296289138416438237934747686269697472137172461328219743171794727692783737194812792424647362936282497148176923624814239262893876963173979197312831916724297647267938394261391624298378931692694139318782894936871812748938284217649827213728327971729198647282432672862393639686282621839276478979737983918631861374794671313172341931294714348676464341283261236364347374286862379163186427412939746718249721232123913849727369214879813839429781629342792694129683849769642139876869164261293167828348121794864734837869814382318463926397143274271219494287694374287631921297681234873494737681869648621739168286961986342138439472836861368276242318269328124982846212939186184896861812864216346126172146892497481987213817642893494249431792732323498742631297419787284767283647238148681796981436978791919498749714196431698236149767843473694649862678789323284969241241362426476429231816324681943126783821416492181628786841978969263294632728987474978732964149136168173972916792637482481324614214384278636372492791287863792879267218398739746768264384263297479732813839164926316731491813932381838364373198439438937919287162434169243861312128286262869747698198231461646726943282424243198276929897962193281764292319261982464682939231876432897914672616482979126219828741687897912714217891329867962378289678616896984724878478679279717842981734312349794826792827613869431697961212638374691926279492617323894947181496976273614392737421432189436948316879319497419146879816781974989379489236271762639678146987674148197297978984186867373837219643287163989348123839763269432679314982938676431692824193271283626363827184271698436121423614392719828496921862127838489691419823287373419242437628321696462129172623191268797829392713436861314184712979638218717373438982142419742829769216946363681428747247681978497868317367486489487176149769493876931294974798646721793946823929168971613121676183279141847231462972318324631894639836314194126372763191484626963934828918727919793981639787631241247318673236834349474831428471679348942373472376861729629323963978623932318312798947469237979893128714736326828219497391714147129183616963249862161319691491347327483813186163493481731979168143471863746791478172732894829486327691369814261869717863189194343717912746326737164147163846284632728496826723413783837484836868413831723414937161282197414324683747843416198176864942929238719469238739671689196242767814893791843136124316341248484362641743272969869761617149147476137897967281349834123783868373298648638261369649249782873129412183149689423272187973239294236376397469867679619787294269328978763171784721737383684149691947343282692697914973969197124136348718683246963639476728932764289674184363867987487198323214819314143268463826286369742916971294631823186264163864964743671747829236931787179796923634293268976898793139762848787694698912473986762147874247696849681913123616894692343712417643838641824937193861414683978419769383639267193946161861361647286326868478989391616123723929626463612173274212949289878472468469392497643848649263138932674213794989724394931812941767218613423487683616392941717183871828289363134198678124646721496896147434264639274348392878767824396292194218636948469646794348169293286173432373196827274616394938237262768937632463927817198131364734328183693434872412692184816762926974289387143429368928727686397483716767931468649269216813481492848187843893146486839498637434379286741374613236129679213273816478627264693489687417361649869862323693823424946468142976716878798282928938787212429239736249197643686742464941396763643676138462946492123989372617972382372793639828793129231892874194329423724931648619686896297894692189287978142816171647262497489192398987238264196719393242916183839137212123292849329342691234273936296913969424367928276326216138478494937261292671476849848962617821271496892796218789712926284673273194629394749621617328631983412848327479873916919423218317636862912498437674938127423281962639863926292347836129474147286434897146414292976137937464621673726141473294734261242832421864282698948396468171843128181714918691724782962329638176473179782328429716424767183729212148718268749873236743614313946919232474326428187897142728612621796146242362182817424398417879312424729818197423176838473478218176429414819467629323439193484831372936232126928347324647924792938273424968212826247829674937349481894739812479349618694936741818694614961892946986816234689484234281796273643691412374194929387234392849734969846162383437832326713167848629813438647489387969176432941232949137413931317439276314134921364169731696716916241391817464748961282123683429861291369464182713841213767692684282423768269323249434783714929383962326464696719497462962616387491427421814171896782196978789638498371364829378647868746341631471383969364686276747636869194386246732927963247817834847694938124287474218212838147643983713967271843676931749691969719638791263834984684721864761313162431679431946893464372197341848293289243971472874783249797619246246149292761934382476373984698689272642364823614697291892973762732426798672621239363871712816136942489197192869198414892938349438726436212621714681646142618673672491876819142843986947121241862641239261378314632986719216912691837234947976189212786217234614697921767816818267192643818639732414817376826834871471479131289632914617164938171813869286197183892892978721926474327273727194162879694898131463892912174796714343192121323492484617971473967468948683127976397683784386181421987349643672191493414296238746982793621398381629729849234921213842637879634326296879893234268217842738726971329262938147392427891763126321487272978462389374626786743794673139362917694824362848198917423929746241418232761271212931246926318498634631262163238683687379868619348638926398672848294792323126971696149496376318743438487821982862191214929328796874383973642172649479763982323712843197194972714781746812792123831392874967462639194727142938928273179283847631687863427297247173248141641396131689427438298623818926374126878761471716367143719836124738246469237249719346312632769687417619736916313126479183729649289724643736987127649131217184168973812978363864243826784127467936718682362798696187162141818623296868783967926193271748967949643262128273732389361916196812423437927612728179194984936941727983478232147328232839214973936278627934626494297878276394364312169641468192891793196494982317836328131679243829732893797926984317248417696247273834247429312438216738372749841738947189217278769173127269163273482162469239247674383982986484834783189679841287943796369726782321462743627214171971238989716487467964234136863624343683614824913267418348739643146381436232979348323214687814689319494398482432923261341941684746721293427263969429141936476834968794369714793681921497827424976861817632371974173934189632948781896713616479387283898368461413671796273696928749286748692423798938478284982791692913693461737341428397184261734646494938273421673474963434987431438384319263894381216491796796916987426484687168191826316361946281673219384686983147814738364183414274864187239246386738498493149692627397648792162976142962487161834826742393832926198642813181296392762181927291692461824619678746727487392793194176894328136816872379362742682879349239434181429273812846297696342346879376927123434284876176714714734232796719748261478678987872628219821428484837962462683614893432828269786384231234938463621714724747123742792939147989371494198237832412472319689281649867383686842781487829684964639642684324828172381717126237139686392828642491248489319621742191414374828389369617868396416294949324971296939692767426374134847321839183483186137372432648128932672421986416142193894782642189696327892464279361217876141832947392974298649214323631873634624873681784246834267818741431416864627296368197623821734124829437263417461976898418781631217648318937192648181247343694698271376784967487929241861648281861262494986312467469718968136161869168717674912978962798946732386812138638181728926171371738164326196982314846178349742932469394641969276862342627173616417291429312632638721614127467648287437919743436941476173761786218496798783148162724684293923871912792427943612423793697262848769343713161918761474276494614969829268121482621984271419646169268682764936814929747417387916741231219893132793678418982134943847394123729376473173898216719173768694264943419874731717219421927869127846437437184898782987167276913197464684621976734821842468794797647631738478914181643647372172149434134674734647136397942129731341434894816346417612476813937978349628917628428179483876386186393781721979292931878739318717619789494976149721389421834823471787468298178691937381328124147382346463219247136894742683982387818293787326379891746214969423929697168732329368382342682767367878419281871482649343689893982932982938624638217364962398626739423412348769149797327129386894783286826838212317696261317878921318948186347364394982673982791824928262874167814913167614649424621686374674121729168628971434279374342796916242132328393621641614617348241273724921683718946246427916894847379284963979679247418347869314167641867869328691246397487926376427373284387936714963962412797363636924148424312636198123726869874961317147136216924364861726131724812731341728198982468912128368431829371347127417294637437341681634368932418942916826847484298282969671648761714893647949636474276723421868987427362978317424617837862132423947843737396146391481294838434121874164638618313197139463169291731248423178349272914613828739376361787238261491642983939491794262691237826316924924612832793124387982379824279683718972418641463876814723467389627417178136479761641349216396871763898161649836762718172327693714698231438931364139312982984726129237237278684749769323429431238478684786374913238321292789892374897198624983618423768297398747249848323783979162836381292129836189186238472198786782643193693123467238487164618264747498486378479138493648629673948297138781367962479164371981483281643823616217346942343268638968694264718326494296271829372896231841289649798376319891891413198182847426248634763716489636197472414164193789386437243239842673896468469823181649289487176219486361461362923989796931617648791613871848637898267232174217696393819431767631942829198673914374838481826123696962173438249316192818364192379861272681212792848276268943464216798269731613187489278384696869789428289693828141317268398286892484918391347214318469867839231623914746918947942617191986879671979382939129781636748692698418989262796419298349367987242649874931346917478138387318149896367376271762464967367929646712481267967946737397928321921318482787343639873919196194793264276437437161939873483873289693674128948126761342816171343247121738197932193674316848684931621747417437821239421369431691824164319727979694724198249139784974314641292476239893186934672648746964196286736464264238787649297239143941319819693821867269491237636123896389183414946978717264981769292393679187919891276789696262428236832121978423916848127436236392793864346428923424349618196376937374264614894389761436942628418323423876868379217387248392313624786391372472729814136416313714191231747679716842964938939219671967676812437214687989143716431426318387493212191872317937292861241363913961417371478678929729138387493787679814683436949312626923792827348637937828748634738247187243131393783473219314761241418743141892982163912489468639189237628926734878747262829136263493212973427676868641816946737196734629321943748679836298432869374713218412327178247239198346182421736913962623217897986397397848619436831497232647124687893816496828792839861919372962619392642729823484826249369396248191767437482641678726492482482878184739783842639624621672429393698493297397234742846376962389467914874768647414371828161269126462897831974397861692874747381298316473298929798427178319437179674987234641826184317481419843276793217313489726892867986719424869314197367826382761486723632439672476142614138168692692737178419846964276987183919649819361974989271619198498162949417674916267243161383894974923121782682121878727617642676192478478189272763172349679719482312989627963461418396186748127648319742616927484783698439619791838293217274298162897929879673616134694638928769179281464369892797492372614973732762936169181398621682874969683712643283723424936738261376823672414728376824918327839827132932646296781698431687683786348692917212471291328369398149839194397478761474126846723478769376186848212678634831319671629163921239498634613929747939874949278723961264623747848973738213189832463647124241824316767273249284719894313296283731613834382636976829439676919618964143626261373863462197496368986743436428392891321461986749137671612694746464381714762814163427138414731431831313192328678329436929438413271867329461414387686373672641369793283298347837284817186471749194219362198671841379413164326717948913634918647264231923672686484681717849294932872197134649187631819472812878438198373473692681868318486214326797648724696348796471894629761429798793473292937232484812168176498194873184862187467147413867316196394372696437176839693947467687974628397971386896364949823849479193138426162189193269828692197123131246289648429387867349286432342482128246123827839868628292146313894818343937173834623279746419839821461463628798321397861316463143748286421386416932327187291869898792364138369697173178138316473962647913838798971397123469394127961689139279438143463872763472741328298724727678387361947684284734383687213172348178429217816171834181439471928461971834248383713948483964373949391612198283637861732613231987431491874967613717676217479362124268469698748292649783962632429762948929728376828181894919214243426276917392748916246174686962696939174789267416728974287329816216471431346343236349163161327348312784692464284329417262846968648797181323274387861473648132132132134628427684389629239841629296216861964863781921212942478373187318621372879817147431784123687398362347686276938716967617698131272931973784982768946414214818182374361681498389727482689197863732764314649243462682628631623292397341962683874398287921214369323276474198791783268431762418214367482849127416243431642494389786978489218689861243868418729742636942674148313873941384812471798241324761824843296781829238736143672731913937612437949797341624861241764826989638413143246167237323842674639619737381921347963879218931862464397364643473281836742829496182674712389629149763786469893987291689691818246192497627891791864868486218479867161436187867468289836129161892713864297242831464232389429263496329694231793639432981317368714192619184131373164797626326973898127921981627873829692616892924196921324719831271727937143468431343161398342398421369393842834319861834218467292427483869383217287924824679231286837263186729279837164693471732841963234641283861367946728731897642376476169214919898648279431946923163613639786267397691241792132417437164712713838947247973471927327613618496374797264646897613841748174247419383479616279787273814323181386212717643264369898978361438686742343823947428698681734196421296984198962971746372919183831649679482387364318789879623786762348367691298272962982796469836973848917271478496734986469739896397827491496871471829186287134724613424129732679179634148618613484232728398489184727694382384679734913761326867139381943181371814191479746863694363971638327469729386873914986784979291789476762983487234894694989232326437412679264946472141712946986327146212718163734862128136424239416216216296934396832893969648487269816291681363494214612323732183749372769749181824212638242987126826326141468218426761691437137272161371927816946212161487247692893197642734613762946214392468341341737394681796392476879293432949728783172479167461724946716767627173472829868674726396297484823672832717163829239686262324837693767623294128478327368282746416743472926389723498246946287923862739879134273874296768921719872416393836274689837824631461969392726467676414947212612348623913282742678787272391642437324719687698421316473134347494978727218937171842649236424632683128483692372314146138718241412913473128727371718937478321487619623467286382812693674219237846348368396936194978187962484761928132692397876739382742732623712329361436164641983698371241764272898962742363963849262791283731727636949763961923723768363789369731982873246782468236932789478489783234294383897328628942892486741894379471361286167167879427639162646727813482832382961328361717641791716184396494876826781932914387817169436748684178138938434387284797892846786178789481291462871367263284768218421463943672821948264931479743871437629423646812823186171613184296812923627934236396287232636418947271617969174696213742196413726198231281847846947193296387963914723493197627463836819826914724917634321619798946176747384148148627841816829828673617913632928794748949414683497278742867323197483214371676468239496732469696148626742917393429643814689834212949361439262312718983217196737637496867172624294737348189394834741494897842686836827626174969847918147389781637269269147914172127316138167648386824641893949841842979239279678918367874968189498434682697493624647349861978739298968724648367398932394316379167832749864892621437428691239767696786264793481363493848324136243647247249371898942313274948212876421632892732634898632689249427973676819134636817832718472694393248626937179416137987387163494912464393987898361487212961283872612797831476716729243161974818631393647823987967918212724818142619647417389818632397471232821463834181341343146419812861839434697246483272748748463423698682632372497481684982173761269372429279787123624731949123463826783698927198141836314791634921242719232124781741329692684247493646919414623869343483482982812746967384782648687124239161829792318949317827396184342416174726217913192624784393893162312982694648148493284961268292914694637471461824392937869217983789767914329317171294696314726923872841989178172393162838149676176283978124264346498196246817838292964287132126846896171764613173946481728989496326327123682813793878793237481381237192142329826931283986496182713146918787171764346287631467416343826276739217297328469232641282641423897371762686326937378279482821787469393174943489621867361741971393916876492437378136831416948132641361832163162792126812643263298624747148792479276783816346924391397813176189618496319729721794896193493869873184717348623286389198218643268318918467128926894386912868496949392647689392647431496428196972436164343679682961486191434242481676374747462173432928617268674913676362893694378716134394298278132379728683296797946737849491281273193924869627436314896979891929321478674746169464764213489694849462749794382161497868712843297247196868243962743683436927394187273826474894136974632143167287941496178241421723714784794313481267489837917618146238732716946439869391789278789698269786848642193274173926982436482986189761846482162637934794692687163161717438964784929646912178924874831393438461318743134272417419162837321628927676343172784787864264382968972631923179837148649236941387913148369386792619372947691431943246426919239831231291373928923939849168739721839246361346291481969316917629384648183843284231713837293182798683982146976124679274692828964748264679472768367436471317818696419462794286978249139128714741234182849187234372316472767137498948928681214268426814821913237868612394614294269762631643929626937236137193234891829634739267213873612834649436914246749346131794747137821848931714234297312941617917146284624797368131878327892678723616928736341918976293741412719897483932489694212424183213242974724732898963868171698432418178134161748483716819687316972468378932732491818437618686712843131343932413948637297697391849182378919349769862679876414893832647371817492962934289476271963891298237926962417498743239269234937613164274372823692313471921674818134617816376987383493924329368736437919726191296797469898926197919629732382169828979182873762314827218169494163837823162969217321242937939768724842739146231679314267121493867261678646984941273946372369482987916297879319839197492921263973427162672818628939818169721478618972929732416284218461791912463916827323491372986262614389732123469123681837924734317134626717491728769192398434176831987627238438749387969717163439869298312842972379236168639643486169196931831738394286829623929642684869129378278796418319436424739842329283196298389631973124263927212817679683274826763638429232721798694646237986976318364864638169174864173294162183742412137847974692194943147478697924828747418479781672684743838463972834912469426872371361762472161729632796976373962982728613292172982393826841961494347878681818973786434798462493231834346324628989162943974737638792172819768196927262986968492197986493761818412681419834862127837363989712698467976348713673161978262367234924646172128746328381838418384721796838282894261468967698132184729416871673196794784387262891736721287316831371712432726231391832614838787496982947198734367369128649326894191676916941293976216421846473239698467247391319369187391647818214217128319486921741214724724917827686472749682718691763187423273924876467186823671392618196131279821721289297363719789387128274348264281672376921818642712346767841671781827864834698432741964397427489383123673749316198919476237412624284731763983164389837842863428212687631746414868641361282962989376787124947179797631369634184687879342379317461428282682492934932137491869897964786929173261234283824243636974261834378312962649468487138676417378191892718396287631873672712373193713984968269342967396281323932863967462718739687212174318467147816214346962981946983271837984989361481684794616979869619189349372983762323438679727421482678324238969676216838249714343841749426434293147426292937319729473871989497874797238212372326243173916287173741371821712142368142437371974216278972794692876297842718946982146176712941793136412696717212686248734391964987496482769181284367237913792943928218929624213789213462382921424818784386367891823497387243938671892174243792934369672647198139742123672174973914843813868729716428314973982672949796173791217982179364693981892392623823243173743916482383638182898483474716963896182612932926842619318492681294314769187496247412397297837179382469163714321718284393281929894731926969849343896781723193424871416746363989679621727168239386242372867284162862814361727483961328287179214126286891913761412191984868719891619316296272967829319479846469676921939627232762816818329314878634686836784826286329713687219184312649149432197498639616468794232813137491871267961283686737923676463726186249248439819872717868343848362621696961927182639432912189137273713981831813824146916861832423798243764647636928141724723231616937898381294247961418413834986717986947984783874198418692362796912428639371239479148217831684286381962746714786368626174392638639692621364839718434187937234136872746189149827439694123143478238468476186797826817286741367479626863763186483893148319231387349716824927913867214819783767136292148171313783718369183941963426283187863716921623943282376949172873783817478324142713896434378792712469862413687274198121732487181291862413829178621938294846793278697349873836381896428148932131716264721989363873686784643474173789439836171823898417392791834617193219671614764349372437372768391782747842813467834382478648793781623863941987198242326912742764141826742496181427869689871481316182193439724878498912868978179741781823861873136787473937413763812939414267217172978692687172743842412797397147623292698143789686426123196316747191897326124841796939183818792792932798789629479848298142121721298476816419319892312126946412469484797643894792483216178761619471673642819867181764969321267482717947179121616429434238491848793181297129373919347383127869426371818167629361646972491919218939797214187326284282838328369419478712979839373682462761414329782632831928429482673621949439712689131742498969469423743291621874721694129781891312627836326741361464842376216282781286829796413484362147418683968273478692728389738121634272394326816923248982737131791294623242878629862741678693197461291792634194172973186131638287818232419384836761496297434293971819631694823897863718626123614636839623646943919731298961724697618178961739824678948272431973483861747697878413624632684234876271343838436291378692894618423769238184624691461919463841913179684972413649489481489864826438132683973643828196734623849121646341623836967478689368614123624629848686343879293823739781932898461276928181327631317284284128729626497473126383879173734267964612718381498413612324262972893813281864712431283172136248236181969691648681848278164732479298674863141749717979123796342617276383789817198673787978731868264236389386929316471924387196714927143487461482923432191393762681213269237432989393683796398768671681389372387848198176324341696274843426427174372643634717381373748947926127827931419497386769194848316912193493949467929697874361637141484131767849731631718234719196217328247484216382872147916128482463417217482861314932676146276193498182121676272673679369437131841981734674721917942129361369681492139381437313242482878261496181636478414348934978397916428713178736148146483973268398976317143193183143284364274214671871624762623263814631636784692782464176391383849789648361896321639619231237927241262673646497698972631493294183986797374731918618292163196326761372729749768461237474832329346848247267649231836171961921389717274391834126371612678347912361749284727972424293483161921728769428138313693739218421349789721361736271429846837389842437948413613896718139371747276273723819674162141793913641764893937212382198641314398939634643476262476272328393476863434728672732891368137246929638234312742782469279486489643486981818767673629723921617689218383487843239896132349864284926481761329127817989673126796168314383616924862787984682814192924286971373271646182891426829717374612146348186184812969278262349842389732863897146714648431271619121818726848128369612973167296749316289489289238291392637614894894149132462916246267394124313147243497987249394728362427481314829767813728629734794238462784381981473686286219618972492138293828312974741736418142342397371986728293187928981743837148628483873269796861767878313973847282936946484217179797294738248248727389247862964819762383876329629167264834979729461696492924672828193623298636834323467427394283162617498673478148126493297623676962724836176132483716486836386839747636918276849829237436739168427183631738634697432716213817848248129136168982919349739274714628187636196721617941432797162712489186296848427969698412613793618986372343621289127232461647276361949891624636418979161921391489673637126491621413879371629213246137216286821231738383898148194931974927646342989398147874914929816189421217646834297487679424893812989196874673981474849276184894231692619767438769641484247196349679469697161879762624923676289341789327974831319838362393464681267249398184281618982617417624916736429127987232986498316219131232413678176762423987237492727869721272847676831293419683216813248689673946384249631239768219413434843874913728243163184746787283874764214786469368696397864737424282363272137238423914343248186274714647414798162193874861932161836289486497321769218193928613893478392629896946347393832783498767492646947282317827821632973624836241732636179841792483169383471267913917824984827396873842382147262734636784242928161929272747643414721871373691863623471824869483747427683729317937976968193869369737162979142743286239481637817646436963186729818373126268386143891786712946349386832971429794692784847192673167429693726916424747414638786868718341798281638241418416471676341237631323949384239616498734891342192724674784261426478636423967174324723647834148361924268127193476342131983626969871312482134941916376939289343838746286198617968763219813817684189869264121436829472839787273849868946343629262763929868786742373296172432742416713616983934293216164916473748734328621739369283497837874629614214834212427482714386314862863249381689489639867934149241273428749271786934297298649412362841618314249473792929687294741686284797172193864842472329461397842671914829391967376786267646712637298678784318768746736198734684136986863713787323489132489343714768349893848394642394784347942319428468989649712848434391713173262714238181971292716368218729263879798619297439313423693693823416767942324378326272649326916796921983947387212783869731942682623832943973143486246313272342647149838624817483724769246493732913423293212947483291979218183231392486247167361412729124279267876216874327617686768192831281618498167137149283434964149146464934213267328976498472716249429384382931313492384728694161364893674296271826136489479498967498132198482192124923292931723948294689424869867194281434282314186428479283714967641747868281843629612141716427171732178713246173187434186134861723413212696424647162393691684237346767343143761643789327693697281838143626123849124179163976716172623931746364194127238732389693987316894632829496872826842898139789432164238318697814989498148628197476417476163712121476769691941242187381637826783849171319842962347679414278964383428487893639236492697178783214876839713474687982646919127418191368319397846971736143162983246292931641749782987841717982379798348424184697649286782347287237681719219146476767921684937831298434939191849634823471787484696723691787241948983728373186217387839134219484174639432316872414346974629282842929763839816897648742637678217984742861283417179216313643739373492878638137286238942487384391234261396964181798146296747496393726898486832764631491942989214713286894612631984989437986272674694821741389671428318268612894274843478189282467483494679496171384717614838329197967982184371429498643147397493687629346437412643284697969864124212413429719397918726793438134619472784173641948937361917434287842726278282121921841436386169167838731823934843816728149434149641619839167291438131623417369871812817839781769429849638376179797173929161424323282891684317362394389497163729491764927181348246262869313817428181793782323718616349692989686274689469383872496876716963792494681786412727167274821982396724646389739689173741293863182391371812132796263819372648673487928789689687329382187162984168986374618468731374679149238491278467649343212149314382394671261481631237414212486947963747878624913873634726376793714697212632162316943739317394943863793217126794828318676436471393163431362193746269418237424148648383187174247847292981791497627464926398383841463413231936924849687164194786719631249131649631391216231392618612146986792838184836121796963974686424692927131629691919641837214142167817183612764834869426167349681671738627939423121298468624149724362394248247361498184212498234896149424283276892867326262127818723273617176176129748738782176734896174614741639826264918936321891492971932821381694129896414891713121342387681317621969832681269816496284739137487297381649894146292874623713793417312964967341362989472748917182186747171249161296343789646862196819818231761969797869497283629747494294686362141341961924261781471421814387286717381439874979823273494671717626862769138674781743619764698139219246393469747276434728671493471747168732374191283426391931439348414728974238312432872768198231963491283179796247942897938472748636787213748718646824183926987919216129726414694821672767826497138293629471641361434378182738367684678323737461287329761962673286979139731684281939286362714747492914827372683719682149168269298371432916727647943929872342129686298147861629793972474747413793632672939721391863138431869381464163723712194621478298689193794382726712968424836739879261397312428476296239736278647614162149732179832974746879167148342924837686841967136963498371824682476893829317241973416291419862123986893974837841436489713263768912976787346878939282178728781432168418928143831319892426481746427897131493837929297671918614839867298793939398383939761429346989419748319369428971871426768426896249291826847413896893232474943839836439192678972124868173634128328913743628216264638273767872619641718692639836961743471283798498438174729827194619189746391767349813267187973612186912941873796749846148943164638421476841727697491813731714948678371626132729691381894736271232191621484716986719498176864297174242714983797236318149312647692421498263726382673812349637282698267697964687497932769321767624931474378769214926764717138628136418678978763928961318768312864287379718368721732637632367387268197493282842323492183967672419789197494928294317929498793693689487869819787268434396262786163196724918234783629372476342381293963938616932174372736189426461491968727371469749264637136392612386169824948679329281467696961734264392731982826292976436476738917473939782719843786873637842368127349376392649239632464186261641897641298482949161636231962623187912492973768632723981684783497697932641639427843836836463168396871678961313193498617396178798327398368728918748612732734829898638129194796319626218976293929814938496378641249191637234239821323434784972142713163497161979636162437248678963892363781319673868734913847312791768976263121693738413746287242827648623972169787816387323971936436834737438212876324697134128961424149471797238912371498694192869348418239232636797683291648767267432826871813213143132143812187187648187192719879178789312761916316476236978167376248942898361728797318314764168184968198628972176868382196989894184676924319478624964691287486982874161871284376921672946968471737371961982481382724247362143976487219783712839683828412831267268318279876424837476898192141629282938627849471241931914918269769218261863423162419787691837638421213284321929246491979824983281924786869393282831236721616937943149628681936389642182686186368412469347214398134843919386848267437327261213291894172763138626382641689896416868172139142794378736947624284892342918416394297678368461989473426342186231842469249734274216913916262134967978924128974721672986162841636761736274789619639879826818167863968362983713247643732971969813731963713621213272983946837293194793712149892319467124837429124748736862642462734646472939186189484967386389124212624918639683412837321293487323417828431671278792623739429364234248361674834367191484612698619476382671743468164343174829131272862614848618928273186491396417379621789867274967216929792414219428319141928241816927326417934267168493961717848491829381374614869729724289363642698167248496167398342746796967828629491361721273476971417289639214217213414389362924836847174349383461436831632481621439267872492948172876984769716291247479247918312934729867827384712473182823283481294347439719891429641291916172987397284261312932197931413738172989364767238616793696343784386492797173767131316262861414686876834624689814946864363612183182612319767424798189689426871384381968327197289827646364361863498231679287614786168327471427687846289169827163468438213684271684376482826282614626434834314218941812148716292161682947318619739748361471396169183897484682697681873786387492898724697182624123717369849821272342126948289189871898479293716264694798618374681298634826831719148674942623469486218964318982934961926363637463137364687291427868914839819248913812186162962613932678261326326432371921732613916836947349174827176724798363498131748172814361891797292617139287974234794392147876391417123128721763294376832391474936196213742931983947976314278194363249486796969731318178197693129676417329867131323919123263738281913127683612194642426291827421292783462341474718316192387949823698962717383282672624187261913879239326369716913696919836318393828321936769713939469731329428138129678671649289719784181476786427214689682872469767482767416879638967163234198721243724616312379747394146187348373496212932476128326483687219686934727427394723494874874796732794267437919138967168396946824219826827398978264347643682731312643797896498947972123674396762814891747238767647943134813979879472343784368672149312437628767239897972364984968378248618787684693627417482136989498974269313786794924867389317249873647319327649813896183643678714613927141769491872624271237897348329823684729196394836491473717284293427434639816243763714723876836238912363498738926973142637681967963246164816217819874972374797172967342424218764691676737261942179636478237379682169418261743672982631721423936732472741898768739289629368628479841467967692739649679839782821361297826769891312762912868739814239328363426382731817416741638164673474219639696792946389741378417346724982943149878689768164874231649291364836863678923784967823128268986271324868984793786137827867232427632412942891792391432323683193941413471984321797286786197946941864142789736494919236193682941949493914287327137971731976724818169863793962147968924746962917934624628414962484761949138724736361628373613864619738796176163863268137171397368497162629748917189491293173421697272747972762714214246124264191368728749632936241261789769848413234874978121386848739134314191632643879696142376347676913146396831692981718282494346374869167838689613937376371938938281732489172646249629172782619793913174323413217462638174193672417862493429687629124942948731219486237638191498787914169713469673474831317348671868624674912463478384313189698413727264816178671367474142921981873171247631647691419387147292943837876727423831983786493637423921764817247461823869784318231969232819834837671294797461982638296864639489783186731496296728232694814698941813986918932349717437179621729316839294912861816391724912692939268329492397291818196791484136827387347268179871613897946473292627871696789716849379463498298343139762346719478397342128932986972848238189274673481717848361873637916932372434137941974273947397129497913637213292629719264632876414136893427419791393246937286321968674379273187923196231217168742746161498797148734271487367876789191937348947896984936496982838976249861846976468764242724874313282627216917212413684194343278794641879373718297893439723427482316426732696878913819368394767142968178624738394291972187929427297484616917837186174749412819841391687238782979329612412181381397143824273787924912879417374217272642841313831367484341737184848739297426243986423841369697983421292842187871946341717982343428263912421632818191613181824712362474287147423146827921728989487647232964791913784394262971323239748298383623431696486816471423727186386879473439217626219341741684624982846836467171242679191764181871832797629682183679812838319167648287814129282376234841419261616483928262742938314162128162392981847313972716121323818279121723473967373486293868278718916129349673246847649139624237126161237418724836896468686174138274641271498293169471736371969172327231297161468489343429467424176813483618917927484363942798142123123863198797291928132943267868913417297191821383213767138242487437898683678678183731274141976734378481893972728271839686391491726497641327634272343896846741816821698171647639314613742137196167436342924164616394636819468314161676746493897436193748482741913492839626274781268948691826178969131219264328687282484314761837137282743786896489863686761427249729682486481694924619394696792947898273872984231486439812626876423294324987468764694942376374868689374696172162841634691732746173489267327139821763246348767867183923432791864182394763874738179492863272316143174791764921841271438434717948319849129647684989289289468468379798364948693836931797371862321461671832749397147198189363426361373962623921931743198686269729127692973284646373871418927392826914973823746414762479126286397676398767624271234343247919276982163161792841976294631264639629493169372827693189682832468793692923716289736237187648949872841827483819767649837314294936761487939371768721346839396471434641318237938128631893637464386247381931949386192962682768963714869827696484161648938194984982634182381432942879891691481978192176181621891697216831364328617218937863429837283793416913183476936284329187478294273967824124179714318189474617271696768329198939742836987948431472941419397278379373131386828628938294946137986892317696847478792646762642964984827637232726482493632126897871694941467427232481818914393417132892848426747378319469734289147174161781936246342486439746176321613914631312416713246972648928646486416194892617193417481786397179234794247427918639434761342746462698621768316261283939237919679749141719746816821798748184891738316386867646436834787298312484868626318484239486461373473819434193787287398169268924313689273798793483621961319196982489123683989239142873134216132929194289343179371894926348413232769679417894389437823423298376417272839616176489268676841937693867493148627141373268697941289319418296121647284914971393676962782731381678126434216823737947413286878367916168646797683198967284634274842914731941498348789764972764862894824724739713712672712724782848423964919767131269714397126728187176171789419632168686181879762693473172849283828392814837826943734219141478279312432837328364324162691649724684917693234921419696128492679181968321414169394714386394789236828261792896864624192129319876427483621787423824698492687914989143891878687423819681324624614784319174763248713824632974694678697374979281343762741787487481472636798767213162936389317673841478374727989834894748381368424786231871783163761693298127361738984824874676961281673216918376729473421932731249297928761247239694148794832681987697382463673797194316848136729837873678234692736964243147378343289123631237987381794673486274942838783721893978292982871249892738724821737397141262742797193473826846131612148197246976942736436328368716834876729478417386264697836839768978374217218741748796724689261643632979892429473942426273174621482483879683247217317692874724892438767938326247469281689137968673292479148192623163946324198969692769727839398797218348949747267814797626819173764681874647429798493791421232719672474123848478923219796476824618432781894929268417126247171831482798167969616164126893179716746183891286918431632826341642732924387164386168697819294981283914249292374319148461681418763827392379283974641836942692468289893238424632917976317171878972176191986387343149376346294763974978121264248949182438123891676468247432734841767239438474912671747438614831837297263496263732126786973239198636864383643936749767427279247238672178769738947817164121379383717498128912813913717942983849278372836142414671786263162819716768141483927862767397269148179691392681621474946489383178318972927431424618284682436291798726412872824289249841742862394764631379843172387487184812827436929626173693268274863898734164923748474829418198479493989728386319827973972769689197242412917371931924969219868183973827186369163168427982783482834948636732363963473249346439194726946764372428484984784761368231343793619237912489619416728436783841873684198639784312181872181719713494946918429128376397137143616427638274761467947476146738726812924821413289369796971496298434926984372647862929831364362978329716721431619713432879683136734364834839723276416162383124891782791639783792878647292786327894898479141346178717368742476397812828296741638497918734147197937928671246128324739841417463762869783493978626246179248217687138428343791692374717936783912813721963126482841948179462768791898274232914792786837948624673624843968239786721429698696317679148191746194698179493694193678483294813646479816939371276264242389481437917124989264241219892743197123213982689736376743239693182164162624329319363864173237187673127878314292196864947172987147217392384961461721979497246762684691741673636919724693142389629389636312938176738478729421683129364728643679248168468423746427148362379643943989674268649192397278246263814846941742613176313462328741764724923492737619646847823638769219127617694241317216246939494176438397867467283942638247423138673696989128974382724634723291787269796164879232134287439796861231363243828269619747294129474161292186276828643791372343471784248671413696763734238617942163141748623238717979864839162834378279898386342969696313196734179381324268623294162342797312412141746278917396819419894168348714974967816842826814721281341316839194162139434164238321347976427463738316248214398797161987468413893718947179634123767268179836892393813687461471478981732714328436486827182693239648712316146467237378724949478639291876373692947428424239892842934174232324142623896939682373928796121361976916989164869742373282718289636131436138924142473426292714121437418498632123929613216787232496971974232128269832414743131969291831648412439762468394867463684314878947374976973148637629296426978986741767236428314184762646313469327986471243431426761218492679146379374838929636762428927624326267412618414284361892691486381918483719768494123864861283174234293868742682423623787828731912616491784293924613968437697838386847187326789832671474967634398186978194648629361419783471816174647984232686946876826894762834813169363736827281613767361826396437693973432137973694749843437919468679832389678684737167218198763428919761694318737874983629474864739283814169172829836179394971971269323812124686983197632628972874928698621631821631784784297268237486842723239138617329283248631473139896816479198196264862894926821918943621931898384819769842929384791642969436947973141967823648747281921463243181248131969139618636138361791313438969171798914943269494719212636316163862186421376393414269132719214743434898921728923628346173414928724816193719816716436714346482847878321467393162912489174972697678694982678942969643818913423618241424963491681837393621234869831632179142714232874126431984679476238738248189287912468296768191341826423621924973749164978932484834897848621828123939816479837827461384173121431474324123278169879268617494381838346936343497961242181274178373736936316376179426362349136478462148624274398682432863176816362493289217236182838614897323797243989486194937173129329389217879624282912846187361769431267371823626918731492962176313416812164281873632842672689313178216823181249347362947327182686348974897693439319139317864918319769467312923698919487378717672636493482913698926216361364942176374132137941787497818628196168273916284794839892194629293897681696293219376967896434878981349379298432689281812613278629214972763676212414213679164176438471287432981239317186821949327491687429198981624679747129621939346979382196273461972721248284147169674148943282831648648781819736878313981261891793618426472198342914369798648196373729194839473697369829384947438678286849463124726378717372392428743231767232862743787961367612329267438789321919836174818491849434684182946393763194897696379617429876297917981628414283272737346129239898213849847638389196846149269291216979786368142961493794739319763916246138643784686293189436847268983893863734632482483839213919619876284767147182821962817619136736874273234127393169428763697463472612931629862424194718734143719837982384968796312798934148126876363876871872686464149272769834721789864723621263697693161293937927364897384784249719176849632678132698348428942182878643673836219871478329419396242919296137232678342464634638642437498723476348142397673273864167392783437341862432313728349627197676894783232641361639371739327831378979146121843161621693694694298681386417846141797167293191723789728376397687172471438981794218293791832168929783216923271329636142727869364191396987692818143931878979282843417318391363741938324134768468146961879234719282481694321463892392392473413696848932361262314628497264728383729384261213236487878476716161686868486919246376434621938961243273196463182918496373132416148369767849392138693162678293178319268363732621286813469682732463632349491719141749326812768179689212471729179836319482864128238732826946231849387472878912362381321248241927642938762192472189624768921686916387943416467891292839619719862834346124973696294292791684946976372649363214149482919746746892714674617123637984841321381468698138462871268493963972478963272486842423627319346896713182978241649461479787632327439789347186731461791364923961323871768123764982621261273989869746783967376482461343468239826497263624314767173241367486416214347618372438412472198981279823219641469841696127478697986931614626941739896389184186184121416238321914234181416141469612676162679293916269347418916278128631747619431863431894871836843297839146961724176281498789746124281482424143124134369149798391642928681384249146931637297873864972849316938764393819648671848467879728467876389386984372787483496184163894723292424928182917691328267329132892623934849867246493974196736273783737929823731896898983182612379786279818782141984214178986439692618682769678436364742634374976821349368236481849264327623931368987696949649329763726381621438396794817174631273897132318348646931213728476324363212947686293762979739174792927283718972734181921386989626347143696427412923729234127134249769379143769618926938161383627423683719789282319481271262916482694832784121896262418361286162893471798618987367417493686798496123743127927326163178192363912978762743784916814916236186987629693479192148428917416212382946842194798792327498791412193262718798342143928689126838261874864784869894213932873736971728646294961972187172489634942729149384969294941724981293289246436963439376412921628674742737912621679124768743634863167369718637837439182493619791679317268742832863862874129498942413728938163841814327121638182936813231684218238398763694232827297262628241612792682437382726179482823189849238174379143676396147487484796863914971432196931789823673618136467196393462324686971491892687689682363462942734372647897349842432742439267249694968684279243872124712876386124819271264634646486419828431347181364392836486762164196968423464629371281481271624671492843217617462327643649814767391826798289393297871438139746141246718476264297316879292632124729472129282873267393487316378963218938638328248436417167434293293139138461292342329486738149128241379786812684826828127231379728279348629694294382487861278347692368971241642618437291329214269628948467329268486328912437132426367193716787897383142121634731821831382828121298649191434317942373821473486469148371478646389326821372781432471412327928162624294148149676297137639289262618237279749216968674342627687397362398971414617246761971787438371486839427219483861361313138349473491938686976763491242828279419827464314381624972894718964732716489624739172929612624624123946979764838413169328168984939216973481813749787439132124937282971636296979162416871618917963684324812869162472361346213916828296874396794293474292129841343179731324976787219862679623632147479684938387181362828329829187938487329397241846782374748979473892947626793896746264828212493946172164689813698171218792497219896367383287361747417313768627921289826491916278293847924869794182163898978317362672321931382827429474146989621427178432976172391861914247282842764923297671792743623729412617176878183643216237496863947989842427624923692894293947679821396878274146746963414797398723698128682939832937834983214691643981734719612397838969638132126863429879393278142686989637616172192734619617869829461928741616379279879464786783613629897987131896874643874613197342348674836187638173421894793138917386497274921646381439397143134128287383829687973628616743161818698314684871879367826392132389696826979428484284612839176312324384938421213626489839814868948627274234296948623791719169476236284691836179862476943268262497184349628929487847246398697849214123464989128148626163687439196914319193862492169641291841472827897971341917989814131823464978184713843863426176817842723829723217838641423646341491764294367378276327271616184264812676196298178921294843862343936437367919679313143163642686737878631424684636416812314213461721673941642347971381693698232348641914936464642879418323262973737629197649384863279136387262181926876376393728674964389879439471213821879689412764814619419383641378287616871237428794123234848987362748729127627686729178149768684714981624871246489646843476974121286971292932193893876173931934647234193896182867327484923879467973276212713648479146781363263163627286429326942917478714373896342391891316914371471968231279767194987947969874347898798492468691942472789747461983923834172967316242926874686929387342969819896474846361283471894232346173836826389898316974921627124984721837213243141981712827672186812692614718976943616813848974697672827379868246439798949213146834673676292469679181243628267237986497818979213472639317924146249819867646394319698328123984179473494271697872719693476869171626942926324136897678683639349679282312361767187939284913649124869264979196721269631968281373212134934641392762462846862387286823987276191347876731219179396869693427679686298719169348484742198918636231637946734784298373926291474818747482834313469419121614136976146282468961624237617134964123746824927972797312741381891762814692498271363791327824681897618949282489142393136146269763748497181819867218138296842364198417837623179492372842126148139728791814978628686898232468926461894693784716263961939238694839369236196961237931272826391343698939184938383432921623927176872473121947139142843941279726467379729878313892424963497323296793274691748637693167317248386396493913462934274326878142728489714698726946491243482147473483739712489696318121849768737898792739198763962742834697324689829346261434267147923278926147634341241793616937419371874812494627617892984319812828783296937927194189487697286818484984149792892769392683236398974148329743894891438396791847619479167689838739784641841383483872314123717868123969879478938241939148968297983419464289637427493276862782639492781783768794726369863274846913671634896819278216913813618768496979817267684986189419392878424738747181394274768672932187469493296216373463241298298791649721492481764919384183768134679824679391791813737832873981461928973683474926931943129178487387236282468194327634123748163648292396963423467191717497413129163978618428946214823929736319719769243472796867698621842472917348931414316787462634189897963161238136984941369389624132487986189219212462727284279363129612793937864674869874317161861941969831293281246264289647846267618281898176924849372794812613632837646389747936143469789323189427328749896487389793213641329847321496398162987318424679362473687239217423976419394962637361972628176182368939837394623246746879289248486319427464943948368179821373762961892942141841487183241364234837178291874374813271878478783849296148647976914972848179124281871862942393768347178762672918692394132464878683962696873274984937478764896979828236847439686416232412849638161412627137313826927121412618969824837919681486872131487212794679767241698364394379429313867341264123748193714239148464749639824368262172394812746813164321817629891467974919326279861817439393137626872746464963821734719641636816362163484293148243786784386194148386827684247376843278181318768743682374682397342346471273767427941747987468716749869846829262329682894681793161636973298626263239671837913272642943478498929717923134346469714278919789423282713691391943692183981329463462612964893747637127826467489167613298268183714941397878727848263791628493941324769128792674679863121264937249671842438683621696264741437343831814969768649743182689497249476712697614184828474783296741672197613232316321429478292437346132986494731429168424683694792483834283927491721976868161746383238379218327987169217928686346897867649214367398632637298196427691798413626438271673987862176138417273928383626876376878169672828191341397379391378149678437827637814924846194136192781349349617192143141489282729163846316439694243293917624381298169683741679261612689348789318481646848323731972173879171461417693431423781248729832732432789316867896494639816341982486138784324214983727863782964686498248937843486782914784927824323928974136234631984142979839362346169143824948941476416931989297349427371787324971474279719421791914972819479826491297962943818382143962414686291439436179794349487926376393976261381981683176383213232328418747238498787378789376363847273274637612827232391316239342381392494636476376818462826794171324974318474749413929648372473726791739239648789278429621317634747267394348138319738296284636138483769383897328628731638271679789267187941632919781346484747326237138974792134747461238374684893649637348413186824179492647237941468267972396427271489386138316148271317487918198786217864328297892676921878979383132486916418373827423896243989278481987478178417187843293289421962974894373784319898287943463782692737983134781986474381672936492686892317247319174689782473981437491387231418318431676894849878763296263897491238482323834742614749317471376941694713898463292468698367484923126232467343842183147636369742321248147473976797129426741793246346897297161621961293218171312189763864931729842746863219624921378932376427691747892867314963279326214321374694821373782646437312383631892929439134237928929364278671949848192619181671631698318941436193732678689314282379492727284373184147323621381681236318129261989893246398679186714343787894264843483637272497969426287342671968128717219618163841286917631471362312427474693623717838243474929483649869323479439194979282174187413682798372971641274841727924613239787383474976937379238272837872368389134827843414691846141437368938417864986982849414193216149761948641932636423947634963921386716163271489849262874361318394274282724234131642793473698124613639691613126428671726269217326231832646426141694973174212829294269768184742327891364919612684727934398438739419281218378712823276483186834648198748793172179819137872723724296428323893193471746483862391412939323489414784763842473278376847892976797817179691326961939682197418938137361761293841249812873619391973278187941397194939691976123472314931936838964394681384746838141497426748671727617382383678382689213243692943614979147898942978391821836367618984892939387473623831938641271427219878741897841314378326343238497678791846463768324281627619841386246718941326714867817246484328291372323849398961439139789748637484986296813646172721936168769172462634718234121983694813917173763893928264237878421434329836273643792738646312638796134741973469839394184619648626821789817193763934691837432732862414897972128319463927272983493467962474149424261814969894372492389689489346943247989472684626413634932729831436986213167393178189264981461942469614837384868217438464284284767934961719183497269714927916426924812124129392323471673747648961868287393861894823814324934371913747483142979893789614673149614841984639136417494291948186183189846289626823646391836819412421623812431291393931717261621716323289182623682742439838913176763717612614836413494869843617632646748186436821391239423232383671941394798734987626181637648796498214868716489271864729484698146426967616816479762932814739873496171789736482798643171972839296492124817873831983616946832326212792323271846248179649231417316328928936926314389178394613638627267482328761484834748363723891816498682683914616167469631696123464162374793947962341793769648328487617326874736742694932864646176182932724289212482121276397869134932473879817634631383743893296967196293818743761684798471398681384194726786282162926912823461293236212121263843624986876792921469692921342738642348391491632468472383764396971247427197347962171242734197613832791326268212867196892431246131867646297872492789739313412424234731676843739414672614637124719282427261276162374712498423748218146181681271973197241948419121619896749393176294242639278983247424628741289817986232142191797297241818371343961814317614916497432394781716342176939781827269862894816747173793137461296464732382879293213212693829318392174143729217168246382928694761639369826914926484261971318641674361672379196373872764283948732943829172743674321897862387427426329134128279482312373196483672637393612162971641342793649289298363682972698294972618749326176969462464283289421214682928232864828976142474841689769148314671791373212737682798969131418134328147246397283843283279474376721748327831673792434187974163763931423176896949162849618721234273971293641871392629421913487818618246924148647927417484942137486863964292681916919296124634246129161342638321672432836816969376417472124176212848149192863676878161218914697216982421374672717297936387329464679393742863764929467826731846486962384793968629491742818418379279724942848381419631318146434276898641819126424832484376293671917421647421962134946274892838714161436281614191614931823876896769361687894674917213962723892129823961738364839897862412696421636789642817948126838417348431372671864262983283841981924746848179437681768916174164727876926873138797636869281696271239629274828678767627986948972183612674768463421498316976871964341937279624717846931327934283249612939737893732496712818691279714693139286148927424896781612947272941626287896791343938493879321897282423479673467494691898138794139621924916932747393832948461762731476296173863129873134947394743848963694812839781764914938361976734363939182989634941679814281643174196173643461626923847498631412623694763134686718381284238178743921839683876329749814938134641426274213739417629272832426976423829742178968696969736734132323969383489724643279298928237684917371278146192848278361843726168742361728236836468386874961216231746194719141372491624847461463643614319643178141481439474693428693796276187272178197347968264182843461968374784641241693469312326239361964167946892932918682674132913214143987462781343614714617216397874627321826986831381716294714961234793267843131624281648276439676936313236742891329131213873297379672326721673627839173423149842638348949426721434162716736983879124231483167278271741428717372128464898436286384318486762617282143947372327313782836269248281381763729363142362786898263729748764292868636164143482712468649284269868392131473864178467147623412418472314184272314984282434386862676968483429713137436784187414973437261748218716464718186234282189381293926874894239827476163123273968723271842134682424241923184971298486312728391674716792814929764394364714976964689479792364867432797484712676367394637373792893931421484927963767167314381742694941948961314362974286183713729318418623284969313171231247324814712898176314947371396921647141324731371348378739627689124346893931849392931383939483621276737269769741436793469262789863239483134761837698636186196184327967234914821967861947123972987617917237134791323672187862469684149273912393484196234213647142171828626176436461767381897141823469464374149763821812649439617394694828479879472471824742383873871349734821721942696426464387123989678378678617974986416796386769863723872673472789781284741816976783617481812934767321986923273479294948327468367194246841824674174262746194817312814937128987212367341694791234684843826768769681961426784286867879478794186214129398691868493848186412912964934242943213613494372783287932481427816727836243839683768178978164932964163476342948242818793494347278787191676474362628629381819342421638232194289389849868919649361487269861941748978263976793469178963841468674214876942126932896169481474869148983949379717418938717472414346168164349293496868192679824239621413723927982429763631691643163474783642731743186846969346834387896981396898348398691464268931323717492463861312989736763987968742962323124693162362413219791986721386369319136894278349834964721979812479816961926121216847639234794371871492192616489131276876481341847986218428186436946491376174976216784697197947348324143482464741948463916438683714814314684383124891231473437246214981792129638694283912989129243434824294923928634694892146937368726167419783949132496361792978478762767131479721396917312949687173163181494841494731362791693172969738298386867634964843134236738173243641632814939787392718286243694834184929623264368429682782812769342483246712497373261869764638296768932627291349846363862374727236813176371841647349136787436819391217416979787479132431937496163762824216843284134281768987183282464968129643718361292139769816821841931473738676981381647917218492173932727827982426721872976481989163838139741438931634896962862713416978937436269746364312368939732146962834714642821342329471637126394146183686897341943183623126918424761489473193246979719497264631283497693721369426767342424781981296239638216324247424712612121372943417246272647269614138392412612613869372716179498719242613276749317172846347389146379261489141819317432176279871627487927986862484729281431789364862169196163647684213781673469139612816768926134831478196323923787218947917146214697947828136394831421262762431367398682317242989613726729191264712314849634972616916147213194713731372148246321439421682384396429737631492138313131793183819838123816796242191891818472927378494172426939131427329134892319371728298349468646271463876413634324371623498192471439197371423478937978984916729762863919349717893842749879232616497398329186263231789791829836192349471217673683873812876287272629687268281643614798278969871696427918978271373763734129179682871348431734842767276182963687371319362179197267282827387421936947829469768962191293963472693621797478769749314848914918249462168473124898238287176874628714383924942648794274261286174173284913691492796943181218738281762918182838179149462381839479243631937148793414632627679239861723698783492623978976718471616428264379396427273937343418189697147398612469421713737298974246369243428189768987423237363187812328974936278182439679267634949873817278128146214183297143864628684912947321423696941743284178387196823912183841794143872717846289323872324943846971426374263238672628427946174162367474986916318414616916797672768194396726468418213762417374289398724368726861893948986273727846982141679741986429431282631641363419323639838674862348718437196739826726843948146812147329489831341283174763869791876198982938714129474192384374849796936768262624284768939491248748342879768271979764631326482198762787342782362649383813898674381947282728363818246316286397646767343181437146412314642976731394683628374783262148714721961981671264382343234893419718647691846847484313132681931786191216981269641362728179796278641829891639471748369179742947639763838962768691724984618347313796796784818697384286236372974387138691471437482434968738681634614274964678412919894897383719634648931873136146789472481868923829421862426798626727393416276763613413618643942738912368398789136981383687213481761314943878428729489247429138716794862163789162917827296872487926879389672412727126183718262421378312618962698232631386713679324347349687981421393682617231987636214217683234138363487686841914396249161298723747642789261312937378719723713986934676289848982624742686747624218182712146412369893281431847173829673234242194681846948484394718674276423868719321267819676123634968326926384647391824987246232174683142736143461969146174834932361292864976167642138391696719412984714746934738161347623634763149781267942483742681613879734632786496138469423638419749329798341931876874737232484387491413734382131839462687476721829482629348437176928498746237821892361673986731234714691378276171983947927927947146746762818734678287484626263826947348936813768286174316212723412371321698421643919268148124141249434869426749131278364217261746317436261348696482169368378179724128673191789828412867479279363471371367913967673471296281617423629283642163768971483296397231392762318319692738746812863867624761327273764872947872421473439134716198272981316989871439794914638729491267167471736171732976941627192397268346184929327178368682382328179232631486892641492873793973864892849198364829689836769294183897841839831896392616834623196381498393234181487327369616942689237981912936747681492148327282472383486138934698614374769269761216936279269871626784273134931793246916797214936386984217693434312871294329768612839727626497384283971474763872816814847869846292397941846217434264987961287892174613413964371918474134139213962643247382368416173147312794727493917126476483986791219484161321219289636931461872378624697912712674648273431243868289149894621262927628769294672162349368379647934731746217683928938679798412498491746287269274626489192616821431928294623843634717973137429426218981367629348961764978934179196423234329234261242868189437817141241436964612376428629371213282792812891497414137821872424924931297616287684763187148281247128143916289484812413862691217827687193169419817294292782374721734834238238139871924761979636217679792413727686361382439139427648234214869318482639281863474732379871616479469469179494196796134964342649497462174141798762836797134721472727392681434823639387378219692939237197429742676321828639189681342976842768423979834269846891612619827468647264979164372947241429634371721217979323916732821936914747367279181942396841342471478212638271362472124241689434161483719137148419162914628386919389364397173684684728479749287292876243826367961741642396898971613961474392843818638746937198318741471832936178394782686167938316741712636183912396867897492869281439147686871496972941637369628437864737396823932987898194382924828937276142719672397671472619126326367471369876939146978736262196341814974867279461643186717179738962414148747241248413438369432848732786828214931964872467314917674646129363287938918171217486173686341342931836143232848494286292181894123269641463692912848626139348182419798371726348746312863716162897971891481274824136183972796786921293824167262319897898943973241234982639378634724164983732313741421281892737697163417146413131829143932718474369264961284286497217973263827891934747963121437928146298178436816321323219726297898373176497938282743782872949167483218741949348768131646976712121391713429813417282647476878714829383289239176989296497238616794682483284836161746212126916323891272839792169697642369729213719146746486931694326197123218639238647947473623284216319712792481783827171436343629697919891341767289239294984342813931486892828171312434367969713279647276918367142632676961346743614129386173947343262312421968267268624621482818743438737686367694863126814786464384917846984379746868716716736843898289286364724386276736813198298626232369729783698242362612616434682814714941931276278262467419836212674739761683938298121483917284639127368924291493698316341478372673428161276747679681847217873679828681936286494217868238672641792719347928917182312823683182837341428239346162989161438769863793631967941912384196219396329348317368394714349818734791817284964121816239162163426123867316829637982476369879623732792741271898278943139146132637398736974627964962327296472864931631291747328749478461912373237969464967192864349294813194713983283738731232749813279862849384943472836243268763849827642694184232924173836349861474131216786819489613639148141738767472329273219369736713932617269896842924674232126292762147269631327971786862413831821298368487171349198679797371969393632424637314919314682413747943813972183969631424928938783891872913284718734913636828416868714746873791348496789279749142987981319781319497196846478479318372139861919721313983793741817372642694343643464363828643271263789838248946967898392673416836481828787419137382691367314692413232842691919342768393263892416143146379431646231731248989193437143194143793239676436464962434676292879792672414748792187272683671918928387638383926716384926243212978687961638382346343698731491417842731762312143937468981816471679736123721697971341317162846389741439168736721679892368347626126718127631267486816816792796849761431472179898974738218472913198142983439871713946894741839432192428483624831638273182821938972327936174981269169373142181682121487178396294713482826321917231863982918679291616787623628468243937972379797212791746748274874838324271243793929681294642837481674791813419387649136318321431243213471981319891832719391648381437181616397149728381979274171619684716398672183241379373827164172648782741463893427168139178796917814268376419472317414148142381631479712432148798139169783862693216739694929492981281831329461739364742632969372684291627171939784862637487262932323474743263619819193721863936873796131646836296984713163123467896817976786736879681964273419749212763418643432617817148983619874894396937196189738728173841694739281642486379312467641732726484192687196428948726172979386849813249642491748719137189213868676896317146978363714381717264678373932769767127278284829647296989212872426731762961243918783436243872414943627429342132368642482847323423681314971492418172813471471976937193149682783784674926142823486296271968747971424686873824763829239129198938982638126876961724383947424987678217637947369783717931392192128738363413648471369729812821326263932817683834681296891636327349481631264638693794983428397847169379686738238171921846238768436982837193484161363626797476734693634924286749787829728264362429737467478381974389481367327136914913938767496932724896723831979312934127949761371789238197478786784717424627476831616142346148462718314872628983148262312612974387619769893293283649718242972629367649291324313723146781931381942389736934618438612391264368269682678413781834813432494391946373743978737631392484819738728481736472964929264986131318121247487428972791234876483179648392986948324917814962646426461868241676384613942783268697186927371469474219712831264217319282697362121818282427289789323741843436927834916342718497343467276129378297286437246423123124382862827238439326786318398932383749618172127367479361318612461612187631273238212823694271494371986191689736978198618271961672363247926147869764761946134136917241939172727139731697361627921846178149282637141418172191237278396726187647846474263278749839621218369214124869698986274769364146914193124162173681989232726827969373838127141912893192141787646796936793186284626428381437412628321676147847193913714761821728217439487419412646827841241486121649689396328932969147186349761968672849278283912812813948238619289419328928621469428916476872824684973782121369781831248921843737396912426829418749262627846749896738691212349263646764682148398423632897164843879719767682627486962924287643471686896821212483943216819181724843169819673483698126732678643183436293624896862767929894961427874683761748439729173816267261784814726246794814787683942312143931794387937142423797367343132418263837948983428626484979636281276321371274738292178713497246413413967126178714267683141986296871371493769324319693427823296416478268161693969737627243974912984396198979326276173432418973791786369741646793682379747838637361489189868271378983696723131864392984298979469138743279498929768171714739678328461467346743912438123726231917497914814249837972924247437929217219374243283137831631917693621219376972961837196271796987474136782924689174691646471349764712824828978296432896491432314269642684861321676929149648327841239616198179184674943673916767324943168638973986278943719282894291282163267867286238347184386346767692313184831626341828183762387691249384327497324639864362847973867196964386146879484373738468687876748787148386821423143869734894676494798912746171648392343147684727848672946343427194819687243873729624316917936237296862124718641392498183283942921682767132319721291264626373427974687916497948364279832127282891836496181741469327286749641943784132712397896793236319793281486819876279872897983213196183721616168673843821693464384861284943827194342872172923739312714913419879641917869742121797476478342628712692136483892628419728191891893268434873973672687613842638431671714172714386219721712863426741461692179248387838463691328746783969891838769279196243832737913879471929841423964168284672391212897847364148246241423861381419492791374676382747614964646719249123987679718719127948638712721764647376964823824149614918717461861796423983683237461272413164734193642467247968148976768149474137361342734618381713127263726424349391272367249613464964261862894786271698793941616493686131242176139492781874848497349728739816976282928741649727484198939383274749624314317831317979838423979427268671372636716262161496893273283784823219717837419412979417674878623968623891418439783282847198194691792829434231243249269741898641474236969674376137173274398386789894613496131238361262364717962748931841497317293681294161761898327638749687126364894913198976247137183438173697347164191348292843182129283718191686967291393474187292437979146769183648198364234619732328179493278642621729416949874964143147847493941921424241796326786197694821473181493624381261238278464698179642628713238382386932126934814392827186287476326414838139897471847396326767143274697841232487682439183976127987391832371913267689483271647617612434326924792378479427482879849764348782692137439748318713917184389372123841687967436429343267212314862739818328918626976738683646863218497491414793621838269319896972163647139241847916973469672642386164274263273171717824939647674649817912894317389463739741976421248627813793641869284748987678767832427439343639641737313246739379129494198648462387147687438234362681346494941341681916286464386198612416741437418373136164924689198276841294876139327147971917461747972961264249794873787278438694648939678634764372197626172127942186317918927191862428361981482471786197362967493193239392484363482941721362313241398182462391427842818137913472421781984726273638946762646479216971469361627968262697482639327478721273638124948323296761396494849861641474878219813793873496361972927631924324164167214831393928284917129724621786491843478469784219478272713418167938973619194978781929673712827346324896969719374212729128484142392319234179623643282643937236821973746981792382184187462191271679184386489297239648349262798612863489464691727173929247346719861717167829612712439327186826293832729634187621378629243674328762143467848749394674814918496743141372626128728617427972724683272761642343492827647132376793431412367969612719487618632346326389318438142197847324362716261271648949749871271219786948937432623479368379193732437481974387467921414831479292383693786484863894834637169387196373847927424128938178741367649483189186784948389412769237979296142361371424794737649164138179478489643168498921962473648732467647126232412817238746487213274384274198269178248138624289271626192129367186489273741374393424184729842346969398171493129342173412348394747237614623816391941876871826893727382167248124947238492361949314786237437918649626369128121346414817387892438964683968439269693979421837318637912137689172132324792374929282849239637238782731741761817263898783641931468416323273689271436841274847461623736947467389762434837129764942642474972618329327316961671374281472736486186328983614728274347237468369131346987286761242721216942729697632314784141842471483413798282742818717182629734796973791379347864974768378647682463934791843138323981219627631472371729316272812763934676321436318391397648291786912428682942893424364231979316838942861431231298431647426476819787142313982369781819789389427692823234716972817349423674621843182768789619434296936276364839243892139269798291398913487634914146496348193863768361731379271439814924742872797972721282313143873729893638343482932473129812929264139878318328419382929434371348471218978249126721841413141838373941786743697271871796412914787426718128287973713712797283462717346292176987673869312191863896829262484846129616393678342832793732948329134686269876193718372676734942483864943734268674163728232918676741343187296346423686917371613797479497974179213481638161716873167647389796936163916969834129868781467243686928148319624164134176983727287364896498638292916276378972916196369742436363712419464643841938431734389412427987948363294192412982792349129791213429124978463213432317134274748721487461914132736161891626313473182697834916231982349343637643917291247372734619231717626272671718267461481349283867392719129639621784867427328261862643489183867967134924143898217341921949348471412792682897213946724291691692873764132872174378728972394327638263134728342642672424362939424718137878426797183128632817634389431938269498419486314347868261324373719197423816941342869498367172797414897171241634632146193239616749781869134168382439683713493238321487164947178232179824989727427286943241869471468249792197949148493731243894149673921724846349643916397194721964131297878417439684324143183638686716791768912319746876432418972481284983248478632371724362426484369297934817463412421293983627486464282473197647473691393429238617696132981389821697982489276919636178737396181972916914784383796387636419839367271231979894878979348131423936464919616918346847379412676832878342681938132968981684373928124613282413474729729139481238137491292968134382741762871934397623936436961723496214714798979834147484313691692968493983839289367473982894797926421843932849464341823868742983892697381731763861321428217679269214326981984172398136127468417269618942643964838263472948247837261878918471987821968137964282676942491931393928936128317297124374783948174242342874793719439367863871314961786891968964627292963282684673498627874631214167624197461741648386819271489636373218739216129893491231719436916216497386189734646724249894716412641689469648467368917287979812396831787138237342962327619798919396976479434946834643961641717348967434371276326432612672948276981739794294123637146482714632748947396186464343792918216478719376928473739686242346291286796876327414246132129697368981291787242736348647124949376242494143626291891273236429317814231964267212693248479247246824942636347616181496163194196348964397124231641386864637692687132647131393783828131272439842348746231631927297817131262798128136972972683436417681612612189742376121838291367131486941678492898246786817473828636396381828418929497319182816491263193921867198278641494248491483898147349828383482926746974628919694247183892986791938462623121868367323796271938648939164167648934187217248478478646248739328682876969423492627898178296232317879342679361976247838171327149197623486264847963747934931314816274869342439371262343871898132839467623294241273434768437984149194789142721792364381781632673498683628326324292189789198241396247612624691472424637892686829194232613167191914191232631464918218379672641247231297427929678964619674686121832491492496824379379164974792939461791238364719142386819167464873184763741286989614768362723273731382673234296291296146812414912327428724287873967831478382897212939824287612812176369464137213984329871936728369121627139818617619261431971282636891636286239471289898932786486237316782326341326296264969216931384189479698942713421431313218763974786324321726924937362143747837869836274678439723838364398178267469782427876797121289783126292427127916837846379836724681798162697236768769269737879149379731641786421769328949767214919689193624261927129812178242768161869693614924749213129793926347838126286149243869437378167626341284198148361726313732621834747498761863674819417231641841821383618313621462428184143876716393924634672121943948162838392493282938317241474827939231787242174148362689314989676278761874241716767492169849239874632374834342438612324767646294148192839873968464894634698436141719341732643898947371934912743794943736248984769647814219719312321249619648681767697436182762129169678941491627497836931464832367839247896973613931346924328231974632698981439867384169382961842378943137647423249679624932782648968672836174232829284249741731818371984621416978941383163217143671696231396173961231493741869134734637827498928629379184147267683142342874793728263494939261842914317481746782942973676212794972917392713986738381346728919463791368241627427872174278734684634346743463814637396418968617198641672746294926716313169269764136414837197937382687141931964919171323927364174843919716278148374384381731246484871316986839323787683497127817162749386894343431439797912681989734619827938972389287298769689432938161364261361734724167974172742816237429279478282926978437213932689318691291763647234136981418127216947478626239732346476472917374931346326489846236182129267194236486428793917847372621493747218143797149363891469894323147634273643797981616138717684182897393623746321249896962343212147876793698937362381743748348613143673476189723713472397873428768414612896726243761376192643813962818671847136138939282824368163171481631389341734914868684286317241364289732376381674834867878693737141418214323218313821698318719281826719493783293274989731494826819383842363491613264678696419742482739328791718197983627897621419613974747919694676427193212812124298931817292826384398318638762697913931324141816342743748138348236726726482482432989436827927616383864838172683839214843962474737231789181967368346378498198941786482476389767294367364939642873962419219343949842329374898198383678698934961393292891898289231283643761964743946834361621826381467969197213734838129426472971798176897421694176472314836393923726861394248431378623841292317916763716736931261879382318313474742198736238397216432197293681431487691737291782917193482931461426762761343196839176189324921394193924641763867191748192414348128178191723621949617186419871974269616293846719497242838691461476964793293193187474973971247974268168917374321373821794283747138261983716874382479628121648371393719831629289719379827427936712317864218141434186861972128137973843184243672972486937924971493694974947476368163827679418926347297613942732983673472167984814282796397167284214131712146364213124637632679391632481686231697341313272796927478284726919897891814784342341618398341213769861439761418672898641243837168147849292328989763846872692174672934848127923478246981627329369376767989123649782813241928341983723272432161689634192428437216427421912914286741674616321672193979672392481432131476734871839623272828134146862168713634673216129479618678247829621863929262179346136491486934141219262924261982646763872796427421484781361768948192838289797976184612191368279317497386476172832846978286831894374623741948967974821629124624974817943786478194278194821863646464843968247137137171364648742968748927819291281372896428317682839186379236141641486782898134193842412472846329162614676974927846412419246712496828389698938736943782982843632647862731248414293621931931813642397469197376927271487423798628382324827379728138783426247831436791496723212487874898984397398298343276982181868423427141271761671914374631718242783783971393931213419843414769837174978128687827636893292873916241391978317131316481767171643164617243817214128127969317937378726986923281989179896437131623176712471647424276791914928963628734393746237474231841824676268934126272682363761729826836719369392139234946383764919437218126387438394287821964219879467271368914928974971493231978184828294821838489469187613763821916374867341378496282964676981724679243241789121392487171969284131963493897273967237318798287642841374869173297234676878286284647369846836926423194732693947378349796834236763132864234936921718124718246829872986918316271413489748684161626717321212419618471364949793797149174984849329624367971878748319843784241637269873962646798714316186923878712173279164264262831248461898439371473167393296137861714698428687846734949763416217484129674716497916767428793198737146191237161618949817618139486316946817364212641612816242349179417387872693737397181463191318967864879236361284734631463982767239739171979634894298962971876737963679231648261962486361292489864187234168671283919864174787436917214838319137149167946323837928761717919283831286172684767279464678718641274231712376367967234976972831947913891461383892984698783921241931261932432694867392897263731319181893869127141694762369186734863629361742494189164237426836961496719492419273949672624649317494248979412818272832127214391239417492619369476263429318674983727472643639419827986171283727483242319161813643289414641468963936843676847826463732184149626137916168172693963781672987413781971492148737367914194681976981698134938178749484123679323478927493238398797163249493617641618276846817929438421481361683129891968627961841789869847213141973471281249414238698348943974364824626179837381629321719191292162789494916292824384172129362389769368968798673893283937861893821326914691782638364297637696316386243647647632742863973673462398616737968941616219848789469242426382187891647379849739282492324328378176483429363232363868914131824814848283984861696172921478384271738961641493168678296491761634876187383147393894248382182962147986762373786748797981982439836146439131748279292697137431418362161984123241932367639294234327137268916848381329719189243672128282749434943862734919347174848316181427967989178483838632643918486164636987632391681767131291419429128929718784691328267896786398274247169329273832763973791384848792376383821279631467239417134632946128131479194371687346438243746487416147273919893634236468719362434679631676391612632782863617482184934367619634169627698489138468789671282989193491297684241868274931896839286961731616384271981692493193239469371371629298416937496469638989364714684196718168392868984636723916796494897242313197264394269326217296826842413927474747693848918231763249368196476937371328498461429264712616931736874793179878786434294927386123178491492417812381418249147341841293262984218173281947232618982927212617926837616487294983276834274869348693161914679424279361289392374764324936124617174981678714182413731263736737834329739671964714323647878732983234171621341272386212641271361938369463927846719423642167498743192343619798423478968397171262738963198161947647134762824739317471942618413741943732647486828694268747218289862314849213148486863914972481828439842149171347923962616318627287274796468121873941862976279489236124947931974289487816476143832914892981692124918719271781498246732328716383814932492167363198247178289423467621696796279612692173674148327376213789294841826273934326278437387938327131928636729871386921791796397626143297848187271314291971361439716476983684679693132798276913942742781328318926923642674167836273273628128379787846964897932783871436127249317248367127639426219464678942784767264362864189896471217176379394189179124731678614134921394182697316298383473974981487247937232986286187427818714349843423636916483947392741697326872681486712324928934697838318414713137162194934893249234379829618718267297296861471849484363929896362492681467919373943137843797238389218239283231843873939617413463741912717982167861831428674847429423479271619419863489838176429642738798749628423678371297187918724238419836978692717981416727987287474964874691749426489794312376498179426931894642494323973869329682968347361438394871342381929413272379419674961832728728149489646243628436278412747971838217982842921624364868627847183934898127186419762796268126934919713273431324232874974943298438913932324969489629612427637346329849673943787943742816386212634236263487863121436463196723917262321398438131823489181749412947164238692476247472872148671416892813417142736816864137391439876747129631984181234389716823818172389287494286813872394372328197849634367428173492976428387289896132836384362679496848692817271376143248929438796471329161316878181848717328279263126496342827379192142132737263143924634284263978763797879797838178419379427924936471872916196419417186476396962637324679181893276162867121678368314279279387261467639432939164719287419723981972173162843492837629272478467123217372743178717296471461792842324262737968671972828636731492763634874314817412632176742619329364247148718348962692328
9673812384741836843198767317429679683239419847436838796794313467164826123462836791273137387486132828198632439861314271373797312638378237892798279714826374626871672631979323249268716839124673138626832173838291942697127979213841638141238286231434649728961323278734186219783287293149162624919712364247643684936439141986839727212392686867296989824381949618987236181724634184697496249372762693417628724141213716724671792342614938134292124918416862673796392682671461838698691479768978191817237978241789163674248383612413948718197184127214383163897364712424361924764713783837137372747484237892493832712861782681697397281219436496421326478962437373929872797484626386961828692391719731367243278947969243148727294716147434374132849734212984284191647126194692749496387142849426747974869732126816487269316934293979436841483963146169729782972141697616321821491682913941487676262916146489873481712628176874691689634139412724172434284878461372731873623816132942492928278621862324147249372837842136864872863132361893824936823697641474641318673643217941496831483721363231627821741289173642386369798729892461379349713646416898689424194693148281349472929829836313641438148489841489824648191482963464317893486721232926141681217949279242394189826893717692891631641894826929273129396936972731813746436298971464369317921827828763989436721978264819862971613167314817841437631824673873269896132121683727963929274846932316826397168787872847367369747963921861246463936263961823474364343861478793438734949216134127684971926178267632636716828149814243247486419389868343179791671632978932873871694376789267864797364349136189461632767894786817313178276964972379641218427434732749273689243483189626348967293646376239671939423189139894279492198417167236712917148912716863892176212491281486128748272341879732317981893783647176864682697237918968763131636464231238367146192634189369484968649237397192897846837271281816192184218378632129271721436138218689148974219162742387384839389248649769613869246379739319684974383914382348429163279368361672486429247298964723189846427216149768298276146412821976382168969134672837672987329219832787368469329179178684618379797646739679827484213948423762327879212691364363479793849162383179826723786891261329613921872762481892649323637162791318431737946194727878423891649386826934237862172868742478782723194629192421692672161346212983123984942928323292697647437137913437197696962329486936162812437169141861674129479784946272879861764847139814634836967143681382783271719482434129341396864927327346176763481312637128283276369478212174869821386763741374929648194146718918481267197927379784361319462487872731783969868186476494869186384181918748693749327824292478417426284832417643816131317163723231216143491281416179147642196383926324848417898636863162897849423492812419272793676794278363237374136181694873729262869273181424898763823237968989347279178638697247278746379848728382673789617294212967279726384276961843469782687261747932834676496198413763649313921327834847313138461389313631686237231278934926384139686967187943131891646318387429373921963494379614867439626273927673163242723693736472931327482682673273792819613143271962489216714914928419737816714713763218474948638681493186467983686817431847439812419297813989391263826739429647169741289696989241982676142423734747474126742781972192323181398492828979821794614696376243969464632672161267143168629138783637483681368479894396434192696814137687612172987483792762434362684787469478973262982926274948362736789329349219898418767692638696184741834781949813739346737462917913134216242398176843742797149168173769731982164292863269828271479197427681931232878246912169216417683924378316164743924378692171913829498142194292674163927873764797182493217986243787873138482146162924842739642398283439763236871938391831929489869616324934212389269173897919826149698686362391619316163218464164363163147393434249698674961794187391891736239716839468979686928472893279689764723486343261282371861268769141247128248948327874273712463931824869374876273814926979293823872474823986839192616968146292968361782126241372974361432874621892132839818931969894194327831282126784283728718293147181383987212769614814791323272686391832739612934364182184671643826814769692643746917286836913972614161271416132676319717939842429369372831467424794182874747627124219474624198761789843786429612168473926489167934828139478134236863972392926164283676813849178737136363861316987673914231742319487181396171473784719416934132843124836876832346367284271262627181267362693423243464132676234397612741646921496432941373879363796429413749891484249627216787473261321242916726212413634312363736128987916327869467976894748963414649821643791628713898378213837382328234834363864683698747496247814192971938623462678349343246869737819429683286767478963474948392981728923783484146482841891492847313284364837186813968692134787289249629636978971891931986836979829413478218647174736928364178291819623261718962769198278362931683412167373618386982878314867842719897482319312867492948362892324614376897874973298489798496848698921392438919193494924184743783761618278732376821986232179147274347678214137179269746137639439431787869123962638468913972641214932872321874968192182761938431783627147261932347692831487692986262439267836417486873984126423234312673897816462327413864342397138792429729629183761632319784367369439781268693841239436821632194263272671294964184891971783682472692863621937287848431317186741748727932681678196329268148961916417149468436389327316438618298263431912767614173489286942969178369434746172496726124298398793421619283291868341382412483694842376389791643427496949631987397924896932871242139137467898941394684684697149874621684318219171436794273164791746982481712823769342319781939894327241363426938164364917276798786287616728618496791287871972187219716476243829631376719192691343638484837967436437124397976982843438394619691749496239237963178191691746916123694979438487843872741712838362862937216826721784819643473873428939619386373694914682872714349413427287474641316293461791418967382768172984897268763938718983269413891816434274916928423987134976939396317312837839248164726413626469673621312129693262362989396824927929378141212818149631791368276894342821687931293294969791212763828739217617874149614318974972964372623927842832437418383219729479831697479836913647239423697648241861491261763942129147378323841814324898297969138746162672343498494614837648426474318412784136971391382189239836948618693934164193834342369387937896819693289347272617496439739124178981614264827841813984621216976387924329768179829363486842982132379616198134269249281981929617878736393869782492183471476767619123272438317897464837194942674831323236297483627698693967698297378732183413647898292831737173264679361497391249217694172687672397196767291974797814138437492328162418627312462721314848127817632989161314849727246393492984864286293128631879737468183932436164281974124148943162312892936942761369431678168487981347464363719179417421719182381241967329423872396493838767493417437469489136784381217182617346194818786274767848723817127398194768217467291963932129893827982174629348392341964762781741389324172749476942627434872369676893486168683467878182124378396391239362979389436742976818314613768128979247212764864171273238431873496387294263283941964626271686162714296283741892793791737487123286393783946827834763789469323967376792873149647413614964868927426896232726242768389121941917174897486493486417927418741471287967194369713932721274149378793896478474181426497648212784316283184164841738493273829498428184167184867392823429392769693868291627918219146361367171764929436323816276436128491373136868784268247461874343621987479872869646374741679217694693137298613292186272726836769161816846124239494282637238983641373897439716923261313172416946182714242874349896796167464692768168136463247396317946434694781716928286726367962467327638194979724919646821391646139818612968627169368267647841693942464612874639831273748717878161712641368613129328392391627642894823923419278646343437637189718141476814323462424787181698472618737897323826791768946293194973793749623847819631789867391892876816317363127481931879723197172161462823682891429439167369191247947321321932824346419863832827141349289871397847893134676142192969696241736347491218181892617969324979436167493419637196278783262314829382396891324298919749743418748672634214764894616232913746279764698294862616861293727817328919393762784167479839742719838461212829371796942726147147646939139342613169239764718932416127196329718149397834172816218916846396763427926826834936198791831724363413673198634892921826819792368196487239723276893981916372919129736926832183747978124287214626192643163469134373418367679738161697212783487429138768646879697619643696326217269731747346719212487192738924321316263962187918372927382312432636172182397168716176913746364294379627826329894748736362969126241471493896727313821824676789871379764686264712734942728732318276487429623719431987272878676736916198494721897427614312876138191382643834847494896827848967491913863631946949648317486397136231391838369614296121298982739437434738421383727436427143634971729746948316267871231724391948727381361698719261324876379132638942936193273761726426132912128627971276364292317218187927974162763264839739176927948387341376796313483186162424137279289782713178263967293914973749872389679637232473438242429712816482162343736474764131492429798167631789469696349382412849427631619487821723214141878686373237936968793872834183874727947417189782941718969432348286149737218414148492934919248432314671261919346238416943983676847414968129419321962493867479194328489193179789364797617471379629796326287271787836821361469713239467137216241981318243713474697391424982413874382396134898936393196279732983743921784369823176198687974164982419798237146898231834296138368931249796172748287841818934276174797462672962374747367183439312842361916949697329826328269276287232928791973173643129437268646179728728618283176391863924727376497698786738149196468464913987262714693749131867137423969796861613864298638748174146171672841483246323963234727981912964381646379632769461949792173982832742946719421462924786969286474918481346384274269178734981948793184721983183617934917398262368693917418643193493874816427832729639676482931876167481468684161742473681383746827348342981471349241921414279382718126413248132182892742829191869238927637242867143868417287143617329176898412729483643728163149232984281794191824149832426323694837141318761413414928276328631318489323876364196397314364838978497632896267943698296983271246846261732747197428789498243483746438649379638473689128291973161472461281376293172947217161476231378437876463943629498362838296436413696483143418794824837183923612794279434376324164131289393427292694387893824832342847892391494187121363987627694241292341486296284936381324263867384298427894348246343946963242643971916429174976391262692737183494168137484768647289818237321268791319864923486964717123497821368198231919726876218941698621273729613717914913134176293781813718196363838178784971634632493431398362173149397878961912813493968971967274739391329424374237684816439878634319767417918482123613263827193232476136947314917812969382178637263892624929397129638364634396484126839679626161298174131726247262341479412341631937987248946269496414861378692139714746749893719143931839234947861462128279368182646893463941697694324148962612946126723761473729723623781964169814381843678421926393936473416412321731397131436867674712461491412123791682391384781298687194168637274397631719318194734137367929326386132738921743181427263191813684748797212146729123246842693769247367243147491492912319846326179361964268462423692314723493167972163232397431831373419464964183274198347632161294718494372176967326346969291724264813237929262378496927291267617964831713629678683186823826387861492836896186246486891643214728491782987297937479861683793816126249789497646729146134298474387239743237426138283917247197631471784198369492361373168613876418361283696379329693691678378936264864729861467462372726767817437648261738294798972176181949421316368342638964791616798481267473973632874787643423217126267239629634128687987379684397294292924962348193926737491747616747327147932432894276928343712418761268797687826847431292494213286176347324192962462926163683727321862413823472126963168316297371919842681328647831718428182791979679436242794132864729291891497981416381614186419424972819784782782961316287268486431271367937638637192989638279721324198474247618926439323832694627948928629323934187429723264692626793648984972641878732323943938176191291827149643976984982384737849316947823917931636371348198489343237138347948712716412419818614692781963676496213147381838986967262746374298272137418274812787176276292926196362687646327819268916162832894137841618787387378282892732872767671728219639241679712417398382727167243912628237231247261319462814983768971746168364127823236849824747963436749746986418367473241824926743961349631793139614936363294928471948626468471394947249249329712897498293671274817819694739271723981279821389297241376916861343263846491968239242417976986964783716818412924138234684943493891241939793243276732831876974828368767631212121893463698497462183484289643467382689189372726924294179474147394818737431432627231649763969418182487942616761249312916739181946913717916124261429821986283487632426962389717842732373892434921731273896749691371317946967298137263989636798632421313821616948312963691647962727131476469418469827837673672624917483471861861687436141216727424862634328347464718767263469681439437846761616864386936161312412429379723724786867641378232813871869326371937342374823813123946929214179262716281982863626983729824143492967392123849373769782831417362682474947392196378169732976862736913937384182186198636814671898249686984137468717369137864132743694726871863297343741249171212638769769368761619863182793786949313163786196818649363963164867698371832818932389214943784712189789874627972121676249681294126346297328967893837174346369678293984326316236216892481348939843694896438473164284834321724967643262729893269742171928213819632329626136319181784829214796463434971261314687942823218368618649676139498747927861674786792314873846973872386128978216718182761418696817647239193462793726173926898697483789417361431492917131414142843123172878468612192832964267634827218416737912982967398926963624847349728961289378434393192148249748941713723741962943279186173481384184293689279479267937878412842831681289612136891961721861684642831938728428736379649831481364193242187292434913714218286767871978326327937942731629463738263672373749469491398239624126846183283429128972837167268272813783483423836891724791919242848714167212417869481371298168178196364786296948914129843712376417638724328361942938383879239743132414718128921341868149179869438927973867279484846968234141798198612487923178437868217234837646749148247396298374861647926984674692871347982462873639142481981827173783163698631439124893628391942978649329483121863672734173984941617136261278276318431281262314148439192894742934787273173413938282741329426464171983929246173648243934861627969293636938486763734371429273491294312417894213812172698429638768747283271216842123674737379161672696217163743289619329697614741878236949641248624149324831976231476937274736981928128679382783782426173134217637269192712414249739628623464732831878976136329862932986196817932691473282872921936793123489163747198741264894874917389417649639693624763296169376283748489324949732464284292974828382782741926398497624783416236249297361721878297319341412827382624382694389167961462172643819676131267462198914176349212923726127864232921329626926849487632936316864842179684314834976319419196736187346438948947812323791473942369461646781679319373174783121796282314742943279831731287924714218767678974823619276932149634626234263641617294128967178496813648424914168629761878276796931298916238489719138616414769647391417412676437428424763242182648984812461346717127976782383467497283181624963878292417437968469872724698141969232372643897491763462698219381942484918474842914738328234312434871284126918612121468681969489417983468464347626921878131924342362382187839848797169417614371832168349343181987243187169642626382969641617934342931372132762463847642161912879618716168297197484237867614691316486489478238792387939219794847813962362724969371328463467671849784842848792367941489318923937383962323767873494289482961321834184639896173939716747682818247293697427349718132374727948192839213178793678241782474367941842836743836497916914928346932813624926982914396769474974871636986371427169768989812484392426139814978362364732871646412126489676286748462797472674263721726182736978284672984837164762979162696934793614319646291761432372863843862836948921481426342817614923271418919686136424142371868481726237941462921487347484683232792362736461747496938918937241284684829431847213167491346826129364143749297342879176981364368981834623639792484878962634214689798692497183632192847231729871287916813161312481741368916739316498462349369397976416172682417246891862878176712969438194786816719142616374912389131347641731789893471298928291326284374978948749469347241862984193827323924761489286414143472847487283439794217279421423819424931761969361317367693174714631463898391746784123173823184923748121721934323484242671416383848197417212121432631891791643924673747462673946314176287184981213613989843162924616838712142316978367174121214639721478671763747649636743892841731489276936979186492612626762761984839693161278919283961971892737386739296831841974383879186723849148923242891217879726479714616768928434787134191218439869214916218716348237849694292848648927212897927486131623274642813276927291693162687127296369767342961938389276714691479279137178397841686123263717849463461423186383628797483268231934943479738649843417289342417242867918717849162623624324321438213971392792814134169723798791694864723212319493492146493292491862383878412424246972413214983961271634924236362319694634617962984196381828392463987192642961984647484643247412849321648232927934963627491217421729167948149324263243976938412793728629213432792681627184394291898628314717467494193274768983467231897478976869178972829874273127939234849137918287962937672738197249216382719896231682412826979834292492838614793219494983278924293139871218236381396263486724641914939714283423816729164278427364123616394324282848168923689173981686824282394179636161767828268474639138927213892848623926473416217342326786839474284286167418362394396914987861637894398784384276242983787617649312964746327612148263693298712686313136389649381698719849484964874878426873869129821362431326849791648919167387484263819169364124949721491261813894327969684916926821428912689763246949682716319489686891962194836326793616343764686764797232179727398646786497169346737978432981234623731978989197968423467167189381824764826836428247168784397648783496928618138348189138131621878236347431373278949714231767684374676381328139427682627626917181978929646743214212386264629174262148696717871486193984329342687967414984794217432638943938487473129728174713874741291768919619293286269761783789624627282638767284396397623648237393986391797843989686397643827279174194919621989694268478713939892972879484818637823192794171384627194328627893949893792179316871396923832683769167218734761797481367467321826369316494174287412343623762126929321716273971619712613298149893896817681313947916247683817178938734643438278697137497326489328376947346841938798614761237319413248132714863869438261231494843869629268491929264783941397481268763986937928162926946294612939684676392172616861324637869672416216869143268769232974396389784171949646368121367273423242431414869461213928287468178681874964982497834817198196298249876373132791287327976478621397298418474619346187836741282972198428428437682818984312373632639163467313863198231487362639267841673476783768219182142781261743274637917612412686726914689871641691274826194894798467249373848172317916926893862486468424913936819719141972474721642742679212836789192382493836838738767691346718741871762649261671872392496712138984738284696278189281796427132379847141737349689896137237618286296129426467818273212392894841232639343149376212846181319371376343634694969282187497498621946476469827143194746381634639183276721389484932784932836479464818283243821381484938274197671831924318476243146297321317284271927429694189238717673248294347413713969879437372929276714646418284281416319367914324826934324236928948424867947648183842787262176291437167462621398986239232812687172483621393736932869438231491696932824316432731424387892939618746763784683813287316264672683791423921219314683924976761739312613738727231928361439496842421638189732794398489428723861378238786762862983873912841843492874824168267817419712148383717341894617321721369614364721832342796762142439183961328968434614623894237812382196196189627973247618462731738674173167461386479793219196398969294387948246716464326727987824173478296794814834141831293281796348462791938316781786837647641691424382929647198648698148381767627328929681789437919394941267983762823871762929612627823674292642423624816726424347278712142769838176131239727323423272136249627268916914842468412416923686128738732936364282746936371967817343634712693283989873291317161876738682367176834723627141974638347328673714768414843293173924316861362984373138464283919424847197432139239462793849818761431848319646479141287318648371289621323478128319898178634897843698934696742496148612494627341728713194948396242934319329432489362123731272747472481296841467396216929764214292312673749317241416984837967492639167371214914324683879123973289714371912678149286719493946283462794626129128976786241498462694179178318631864179764924749746391746731648787196134978941313696867431237269476398167973172739849419826134149349426276849432694981931673794139671487462646383737146893673131294378989426262163813631434616243281892634148431893616961873681982376128478237836296121621972163961291281478942781891468968421273647931427218371392164742892389732347897929279341761231717634717197462731916161617217894798293737126236341672372414918346178462691289626972987281621737283748423171624731843128193617123986719194741634763467436849141867198746897283439181831643823691316838273261237498642867461818618412823248293436423279126214791281643724826498974942814273138727834294386468628379879847263234816178486176767946261814782171684261412621481426836818238627694189181469263982382716874379172976497463787281416269813131619247182961713194298672329698738791316497641471381839426162681712432838793676127498917231279172929196264762763232326278293476931482976879236129673767979486162816793983173748913832368487621374974347939412723674267826471867146149328362134236946148428629247637943476284649161432181397486284737841943946814367247636138634213176231763987821317194691912736973896372646423748693173292324389812346912868214276713624969891727936729216416917249343493414291298698691746419873274738421238143741972126914697823142973129748269643947219412974961274128242823247637467172367961292472198626141317169727642693168381627691394243123421683721781271424649164721987398939132741318242743416212647963761219269648217671469749489617684198714613476313134674948198471723969893648143463282938682639718931642628741872978479284148693892647291462782979769894824892472723729493727197839716832476412146878939191242713646248293138171218328349129171921417143162127189237978794813212982846272628712361969247678123497848186767316424673643279279347868762981612467873941847917183796468928929243814372634169868184642739297917432736143182148638734127682927698374941267421267394838616316483194737139718613198171921634734271934643297964839342396294172421892494121878272412198397471876761986876361421693276932469363764746428737932838276371941796243749624734328634129479873946468929276297124248918242714212616426921379474376412821737392341426439126743874696314329267489826812893474716162621734873949214637474386913473686791824232674782491741967384967861321876436867436213793483678469123671718168193497197672818393981324786743973798429634193824267276942947879789314924694941292936941297617643974713782423187891832712983127976781834976287387827492919718367421729689438424394326186769769363263681817148693917174142726761821649384364828728481347247821491816183186969718343639821617414693742869461726142682914137182869619829836283186283938132628939486928617616148974678643273484248718217978389312964324796829317946312641928618963843786941319327894162426437819821623218191376763931393692678939836861678673894726272183491363728263916974164173967624816243719824949191482842919187379743628918196949169362838786849638287896312864812319142917374741719386846428379497918134974294183249163729616471236979626387478921686461718236987817183284238934176393646182194326371728962616383941349236741234294923842461672789693636378368468687321642647472674762317913127869424131412124739348123429314317686861918631286324631674823139798924313898496819849241461263671813813823248123628382394263171424329176927212198148781486164986464824874316948632726342172628974367271371637818426343127286487178194923128169486938363716173936768928148143437341678121724923736749239268641682396783689714932794917369348768484761637348217267284362179142462191369172327983271919813821767926179297821878973197914398213729616738631784873643868296121672976379817918938436281768476136164968482798769378716467436983191814291647464328793898243271737863676713429863293628171916439463818312128739468629612898719678719413917989138636363984372864371784181343613481718367247461878314876978918732728721817237262862924673986436187831362947862489341847297648361478428931987629716861326829347361739639837397939473812764239747127936734186494698472369246826371324939849378243616828797837327264314349241743829617487636438792627972794239174914373874187834876923923762464273686283939494897472894297268931923298418971386941649187238267146327247132978624381681898289291643168193272392846964932487292872672463218798132324289621739267432468437371826376863828926869418649241231496816184616214289191917642492672164263928387316392497272697148681434613143978787497927131218491369787946784636193249474717617861491787643879789318131671784748692431278124826167894187428496349696718149121678973246876278368632374312624969864972978762431246381614171324143929368413821281916921838218984278121942417489621498386181979396761364261981414218394842394243472498416376828467191781272127439238436937937348684238273624167398793163647347286391643464289369134846842484831682717691793923164791724234818612963424813182839726863947173824817176973239719628387831342474191813697246432832484728762123871693763763148163942394892978678436178962198431394193296424979164237497376387349179836921978629671712181497314278943764161743414823412797361983171381246214981934174624613172368427383284293417976963172692987838168914121383618747827313438647189213127292174787124738327924291212141962424384261821493163214316842791318686171379362479821742189363623934643193696438761792972394874874382818193643941947379474398713847461846962367497892797323963489497463923129179293424976916173849712917837978672797831914369894621713763747643937429286376912747326389648936189869312742168689373642391416421249738214923864612417381698387846162472626138982938284741736374917862349416946897969892683864348439198623941384796383612493614812671261614796162481416167274689727174973643819763192342391821618672928139428918742394838968683823938976231894239216847412192173628721696863698398323798216429876936272191878961217342146471393174962813262738167392891798242136391834126249896178642634974278627982868181231298271492173138234149364321367982931792387486818623473672187674824761783743682718767234673847496481679431949418198269469129462838714971361983414681616842493793724326414362698727243129871316917491947491968387978723243471674782976124721374842619438318249876476842819418984939284782678313291979673678742191689863739164849341892624329372423986131464728171713197161621721872464764928476186936321462921491949342941314726969863172832969783421381372684713923164126283267968627826836367184879383148741237323738763272383464262393831943767671739727218981921242728367424127378671784879897641781636841618723837416439613246294173921683729738763412386479376863487376314139492924349832814624987124141214674932747192789864149637638612126713712971237983472681371693491727967389471924864181248781646361764827917289236387168121412387487149628628386986147131824874632398727167646923821273846247873816929681284917646198741238719897637383916272846342318136181341781938969398234694147181342868369138617438763987474913236792629491698739379238296271213716432329713483492678193949132367379267641382628261913474364729127437989239162192938914243643171396216173641481379647237482848198272782372714839723284181936432636989829349423236439273893484696462917439817912391423486297372179736472923749767489691628427637163646936478783974846982869461817616914989184639473187489369697312438394973193838712193489276398174916231943919328469763248497867367292348692472424263982324743287614786243238268731732386947382642167437963127147397921924917924682916261741216493284896763198437674637463487179893628249623929413614614648647271278286313216282624846836179893931434948913128169369423236213728931391619769378432961894691267636324396836764714691724938417636813961737283264169464862847864937214291372689386923489369317694637867181424271693831486198617937414846462969781284697682893684873743618342434196494134326869691869262368671784629484836496719819272438987494162124348314271791921363643831283863242494618271937819196186982174716379496292193163768989342784267869689296278939386282137968642763932127432316912631968962124781429424137479292613941694782367348936429241378736818626931731698271969684234672473274639842789246932983726972486794613792121739612183974238729474289379497373148942461371693913649789262648323897236748219824272462396191473267691734362728789323879681462728138968343419638178676162737412349894962864769797361462371987281392864823874368383636984296123813981969141363796939216379123892174792786938492681847163868371478262328436473846261749714968268768279786294762941293927121638182497381261313939846173838282128417928236129892894264289276726237613297284797924737976392941919147138469389341216246318364879429248687316286913721398486967486498978931342891973642498384674762426341628246361824918768494179262626871926148462976429347391713931768942712983438247467947896329712312386763612192641261298683478274812324692318797219294674191673827419742641347921643694347419732463749369284316416147463649476167831276912128297182179687412912421642424724736249876382324696834892914281869291924834764928186124829167279424121826321343684843823412496836437828298313698398417384313132893673823464386414676294368243131732716273832461632434649718396931714379127676146938696482678373162363716931294612948392712838913282761392376939647468384694912769486329297319138329363482489212878361796272182421249421281343736274379281386964289819143671432426297126943419379212829691861684768121363787978729269713191627326742187819728323431368479618438248946292968269128273196743417318382123864932697876362383234323181362328241768741724878917179438136362761849437862394898764687491862692313672486176273816247478261647234174391496426368363164921896879168617131467231239828768786327487943723142123934697492797141393739179891868239764617647498424848931628281864696378173242848747474317946787298747297386983241691236247913714326984296279416137468782961689614323639878643673768912642946861387869298316832942782394147183729382891832413274384942678617121919313874786428239742749396474379341929121291743943973789814193749394684394391861281291612874278214368376146823164684798349373714323274276361981261841373897638473128697681864738983726371974248682747837174181717847161749614617367147318468734379264342147819342468419298462716484164748427264681297617286791621812196123643924129136929726717138418192628167963727279841473843719364171973423164181391794234938137476129414846746916386384974671473673724326837684718436817198276198371714982146319321861919289727812416363482686214168697326439468671283293927138383621478364216421612931729297363729838969761892874794184621862161739212414764324929834129216826897942121846728473814786397169784373181476372817649829849393821428682876768736768467184271864174391212783247621847264364628747397846194826267917494692647482728141482976247497171698263637367181212427689742171387171849382739417394289147138298416327313482976378634297642347272874721684712763262672396292467986242736234193841363828231972681292329413962324796249794919193274949327379413871918492479219639621379369219134676421862696867194784731968272489168613643849423484698187214727364237287137169468238231971612472631464824727232924639749346426863167643816831476781874976989179813761672849736167138681827373619314263727243189172123268792823296898272178793843797232793269321437632628682964218289829687469162487161947398428942614861246786464831683174239369728743693696964363281361818967293971396932319483929342342142714691614138396376416137491676393493716731482486713879416286973167213764767231262923681894916879618943434821372427418768287972681481621823929412746897384319836741942797182314691739489739396378931612417826181989681693238687231263689148623297879131283697827176284948142693198147483817963898649874932319269173612843214827393713769673763479281346969346834286381719349247826843789868267634323279426386343434274743768324387438376479291212636247197361912762936843983963121274919216249283726276326873278368189487641983428631391438481871739473676129438938279762819831761879818689431923176841286462349491946128418243272834719167378434674792912714246213464239132623143926142734348419793126497141841961398734763613639826839231862314786828282823178682496741486791689837168249674728412823134837828378623418917126169836267927963649717647374173286287928124827236984981764271632621491728727247292414828346496746178947921729847934137489369716781873671981948738171724346846384216318932463674742926386347298972689816298487634263467168694947137241739387946741467318978943128493932719491413978782943481313893183261894292178363928124646813184748726263478281237418146986428697173483243824739319676894267349189186837179618968469373184813489416947346969431364862843649479419121762343128246242949792312614837267493724724643439497326312728968212926129898418141231372647323236892716413231943482649617934861792413872131896717961324347373931919824636986428139297263737176241434891219264872794163191679328286923476321921724191236167492786161837181932716489171872912768919294849417879816967417862872471376361428641973861463469616191324934823237439238212828179627681941632898468649464762432836137624983964294874623946863628486394616326768619434623978292373981379289674681969482939168939174761296767862839867231434934361283734736921287849176497976937948713483731986286264927682726149383961849147939691984181413841618293273627671634982323864781964619841416813892693631619812469734219326726138619748769182749649879298173297121379813786929626821428618682841416898789234976737816367468238978769482131378989632798461814639692748379423928241792617823737646423214238398721936246963984148726412673172819276864369718246464831231389132486397618761623741698464976723281869262139638962896729792369836927168434729294618639713748423894684136942914124793189261836494391386762181289462312312784818726414676398121317138789827834826492363983946932872917637184969373732142363626984298728218968742147463173742832421789764871618361786392721261917141393739716261642926927423693832714687327242727146794294863963827636269898649431876393293174789768939817273164618414869861946493271719489343182469137264378623271397147183632464794176843467864139797481621892379794798714738267984896878798781981321874381461424983767498476129672319832173684213842368239481734748198764312748312816393938717232462632963291213843214323472162984198714386969123149168438743424246281818347137619787314792782948978298383894849783897176231671378743673814623174291461238947194239729169626714879632318673737286989891262946241929421646964623296927646734317837213724246819683843641362727431734238929268398413793613424172782847984897879484846186761926261428198676987986293213716412923949712646367817348286463796178379837486178232171891396392429493139276716869124268413717427681216898481982414249274923932162414792612732491836843689864871743497892717478371864847129628721973121239393497398718983638693472483612396462497642817942363161843494769264731831249892196812762691934792842849741327619814621843839864168324684129626439212949439239826747837241321847276194986738796283823269417146934398372971438481636462413716384937181383436193862746171386267291237342498391349794927261417674296978279469894961647646394272794728167437438162646218734371482726894836817181742321641972479697931373928474132891713874628193412712624672973921831276874149629721329393712692871723836376427367642784167927413694627363492931312913178348742619474879128478382636491617341693132427862781712376431469818192826712494984698218924961749496987238682427373846386427673279291814727674817841382462762746382694934738219627262691491716296284273476219371487916246747321861863873867426426416921849274724284924321728478461482191489484631737373916823962973981318171264649498423982137848149734369239462489634947126269396167648183917392938698626173238646927626236914832129324821493912376414241842916826496247219718691876291416984747397636143762864343924797696262373624129313962341369387836719892629769849632696124238782919439814243742973147817846146386271969364179362969714616917368314642674981628183487626842726314612879647184893973493242179678913873929798643689726427416796496764391986726143219426914619126948789384148796386236346272672436174624124643621924827814381928731429414312324349682982481431681984796268631628687827463829792479868248127414972124138262134361962128346937493428942628172127379742689479296429614813968969146783212476384238346763247686249683984879132784813486896286346367472419617219419829318748641641418296918278468216124291949341641626739383728136784968381892149671831969642494624321413492496924261282489847494641382642184273461949136437691838218643679392343814792189723979243828914369828916317892618913824282692893984791383921379867248926314638718631839613787289296426172149693274949196741849319469189629412618961917871283192961412749637236936386791232187986914341379469861721242172819132842824276924683129498793979786978648784924761683137419849419273649873768234361834231623219176421291848417628979621282424736974927919681347312427397262163263878641319413136372791691214674968936242492894271212397184343163282463279397137427318146182749283278327476717689719894396874742692362473972163873463873847969413128624717869287128378471423712871937174649678243163846949834824649874249746347464679412714927697461946327436917318462478274289198636814624941498727812679391268183943724846742698468368298719172191349287481379469479473219827676376838912316232731989617432369678391269313873161498289247679136296848189646181392949216494928713436312812186872783476498313191246798428674839782797293268263724849317674297329764364637169723938631847412439672814148397932927987379638742128678961439834671723732617278727183614982196164871984698981479284964719634387972742792841294974263841412426212812814876378168173693982948697848718432769262743714674987471641934897191724323691839783982461284979163621497129823127413484792986473726429494281472891784278797974748163142769787629369832843962396439268324821987416979171343636198478342372191714134341416834293974378613474324672673967198386972137232968272846498414369182462763179723612679141832893693782361678292137326463861948463186287161846392781414614191786984821249624841621917269238736234841391942814628478219714249831817932486741967343649296836313167143171813138963962483734617836371698138491283719879142434632389179372193216329273169683891916427424879438936274832841427312791921487436962676189183189297197826916832493932398326486832381862824919828638687981819379196936383793716314784617461836719212937982186472841297424186181469182724621749398719367932969767371818174128178612474298424284813614929764914238474781341861363636869682949468984679364763786896374173924163189824791482171387176784819721468923497846349629868464636784938484814383197462641323431641873781291864617896768414783236329848324371617286326491397131976829679763871342768127376867382814717416279426272316317936498129419481376989173142487317213676787384839763749762487613243239894647241376714198948412729782181768693948391239242921839749342692176989412639214326141741632794276863413713137121861847419673296942816746413489292626239618423767934792946419749218739469728167196349282191813297838687343916937824123182378713647171867486847461816138398343239767893242484138312167413828939628479279646971473679169397212469424363147898367946981873492181812496874132413926894384946132638219319394346462398632782817617814371291646726367821278317321428629378167818939438124264841971272867486464964186369326414121264869124932486492736212969126134239643747172619841246747694764391916274861672684728434721616739428713748926214629149328742427497621361786162163634892939681612717286196934268632123192178417824383212623429712696817673639678419741272683827176326486127848723763278741324278931921716274163724893878927964721328943128341692347348728921739219896389313238348747263169827319483646717872371934292319127824391646713941697198797239742461729783468786926787197237486173936413826818296389487361686761281631267697614174929267197423987493276128929819648381894783697396492798243626826986496313713191914618274164193894671463812717238389818627171278718749743196729276319712768967829217628764137617387496868293937827693839382937427126813874219827362418737637984248624936242837139241639126717849183763131686126929617267329718936414672192732793484897416141982834731738321417642329874823416189137929697348794916961613781382398178321912782843626873874724279438918174724983687838494794721864763479417418381378786241734739143849472123671646494897628927492484696393471482438696249162723414972379212691727937697947249273786749173921797313636824674387876297186434186414686127219467172384189636216481948197471864139437894941826169392747643419748467464817284698968136278726361671741318392697272197876983746828649879148378794798289279137974841394374682769676384838943218647239473749438734732874694387481269247374979813468174794829768139246343917341274713687179434637492491349372861686368139423148289837493428163813417682689684618627612692413614712876913282783282437679468678398916161628691782471624323243671278432316936327326871821836426373832181272434684924863943812838219326239791389132737813946797487231613894919634248743643693494146362148323164198373162919686323416878163724824329273878486418637197678149673934984237394282413176737849613816282696319819174694747126736361924871821891637142938414982971871382678912868467683436893868497878274983927282979238129798169716836183168743912723961612693414141639861248139474723197391242964746942978381942646729868173418472412769183137164632831618498186412191896369839879412678679214716189181619418183746196414292374971871989193638198614749343491791747287487937483463839491621878171649782416896486924926969376241423196781987624329297896819327198216972471349392197649439789681943916167148323989618972982949123141713786173743432786867341394861476431972348616767931619419746989342864769327413176973264792969396474762624239764916181636317474972682169642617836791672841913914126172179397862837373726239829438274831783841871636763484897328429681218372349821914978371464162364869269846297291962428246364691621849472317947432872961463183912647879639814161698478626168481894737434917846181761237863614123697348767478982814868437897689627467982383793423937391829231831843734913987498267218191812467697437324928982912879812632736484149286828717628182427268789828732126312321243939423872743726372637976374827431642896242424348964843723629278672716982718732826786321628764974741741616149179194123213762792349472642384181947413928281484949324162693638738491418247879894972162961472367692834873893842682792831847137327178374791672192736346213924363727924324736723723694378949687929674649289818797989172943762674713262164171794646176789413717478184919193239631989371467624694847412187961267474184631489829793217693493176186876298946842732313247897812931313912682987817163464931764342181684641648674219687127138929182978646481823893123784262324292381978162363474618481327678749248417289742968473648467182128389628238983473828728184789389613838438717362932798929839791623629416873286891482364737689767898438974684123741918263949326267927264318264729371473817171474731461721341218686231682128764341987396476483674362494178918382174876916414721493627627834291316269768464932864137826284871982921984717629417928687919643689471739147128927842692481618176836716364326393291347424696464634762469872369378264364768269412949397267832736376214939797697192737327973874749846842849132638268476419364146392123981424749184372873631483734934967181828739282486218789423264789743737983761481421378497268942614171482316769693787387964896423238214648272187934716734134841827429137164378694394943128619836826921761314976381831697621313976373173261646491724383936813921978274246292739487879182323191279684926794873841692347348293798921283167937962698381847621434236919784291319281479326237932638374786392121681693237818183184819612616161437913967891826348128671784367963479679764937218796861264141787132982912929136276761969439742974249898262736329279814132492962717479367838642124246281971934193179497236279768242831828178496719878143764148192472896264787637134312838243491631683831836367823612879371246186291869631432742923761871298468913728918618349176818349273974867941391479476496828182362346916271762793264794738279762917497639493678329834398798146894139741418292849712618492391781843878917876898723436398712367123741936841694346384162316813962797828492828926962672124846862631692732874648497379723864832389296219232768121371748436414239378473173981418981782136712867613412828298629849868796843974691423138216479268189179831263942769237981938373127418631217624297627167431374729261617341987387281694714298623163143637231367391964737812187471813293679234784643821384128189797179184928271827473978493189241473962396161426484814146316321768941297181742497861423637198261973692639389642629237831871463289498183947671974982637643416196284383649189696367394343416713423139487284193783632471346971324381921421823717197879378796261279789291642972162897896497961692829176371741797128931834196468634793679393616162621374641279327968392671963763836424821964879149418347239296197187897249891714624383143962842892143782676971916231747341839894837938742948294296431872687497648387343619687928968214923976298132364368629348676236381867282434173283467484963249467614623936181896849638732838624263828497823674874847137474212942942839378282419123984783716763684876171249472369838726728428713179682827846412934969696361234917162689424698171328697639291436121931742378362962876747368469874728268692814872692692926928636127487838731781261389784791279732429369689479783919841797621364714317431491298789323627618219827673237862693483646213473931394237127487971973412834614243426964193162862418424271989874196729237349286283216763962349346123171646836161792943123987469128489893262692649719431871483912846768917838343414391274638218282938483612632897817629482982493827139894382172872798248284319892124343628217238639393479129478198987484697216367981817497349278349616848673242769749381724826723291493797439618461847423242429834189212984878284132791439497484721742716842389698673918127641769478962784286187136762747693896861879129142831287623171419742894948464818197836391213918782342617861794947423962626496972826938936491823464936831426716921423416784247637812876378264947416493219812672863712846148372389463197134963264141824781274286282939489423741461481397921427169836318161378149621264626783624849198746386172397629862183692781792627439627428731492832636242938987263982686971292186989797317149621261913428692132726437624634247178692691961213824927836869726989239847394871814292727168187186389872937423646763872837287818936371872142349137963231423134216317836863627182931982641768394231471621217942191717831469478424214928684183473474838384217872798134836376819723638618341948146913438693683286123848981373648614284273764163143719678467179361414934364791984213986747829379387898928194287196243979864162169436219437368916163823132867176381241962632932938267263746872349482421871397287482769417696782748621897174679436749164284749243784239848929748398914968416346984262828637342746318419148232413741798143182874782986824187487967483687963836347389134937183682419413723972121874686462764842824327979786989298684376313294698397876413976481719378216717491927131371761397343291369637123634946386192481936318219729789172312673717428268269491218747489648161271297939681814271682839214847234849643878363648924627323426168369319769623193192174342343867478739146471237872192618961323167696371723427818396389683872687843768297346263642483617179267973474194627892634979617472737289273181496769864396472318928141324137486896878764973918272432181932643168497918727246148678682948729813247181878146262917978197384123174718678716764913693428928792932437183786347987623714313782323897327838617121427879898241681682768727426921397464636269316439737414874987121626921624898278142468768391219296183634982836329749643189863692193162329219769427214198313129823868239147893969384279846789476243948963732487387414924132649869248132189261721243969694369231639346297267979313241413719287984798736178213691696387463728393427139839347136326167263217863739178981642149291246261639386348939314279282984978387832978249684694134934892892462979424191892719843178398163496416982681842468921386783964828739819717619828682786719192834131928416763241819134738374329649496736816376769283217974784828426418476986871693217863149214914962481396792387474242738381784737489479481364981218174173627836246273849171463626928412347938939162172642436436876734143829212967673989647264712781918168179379632684297367234393141373616494784939232381824263613127642312794327827621724291969368398964143671367238763496394739378724837626327317626949613496867846374721968761627136147429189817878182769217961242979498247928617298613176296341362862989781238246329362436846793298917189169631242828382982491738494269186248716131372926496191924768941868761869679326479763417684362676967612397294934736821313831838181484382748946783937281986932936713832818939491762843762969143167279243642871387912389312941694717638212839743847424861349671624616232714276421934361484713696341789747363962486424194838429786272832496962686746878474974671831243949312976486734169848242619849347218642891312978397471482316194376264623246267424816784694247473431762478278262821987297232912989491921939418279364278163486343247421236317692617982727831413734627614984191849824314792321686984236389731872461684828328196169434963138283823821232936479828734923984826876396892367317287196342641621492392196964638494292619489761389219398178364248276141674936216313492186913494182341783491284326792789767327836262823878438242943687648234237979813293932394981973986382838192767914298363639234127871262182734867839371797962743173947618363494178392931484967394841379863634914613143672682718679614247179173419871392743871472194789417647316386379691642649868363161742829686469316279491237637462791783179469894272748619783126723297973868719479697841246283861723923743982463143924868292363163846367282674182678173942961274238643717643463296164782864367678796987834168328743926236287872736864167368676876819794834626823131632673982698196434962374148426729414838194219274729879238174791298384682494294181714861671698749841349747847484731917926748714686849734827426813693237926134674963181327862478934628974981686248432678373439264264789214294971382864918376428213697197674232469764349461367878326821862368919863839712893717912749147981674678487279398127618946216913213173834137872961916278149361737684739613967279183169841234191494363269489676367321832726968613268321981713848423863923989723248673841814797493871682827434743262819242383126386823732674279347467181387864216742792726713727294839242832473263983936121812419817324694398217691823798739894178349214694681986368464829791918387369239363171828274649627921729787421632873124384896481261972924673473782742919629217483484627613219148426792171694917284362131721869484921929827286497646947967234637927912369781624931793849743632962679874631843817672797412672731767326426324197861627486138296372382312483862362692837231632891878982471926873217698747173717939672986834624764647923463194612982473963284829681476176313628762836712464916918939727371432141762131327194628372727236246439361972673734863121371368696871738162842631467869468292419419794219614617129264621927494831673496281289813171793832348173417371232421978697624214712863874378126767923971786792793934784863474824612792368616394246184364831386718362692762782983493298483169718293146281641316798274363637817398642368683967912416478146823974816937123861719637272767498296234368396784619879724138627817282497498279481963832472981498468741376269634284829282198274121328737232461248636464916864187469262723297498183898983137421361323698191219867937347894636927297619376421486218782146723946194613438137898217684791929264376969616218296491631274367386789192419272676242916423497284964981696396284864737892484343274927842379716348171686347186281949198767869491828372986763826281369643791983693721269721431862389893894289328469431879136767931628687913424727412839631963942178784984328636239839362986898967243841343463672672176761939297613262129397826986474324961742726893796838978187169679828371878214361971282731789372648462748637617161617817321934832831461286919427183986327179674642162312417472329439247272742624321236123964676764914913213796189327194674824872123468238763719679813868796479363818234967973214284267826891982682178724674829139862316161986319171292348642618161328148398363121946748737284639292761271676147984347946762973818694747628276174126979347623878274687124174937161939136921874831217239382973432926737146816347812721248248379426894827479713423793792638686978343792821949173418784167341814139176148486189846463489673139617273836219132689126423683628238742193247826973673839613498641769238926423424639726198698383927172839341891912628949782826289217629697348417238378616193842787613742414979678638939826873126819846481234368692679264839278768471976986373946491427479818272632171924369862432632464264714984783823234718192347842614893286986427974929264378712178218317473632687979784146763782976843137636747638434934361797146836832481217139439687414823861439267174896384923497412164383283916464694297398464724643149639784327283891872974241839463789289291817246284193146962964267434217472127692674828414924819794171967376793426431721347172474896129824946931913798318184979187169782482181234868232482923182639494823281231421642789423462393679242479691483473648762874362368319732497183721267987927367184831273734826284816797863184934968419638136793239671231976439796327164174182389368731267142183831367296782726913619427283836291836374648912986812184894676232393629416384673484949397986896874391693914397983964187872716728394621923126481474916939326183464386741628764168391796861936217374382812414868737678249236197981683812497262487898789693918286927387498391843281613478392424798969287814173919891939468742743167823716974137864647498378361231637361472329423271871936283234691723831914341763764374624916739342948914317694628492481382836297869297926418429246971439438363824983476274748412986172498679361829892378716138271871797272391632919396348694176214248198724727632679369274279641849898147898491687864962632837126984676323179867243848426492473768321378248138414748742823148647923737837671823489642329747493131736867871976313868919192979494349196276789681368917271936727489876214278612612783898321843291731614212643878927927819462612796241276218968396237473769737923168379748613727842679416138146293137673937426467841312646487198241821892167169697489769641686962839638171241241946796939739147214636172671829461413839296931279412621812432439694176289362369681396849373612787367198323627692468316926198628676171639342964264947196914298164797948624927691832184761827913146386384924769696296286723496768638169739138748134749683924392684932872912927373827824921428971764712379678147247871943467983834324637386718269282823849636969382834674313691926732631684193763167686218969894973134329298131734914384737674387937219176797394934862827639847493249841949713273768439828249617398273724164818714689261648427913961416341631979372734139483646469141747192428213782368264687876824919192476893219168746491473483873479791796463291814636314817147847176981719814971814236936192761347816896291626432376198764812916364369746846769724317486163946918918312368317349372414347348184782639789863979319782784149612482464198361698934968726737671414134346462743289498791834843762182467678767139496869348239796864897972489213821741374276216397413729813163897394648392816234814647417464236878471926317368961717637279461241413789686861412619128739729686421383636191368678939672167834828216949479281818383472363729694681987949149298613618938471632846794349643613493262632146832642368492978179421323247398467184683291821287318164393834693912872373161861368636724321929439126437946879169168939146163739421831636326324862919276276124841298727632461674987172183269413763781948787373249836217217296146896497234268318926381917839749642614386121327241489687292767832168368793467837948341392714969684368739731392368761648196293491389182368217824843842412172396819749167936412328379286287623748321964343471382892489173948632962838949672167896731793791679298986183242636498961619797421743649837694198714248947989382364686841216979314142716138238962871428682616724364241631239291723814982312921439671384392872628671636913682838394986293829828234278476923897267614239869726941383947846962843931434683163982424681237418348762419189189196292148138928361893936464673481892161892738632174976428971863413132628938929276979217681739483469284261234869464686436837623464319612613643274767217643926861494972121834727491682824939438769234168497689863781847293421976142471429192731731362876926478121897271792729897837932439167938936962814239689439683268486124793132169494329819276218419471738989879679492878174823947981432317618292714273492412319762732641847278186164327474214891672376382469684346472628236738174169397436974939829797836837987698397947362713214614619482496381768261373878718917464271381383867468424821479869879843412672893181867162828131967219712987176439187426191349684746247678937293893264868676743974869484132324981642462461894324847234163674187397319463939896892972796397234868686376964619762178287247472631498434641289283836232343138671691471426471348327613729641472734291816478479761936289891761241929212783239316982732643823421293489626894343967179789868463139624264196134838147172196187612898974164989316941716242816874234838378692423621797834279141482917129347379124637647831816471387248939631613273431784162731917473898474949278217489738389413414232627396396341918691878429463162343834283686937432989787294186921264219484848378496478429231861296717436487627632461681798262182863934626716937918242728989121484368743679419391746978638787486379472936273979486429862723838343291483912149613614769487238248713946714327423489397817613921274362489678232928142439627172194719467829168263916786713431691326812948437261212736363142616161426421631764686824296179246963423428367972417429414937438967982927421234132967142429619867949737214178638191813137318142178172169286848389187678242483181319313487438246213749171796367263486824216714724384314326343876126976486321834736182697627473739431829312683464798293932637172326792327173272824649613432497386148946143192789238723674634829897274826324732386364976419432672813479146342614124737964764783832696372373139767196367194243676818968318964674849686849817439178146192324148272347923896128712124163617341478621386323919461439296321212469634146976392694231379267231416343839724286232186749391284197379843218696414363131432931861719468321232164267413242629626291942341363129864126149724912768934142183627364769818328418968761936426981974293838172723472392481712628731793169638291796963168369249287967649829131483434868416424212323862821838389783617326984818684686871981478648412418767218379271364384182937694197618472679418219367179896187187261497972823671383273987146317162147314639394919837964263681473474213639497473687896498287142462421379787684291396246826391618726437278617343826969398671694243184817182198423137928972614873291216161971416273834342746986894713913713934718121679721238482829419634682898364343197926371973184913274743496976497693749742376783941947417432341276834189278212926189318724678743873878917962419434271764362868241971967126828978676292838724146836798181213816281426813721891389427931498964649746742947847287961818197496747187942489437648467949642928261927471632167943747486912929194134219692482848394712642934678381637197391242342739829749391924917692473468914212423464634191318631426481821874789346218327261946396838268218714819463674846378641979327212837432621483979396748961941683763174328474814812761632876816327389387231629742647194941717913248989183642641629748187317934631261719613832474187827326374783169193237316898393928617694172983927129824839861324321943189437413931823673428496212891314389291747291261283934841239496184238187973694929376432491734792972768747146287393416947498672841384387646264686423178419672798298971281714192691896729129436913834717842784242696723867829341734283786494329873483834821367326792929862394783981638293972913943273918691469287634693481927963743849781783743232376486872927484614269481924981731789462817924267413747386329629421294978723784382792629384379689896428921428461719871863187281698972898146896934169642432187238472323432174246249861627361989213136127161249191346297491982623787963784836396294371829193939628134272617167347164873283612929724731639424872361427879693497182416839816192939269723969784716167279184361239876987948321496298949812462691969341768262714162191732487986914189638693947287936943624279482918642341742978916363126132414164821647646842938498782927618784282761417494898421737869484182484698184826736943934813748128989691787897968624391742743418618174263767818124239647324343286216373832646764374867818361789426283982631972124723869319196171281348971291436172641862398274717648436838619482929172438913912343291649263268623878194841971319874137961918394193878913791693989413836138962983631781263263484343497412479429327916821289682976829137417932742341714139364394238637631972649473492169831391628618242737689718424827697428298176893248647839621638476831467962372136912434746293128234296263187978423192483937921748234384219436794317918912823282392632479438192367962161467231429379814146289274294919863148737496363943182979672946263413193879718191426721624619781676218643189893264343846864742431439828123183287893924768362786213243471743123729297948949784281414383976743613482646326263764174263989123712129179872181748148274814393232961716327637692493468261212937817343689792871782682742841876136963974846437929646217982428243821648327648687321289372471632967696917437831494749486148131798496738961472461273732987396961927239213161939361739621436179742916419698796972132897826826168189236461861319272737896439279792846974979498324676314929476287297312741929483964894169728217463439431984814373219838987693187826434874796137979869714267416947413493931741937231241792984283821681787941217238494846217428791712463169727468681386396384186494814697123629427141617872979473974219313192934197836492373272641689182713281269826349287819137834136176812674217121431432678671487983831961687236296312741974839234389839813424969149613261342878693796142849323986949721964682764136963769238326164949393929787197878136464813641464969489812912723728329867861792481413136832832126264284794218246897249213197149747842686969323942134681738923621814979769812794123864672464896174743647826729471971287193726384168747676897627476937634292678186863896297836879496487812127474269896963494616368692868264829361873818986479467296162837842871393826972982696726947396473731697919473862138167679189194734393941872878489691298417219831967343291739673418279846494968476219626391428914821234716461737276949127673649636482637414176929393249127176879413476234127439686727487432798628121923236462387384626923626218617893793491917271734791761981761296836264382749181719484139143943476843834167371841849896718476792324921323494262879436716716246343969174946184239232641291238737218361314817232934264784214734183168421641646371239678128929323713628179171737317126732418929691362632818969374391987982471634974979164969348191269719329628981987148497414621414323178712823418737246149131313196712969194934634818932823927438782867128341627218928967827471494986396876396362946976393927216719261693193727438638497217287868726982318921272196964148286718437428769174296738434321419786129379149791931321639689474913694247293927324747947373148961679169687269487696267187267849178741646736948281627493623231794249642463826131831872918932393617343716147494974878348418934946414132798916367476294214729376841948424972437396794127421373174972468317424171713848429693432798427942373717173231391892982948694912169693784317187479239812727289897627892398238737318176934679137196236398624834831727849869834769142734316849493691638129242739676978734847831941432696872382319161262842317267862469867249634693418392781891396786924172686368639278783473749367874732797989269349797818148624128271847386712827141367398671326424829362394329367381328629413494962421281236483289262412742816438197412183293683789486386432973632636231817378624372731463248614246213638379617392342874268476879841738749648978714912189321637478973471971649869824128217923872747631423148134917689279718137363846481694398193734898937683273146427471318926891712782363479727848712868234129327427246271414682964371684624782923973813432642849289262682814378692476462916326719317836989423782867619626173148738283876741413969434268943232867894182963989436386361476818493616168369349482169476983646468431781231616347171798747984182741879841374198147242797843168498142423671216841876746461282161967349394789893172616742927382364737967848347617984246921927329461893243748269324178629717148418274376323816213414169414674863842834321869386374614761267437696293287639128328397297363242413184764978386724187692737261372749462763737416267978123829128791326967347279847871394987913628692876419831761743938412468217167897913264326746482724797382321474893217421839272171642394783691767172147142723439417392973298263913712342684172482626246269863819748249716986196423483841674721686836438439463617898439192418198983647438147872386717927489747692731476267147386827898678186927194392349832723863423869181631767831671612941364347181673841916197139239842861247267971379319213139213182823129163829247393432187976831868386428767234181718913983469421468942473919241236191813271484176316762138289368936863962614361484837968696748932428129839646892182197812816481864976174631438693214612381469676372438321978143647278678312847382798268241393823713784943171369741631836867479839731927928168481394267814637642627912387147416216463894761289141876498963749362184617217871376492692614627468414726831837432832367323476714978132382929176286176242897931267849191231483298791282341681868186137839163672134648934382723624319312813416313637491981834834837416238671681289318626323694836938727698942747987462868164929286142978639612191412163743863893268219341287131298327474736479378713914261464368631289796123421386392139193419618369686239643781861829143686413791818273484129478684842624982769498186967324763792867649818162484694684713276873693492191246318483424382418182631948781387179272393424361213638926981347827372132198172132794931238127949173674746479727647363263649671796891462937879421262681428364734931937182974797426169498968948492472348134737632738729476271891437316742691273674289637862479839247849713124637284216242824897189143164876487478474841623894394834214967414818396262938129218162673762891797214929232483841429787161974879736823416819897181392489896749863731749476436471346737897896836139138343418963262841637274989261827974624974281219236879676761894817437681636734283271917268971474372476136341483479193839826371949748287431474393783631718429682864813261631396813797249186268396329468932347981323916878167439861248941787321643272718394162674217361481628196417279623269363791737627947387812946971318487383284398934624684297641413746743936472348247648237674376347682481972697969487341283618167292974371278268478931681478126821928987482713714948984373914127341923763429612416432181973826918692898781627483891863231641273867819812934187841489412129237918974719689489719479671424823414634846971786876934717818671242817927469837617631697386962917136794827136893479461746972132692621476383484764314142961697186341429237417474161494982989434924982392386363781497868697128268321712764198782979174182147192384213418939136386271627247946987324126819638616429393681823184761817316847638374628619717424791948981736191396143642137421896736916971739684639124142142982824843721613723479629687317469792328739497329843624918142476164787149717196746486824297632476721394378381978197629491898491419872396171828982482843936214216942729897186378789692146381613686976792839781847314184971431798416246781686184348481781978746139216979862474271823726246132323638424689183768141621932796161839498463736412876346986131263214631893146318496872378716814986826314326274837914913261672876291867147823437693898638973918242376268274843939367342131294926163283619149496846897863963819673678264174716986487869891218362741768643268986769217341616132671781382193279487397643936234161486724967683189367636861219616861763761769196138493729484828396261989741861673649829386412934934786329878162137372391793417417246767147191487216163218241761924891482798383816214767214847274631872743832421934947321268243246917923971374268372178986143267284342792984814219148368742468928724296841937397146713717273861343161473876812314929734282193723761869823269378386894364382862782693864931419171672723197983681816437896161718317374842879678673123789721974238368274769148147438793784248978491927924237614623287318746929612342396264642717632434134679373919372192416247427162864382364986182843742948961347198761313131692814314973167191831847232672696793931783192373123683613872973829178919374962124837937869783482646978278716843497149312379464216213947612623674691284212423737161879646846843424378192946318913248619432361212121879818283619414769867494686147676286928948424734628941393896149128287937928692792378382681438979413638264943283279427347218614218239619182764728732419491414272364876381243294919417314363649293173969294931286378713167194138436912861364198642418982724879742417367461623893797929862641494391272319292343179246821426473123842973624373492673841389317679697462978343173279472797268642391913423791393483693137693787318423482782198289767464294846723482976728738418919291374321389167486963298372931932683187943627324724829876418416238419612626787182738968139742816183837324973671921386926748487627436743687279696731312124932194196391678639482982696784243812391914131832629319246389838696131262317618767879878348724374137672698932439479217468939493693182396727179641867187134674928189463243743214141846178347648986917829418436974184864394173928943847384387129379143696762894829362676947482926462474216243924823189769149127138249783181697917324284394196162194237428431627818986191732764126296967378341643761627867943826347186161686796319472923132419217176343289647698619893792417817231423142392962768932434694618673862146312961491861612728326197396823749213427912414932928713831281292828616268963624878371718276194732983493916317892389438647872361368287348737269692637489824734947426878479316821346921813717641484642898949176873834987298947424618262176482634938317972189786876894648279297967938341632676934698717829421324398676838343742767621691817372831282146762376382829349284814192384629186192123828342763161934683184248723219397872461237636878749324813987814642142691494623193816191341732372342963248294324626383289369461381461462329387389493921819724631713727127282189246242893236869718624796728479274162686367462464641426816948378963712649867834393237212186461948129679671496294917812674814671363836372879161242934878131813724967969323248923648239849632971286436364262764317378794674298136831971832613134768691972342327484638327316324821924621616792629719291831684839637328271613824727317937639319714183269489279219718218732943687989346394172648234984146376379761279737684131631814129267614713692687824984316434929781436862873643264736823828438247934971431821387631378219386473184938963748628371214613817263848324272189682676874298232424946743948698126238681963793481863829193134171747436412497234798764936471898917319682642432973972783974263849296743247982892329162494649429612149492472697321264137681681678938323426149289871848713239767976761287383719423139396149131489196286149196161821639128326349137462474296783432391848621676968361234168498381738494742721719838396494739868262837376787369287349193763931376497297268494878317383937314347394928143414828419387878169248789237484361249768696868613928782426826349783982769237461961846867368382948246972967684137243247297123137641964398917939313813296172121794262614832948431941983767328937394346372126434719896831892426818491727186972132791763896847921247193984141237284282697913671963794624831964978164262683989323764939394379689697437486923132637371719328686121647312921764186741878248929491739272963637142439439891626376462196739823167871791674218296393682719121271694673629717492417396921782721212182678247676416948924841827698291364139216163138926138926281276847328184818248628314292329814638323623284948179746264798693781392386989231637491746367494697979287382936371241939417286912748129363217989637979392872794613737137972179747428197362783494731739439689146421419464982918247273172623927364621271798713784962319843474643839247326896921672378468386986473463876917384796434392914321398369168248283979414924648268679286173136347868421276313278218724721816164313932913986323291682947469389321419237494276821631673282178616263127248242834171872698418987693213947438964639276478262618621341961971347816297362127292138629731946497371316469318614127213124146989649273463848181612713973824896268286141838464841484736894912869121949186364743962316967687184647394872934893676183279473628271923234913948381976131794239276434692193128681946749826836934289171784921479763647428927618146878349128726728921812191323123279341634849719491283418424263827273736294947373838642346329821681241271763726179841762169313412786461474269473424878647238727297231913727128429843727924374937918131642481939379637193797838392979824142376821284671943678618968971764298487148437436317362167364734143826242938396191364389238291467489641467813248417898127362172861393764914934929191298368179126247869323249379182864387246439193793417386878982372932421373989674137346828186826371461794931741781492932464892497928437896841214614214671621343472476924169316897249328463432198263673691298732186842721618287429763123721439767198686146297249429817278718496719693949482687167147197328642438767362867837428271672837312128232617986418167278962132163493178984642179238271738472361298321932742916761897612363984267989813879623973739373936486341437936876892714627942397394682181964273231347413478278239721296274943632139642426139631479732763274878938417894963437849627414868481624829273197237896761916738947424967487826364823696787967683836761267426749149329383868743614876173674734927179162896464817832349392387386173168478761736923484297921262916782486863721292739717131282898367894961634831498341831326374934869494934161393732627423267924723131717293684913492784917142868274371813817419681781274979427927129738269239123686923626484632467912343426914279343693926738318187836717648918487437437949676861243491642464893829326427278143147874676269146384794394689712932913692484868376387687247467437489367868348372128498476896873261738231879463891878798797317316721861279238473834739628169396896137219346942316137392623184792719892819489191791329391278191846347248346431383823137132364242418431734323491692764617623428249161849713141437936848348948431296287128438423931232636192623849672379367164393981483939797321618173821618491632481783282819462196917467147386432318949734984646981784219634683947919637423268418319197963469247687821626391839697946398798686383982487437292168981919241679328723898469791769141686474643497343876374824373693867278618182862346792479381349274683432376162164682746486714919376831698621962919171839493191341798729384748129291489432412781837821469413742716974984637813489878137137183867836341627461692189694321749371716414273424636146896439712938943682474823698726467167314798719692972134164816462183974947184186342643794246149728194741917292412186791439381947686482818721427164974142461914642949798684161937472926198249797937163462434242948492174141738936268316426168673869212819764969249127978261767619481634692719728194978384149849783481386837428491423141617817926418476171291474787372782373737393834647637191264161863629839263171748312176183187128724121271419836429416269769764942647398126321217464848727938674824141474632798162824926926974264273464363913746869342967428274838246274641396898689181686927834961791949617832949167281824172989782467262839768732829348976871838482796242924832917919128491712686173432381217873136741986743872989414967392378412821671684624968724164139379247982197842731732349137643672421962194289261236269286961643468783281946741948412687939739264136237274742189841326768724183764764916238413761369236293169473481769864684894976162363843649413483186897417168164267197161941719431968164791693734279318146271431932647638989763468471898381981749648697368313786284362983824714387279472643241739131718964697161961372831424841636843769864197816247813813242324914764127634147396432739132494721212467821984748274294161479487941984387269474218313616262394921982967142647484943789896163192914797234791396419393272474674947272342727939261968428179787437327873789742972172394731893848263918167489828348123932623478732723792867931462713132874718428367682497363623126918627231794946826384936736928318319674913128124241426474317238694296391983823186941493869139146414891813672481929797962171727938273943831426847232761947134681674264267928232718648286897219494626249169842764846327238743428136898938796967349187428262718636416939324639247121431829148939868192896432493692464972397923729734919426816783781641826328371241728987841263134243738962981363794689827192396874719462713673986982984829823793438269183198272897171239312439487618369346871693131934749392321273764737191798923418797282474784741896472989869369149674727638164678289898294263892823817364836329624619138769291732817183949248918274962681848968913287976831389313496129312818928232423731683864179241724636493743932613264892789489781868769636387634317326182128621839891217283961949193982896312734841628274784368796976238692929381263879637387134646826381289629842434937979178914323473798962316461497294624918146134143424243127241676917974789392476242328694986439347614298387362139739671218943878368741718474138437386284323468278379694641393912193432374394392961432413894176863127849716973416463294648418624319136393142318321429284984781291838917961746414146231869692973632918431897379483786731919876743694691712374689428328341946837614168328327198381738462812818469416147416489218328124313818731694396187387219274326961636242787627131843418427936127179372324283973767481938689728692893239362983761987179643941873186464681689174124684782963638148137687826271349743262461819314646878368389423431394796481219769869712896178972748376219824213872839143298794976319121732817263986812612926471837372692362127264382498432197696826416927212381473798649763983949419198623741486861927423219438761879787417962673627213719291349317174716197272193124238382673767164261316383981823946792767476981214861741893762124748391714893469149643272424974287218218179624717436417879629612686231239836217812719719371347629634894727248128169731234684121212121794693416348972874239293626972792789246976767129414834362328146961463816164831419838924726186942326318379342796831279292968983738382989863476943891389464761362942391324973143231321424764317612391984264343716162972937362741363141373764721741986963248967349421864624238414932871286132929616924819784648494989173796176989837183828927873283731647241267137216142978476124626124716484817867896467172473293786143848398121618723723868979747827231897281824623736783272147162138161921473269419474243292149461862493872913837828426234696287498431413129264863871717968392813478194923127914796282932181717968368341483689429462162687879129218381318696417672684939868713742647289869719681232738491484979841979719276218617323719146362623146812746249142136724139387471281293194148613792384632368737627626134372728627846871679193816463486394798129683286262912979296317689321397893632386986714843963742182686461646371387249436934696787847121727678682639642813292789839414964872678293436829838932432849376382486716989349217289481879131372732989273924984742732493213478236964182713927626394643763843724941473714273973816416326962164129892643624926293173742718362969672689748367843438619263631948183149689381746186981363616796868124171928237947346783161479683171979173748279161892978272714286946213192693189146961976731823847268262784618768496942173172863483298612136148362492943467978389243232676394383186321294967387437876981383183294161284824173834146872987972686138916428239286273231627829136718789416174391763913179783182386278927149783461838128273847464721248189236134146728498182849438234698129817141767632647189743494372673287212846967184173193897217379748632798641976717184637936482797367289867943682789143197641646414793973192898493816172712686726941967342897623183469246127926896367693749839389868293893629897828968736182727939398964728683191749626169143743798272629623924817838246342361479632128989747214382181619364867236247892618269198716279789213181328679794236489182636974691629428368148247961393127123289212439372631842612671289486429873979492781898272169781286136497346769748437273234726427363762979869438264389268432891794314864929368386134341421892497381823729792963972724346136273919324626862948329869628934847197926873146296237827397914178378269231786821896968697918186489373249838694836372367613841412376464396898349792841928219364297291796498213434696297278921392623727894368412381218981423698626246817832437127648646291396863638693279841972378387276136374787239427371639343421923743142968628379769712197262768492327389381342172146438314838724878298723948962749368249698713436489121713814169417871423142634929437472768964146182464328687936849243962912798437942386868213861296494121643786161493439379281412493174792696232397419292194816984261296427231687317413187176931962878372834812923481218982838712179184628216921924929712612673781278781873841967673891631481821643471243973826747674234382424949487643187193174213474384626973671283734181896363624841964218671412146879798218231276282893919493643824371219362171213728946872979467397838264946281894319683492634364264379797412784782798671219624392863834712837647617826327623819782921619129613284289193139121928271476978317146472372467671248426731312949824826126134129372924946984872363489682498618124198416718134672927236721284723626926732429687679473293179386864643928167243487843743136939193472694127364671973628278684638679728767312862673618716148269167374739629737124973129682826361483671294912421697847634162316738747642198482793492179393738476898628439168621936461379137826712678689249631878718393924132389789649167417849728142197839871874212693483437982961741896742183174286129616379739673486242979468982916262843797696246327697429319167272969621391964281876896949861314626871371391287623297123487961373697378932983762191623923638916329474848391629136376496831893284261839743912873814678648973976492941278784278181918237849638139717813741827413748463729282326346821328687946747828973131981376187281493783469871741676384978149828982481916849216481762712813694321962479637896964184167931936836424623218698628983647694397632896843194378183939796987278362467497473692368387268413242973637627293698128132874782948728219271876297869894729268794723626381376176723816474948942392629718649796234831783281218198949498372683961764967494926123781976978749726289183127826271249843486431831374749724686478218163469721719198967249293761629234372929817383791769312194217612169247286742626329862418916917243868383278434823236194619323264246979212878497483216364649721489619463297636384839478729819363471971781739162618329343984743968284249728946169481284864971268629718413794123721268984682478982817346738428281938343729624169737874817849179389743919794984721429893687949716928672327971272981782749382421324129762743181923127243124683962821231814919762769761298261486923417241497432721698147278731673474816891749164949781976936812716892841824363873749263938768462872643137318232136394914267124891878367838767637942614729131624726843614128182728636821248484137317981934262742143828178287893263638239634963171746181987492431872143864328914812949869279364674783964864926281868194782489218383787462439642638148728241291249372734397831234896362464782627262962631948474238279484816347469749391279179169629481376298689467928238983698692781921267262831787874846818924968717383437168961463414934126832942314813281626148128129431716863798747428789383817173827826461827292712862721923272819241347642182632317846429463241692921649487682848248124762179748716874929276968328697817136324619486174186769141912181498763947917484912732748762616174248292373136712967678938786313961218213693636861984627394942764634164876974821268492679626932461974242696181861871321437643742169813782981247676486247216894279418461969368439232373639679628267479387497362467471987692426236418271629874816896736874279486948318961261868341943673474184639647878971784631841784781741747348282124824749373614974248134913193629349716124137376396818172798636968314272416842748948989738646919436732123692824136128418727689387431327362146723891468671246961872147238437391632932626987268949678723643872816372171834912726241738346891341343286216423931793769492124382496343136374848164161978378187896716218183172628713748637681213143838464831891939184913287316863694896724297163193296176329719818367168942839682472328362618782878796217142628912196428793236219632316846287489276231486798926469382638173989147314863867497476916724874183684834691418694979383813479612376748636832374316721419819768231382728736896239412981643176481932476896371616417491316362897683864921632191268928121376374187837831269838129614673271246896148732481848691291792728267682429672178781983291761371394878769827964821973769686182824394698281641764692797346276841613219726871689247689691732934872171947179414319639816262823293614393712947484871242437471949174982187417628213236293947937283729894932138482491494728393487638278714978432687374393763726494831212639489123814847969824746163769278497813932729274871872193782819163643798936846717373297187129639616318482427989639148196398713963898419461714692367648234376718798193489796893794161376939786234912819734193831476474941632968416892974173917696928748932693941749471989317143928429284329196347162628297318197296824367678321982842384781983261821867823949731918217191672693276981934749712848312921261648487134219637968939326712939714746781313436476746836843621231346746834673941646937467892179196878123681943637434639128467924917362839742982748912874162626268192324679687287182968726298769713941682713431687819243148468428281894918121498692617294741637296432634628921243126968724642697127138162182384273167247182376429236198479868324171484232164721721629818463261482679428734871374861794386718932674382729383484171961396219261923929712717686128287418732923169834674892873741234187176341623423191646732348396919849362689343619717847862481939376216323164816141737437324691798197673493261697969719232416948637182942742462737323163412696938269879738671729782783794868641216848729284828984694124738271427498168912636172678929831496247679696791341434643293478182419749673683231329
6891831384617126928941247438786827427378193473189381783132373636172764284243717146961871467497814281689479493983764813478329486393923989213298124634792943797397241261737387127131469284263816218741728439368673841247873717838236462479743416217814373968983163632817468343473412419741892641843496927314243963898493682872862978162496147498692168632943638784929636391918291672416974746973636939723296891749817623823171729173141982363231626738237319763914178264267971373636139747379292831474841862786238468739236767634832986823843147691382849413418963289187946498243214238792163643794713819789371686484726414267121971461238978798682497826426264126267167179278347364874723981437671316462168463838634948947249476168676813976317492371862312484967182931383961727232829347472971214629262621971838712487192639692489392147693686261934716392864189893673894637282378143914926743626436234981872426718941736267984789343784761421942642967482367314736928129179261984936721921316438372176312787649312319747872397431439428632743948794647463671472687369261348126361493781321849182414639298479897163289646236213931916847924163726467491423232481614243478137693914246278916247349747142647141838213291314368373861961838134791289461739124787236181346176316427872421418639436343968781826272429732987267364919834964921862918716297471643439647986419643938474282926483727143967368216826913643742974741692786816349297293769372892438196971383782621373921323674687148218426243931231261463783671378936493172474672397243878939678283897626786848382193793929174683734382936837492471673732694284627812687971631286197281624397129368142127394142964172982679293921921819761231739374142832763173948193496263437147897638937161387841714693268219362347483963638647368768621396192312163179136846296916769798768732189898296971643849786981862178417131921819479392696471392831382769367831636731981372627472193796364391626419813136978796179383848131248617294871743174723981479387279286483724929217946723819763168917374681612748691862684819362686917376898346389723898129297241281247426341843497487636316974317431467171762379821621246797139834368262831721471676732127621323719491264896328984381821987941461849681242713248434867376792876817497832894931321212168789896871367819489432484629162823191782814132913681473236183217849297813873493436249842781634914324869194794241626838614239149378127212147392943138349342769684172648491398124737236212969369247831924942716143412698382487364614189187264827967312148373823649671427673136186843673614717136839272743436813673838427686387879421929487672491469384146716164682364942316328269426939637364323841712627169478943727816713164979868674198949689392746923243497123279461372324172142491893732826189264847218939268742767161727361346728427321241731971824726296896279171627672629294849492414639218279127172486734197297313296286824914978162717974893183163676748246468197184782984321812168362146231247847924823483963863969172894162876987473697213614819347329797616349462347413286417123942178139384636764714763416729782864976978791981637846342687684261486863914934837398283791361628329782416242913796393267213621892743631347218637392873924148742618431742368372414291812374129247174174812823934148248796246386281713292914894387126931794983413213749769698763976489428217421747634793474387192794813646272464628181319717137197498314171472134676323462437371278487393461816328921693921439837371728426136424239731472867813698989637473698682483141816287486164316423896717698178916946782828494787836724684961464637471349787234982967917896131489314613829342874783691261464728293728129187842976826132626143637964267427814134373637327628198348193817987243289189349291243979483429781472761323921914697698631926731842313784178179418237867323671829871463414842426478196812496963239428938691723891364838218696918231976313928717874279239236864127678492786329349134793962628763872868947178241236247186249292898497917316393932942324378149846121248464937629347687639184281314737138147231614629483479763897342429686438489284141784738283647194861789186787642681341369197328327962979189167869343896718184193296341269268632986439848648971942136136169784762737816823846213941286238681362487197942181869296428374167472821942831437826971343464192491934379431493413146413426439298747894742323918183649194686867918384674696294239782683683264329481848763943479231762148121731976741341981314878174942928173834932981867426713296413184312961329432348394623841216278124326293267939374781913764842746161973648231246746843823126963932793749434284943213286424969868174717431246212367618268692376932946839473469426813248747218713923898314819684961378691481491821781682329182871641934676428621832361614682646342368412912748362618378346391281938678234192184963734726417167819461432761436726192618684267434213789141792749312396271943941393784878647679361621989278963938294389194239234296497164863467963941984826789173617834716498419438162381248486768319413714326789742136847948367682974167373697621947417141986429734796297427493727684929678963678987871419172169313796717469264367437961267469416821287962321742787349637438396219687314937138479247348929624964836179147942743978623287491837139217636929176713496368176246967291734163482439281473182491393619618376979362984847946878746712416349471343427464929146428424732781874681347937429746164976321232614232764986473738413614963973982797279781946321369326414932474697414648168426294282739418461284316971762437137972816468967869864626936497672643729142126498296437974197297879616364682179682313716971469716342371819386476824936362679831719364843124643434678423762142346378692383426967348347941341463271217346819819412681672684671818972342187478181847962713983643678787396782342879723986916491721782948721249291428792618219746813794272616919783949717976297892718471421312621363423487313497626878316967949369323628231248647437949167216738932921362848316128281931741672387138269682918373894212727239834372832693798197321863476218396924972783897623274846468272782136796424728384371626841367487416828347312474189317463869836342427196187916463128196298691829341219173131283648734379861417139432634632878161417913764748169387629171763138276313198274621432378793432194178263296348474962181892637841329123171672721216846763172171727237472638936839137697131473974948989871237142791496418634636713961279612792328931924791289828173839421981837838983986831927849196234328937693829179473634136928626471798641391946131362632919718621342138248249374848129237241387964989631737989732413272789187187686876346731392368183947162396396243729296786412697814936862868914837639371681824694818217919416183849673432982692862646912812321726348916917319369896123792834797292928942746892473496469879837238987868678739898721647948967412481846417641386174383684283142347424387983976286719234127131627879267198387614186928264689891318342839271838237873271438489472917434847421739386486216831734318927368373423689369612427614832324613794746361362627386298748121316318496123818131274141943984916379842183793297267127282837247843797687461683981464187431269836818768928638467947373874731837629796481217619464148724136297249464623242723176871437978434982913916764189891878138468346324191481479892417313717219191732932894989178367382649792641829829683414714197142764683976217841681618363736376927632492324987949624637689318124274938483921382642819796731746872342716831912638649842463928618142138793684312821834728234937126828241684917469767987361926384239797262414219397947647921948738719728919347838691781913898742368929647343423978798286861982749489176426737374364612714714278381689836784843764123912697424726787914374969471297246938468671617174629342871826834878731623248697371213148646497948768143179624638713823483684373481373196941362769794732346267243292849142918972421861742681271721921749792912832196764978634896987462831738437496328163934141862379642469186929328129232981836892647261867694124239812124914847417241983427364178268198196169394786967389179262139213437241936424132187369412394231919769393139136193674219892479278497894981724979872923797181629497143961428161328347823297318918434976723743947273273187196392426321429798764696791272487161817346734282912491249721829212696189238781264298962147248274918963837424939879384839491294242178239434231932323183649324898476171267368381321469747262671712139184382941648418913293418274629479419387863969819787231783468176143761286826287872196267938186264896494138613721267434142169472737432736947817841623143212818973137187328641819471327629739264726293612394236262986786341498127361781978932718236362849642961383464324387627924784346243426382642417239424167163472374279367238214169128686239378616931812463472818373619714718427416718762812172746941676969172828912947286796374262863239412829643428976429324672732323619342146963916386342786486941841234739478397637263427897961621378739381436797864186419136414891712197289469296381373218718942478962189271784313867494837983684967431216738343737129432383873898689398386273916397286182617418349473742828283839762419729429393417613862464687971346948347437347682782379897232638693191371497983286864981687327678317248214783419318794326289248694921316832847313276386376494646379392728976948269391924969348413282181687929849671787871823946171812781419138717832637828326476921471273673123821638932321638784761213242192914319684137273874983491796963613719813868123269127673762898692136341683287924862432689717361864879128319386838127297434294692729249314398341637132361894121327472383823934934173298743493646849174187693182187964639172373726239621938287671348362397363642989728673879846949429823878241896298641283941318239629849632919691879142727968694862427324243768691432618636826849187834189472981324939623691218427832641612497167289293986383178368294849694736947368674697396297671828627812728249164281212461481819817378913219789349694861284848189837134372818367817326128319478932791627637489416893949267261968649464813732767961948492612379427197986961249141432182919371636841696268612843192613282419416719846878167673984974963931613272871792748646717949896141768716243149148718979434948941786878212329462192813621872193726121346196347948393676743412396936297812643617921363964273276387174134384378792937162373797942394219787986898726438276319824976926349748379483847149731823687497898974742198949781617147869234642643464638918734943632463912946232687378916729861313463161312319869716361973713727287472398764624297371749624249193132687376383923436848384864389412326136178243281262474646716232349397624717814834121439298793821369413181423264718136416876487617278274738681321483747489642621724694717692798982483293764673487161919484863242769782348646729131748472626198346482174949239139417898787194361698368393193283829461849726297926427486181231279343929464942928121328724149297237367318418297919286824263947369193217837978269732479471963629864619342368637262636267362679292369127628917674782137324767193842121398637697372963738261236274291981212912973932678276891841368986872164832643487972317827698161491474291723283431274769286384386968198687173213679261934937167621764391323182467214938164384917239121246323489246346769836769419264948423896784947837373838176876987619718369387643123214634686432648642789183497672636387196367863187218921827143874128369371424218498918263868412394682341484872362372398272629686968931372398734827292732141787626387816424819278346374934612848241878481361234613981639212474867934342748413426782692893174893917471323861478373186971263813894394198972176732694394898238629168714241237946382923873946483642172687214261873926467293693179147964971818149632714936381249692926237497273969861471634923694946341464371934391838468234627867346421983792319727314392434316126734278987143282432781493498972126964637638126943196246373613819369128627946927238291437646929614278297964383793748682189316872169396378397698168472861829238376391489232471724371469676731716964397498376769891782983261898943296364683487383792634984637426979326268479369486232741642424732346976362747362749284147937373487376348392928383212626398649324937271646282618142728418231382937419427873873931427341937413213878462147917172793128989643219348378714963634937194823472816176497614692143816946483434761898647843273296342198291762384896387926713824393848392169472492614818946494727247989383761432949289764767849368946943843471314826973937943924681291876948216813732647876431243743681868416239393724849412874693693286214639616869271674943724272162172939169384283876198987182646394317194293492763696342876871379197614284287672173794938962427462824842497674926429727137627492914174279272876368679721372128439813474923848123472382497141862374814328313127269894346494261834618682324769317976312494824123942473794631727367949723984781439176837326284272468178912821671942182171896174284373468246393893181413821273479634313732794321234282896189478967638786129297283167376471283912931341389831842187679276273974121693642937218626164197394784914639721938496129129269894812313693769791247312674841678974864932624729747361296793692713929168618747989374731927268181841431879692631632134828672698132924313626867172384238927861974264131861764186943897486426893267892841261721978378714293863924967292863296264786394286439138272196146837969238714867148981362497814384863612329419149764868274234272428232981839181682893679146389617142812846163491319676431819346794926434629286382391726276241813789237679712417363827624126437698798389624849491672149376142697439636972184698317963173728343167641982697292381217318928479828214847476817484898734341826292317431927327431461847427846818734746349463413218131384289693936121789769461263784874136134837934869318273976132741383439869317986414978349362967694787262717189612919427671382821961492767198723242787681624618129739486429798978313724327267318717191372728284769434817474681287947216389491424184728183816361913917387147248186423169236396821638479417296986214319746737236328289828163292317974792416137632396926276416494639849417273279891819794623747263641634134783682418491481492189476893238796234897219236239794838939419496934728961962794674178124813161427368268178983131671927168782461312927619761683861927326742463796162421743173194763419286273736471349828636926161932819814921327263236981387198492629716764176248378197928978424849187342342941268297426261493468289382718471464361636424734814364794282183162863719271831346142632879714321762731639726478719628148742643849364969786787349216439471974286427862749729297371439732186761739624292632742493727284194271427918486734932986432732641348624723969868469719736864861962873821672173297162784213684698168312619692148637431879174261938974784231491927248732196829826964619816762798789181814683983897693861381942694367281378973481249696867671897473689348172671732192394714797217643186471367921732876379473619161792479642183489729264139864746892139413197174248247384161637374683481814717837937341431712439686976461747463218764394679649186379263938376276719342647197128182713486739197932969414729212716847346369841624973484287464392686282682379417824193892986981279429649396413267171679841624892146716191829421367978467286923969369124686969896391462694974749283924927427641762984893739714618782972191396963427927864679268173692718287814712824139879276123279323492794824361719831729414647818243794272174184316979863172921748189798486212731864841364839138936874619847686749383218217129372643726494869782421739237917324219378381914781434843274968718313437931282839387874142194187927981739239468347838346749637481682129617637947898342717647879316878919123132328798372438926162327412939682646196142724621396814832473971262179216893937434328939161964386176798684868763424769437372438646129863626168627972762481284346484784138327148463834362396497393787892769162316932343163968489249327618974929643682314282782682648212741474174264349319231374731696292714936934893648483946736282483937178461432713768162417123472963986242631929416382134932721693831719849836723741638631716272986124348243732717213724318137182162169342716137467414781783194391638918389812178464686161462149137914374392636374282138279438274278279692718462718462796216281897684924692198381326917641632841798732484123436239863723269161246269261239898768414746487171981319893813173962476341372426343686163692976419376342474246317324893676848786726429864743931814874361813427341829734762127629249712621831764386439271613237346813248719169124287267962314864962832837981638391828318497967639341481967436349829737839712986818172832329748163849294748383212792924172612497398193637896796267671794769689421876837982397929138728929243742327197249289874673623931978932324824848912471868313946232936246879737971612427327178239847483243731847921419381849479826271291871846812963648969761421864268638139328249848376967898124639792734714913498143847129181962378913494628429728919341479171748371294291838219471281324169289438237361917189413193618236863134279474186196431491972943787272392476721287876462146832797319814846168471248298329394814682164798786393827269421849343479848498317681934839319632389217273242138794341923929631627637912318972848769186134342476312168642123291968373286276841613478381616939249481961621643873214291363898413632671687198367683642171763269314626437368216368412129747481412749693129649263973121767148162793832629697491328714276823919726487147682173212976976932787826418768261318281717847272827687972148361429623429313637636424647616328367269728136393436243484821298247876847321648639743832196324746472791427191842369264962748969763231676841463619418272868792172793826124169321719867182478287917192986363496978686218947232942861468196962424982374136412131832146161828163721968942874984723789396917436931413861346218748462384731343194296916398464786371729319743839691293431893189218163297398137387363212616863194823468726738417479287414796897126921629793728913272381842848961279812468272984391837389872879247293839437989629678376172617163798624124742782973832637813297169862827168317243687216913867272692896479347364938737267646472849276893489276892713423148714934726973121323939424971234131421491398214316121761843826394274624167464838138621214783742326317823967919312817173164797929123638748483861364734121793612736271918482492781368913481871834894638636467168946483213861792824648392197469691484976769697838189147262767412784391272747683747263678686167978371832964717327371724674824239693124728424767167863831362781278218918218296162167474192624128343236421768916718131413628673613629389842176183673928148496919287187136279389189429819341926173424746279724386734264716736726818123746813472694798396791616861868216213189646781816423862698492849616136939126363176976732971818387829629127198917197483818484296767382761231969293831724893971989896184813498247243189348432967189142498713167368274917131471368217467816349676912816827316489368426128938694829437681727926732193641284269642879279174828286291962874989789671389264263943136981683636283789848289146296429634264386424186739396967176286173946737186469489296824264616273194313497614847396764368276324696482147863731639623841943469178982162647468724138671263146248218216496896129127678371913837314193841747978271328467678476167483716426134162767468124238236727816294263672696436262974971916828171794672416781874683712797912489141781987973682636314298316362479763736146718983421482681681832164742168694867427349182676716736923623462624318283786834826193797393617948739894649846434193126791643826816271391894128613932679371249781361743784741437823416383137371319328472721743231283612869124271363264986276841498217189142682689874741723187689278313879191697897162316764232674326219418279242323248328734894368168148618328649737323819272424643138392136426182962721939269476827232734131626926249484676781897649272812731848241939123428212813817272743292491263727469787426232934729816839272947327834184987329764981276831312684327183919639143923784239632878976493239873196976426769143737861624973834832716724867138727681619179627298473214718141914346417874264246913894212686479242371269613271834291672141786732791682647843639893873283873636838428496972124812424964676163829328494894786281867136212729626736742897639828791718426747948782928429312723867386219143163716164819464172486894363824237143727879863284732439469812347148743467264926842748272342189473617861389134189289498281317929189793961768472839784369236496818364196938734824937474917192691689231387231634172927137424129727494639481368347868623241678486363974238239432128786242162782686494327848639827486868632963848983491819789319826718917849739836717284214728327848212694234374878272929769697643981791281464636896496927828274186831929796238947839196937937839124124376926172824687818791283473147318216348691647962323876986987841497383132467876848178413672968369386414164278418943874794913636428326342767634276984641738964218381836838414276292419391291293267949314914784628313696314323918132361464841319713647398683894628392436786428929391684328379187924743213873148243482841298121242392932739186324298314869394812432439376173247676924723932437812768481484727479869631837149341379347479674943814243284671383434347167291413976839726864983693612939393291293219414243294943173137313719398138641831474941841923643483479469678693627939728362934834161314943978628412917941642817391917368297649192149427163768369296841643168147982192431241289674196749321623864163474976273848918791419792621892323789841897987239316167468142732826982348769212791213426839187149849312328719834927942731291267273673184146421267974676386943973479647347189328634397832186371612786826326272614979687494643748379347629189279868486764974297139471981283793164647479843827368628261947813173138176761927412431363743829762616946476734214694962829846189876926984961926492319619672483634632492627397619489313292731631683287273914918398436846187491862493689378296329794131386738938242917321241494126282848742934161696368489493234286712384273243178183418136726137696421678314316978231281386368374179297394184869313121362813873678136738291814242347868231242143764941274716718762132487327438287343187623146173261728268421273418624767898384794328747982692146372831232782343931292326247268394781847472324989267472619263438613798464826368786764191981416479868321421638439672428231743174367362723214928963972426463462638492139839736234921281891893687613913198263713174918618174281824213264168246187823189761479392971242738247821216281819187636374637189821769491312696121419696783169372747318376986949296783936149169646162967192718736292891384797943478214698743218376938163424167264248173132924917147297968939493798947681918613937362972747624361878797914232168636931829761382327383697648784286491213274786821643262349392347487631896212391268942863946296126379294219731238394814867486212187398349167824729132982618719439792819487136164694696161271871738196169348189132714261483494939863893617126798284264767234841491494639861789131862397638621817214979782989796919329187498486398921217363837146934197692983721872319764296726717389713167214196841827923484931981981343784196847989381234141348724837469483434672962369319314273267426893739178984896379296768286891484614691437273974729371989321632424683271414914862697686317631268296824897979834919648167296491464934872831218479239789894921914281287476949748479273926837276483919379342171482621328463768634973986418643231983786479381287894216748714278734367196239263837124619141948789492639372731241239684832173629739417682763781986389294681214723828947841818631878286871731864826178738974284716394326724739297194218184831871729793919378946429496323248612314372981419782789363264838941723623672783212617284784173272676768418741793767198767149891289717287412636796127978271432374191472847974283214383682481432496781719861471936146126494137673813289731897193147878462863924634843649168481812124618292839782383437148363914714798736939698134392148719364738723636928437419271767493487298196439673616931417467493171396846246796397861294914793894148182634641621328131472474261327491891269836198931974976264173738161627682643697176196789198986321263232367962739842613867681871741323241794683838261783973676984687934231348918671823717864673962843781273963127963167916813826486472371864694198292323627313868623712928397186138348974646923431419347198326761343468139246198131936387672927921267849248989386134297278134848637683269687268216467183968376176372162898468316494798391979167672381474786346243469162478642169367161494968294821348162168624861683627979436427219278713187891646426739418473676924639412879489438179296967687676493284294876897234298742674316194796347347623679279624639197637682826341929274682821978673842374892312386161289632737416826829841278918496732627947274189826271281349491386378176491416417476263174281963743917876928469179236724837876237962696478969747867978948378139212947467487393784671369861698794391269762983837213736967138246413924817439284249427862361962742737827347126218984174687614197219732486421946818712138468986481419748679761832737972637121383463696943273976761836312727169426241683876414248128614689318461767843163619169286747369328484268429349196984936269741419683219627969473124649718621827371926812469793419186393931348734219741214967147392382174342629834794127636742869743974143968171614742719176989681712649792981278361613698346718371714793679367426916868381732738429421429132792863639324747919814182178432846967373191292987679614781937391896179218642974791872623478239131732374192143842161721381316837273268914676821982612828268789236734793218943263936121698742749731986989314689897978627968167486712424281943161376186312176972368781323916924639294898676263634198786974392819313494781368493821613912946272989316934321281263489727917672463416316892687921238698616247839267167374183682963843693214147342189826848916891976372689679247284873713742763467286971623642842614396791946384174149628291496284646879298726813961681983743163798973246194794398413823642373894894672973614627683184946346843637913764647462671414129627328436818276379292697284262841369616732671843723838947912943298394267686783849147171412687191714968713727624984167816983748324893416932812796281948481281919426328192464797234986431627494923679186748316846487347612439897929634919139436938298328921963729797497469283126791397296846897268384819632327267839872768282417617692691942393676421746923636147936129793989479793413272976371236871762374649832784836324816131826426713917969438247438679232136893167976491274814676969892687637293646438396364638142386269629686369676947826129238738164987374172349286836294879817826198162376121293797979494763693982163161216721383968696384673897134947123912924239712981619623831767694696218971879738769636839396876863761293241364638346194231312186863493413497692823832979173191976436423727419739387892716482128138327236279762187238384297638247948463648131979796713672713273932742318983463979218236936743141326914371262816429296191786848328676381492768182761368439641714678971823294619174724182787847619416238216427978267827342197947292368923729826234724947893727681432671491614731978672747467276121424621426172634789672748341724218127173698216317192184812914268696268674236316267879379147892916787243236239619214631861781396726848187981641687838417496296846432369438373241841623782318632939839894718927427918247261987973879462939297261716196974719384638342481638698279718914981493262147438796172393437824161861729647413261716376921738964232461841237321739723496184616846146174263878439729283734791789368242963836476491924721793183194391342131328397272468649312743973498129686728137347412834274829271486279613734248178297848793674937323736729273671436732974762428976747162729421781423898742182782142479464732924912348383764869131748732428734868134294394697838949629292749138623798487171716432793934767187376262627474683413818269873136476191981429686173894123726464847197947497898416973234173247647373234343427841321646492786862186367631296891319241891731932467492439628327923289738248234671643418287938612168986383494821839483468287367679313618689473916217421239838369487871381486262196189293689249341286496393219693636713218123738627464963837231486829234784183719872327943897418918493967921926397142397892934747312821762926841631379732863861726868343196816491627212917473734691321791343861729683982719693648217249646161984194231287267491723734294319383271939849428671932327616986424263839846921743128941219723717189761918616238646428698232783972942639462629843437623219161393921384197346347938926343863169634671913678737418763929127272137986868313914143837394742629321983674947934162976784673931861739243132473982836961739491273761624721748361681824172817192721461213121978642872398471786786927476398392896216931862349726217868137936879132486424793824614929312473924161426184849696184816391474142897989636742173649628216983786929183714321828798242731918734232876961696972737261867632949393494842978794749139492121369672392674614267614374162636784176371823172193989271763481383438383874762492391476412191823419823649764127969392917868984916848637849392327286268941723686769198719393841827123878274931279432931841397876898948642373162963631718346474731728176871291238164898383674382429849846813973162147492397898236127923623121748368418474289136486793147324893286219482717624846487271469321384863896817964614612793826872931841629139243829374129367681798497247236162717187376978297676831817196728189279792973841636742468712172848241939261363679398398681419262786948627849639417919139247194796978639732928747819863291392182748612391281647168634839698691786794189739293247239783123842483497231969896263812871861849267937619479497914638626167978194624124894283284724391314794926294947213873217149694732791386131426248948738292826249873473241947189431898149123684621389347969841964343634736364628648974619373919636892379841283214868163816261497928164374218413231696478941384818749473463426371271927263482412918376181368387192371981897917639272429436146814349231297916164234898374364326418782941719712487237268712984726481281842132943613624138498238964916878691919173484324391834861912474692872686987341989242381724861297623493218797673717632948638273123749647927864329164962612647864147678416473748424247128732847486389794931364671369743618726723486193284268641786831289139249382496173431937182314238291967413726369318618768234893731217843498123946146216289418389328264829484681819846489313419394176726178782742979627863616146862797384614682727617614126942798264819726137467431941986912969294912673981634619262467341723898281928389729292392393937629123494121381928217274363976467348298729673671297981794173867821793419873971693868968373214934174947641984346213924737896932137826461394271432473843937379749434134371263986937246341274137464293146183141827326979683428741462939716246843476416878497168432671843474843824613871741986143928918182914767187891234863171692897693698737973684147416262962341742686769473684314749287234216412731378282923947919242371361943847214364374898424931249362636281691872142894347898969392838272818319686963638616398789346746139671246398169796913838429687128126791689286367343493462626218191291817137673769461878436984782872479769181268916367383746918146282472967348426841489716387976792639494343879791836273872136989279613261617698373827164727964262841929368298387817961493242141923236796937179686983121231789849824928421269163483941828397429374262498469818494968197949789823498784932868217946416146324896869376149419761213738176423437476286748942838148363626386427184892642871372617249323636427978634176738462312792781371431672686313947349312373791976428138282924974826186139693182671427429717618319682127242418971267396981716923736874292479897696719461631932483681813963618724748123232383291419617167431843826343247626439124984387929749139671781429364313268739321634193671497627649279817698642171273472939838712634739123824276284626968273878978369213413268161272484941828143794821383473132364913628172132321839163147313678412482721639373972921361927491796171961943743476146123931219149428219736398674918684636914839383624847372698129246983421281632346818313698249624914939349182479349474838438376321232196742619624389191716186963461719817926389727498214381349747323762468246127897671616326276437839473274287161969376791271783436387173832329676727961392424243648724891736962768693687983742193871927326878984198178743271832639428194782723162174671837372487236949431624848268483976434687496164989712818426328943131913769183168694238348136848627847892674741763279296473794842768424348314629246919439863976127346816817479689649616493474864692828179417462876393948718747819191213924274938782832472163634971973148293876169282392198268683618782496763968732124193182631479297196816164846378368741764918686172671486289839823163879749732193684826716121673247248783716281797313967868639463232981292383723632839786868291649384343869743297671219167162984817246913961819372674926737469419626821437217142176389291972762126829378271262147936319196838719624837236194716727216126341392164284298169863727918186848136164348193186728298917626278323698937173484398983621496423437292492498129163918368649641234389319724647319843496164841341749383686297368931326828139134834728749438648248193618479434972891723639173691278324346969817263717132879493761947418673734367149628641794727862692927279743413972828783267267386318782983723121412926979168796463236198764761918789138698696198128196716184629672797824628137831324813428762143798924391693628387129276818183893469417139628723472614783986419137478362142982168629826931316168638787427493696261413423612324278736392386261618494648737182171727171876193616893473868181947936424876783241342761827168347369329679162187941276478187628373914182131474937421872741738369498218196219341818323481961484981942681834874781871649218983842639423974936384349783826919262382971387924839723218219428739347168219186234686327896482796864638147246863983861748478381981979138148747681348381679246478964678921467971761276848324373147467176243174641734394364249319871932419371862378979169296969481473274864127139213912812969246424373217973926742639828168494989468686274927982638392767819184913738148164938729374376716419469297989761767623671284792978371913791768313846214132431787169496836419423689127871426418916274617171679173741983827832761747379328267281914284239496197968134812172962437873127431749146391874673921434161768461931826829139847892932612682172842847416124319293767962197478439637472939172678273641831892647418948631389636179767629639742429416491734129684123897149286473613283471624642672317697184718932962867918617682986349841962729268412783793692142674298318313248638436423894989696893792739183246137281243738737916931213843638416483489482971412937172134126379293297434696978617429838934174167647827673461792684262128642926712636741467467989486789241748386146368434147942386937297287613246162437847174829429362381926897193789684682439421929476237972938623976898243687921731676141649741927143867983914817927126181243231878728262978282179394739464124217983184716128367623436269316796932972868191898648287619261728274683948264919679246814982939726216943871613731413628928424796373842361494371797961867261672492391832792789269467962327389826971318784171387978473867464381948962393461286274798146239147436462497219219691632789721829432346174387648167843297874743798393496181217614232823289138784816929794192918764217292643246838786793128929128362912634264878639372614187394848494172926861848736438432823732193719647436921374376743932936873121747929268649392947232437378168471234383642363831697961817414398472798912948126127216148649718312949429692676217292786182194939786471639437269238371916719349326463492761412719679876361687142948616419794218648718797691868468612813986839369398276768643161279372747328283793976817429628281692463841423792739797873691413162313921916184287923418643689789167931846263827319389838713867671841938982371218287849848764913747294989613636421843736362616987639894264972481346143428792793474181938163938419761729378961943619321461862914374672649864346712139734748317621414192968437969381639476134926314637934131836791636971278384946793948762161372138149143148962613828681294364871434984786261982498424828791784867143491938761212434932682191473246348692371472641932864748271863194848967429827294938971478194873168417139171728362791931272987373247427484326276124781826194684326724317942678712797819492127463936167197836931293623821896767412934376916786947219231393724239673489286462464976424148419429464742963643124698142683832797191873946718621793847698314893494942618143867314271461828136789186193276264732792132168172186848273294973438138398726464873892482762721427862641726267986961496421496989397283914371379169473496194327321798472969749672349317472623293816732414378961284796161239349673234371939728394876461278319628736769213763487983813496298127879676172623463896382828247937678498491921712721626287282638412194637872198429384948639687171246387492692169712868742616424673967689143932362161796298926268974847396793737129141249737932174123217487421341819262427186274623243127169426164724978186728138937987363416871687238493493769361346293489148173437169136898476426387348289717286982839181479479749863642923293873893419476782732418187394242439497496318784981287217924629283167692986468961646796163973989214694748341976823838314198368416923671492186319362143627262696263432197919394137314148486713683132172671382314312461284747329137649373484349294171213969271373128624941468948294639127476292812498417614676842749132712687396926293631673913171349247378341748719328986763872428637846716494921914789489127924941386826947262181246832198462972729386764962749314324173121489839272414279824846489269869817868783741649349382726124316241797136728214689469869262981734762121612786341813636832167374848646821368784686823848628793929271612684972879861989863416246243176429384848782987342324913287292934347989218949868163194324181461694163979467364813789134213142436831478384948219216234764189191987146376168179893628424242717143692849162939262926743217292742173724928638613781697426212178287974987142876482862627498741642469323763928964124634328218628327948916272747297348341247364124739643194129182476318749834784636947318636286189817413416161892128946813939683847913796121323212429894974947276167121613848178497831929431743898172891617696739191823769813218624372143746412676926462318392763649471769748326913894161478169738274373918368289832979298638374191393823912934287176167286139416912341971974787947898412876197262621372912616281424694821834379614734969138979732764184814982874812696831274137383191426423717917837392864163279268394862386712738296867181836361784219247261872478641217467381739862679164697948281317928436486243276479686949848491371312489876316272361923272984212649317237476879817813681861981286163914276918798126481241264189139646136438292392416491476197167319426938296173247983716264236396284871694689764796941786914717949323276871919689432949729363716983829273121323284397419492714792914361892769894346947642467327424294741486893974926372384842981989327312189464364296318487267183834894716817614939461249468293234812967974126979673867941919873216216971813737493638346313874974216424896382416839396184879721276189486946976732914782348634749378717929219483163138236381384974783878329618936494791946894121873981363624649479279427623279849716163712893984163747639396282846382676312968376413238731373749732746963812393484132896346241723648143681637874317632842131262189484943676728437297242746292343286476468797647626969436217298747943769784262123737648383467828696862428379892143649327194849282718324272932798391923894671613967474932128648726713417483987923963931897926969619494876716839848939363784197862648324683713691713218147468127291328768464296231318697213827923826398141476428613934284387864713982834232817126139632862463467318394172696181736469387961347179393693834916198949361713923874763243418176761789497262617392421786842748943234348626298369798132686736362726386424313914218938483639483719139327921642871824836964917697967391719482747437183983219248794821793747239826283792163128613428792146832874794846198963839743794984619423634231896316368361749134683241384361362397484849469826291272491482461838417298363176372178726124862182681746763123279712643784648626827847648686831623276823927283187482474947343437384847317631273816183647873867321676918276731426182132197373746267414137824726129836314726327262618293278783894167293829282676189162679287134243261873161624984127281237417368373836924718962481382763176938431723484171378426429876981787184292724647493863893923769324781832821616297236149787969727872391796169741417946798494984791626714623462861427329748642378493418743121981313162142167246176979389427834184191261637671217419124292149471418319263218367386189178296328237278723273296396347937829286196761726969168643141767963986282693864737289386161928617976478312784274346139136916279164164714212781868926737838789321461436413939836939231942983812483823193782328487471626464824231879427362637631962674694938498764761463721642193239241473863724318282363247986868748183934978639481234961764274328414736124717217263476791494374218762892983247132739238978642621396348431767946863484649341814323213162463268139324796421679427469416749717862818134281896424386928616838372946717967693631484393162842982374672493929692469124146179397218241749412972876861242426419641468791369132798279327193784843846141637964831621713283186783246918286979824694712896187397424639636189142492683268361679891318128691976138948392123162793636429216491631687624797618289792873218968147216986383718937348237868969347427387649761262816413426367697949749379878643768147214276787892891831619296718786196727373918697637193134986893731639121638418396831646721482127984638196292376836438382414371926987496232324186148978268496923636176263219824783638474846321236474714239137183872312171916419829271328426736481613786327347971616232841238193969768971872376871732617231828467939631923627926297627236296764631424742428418697196362931683432696946318384879672947241728638486461983786161936421434238793273724278647176397327681984183849312626281718434723731381973948769494612329467368262949164279643238619162673872613168374987164798727374716847482623286726917834276969836919817231876748719198373878312172621734231924728727676397917419329817682328743918717191928219148493972831436918243642789816236438917968294743698428941426763684248246749282638172947616873721742494917367836737279192763179743717948698237121482637296278343424216192343728283964326947218974947389641387494981292123172789381496231646818796461638963242843642876723242494146342362846931431784272126361327386472914286123784616898291478176193432784873732684164678279363294979741362927393819478698364249816926434696386763986487136129613139898934162173289646392926936184294381674816821916794687937291782831461712831423941394321786949746848473637483926169767874713168462176824161427428428387976482618213212421264697316747143867198149379618676382376961617821239324192487963746786471762178681864146828292879816212627381894341231878786417243973464812141742327694698328967267826962791761291748947837378696346847916936146737943938973737438743269494728612342928949184171869127621828497987264239838429493837217147864283191373987697319783146139272481684138493724317123282148942923631464639496847924938413198247939272343963742939491276969197393891739637278383823978163248123827938279636929867176791691431819747972634912697829172192682491839841293417618916349496242484918176417489692671932728494939196842418623634361289184341498923282171781798634262128379628371272671636747896981942984697131619169616826919417846313684831236412981467142724848496841721871978791276987368383873742327687428317619276384169382427931273623918914367242382171276878493131468768631634974387187382749431863749214396212349638164383627146362431346214693242719734268218932838929413862673274916347837367469194834719328479172327274619219397949732936834342748171634171897379789217874163862627826186182792971492627496264838213932712181936934134393763694262368928483989278286746164686832329473187362847681216949132938623419171413268427384838682169874834732824974169682396264868797243131969163191496947137247874161234898921794181863893248672932717217179143174879783894897914989767327691416314842764239348612938361393179763763192617296848634961681372821764386862742892312743964924346912878618173197316431821686726127147437816736417279893293938727284384897176962797924817868696147948783198632192371979719123921871976476218394324736878793286394171472489379367327879174621713192484814872971768137372671274347291626419481628969391949472367672821843181716418367273794717247434628428917319183212387683842781263819649273862436726849284698637436898962837828397241486746381463283787283617269717412939719463284724246168614619316921789687989624218714142926261394243928232943461429127429816216373739827126936163961962682143834864713493942769167863972691384696384194878618648149148194178979694239232938741748428416817121921927424926731764693216748348149389169874129467691379341631932482416841841768467617682629821391729726176373264948746169761864271731328297694868731872312696164831973769182918174984346938391731349737139648286439621879712494786723217628362194724869864127978392187897814148346741717693971639731239412861978497398138498417927176862413268914267282128319617982979763416918974246423183979369768312862869898247923241789164342734178281837968638343167618318286712697469614987174341726767913136419637869892143191327496939461263249768139297674816828673176368312678348698173864236432431963276879179873878949381282798432841871279167821827267424737241873612439464129349898417219734927132384268289393934979874972472386419276984137293142918717932694383792891387634784641724194826479191417283282123178287487924783182891313874938376718393672934782462417949427934647962343896187424213782461741329439817426481873148691613487486979274134289784964123793828974792869193239498282469313971784864261493474962798317421287879626713646981386931898176468279726396318461248382381683148729381438381247138379431813163243984384394748641696948629891394386732678468749146346467484632729184612126238461482764976374148624393176962843967814393973478349837484362973134638278731832989476131283238374672317931246426364747271396427936749393184817273879439796749428948464298747262817369819829187313861487342189168676484816413939636763136916213219712683828498694246974913784841691327917126932197276192731746896213146463947428682347212912328492964146378636984972641376239392474213969738418413294824278242671846784381697313891983614172628793427989869432383469898964819497982362732391728426381841897394646216749783972898428919813278716289623236489162929136439231628317343916292686427849149464868286462378172389487418264647313678741797349341239238741871497636817278924361927961321312621943294841463179423982129264892132976849816493416497872314713212141472371627814846214686964362818398384124628362432462619382814636348474238496742469329149474321867294126172614692374267173694649187679492138379421686134747412317236123896782896729267937614396282436929268271824724646393923642348467238247172782939631963683732671891367324932637842826298638286383831497918936169292489232929439437489392476491649496798317928981879182718942721697234198763724686867483872718476934829219693613172131376493686848361496836161434617289392981972317493464941847642936736961831346237813878246262342732816412949841747291936736461849126384234234916419347419494632823493738273491368384967173892814191973136371797687162968762437891326179394747214163439276921292492613917467123129379232379283936291317834914393494716898127398167198787361984839292426862689282412968217834982627619782927614189749627317971237438297629247842796763947981714647463931476167121326931468648697621612373127912924978672463214926267284292839272712329436346293432317379893642437421273897617486829846438764629687934782831638263898728743737198343729793212639649713687961683634131696498939636742394643736791294237417983464614831498271298271897427931813978498671679362319214292842424793781961627626321473732962696138383191937831973418213919391927134274187292183267864743918974132964917269132693891831784919461264184179769182674797967374928619736823421719717149689692629271928121734769292437816862384721979127347646372836832191971691726841824693197867243741783484191639464686761297314132689478479416794739817371264672781368218629474919194314893618324123413789369718479327216219767986283131849723176718248364724862924738213617913837964283913973791261621274818381237916312943963834784364173796874192719218243239462968929741418421679842838484274963296814272198683262686273246273736919864368384823964272739831684278623892679674148978742414692696946971323719687436861391426383623749167312689432791487147397967697612816269726972984717627393912749679871746284314879876283471989383474978973679168794849243213231834741729786478476968187976131417417636143281437437839817863172741463167928149421719492973468132193627292183719312867981327438716431283642718679813146717291936971721927862327979674846749727284862436784789673478138932631897492798783286239876727839879732943261971891318138783918298787972474386821236147638347186168242676392937279891313691473219473834616892928982369347813614921296797278783212373679383832789418186347314389378782983879491914871276393162892184679362713437834819486726762481984836897639719862364147271364673197214698313276294837283149362614182812639621916847142624786964139497432312984342616974282673474397267876972341727237243419846739871348326369826838194192971716879724671416842726124716429173172146324867916424329697241416738747926918231624767672764613813946762813242697372414123696189261796982432814927841348172962834876918784136283931232764383726214169216964329639378298297218298189498191378946481791248696737183613613948412843716427249126162184784289872643716468969871281972796497276921231967946919412969123262767848938923963816789498362789417271618196349483639347139476248621497216239298237398463871983148931396176313867283492327872171689421379791728368217142961923269161431672612719372163762816417434183237837824637123767234273921878464269769496231269186272698936364924671738418371769874194186936714174393672197382741641291474269248242916317189378937987329468179862749318231214291731791349767123434792873868324324373148463289324371628628729768632182493278979482712328727834826867693716369373294186384391297913639871832361314921439464781312398924623428729213437178127329784734738431262879639762321949482198769416328439171496397819314648217278921741634246127127417619868481639792493428231643279642327389213187487816931941471492183218719327167834242643726462864271741791624912641767874294626417281761764964817914138279792916479493432479393463873147238617872673694761363267642413692898498927214396737639696841438142932717814678432789141474174179124874387292187219243268647498731481326813891697421343849871962698131232413283676847423863132147396347326747819478716127237984727894632741469849167487347462491276236827148691671714863467841729769828974274161237919239697276389848679468187136419373987142961234973943478326271376326932878268262818483837847123863294624916861479263629696163967478746784614128617324782891498629349318913484676483194863149761493168631983481743629749398923464916896292123821693167283986324892383493613892742124938638934646729376137868298943823294867647128623248619248719178284983749149246216891379671797614931741734126141917281319868218941712784382638234713729681918348784324727268961626831382463762848416714731263162364191367172821489178714989269846494219163612712486248723824873838967837496813846432182934826216418312678483984892149618362842632893969216964197128939292489374391964174814731937316178281838713718397317868318982198147962896276263617434726912162928979798938378394274397214783817682147676234676767186897478189798298697418948424843914374243798692328726149312718238717161873613193236198916764318294296126892876389181898348471318323897861683719294392371748398392619487863983673198271796919329623621424864843676718743617827618619813461316829149374287424289168313436373427936719361793746178364381793969143463784261836918428473417131613234816876847484689494683428427923619781979867239393926189183237291981616764916718126394974941474698673632681987691269167173812478126982191764842382918179842398234614243674678491832368248267147637616727121484839869623891681218261681961939474723172481676248178684683127483242984236437618497237212137978482197964973921964812387268293937961726383693294167186762797437163423427183198367848962197272891823612936243241892167139792916126868476216127937863271623183682741237914638391249396373783216846784363178672987249741379732921768476367631684287986794919274824818342876974169474682176712891693189179741383191937272861292196824297938718764739479141493946839216128687982474398438796947616829767373624128621413796427293919312678986919194237827242649469136894787978382896897323432768478183676281317396496793873936346934783741827924373214683619496327482364934372639897836987231937416943781982824948938296126862186942368678949647891318461619471982964289237149869316349798476413831897424676968183928782328796724213294714723738789324327123638696862484143214636196491392683697296197317612783924241473931276876789842674161642731219232389484182739192131386423676391426931917268317462763196978261693719191892614369818363296982917413936273693924298217619821213687236949371824728426712682962726384767368717489347927947321369462183464376471917871373476371462718973421838784848213434871762647317427816386846148471679379417943738346371383161493249687463746834743187987421248286283271618637293472789371939641246386416141879141834231313467926273439873261426219372694168727694713783621271973272469298623767946938783239687463829372196462646397183271717813129621946414638682317943198491927824762841276393838674937683218248138241387979714763969416326216748313421684648691973164867169637921619486931376839621614689183967626736186129131341634123672792128612917267694286218238961647143731616194928616247472324272918747693434894916249239213792981969196931368418927439612147642342827818484393826736824613793267437846927136746436941612961834386264273638672318176179747631319724893626861414291282821781976849136978793169191282827821241232323919868672614184672498498714963734769649246231982931326818261716143681297874734863987232349826146219636483972312789713128281836784396121627373218312693236794978148291364398468987621741639378194819468949269384623231719264182384698298727134964626797289163146842417621476369432324123743141817616364789674247169483232341276742346462962398249236431293878187847376872462463483839234618419383243419346162912696813671283687269493923829297419423234948719643967316791928726189432486149626923479618413241783721291316427169213937278784349273767183134264384176439828319431926832837323467271247127327849293461343914976831873676747134326378947928476164236794692418927482394914943639726861627878398348314676481374269849317946787138486916143863236242797279479741487341971617869697362482368134197284623932674239371861963286724168417239186971912891329867687264132173478318736861694182167364789346482142424618632364347128467346896762321929647871239829167649781873619638278982783478138374386149828621814869879718762914989818416179314147219891276834734289726316912691821749879686276894647236283793749293494148179173463281762767183641763173216434849829481373841986317964393948239467174349413918372764276463727318469184317426243423638632132714369816287167271282346143929839483191687484242917329784748178237861616419748968143163879682161874682637268289487861248496362719369321618427491837429694894717362182897421836429879682816392837389276712739791918212784213726474123286479167349379423763924849416124981747683161482849868216141398793869726298142482482764194192462698132892721378748797864968287198649763679387498383276964742767876838317219631264816412726931423242317183617297136421497392626123639828461737171494273618294236718232397143132978742146367918689723921294398314937349683173812617896828769683427693643787472161319898364279714181742784624684276194828624893869286271627381821483148469871843897128167267891767363747419148791647836897234737487983761893129638368247648362941839834271318479316394341272784263141437489876394796176914168636747681727897394813826131747863249467194391231626234262138381763263978136217294978271892732364673693429161642196386313627834946171761281324372932923918498968646827373928487978963696482163493464386132746138219619282737293837479768161367474742183897673128461291934676926131268173486316262367317648624871323216294674241427294193681461462982741219419373476123983824927974673826219271282136731493264891428482681426142434641281932969871961738137378124861261481464824238318282948797471242346841363181616742932329274939713618167937129184212648498398423468491481949726726767383416982371824626174739787976168493793714893432928737628249868727212917979237367487294187631961413148412643136391864968143643463976973614962831464284213267164123934372696928181373734731383121326867638796419497412729172184834191392764182714879146976326869423924323628769793646824872141497423642639219142123781241394263279168163497932781921969379767169839368682867263792878617438738384947936828493172821247493249438282481463741826747698139818467426262982474393461474313238684728749831372343414787692872763617632843242741498379382721431717143712797312971727863973171713418613438631727298179163479818719431281381234212324172136149429194813863897678238249819478324169174872898347372418169672424319767191394389292673942739162968217617468387612849724929647617961741439641343824786769364641437148927941276714846136412891293928463971989149461313828482981423269347349848613284329276191394382781873832492412173793271373832748932471389249616131734617968167293893678671874363714734787167873983976329643476932486473238169796414738262939261292979234249492467367939842437986867897826373439182474934369816429467934849819368137343237126417648186246393984921973134284317898428378312374673173842982363919178781821297247128643193868237272876136843849317861492148971816987962967978349894642169673816146397423941426172698643274374714326479818193824672936397318314732642179269394284368627963481624969276147984693617416236381384679196178182182768987482121261623141816848394347141487462978926937939427987426326269139714648124384813936313823121294723217267474142313487131819317673716284636271878679131624674363743732783216821321362869876896292347139619716717261793429687134676278437842893634746942674391732983864128789386298232178278362341213496871918326417948167471646846919612786936879648631897198396716189647316297237916298683286123738328624136787946392436462938219621439496921924971294714696926961823892181649296172326191386831397136786947214869297487676714269436321749793213143676318463274986989437649148461749231781846284296418174936416723289641348969638378761276973618961627284786271641894818168238631989167127964864734962474839673472318261431646383746878739619439371423824749389362781389149273968672926831872686128921864219437631861767948471263972486374281761846268793218238649892689186863484148147621341939783269848498123728479163616913296927172738969689431293819381984291369639276969627483829482723821831698484138972369289874267376191638271319386869862987676413726349168242139736814969724341426828632196872432372136134713862948362487823683861961694672936218687648473861286726343464747231427697484846191838438138969428417493784379479162823214836731847986786414343839196296838963986136371812647329384796714162148247986793743879693687313794782646347961628979197842614712764828787137191264274891986914394171261918719726841213983961682847928329434726472926169162924279143236943248493967627324729696924967181642464132129389384786284896139384838139438486184294969767876198978978693437231721897839314293437478913732631376348282783187698928647218612139789434329289734967426827297413172696179348781631628961361213793876181783968263178727126214871936862368741923842361726946929169686793619294839383963418241969346436128234796369497879346729196272476248634926248179781784762732942139121292972346163296241362821734679313234164732192617493923619468146327173918123823838412623731272497424894263428396328418483948131642976343791643863671821328976398968731492364671647432329384363793764892843626242379416168686943963483867396187131971349674127187417914397391923674378249393176813123728189616376241861648976746131793786347439869634627347641712123621762367138748246916486814161421789629326232986329767323239831282838641313194936184318724162181371978737471342467136184828646346391942768341898473468739636198434381389473849347427137438767821981417924279871321719482972489324163196831864184343142496731497362412193824829346931438219794316926894391968767467463641729273429414178218943931763984124649376939268274973794292649787198214681972817171349679186362891868976721381373768143984942367461612631864838171213646912713248198637219416324974826276241848973263841673686393174767848918963236316873197967271418476428272831761432424946836463872346316842948246934827363897343234363694278473137878421827313632321734642624748498637816812184713868494612192472734137972472762319637918192123282818362376947432981913832672871479813913969179494193296142376718932489764834149649319737393832496392927817939284197294374186196937438419436379161239237398414713687121317926246383936464293987394937369493684873242968678437368968317949167939214341386349232874694934631432842346276843613196127467868323946898784349143484794191369147418979367949893923918642312929639692197384393437979492173247869498212641781728739386813274981714274319718938272964742316346761867693623614284921292321947614189127649871374681971392861231693149238298793767294318692681723491894794174817292386768283892921236413679468148973238418616169413168962127649821414681484382143236734214367967473474219283162623472134969242473916136939264213762124178316186472819826231368461686861762939237293631329126981428298429474289464191828617824192136717341796787843148612826482871828929621969471342461326796984817646761484169627269629231382964617637694761861871236729282694289342138327389871489716341248983272696346462762836368168797497464374864269824834691671437274928389397238329121427387167682473132649748127678928237436414197631284982471847479176861791323479847426484937263414814738973438218437497231741413282864234381934626196761261921393141286961921968319341621741962978718261232842414676219682376364962939318316974249749139212782723162832471767396296319614924876313121376298694683967496189327671329134387383289861372197242626414121292491386372746498986731694248632819797986827124237847164147124171632718712741474848131984692483141498493436423972846184694316179126121398621897849363214371289813616396823183418746496787629431297439378978917639826429179183937682974329463681231232647129814148421486921964316482376793289379461649486121417414172874194893984712847294383423736783631386169127926127612732687848262381969378128498783974687831248981731632318698437898798429628963637397317438423786129618717191279714198343196867627937946982467879436817842381273462943491682737236781287189367321812737931983141781691243931481387492698169396173248127892614619683698963121323989818631979289491639471269478938132327928247827893949317129821427613162123472978626381686164723616349723694137429746787439642846767697632914343979863738721897246498921963672968736919267918936297374189631938249898329341786746839396898762312143737267386186898239718978182942783413128616792697472848621826836128646474192924731938696473874142727938382313789768961276378379874297827171623632764893123141914174829728132487413286972814939714232123897372462431737678731828283738974143826849673141438723764967418972179643824327684936763937216792632817391363293636346498384981376468621489686742984239147368347843981287139747961689261684648694947193239637234326738126913236814723816746179636738289737298487971893979816321964827131934396281247621468124814278318424168296272346783491762926343128321279169243897346423481439782728613284826373878431626423878139761737398647273982862193438648741747642476413236896396498747848719638168292928642931419863417613492314742134238467868364318794318671831434846298627481378168372132619268194313212163238721891963934812173923196487681979478787281269724628964642943281914268474194726391249493713239323621383478292982313916781417214949379813989639236467212126829234234183616978272931294836247484849191476741893691682129682973817969679728362187843186864149292439124727869839292738393898768978962713164864386432178467618373297348262617673421384232948424672671428678743463789697163796794382792397613293836969678494629796937261723979278931648172823931924387826193131283127127821427629489726481374242892878438343873671787472842981972187241797323628131621683786713217636874962624762732718397918181832824927291284873183972892847128247391928963484131942792634134326971297483173296368319324146867876391813936793161648796876378413423971462792378393984861864616737834249412939178123741636291734296347236943723239171292374714673471982891326976326943696768283694248967698968684263429243473639313713921937196263126128784329643736724894723714891248294392834931891484192646826842141917641394848384738319239197218696187926427496767192963147618719876947817386413237484931896169287263129428472974861712689141928171412943437423427134784931626473273141462836142978619727934296439731831342728941436267879417864343264623723941628796346364829392712812138348164164682971216186412423418628293871674836848263187934769282862894323864636327471469842619346417374719184127694676434724896212839691396912919438183128323469769614893497462798397461316367913969281462126832386832749313178696964262717843836274132181797879193636298192926947917617312127431676797694764849312962637489134986829741413164368912416184748737942168978368374162371864313637682694393468783184929694246873832463974181737139791467481389789313493637937838291727149469389762729132893763712967196291681961271436142893781786813281679346283916797947417412162469141367394141434868497132173128136961717617629346896283712468347421498978438921927941384363468769346178123138284723498696463614976918296238349623429216343982379142186218928682329418673837431272347686836737673984212749141837134964929362194232172181429817218386767617963861849878461239843967431342487213643283976912397821421894289648471798294294932974894349686186284829641437828262962936971386342184183698379128289473476273682929737969198473181389381876821972632431287864762782891714314624838187974941396461842863943438287962381348367927232382612191947438419131298929691917693167398384717273616787282986312429787162681646481217649468978182194636241274746134862362312197692989397218943474893234949724747967289262873639268349183784342328248367489183896343614829378386162429894278972762892348161268979828743846891273698672743792321329374283642181329184346936986327134637479716391796478181839726963942639261971827238769181787264841267187892968742478281784161373872713172424191927348319317431729424976418464372179492132819141681832423742417913276321286964232749478169262732941232161834738367184974737848128279623293429697313934161939124643983129792484293984826941939246246831367373913718327472161747173496126361234849398463439497963819734978124186938269737863623719736218474729461714243628794981384194967949321264163287131434782697621483267393719292794697941783796969242123937436784747432138482698612324613173926182414874139291393278686382629326847243247371369242491914972698687939713246143463293428494231489213239123643439689179678649634284831214286121849641693734364716813898346282186394213469313932937874378231739314814682974971749287162317874942398978364128194698181946841429741821327142893486198212742438684764893491694931647387916823181636213237979747148193468926413816729741986162727674637389361748718712173163489312629237474296294619148714767693678982976973621349283246361212492768617137372843736348164737169641239671272124384284363876493136424918923837173614236287167816983481897676912182474173923692198484396386879792397948189236427623631971924767471424714971796789838981312476247172813214683842671984628234726249738348389341696897846723131217932698368261318248398783218937273137468619391279796878764849136378689296724817612898929148241868926838697891218783432472864614392129329617896976129472129637814192892687478268912963628769671792782867369214183824737682494649374243213623963618484979349437627673632689727467683869831279376831643672928742341989646831319462134376248969341468924921692841391972921493964137292972946282943871896198343764891931616172918932364378792714214638748426346161642421292737234832187498768298726847282461374197626169628462987214969274289638919623178367962784368671216914324842817384368769718626172183716496248493721618434143894914749732498142873824148984278171961681261964284717692614191424687138198237841734176128783639142343486739898939832487294749431641978183946398312723697268182496426417263673721681971613487341274872323736719891284649324613483632792161781439692847914816932412941432828141463468967843278367818932891424721841346829383264749474678417947981362389743492346938349863916747686817298279232912393926473196424791343979627187383698163827892141231219697498947496472761323286467691869134683834728129328983869236242949834186876863612768242373986784168281864681819364246742981739329361862372347376727379347232342797487682829368396831676248289343836369174919789847271386376178436236736436463439724637674929639284316273413196246134717367498671628624617293798676846397367368123471629376828264371813914741419294219734768729212438948196921894839474631724783197364867629263219423974324648982326723919372978984173194261472368148267416123239819241748724768687148423472438498141919672986929696839692978734382313469341269693924697243146493786393936926981838383732879681971373492946797241471496391389817294987318429468687864829138387479294394926849178412718386749647829436124612417397482474828914724238729792797823736829738382318438374393171982949384932731264617268987963948286841923437324781732182781643694316791714213491686164383472731438619148921684328323716838649278643948217917873739424987931427231341969423484194298134324123919739347463879623248718782874941984191269272363894984767243939824232693869462436912417929789634824242762679364761483936783178767343898124347698628481714243817834691498617147643172641614326928681689242892376149817348626786724267698186973174286943731386719743243713624974139218481294936273723978343276389741729374397143132916987817146716434131976471463419248631349216464961936192941468128493192919236136376978638484982976714387347476324196482349396271796246479378376282638989634729618948294319292647927328721474747968418143417473642973839281249349273763837969381973134623279381976434292984861973273634937896473429462397279196817897489682737638197413928481313214876391837434829428216139183292894792182834713936397932489748717696341318283873921672938762717298439489818683164241346241739164876494628342628481968763864398163867648197286748471638731617496189138621671218734892728686742139264789293626348371383282174293939341249183294271682619134689383814141848397873761926197686837689238916972786713971313821843834893613263934847192873892697182179194178146436246373479686836132964794387261724941963126462139241646269264179872923426436379171697181946421483492984641868648197341482983729769248473836943717347378612176291748687424618918287291968162717648634976797386381689431293479163416984672387173816767313623289178921729632742386327618316438367968734347123427824868721361938416179181476363168978128932861636191327129262347832349473464784917182986232912492718124396942787343126419693473943938178767876424783671239216768127674236794918136737428627968986128712312817239372846969793724923738613893946378918178487676263836327931741348213738141698198913626262141479796714976392938718921413748437628389721867274938382718417826469473192614172713813831396986278627139292436843919738327692192769387132924948426427186929627981934324814164189267919428931397161793216842612724849373673914713823129821349316269484689121291813713437847629683876282746178746487373612636847864849618493641846837187467967891736196786472367474212392414398142493414272968961798291396279836218194387831231818938918381792416419414982687367872316469382423642426189174282494937813964934672981613437892724936467234896896131726184686267327378681676417616727924646142486949138683848383837926873716931368721636171813463796342162613162978717383124768271347386242324138176493921492798643171638383972943728314769271262941681673141781476737987617326342716912627478619239281621279691312762472736726247438626168196139142827246921891427649367372496137986471981278237349467679321262124938797896726467949218742929694139614864267171694723894689684141627312462467168124927361278646196979817462839214863291872972913186346231248671864278213781741389382161298472623783984796489691729242862379673638726128927434939378936919872428239749436949712379827314643174672191269821963723416231794381349218167243267364674646729734746839167947979463473796218164363738687127194768974692167297969632169618184264672832943973943619397461471787179719139697163846794613162872313963197161291487279191392367371638767364141984628284947973428486739172836187674843423436327478764989893692928634182183797614347914376796972372137947163892917928786789762842617937821737618247948189686289281241782892794862489718937496398492736274879126868978491837867816869684796134746137318263162938683972479162394371978348271636384171613213496343437172837321278714624341842861347284819264231319471369678348692843279631283232476894926241217641836137972912812473737327383236979736483968324212842413873878438361941947961726261291696323271261219264218919489369278736968646917264683123748248236717387487473284391481613218243739892184863824134836497842743279843631713791876274168139478174623867276948281829373123493731983946829238161716313132979217893213747438213278949138329239898236484362323271317479427813897461391743762647349842964823681743796981639686371439367392961832978979634647826973624963146968727128424147184764818263147216747814319682369487484976474192849691794923943873248179796384979378139728367278481397948273621931432637367176796949472926479849427674249874361767317297941721814614289317429492912316286876961298432919639192689713283437397428183431962128481481626268243748218678613767198481363794127676718639823736498439613167438393871898792943672438217864271787867647142828397649278926436176932418972987672361274742812837694186491497848616413783484379819861489496197239639283987968421647919173931436183792737241932192326829184937396812943737343482867929736468269362681687283861984192164972312364374137398286496346314191917818712821943982398174748391423286323823678462616342917871973464179841684197943416172367476783131618246426381629131694628276378616727239192383747618712917839247128742827627868712921378297368298398974762837462794687389812316236296848163683764129874873427981931642379738389324313271389393693431947437834639148436869718272136146213928419894818276176274263841367194183761937818382469782931487974963972976149418313986768793786281246379348394968272793674839382493132498272826123679326738646872196817363764979243621636196812672847868381917648198621684126287219148627614349817974161829181236434162174341969214963274278386189364961482797396426276146246138287139287872614749389616948326173828731867476849232139864317293217841637312791819364761686987989312416917494236391686413763428689621968327363416318613197349139149619189476879437362741689614898964629486747823916732864273948916262721439379416476189387671976491231343297283412834636893412647387371287246846143439218292914797248484297376749248924637686284917231862947393928424218469429747394648696272639678672126281972647138386784971272983812162928191619347292468281237639826939784171712713871434172386917874267473727647262743421737419319127167481638324316318198794129384164761346129179129872782476719486484821482891763794327629814641869732494749891926421638138697916218179373629376716814131289378316312327138419798916168236127817848191818436923142364916427393619474984646241497369129641319294398328431764946363679632827182984764193619494926482121734376241631273286723169861371823214986321678292416243763263124127361276982621616361328491912149127423467941684818931861781697636982736369497841874197612196914128486273123632961371642697974182746487631647214939893243863926723213679762919691892631261481673987386867324231213936131718648746762984838126364618714148724383427172898717838187976783149239262386262639234161671412981863278929824829139484874848248728627868916873613671769189438932397194173179473468986892184168368171973628792321748262924634372973619321731737313946494913983412139461686794267192717241342868267131949674823938416926186326867242423178323746829396987276274692186412916398939813632472321872781931632718394281327169749146781243164626381612412384387249173193427863983434127823193194394237413189296426929393862376768146842142174379171691468293613768147162678481976971879827818268972938726496318782726427973139312371894246343948678612427197378643481892327692871917238974821369234781894393647236863478149829762982129764192693961417494383242176231978989816397139749819718432967861479646232193814847426231498472173946832198946346937343292179737379726187326931787848148164194286869469278978927937469286768396986297289291232146831631327893798984396327471721481416862878948948287481917287682496878724739268497372672736127946189716214271269486183921834797492393616148414849827361379369196434364182167176271271628973431737479316767473176767874919828136494976913967989827214264783741247814347169138379691321764137827197278723161284876472389268919287461367641618914736924629426496297394616729872712734719712987482786184743978734637831731764378178172769747486498681729871496939128372431748419624717641874121373182737823982849348276283178282372461489217816291846839378313824383171317474783981627819863234741318421974197612878396423987868147616468247273136929627919879317496129424273638467474819834341396421362127921463174763494919143972864318967397137371868794161639181312694383813876341786947168912321868212329716346134189796173231973248467264134871838371294136913483613483242432437178392472146873738437892841749434689398619461837286713819143876912647832471926824961821389282931342139691928263149398341981323628497614397968198467647694717478623932932626872943676239626784326176376171391373278987298263273246729861943892486138367842848919836417236781467123824138179372179414616386262792698392673961648182369869124749831462712136329247982924979878493689243762318969472787284796732438718612132682896864719712786871839676198168292918791614267647673421239792418298674823737298172913676939279421268919298136424269282678183294149172621396712314749287898238281723241983674819461936329469382126764372437342493231897281474381329279476248124698917169731646864746763218264862919421267343939382491742687376839341318724681879349189367827919643972396232641842834124979862919384167472917128696941321318914973937917248789413182139369861432979613763139376218647467386916439396289892398268634648247939726324634747276873896372463969328797683648142872693297969462919246418949687891214289316141834128498487193626437823413981683216174767973783272931417241297642398793731648981963891248939242843941737347437849819369296476173736813613878212762838436124731819194813724813261962126367348732173676476864162891981829867828471291472737643848762694962823713646719869646184937861919694719491673249897973787928729368469169782472924892684724873713926783134248372469896879363917868187239717496168727876869672786867934749348162137218193273936186432487493281292921768371678218627898487276474743431242438493173168239191464172374962616363684143278963762191469369147938278624974392646261313972474683643928269437693463262174323824162162124289631984971921917817947164198434293876324141281867623674134713292621973649393678291426247327389146839438383678249413678342619623696897871817623492737343264679797267372496989716798192624379372796982143637386396971916483417973972868132474678493927678971748638124698681783234616423487148183631412976981873268349632474973896278761734134967691497497948492372429643194619349681264929218789398786984913634342746347238984672829383821291327249782829317982361781936724642984126923632134286376312376372389481683487817617319142173863963718712842486384671764364278192329179149814934692621281484928381397624876849693471747191674694312974129364349467293641964243137431431937672848373637491942363163674646269817671963413816969487134846219848218791264926163619847416492784164964128131276926719816267313231793621716712478412816928241398468689479617297964361698249394962724931639647416289797841968312479491646832917914893149892637969379417923837612731241894237942389439267124693869842398918397134838189681237413129439798293716792821743942314839397983981416346434298787367864747913976967428212832686318326763912321896468378749141867173643294648432828189819789198234831478936473126176719619429362362498128716948148481691438241972943974264131423829273723972763161618671713878943924932941746161623876983764836384946162341469624719148721679632483682714786312696729818983713676737847893414184376847816298782812612146239617834616837341742621892919616313286347678314274642846919279284738239621719467689386929349247932367979878218974394716941831842946929172762983673129232691376494896979239842879798398638238462489123196242496328968638931218731374262324727986196434364216894191316964282418327389781429624131324741638124196136926186879128793478642913864179726173181314271924841948717643172474634878969312484284941731932471421274234289846364869421639737217289374214834718163693164892123939432194691783678163238786147494842716286842324198476962676981313796391674878946182469768491961418289438139624862174863816362423289286393217646462921619646489826292329841629179313812626241249837268364249391914396717896987693832841784263137487232482834726294712141721972419438171419891497627428163931676782369761892626896496279284626864646296318641383962732746931678496913792874374181297163898914792619721616768126361798689681924343798383734796968196789824646178326816974214381742683813279262438196731436748712428192672342478434969437384746182826439828679167296797963271979379821794838794281239481464232464946473468764978739481728434914187912919764321619498491432179467974842168784373249364741972732471487674849284893746131978712868387862178143728146732948343848686434162748746287863264294282489378372121672463989274314896891268741764362797181439787432847364923917941389361742491383619686728196898379697389746413673792148979384171436483494234924318787817383932938979482372938187134129397283474296239782619242679417917613613868169828792484368932694769296837379176862614912341912171263164796129128498961831216397313487249692623269423197874834939749214168314981842424139319128417642616763438184281873962639264726983478162474291962198276176142629639637181614836823786264169298973894984728492327296321471692913721716186129191368427629194262128614769232836327438181848463234178234168378213964171743768643784689216182431929821376183938438138216798173642429782432146982624974923979181398138436182434174727318931748738761321981418168673134828712798921926729192824826434949248241893267919367194867464123431636961398424276819146429814326831914974839649424971973697627413812813292417349123793871439363838276378197196876742149261747139383743613163621824939364926912718187469267894963193176864194636829486816974983823983682691683612821216348194243418317838391439246734129648629262412319763497184197684796864879392687876746941641327839781274326372313236341819646763137483286273837168714381287172989819683636923174918486787967191432423461241693681929836279612381867683434294676919613782423487237361291764616298469239239236161672373432481232142128173762398191613768949821798182712612867963147198464763849319298942896713689793839794874127893732827628279463897394749684793686383762193863613937423814784374347672912963638136314864291784131382937283918694748479641298284693641967392314316931237413638741296462427486138986131941649742624191674748943472826382848216139738173894829184163749621792679676389478192137628643786714632143238624273746878614147314383231621834726218183676281926921239276328347636232436978249462418191474982973812876298217623872463681976489168268213641949818474382943624671362474273873472378379194284262627963187389613748363647179193632648798376217847647492413473419387361429827964717429868768189821476724781283247178172892634138789273134876128943741393862127913867838143986328728391217167497976124681847471382182718492748761637674928747617263971284729874868346128619328791841942736942464676279742418174284372138672983484247637346198746187162828173278718131418787918426768327637328324341497412841739616781269396427378323278939148641723134149423897676141897429186314642971426298418248323629491819243293623819891834317637173271939431769137638696462943813164639817212637162479632161836967172974914832869489389731239481842798973734391724893841939482483941282971397942183739764831983829819732392139192962672924212962897943264238216862618686924614923798176931273487329839324692843968693141243794736323426469742729492723467964694913296743167486837287146286164818797316128728324169683146212382383436727913962168743612426817419794367846261373871836732768372937812971292968494237416168136164323864249198389431267393424936428634168718389281421216919437484186249141891829278369131649184372141373814384731367642842834139783414237967296168189647384792981838292931616316989823631894214143127189798717172941496162769791461642793612413268349694219189213914396818126837142498747691949787481273874137237282161934263278729482769419313623686987189241836931498284123292728317649169716381281828472176463613217138649384269329727182346124813893293876741867894396316484219248631792639398147341681384793726862637379494746868329483939627823681637161397431284817924648181341749189734372193492731683732934816894374628613741849768213696237176936713916834931237679492138418474829186487823296718467621928721487376416243982123747976471826183912672891818924737274639481614974876938716479241828474971721946134984173864269684727323189719361946471434296919796362637916192419737281962616212178423191814316146397828671929364327482791713924617924189274627214397191843276219687363786197317313923276869193824926937812478286926189393493647272672716913791296763238234383849313279728239162386317137482371974132621494876289249214867492427467694823463636878691734242673272468412382939618328439616319168946841417497397834248323892683689364191328913948731386791264632827372827943863126762792192179694979721419142616197493737127898238389379736418913276983431293764832434624617389821916767298769624878638191481914792643121739248434193848492632797429723789193936316939396186432794694793832962323878983864121276984641979262492643236712946393932469671418137649764372634792742492149791716812381283716347969473482342613637216164987898927982423286897237696376341431292831371843196327368137462879329694139362474318418641923948989397836382381819423649641949892497364246747679134798183896969436463898349362913692683147318616248734868732938926968736249374283949214698269464831719482878616479892796134893876497894716961273276484982629323693931368984384983797612867682847174682798498781694179171396738414946191617232181726418923918326316968919216714717362387913243287361439629642367697638913749149784349673683761326374324961378372393292961642646731891918963792834729789149434372143193838168984217387241362396814264369176349728231632313128981617471961341927641673961468387243783498917291281276319192397219163961273176141483828961219269749723427249784142838134214293732393676428368123926292741678936461379638923489268247296924343414246913681873714373842194718732136147636819143481327613436197387697321949724674743723642132124691489189147872131916138924728686394719383939763461671972161419189143698246983637912487829428784927198396276346943816241278649232816148234124148641242486463846412628369293641498764373132416173496982984819121917349162816132749861297818192147623737482836861967631386327393689239283784319826786947274719781686873428271314939148942496187418948382342168679413831284746789867971942478618712917373916938249468397389728689827623839843923793246362384239263423474128467129397868912797696483234727692643912876494974348476474946281316163186824649784783617938731976973274846342938168124919346389828474364724614371619191384748631638617837347962727136837126298618923231873762129283291973929347697123749684679284631648673964786148989319143728914387329382474196291287348349787272164318317616128426849726929494241823912838714268297132471912946973241387236871821281479386868142864746379739283847973981684921289246369761723696831924137218489389643891946362437618928782396143212419396198719461294948167816482148363676721278694734689673847367346249321696386842632169324163497931974398121984179616124393141362849293134328641962937271218678696934214297826373917626713897632693193949676182416142689212832197123214616414924284918467324862784161231421373249683123462648671796362372342914271431796836197918123268246829613498236967418139869612141378461746348681834174936718793648137861613891326342198937281683838287167126494181672171472814968984919479674361732464794792421247681768782932498716739479694619346262326891243628493847824318918712161932714734676834649836421786497124138236934136279737216792782468469342197823613714297496438121861848376796873671684712934326416792178143827672874737634637689323417276871624271371793148376929794237376724242434173646418748236398987876764123921279313976162364692861648724163729642764232126473276421694623837962676314832869491343128961973292978473464319794793464318786129234131417891878217178283719786131924712674939686924837434148137134196139641792674681747274921612868634697641817416482381697416369431281891748767876313872734843282934163291798271426961494197467326312784686179328461948374923498286317418727349462376439349767169428794276878139861984187486764918131326839371343619263943263962172167342986212176312376942428363683467981841769631462792192847172674893681474171748382671426417827219312178618626769179479728734747818639496942892829491867276124273121871297169638364942427136461936478234628184831636246849617131916987986728214963864393147397478964237493437824738698936147612693768474913793791479896194248463849734173989712761873147621461294983781769749697641826179423129481393243981748412181374627269713647183826786124927286797213919846496346291796387216969328434791641861763691232814728761414787848734916362694929671841786763686876938467832386862412192634262346926797869634261793937348242942747269382818724319161724841781398978281247398276978243962781743437976276748124678487329634194142767432916961893678232328932692837318641714838464737298926272436862643914871682123718743931896324646234797264741617278486161879287986363748397971818623739698616839428341979783139219183262468418262723934834741868149272427472468613242483492312628718469146742947961796483491682947478181486831929892927686146813176847146137484364683187212382791873874971627683761438721247683981949346316138193142939616479367936376818294892121617837989342374617693138178374293831846831273218291914796136496313913142787478672934364347418139232743276318293838938423762719679171748968761612413194174314914373239434843181837912792678317693643464684198129891373142693864791237682323926478127478728324767493671686284239897396231727864712723186823638976264172978139261614264893283632618497138278728614696131938649636897183136321982641638917383836129787426963142923682182473894183912796182893632314261316436131976781989613296267874637829418967931438631263273294863497616741497973738274836174686832319348616219438281721726849673431739414912163241474693976321626989383892124893148467693428416246476738164984242436232342318381983142474349279231219863813964712817691976842931264247924728348649862381797897824986291494174684212817643894679273632739823789848349674817381863793413638478736793148381414217376484148129124846196842364786481714347616491412169649827919182918939649717927692919496261724138267263168917437421389178236463719486728239129242694863471914917348361964346241329686943471931697418391472837231496791814796462914164728274683284781762941868479769671876983968931929139627492126498729123183932673787963726483897871384831619861214171831494394841318293631489726487241967328616712972637698686189282964678269647942373218718794764721647832384641867869782683683183181761784637696342649141496121283782741943973146437137383739298714172974181274919261943727983769428916218684964198136329626939838189279794369478646368248417147493189291692969269231737863763237261838419423786873984262638676316261846317641268169239671732948648278286762947474784696747137427197317424967486281269381793182949493684291967687267816716497498682389379481348132312321982831486869396476129726817821212317382819841917961818236134874786317961261747876271892824168296987461394921274167848261363671636947294738986743721846798761762614724831486818729274739831648768641271987238283947867437176723613943749748476734132414376828263289193278681416394371484734837476938282976212419719374649697372792931646196417172381378467967987689736431973467813464171397984161432676276876249626928286298378642893647127463823149613936217216342726739164124363764934314973217241313632124871262879767382713794678923628397824218164243686868792919631961261362327179147487263894717821619474197329368949471962736817162784143423679849769241618913637372186241393781697326461214897818128913179796961319497393761318636728417698674674689894926481712969328378639143421724837461782186816294214171216764293217196823124343164963181638216731261732873636428462193467414612191893178379792729398373232431812876347693638428949894824921393231627369639176272848361262837868484737897672961982746734692196878182967292473867213846174167184373781639834673876383242383792369714948912416238139298496173613487379373121768979212986836483979648627343428317434384979136737436824692139741434638384128721869171818926418182164367369232764867924123949839626898926487184163687327683786813176972612837183298236489394727348493727869187621617342871262736926948181629864384149827824642147124627896989234728327891734612387824839474381676236294237181293976463897686276892983867974671214781967946716926736326481619431416346869723273791939797313429437816231923612132493292687294169132686741389327162862149298926843946128978686491814781984631682794934632727482762917273127983191628281497976983613734261691284236191231979817314326264362731914318173816148328628986236273232136316749819346784674693127694367137348328642913182439264362467432748798432348471787821862474342462329892928796849698693713649492389381976269127341486842914673867467236924296834872979848249267878193624714819213164363876284849679747813834186723131468634237297213612349398381286848419383619138169476483793926981396972628327962937913218942169124268424964346981848678698437869296868681464167973273628329749392343939318687693837978318727218462676314912671462178374171398984184783978687892869432383136796894368384832689182496498674282823727467397634168183279427962691374863283126349698319178949197696182613812939267381962874134914279314919823717174846276149397873749382126363279364946493131829689781234183949871978792347272878171897671839137298781624968464148326463739678786732632129781682412163964634843947942642497236419629361848674194942468694389648914389487943479742642824879481876179871971284696781983737323696243182628371874193686416127979627848412821962624834912797948927942797924613962193481378687289212984948463794731237924818391913243297478464391728716864241279737923842717186368918721829341318718136868461847892128382392432816249864394239831234316487429763631929147241827479849262717298961374219161692693213867869739826972167612964168389312317321483792932824194162913923768186928729163741263984721484364726827919767897481834163163874643676879147398129837696373694823123828797482481467614923214793869824142143162634967361681412342831893138129329318624246498921824873627983217187178219173761826269714793637386342891748214362913678749192189694343913878946869734931987161781686732327617213684387293821624131239862729294183638639794972679781378796987972491393128394712713674627282196169239496789271276793749482678182316727283438472476239218189414836267682317878418237139342814942637392329179872129141912184724824792172197438434621728768948364237136318797961329424192624717168792727689372726726832968932342417263793637272947468492471246426198248941649891938129863421642738919634282483769494168182638361981213232681731983861491361429714843136416239432193848629474161294749812768919698719737238717394238369164814637826867943467241987614136987836834361934386497173897974786976271389319168739698714973169847647232417474171929737629298678314613186294689291936974317897972461474969219742742847878147468641381929313462149283426787818769678123246927647348641384941372493194363296979697148162648217261284372789392843827682439241348718973878734819738612618738434972492876416736863248614618374893218416313734127819878762429768329639193191214169173121628691867296496841243163932731824394648416173613716814767171378321727873469348731361643892976727814743219638739849164979231437242879431396163289768436791878967121379276817819143643936869237691361431932386839694926162626186164349389128324174369819413636471916937249729321348387324937147689378382368181274319214862791639684649172714978291839837628314628964381243421897418734627312624964143762374619898974964132168932679269818629824867468138127876793938434137929794987478394746932646149717396742391864281921897218462689474132714869138639219461892619749842928313641618271791972698989719263184676291673282176893812413763896186394297183938469212973834626183148364924789437398696393943431236483179292826874268937931638626938469368741614717212878317612787949321823689329793913487346942837216831482847614913197493123474292376463974812397296849247329432386836246474642497439786817197386726246397486328464274274897381971393742748362376476142823649632643748764761374919296748421786278927262964341867284971627983639816312819672793672393846939242738763197432128273643178914143438246439786274821232716792713624213728482616972684348929626927843943897327182376824724727341748763687629634613731842328969894919878142692162673684179762948671648946396176824989463462746818782846173737684276497124397823673476968424179434932927361621623241323249797969674268174898217389249812842462319164898372941841896372647689631618131781636143987417231247187197824692769178382824631718463874239618217821649276272471831867281374624927838373269367316296893974732324374641329193714367296934626482672637836138382436729739479878636468241839429768967476816248327169478636463649738273126264126417378489696963893624314929272398674724941618383932631867848949613139247613972621746812919686378389131264139831868672679897349437343843241484987843712713847262429436387473417238386789714214874386487171724147931827979376963671381897131619316789698936934321983249198137312926839171916273626969381394826497639713193812167283641947148946862837394743967129163126467964643683982134126792982161923218171947634716232898964192873294187293897812723493649341398234982896841462147194721871868681289262329142341479416261276768946427324236964393483721683821289874369496482373423726827681239681641674384142326924237418424347684723232193613963819173634271363974136178149697923143437291987321671641748941638247486721671739737369126714381874614948423197979271937824876728473169873816893474236981736478138282678746964313487439676786436129242941494637916724879323916812864291816724371837142821943143917168493469814826893138986361798263646162364231324632782869731691838237142913919787914319367416487942378368471973271492878631347123871239818167634197897982369897927319363128494848792672934328318976171276172637438746872147684291243261362717946494769472397176313196432716946948727939132912621393686827426846321929746949416862869198794943691282684864294724163898693421786216428471746341982791726381861287273636834894242684683912943968962649689414124746478239698463769734826148621417263463767186132484614787164849749648487483241628493
4789242642674341678619292432613946191618464242748421842932826736828683196423648469831616978276934348146284963767914231764397392937284687628697346494736936381428169163838492946291292697492817949693623272929276781847868232326413647968947326792747283143948626979376712941962971984617836313631928617462317161813781473287243461313814813248234239796493278619234761828384361921274178274179136941241393927619383892729173963926423978271414279741671418292918941624743876961484198241678967913786719834237398239784182617831478343217239769261493843172371914398161783917378742178464893798619831239386842931363781264713978212136712137873686463924141293164981614716312371812972934714797142327129172742928674673161614631987437821714941693796819649616427484827146961232198481723489248178423168282163619846839218962918794632123842642381471846729271894841868198649276367398913212812742984694642616823961896948931878428679342131428912764693949147126824647623628617281747278419248417189468979128326381927929643232129649717682318318382762196186946798242364273139131837681272479684746282316946173784183291326814231234781396397869696193737349824149178689628198424782868186764368642143739124363619427123836276786814242928191468474149782684391349374784968139248369498343434372786164286484138413474897617298984973269312427849132616464749473649381294861949893293948397923637876832769862961386932431474681619326373829413137137831723263931348732181241846162927832494192318727816364341783123436898681316496467164232371781941986193464813242762929676282923971973194648141967132928293798383172318318496962671683496176813121812328721862147191373476813938696139479798293647849231892436717181747936746763164131813143462349423272817634731418716429127146863636274141839268369796432723164383479269438496374968964214317864724748797814149621867892384796418247126491762148176963718196369723168237983789861267897648476149873634978686732319876181497493676493128483428481982469124129387932946828462823461737469896972972697869868678396463674193264289831489296737869673268741219421942696314948279373164623641292163463976378978198247921917686934194239438274126434828626747173232314189387243737431921279184328914398347379672616816867141276862828636232616269269186749389836328161279867426168296132919643436912929468316724172861382169796317832317162713132428729364629294187818627841843293784694967284297489192639473798647831819698231372628412167967141436794678237892818271674371412397489727472323986486948739389121848673484127671982614171793196289484624198373923647187321324931312164864289169624769372846821718238439612913738489676416193814637296193289289272936132148719836282747287376296121621284726839379212642139697893137839414841673282864729498623479283694842137989364121792383876748487871897813939389432762492367976376981417213962812316964829419487493483714941628697978637346769139272494693923493193614126314616761747231817471683986123789238124696146972176369631638473919341714613972638371698731341437132468983839194329468278781869471462728712179837496736214168143198183789373786476231324936984617147124696393873983716891296989323824394942734963189136826196863941643481623783171763191249494129787616719628969672649492398434948148682161397624369689142127498689193964348737932361464762196327646267218379341823492962323128939638367392818743989832627693764732891937267924283193124198396984347962784794263747314243147613673729271916349369294279867328464941364284383298686378396467947913467632612619643618782484313127184876743948923173714324762491834747189876212142793692363294291817232412912436839149689826981323871987876974989216368962418326476817467173769749169182681761746146427218486982863813823614393291689816313264914761831247318172964349131989231494392949194362783979279219691439627474218173978249897373818371684362926486481782412746168371962794162684612892672894819416416832168796162646164898268418768289431868367132462837149131717267631797429616137161267342389276843192921843473236749872436384963973938328412739716847876397364687973814326984131823428346472614294281496747861318187427361343639346323632762783716219381891486317484943278474178476981242671846398643483431749717173646346391492634191369421374194398686496316741431924912439847934728692467818639781834767321937483936396124616393261719483132673728143736121383464264187438134279216367476367387492387984612613839292348472793734869313676827164327961271413826876783687418789494916493919672148292687427147632684616837231472197219324874712961837649693241961921978428471972189243237141464861236816364128191986178743176987837629728212863761749838927616412687183283496813437428746939648676121248617296491787428964184247961927841414619429163989492798712848973948963719723849198248796329414872736936248272789721613138232618687381487189146814839242797138946843474694173127168173692929721792874134763737317241986732169491483413748632747172947169617367414194371636712672962372693794386972729827486218126841798276783941936734246842793981926136846387424174193241218723964298328631487249291746346424942186834761494928972469184686423191396978193632179647674218787389427248387381848948196364314848943634317324214897282176236824172181769813784343191383721682781632914742424182372437627138728342893642316794318949324243848681963927674142178764214769219126482762426919183826419347183713134728361298484239179287216368297394372673439218343492431271484232489872489348183473479161621828121964749674681428493892913486789314724346847294124296416187828743941891749189831983497498193826724349863961491496247481362167282928621484273693191687242743127464983878728212643282697182467628782198929761686789678724687976241421293962632786927628314239871246743623469726938248362931746941932312682748396989273742492464829826928748347642624836874281736768749384791841462926812318168426328294693617848468283963683421426819641868737281482826961743847281369174281961864342871621928349647693918631932829191948367912872912483138939168421696926424186879639839146967823816347864717636376983676282474629612971479876847279686141289219291378478496838614838764243181274828318947381612138239764649719631413736838284862981321417961862962968292381374918131321298362676967364764964949649184623737823783426426949393421312626723467878164749292193696846167162936467619431927328636816298231439349169341362417463817484161691937684919897483247164284646169346817272872967483862161836247346316746823732724243284134723132679368283632864867621471379393671649794169483932384191371867271276417692613173729471269616798161316136983673192679182634732613296416474234636136987478296197283483797849236323128247473912794189627393218316846478242636362843983938318782163147891298326434829413173186191697131624646749797416493481241818416398496318741879283816782371386193679363463612861749614218796169643472916236314372348987646189184397279434738789897474874769498743261647892747946819342638746319296432641213871892769673164781767389313962937496421894789846827368123196361641417172848628393692612671731482137837432871419237987367316431632648414693194193146164697379281313686967932649649491679232192191719746783868191938432393838213468797614313827214161979328246134296316134926247481824686782319179743216212767627371463436743484164874631726268987381397469143819816878216314146276398619891632372967829296841298363683243412696872632712173962478387489391363793823128316296897828164178948761743841219838717492932737616746464697938719818787934924948263928724374976186162814186731273678723892431278391892642383723819842429414872432671782162816783864123868313719276492762167618198326823437969396413968419719693467819848792734863939817282421246419313974269717482789643791674973828371831984642626328132741383463794232847478182738197824219498473737643437492179146373717131282124391261848248218241483276189783268691891769682813929319273161982873614768172623671694871797124923237962687132487183934787238382894619417418616928923636847972461837123723828719347648374231374127242323191647349673728487489717492417423961214896293863937469689682682393761212736827678639362183426743274841798923132926782894378724376439864717197238619136371968371329434637612762428262439686167232147248327913738328671962719363643149463912323989769134623937319867836436178614781317912639292317467848763731862171239674732313694986324391786419171628787364732939326731761382727183134936179216136919394637814149472343298681427631984171438126197496294171838128643748439368942836741362749841248121727326929464241913127976193764712389632617189468247946136342472784137243647979796713134294326423182497873182484373692628913712843824371898179292731241612838412167132617612964861848319137418389341291323781837263984173931873417972346286184148289867184319719832781938617913196846174389372676423737469796816838712961286941427472313936219784142819872784963971264169319813847968431646912916839128394832981238192918291374791796727137984939234382167437689432676267126428149362194897973717423624821646328738762931869694183714246483828324797194762616189828614268491467947838492674672739746824398748178481821491324769696468169746182132697174383628679769137481814379694916239369496891842176767374813894282791679749839234238429869264898348987623737928149787387174843426437141261372819363173716191878487874217918782162917932621297163237192768219646264823897847169868647479486471238971819191291816462898684194632836941482964376194631712721371794618268934314682849376863763243868239476474691416939193268396746916818767217391294184767681413841421487671812326873148989321281819741614964629298936393891731742691692891217234693171867494387197373173979196824613648314276828723243192386282912649124923963238428469873163828283637417698983642829141761368147864672493832183179346491276462684131827972683819283719617494134786397671238417946848791249742176717169628239324792473987186369389176418986167389613692326148697826189631363798986241746291849479614691762784716827368641623148782768192967369427872319742462416282169284172767313829428942721892478697164612846896362842876323172438689314637192673937938298979323481429149647467274371864136282831892724826869476482891643819693232467261312698921421717212376426249891767426987824186371232136972138484349897829418493478698429291396892489143496738742143286317376416243148762147193691619724127967968292383218172696914121683682971436216841947182942716432641639762681642123198781748462189134864376838786474979841829138719746139391424143286169429797131482684686489424216738487482896967191291749231938964176769432687278628646763279792969718316732484897937642327346746484913461812627843194187271373946167896987894618469276781736474674142714128912379249168931381969846737639284789297927472713727634218467497149723713237489697878493123642878628193624928734813628269762178621328126919169469871316947367293179436298476872917987263819642418381941692739467378268138983923643727274874939847618737838179363179429692374748124268913126292649234716843149129872917982838714278141968273741489272921943263278467947674743921361823172923473784792468369389367237497193164293741734849782498219893476398689397981287248791327647419234136981817182932971943294329436218131892837683138212812361418397487424214926841292342389746471389213238476197481947141434217196768494218349739734826747464184862793761432436724729286176421439193938676798624169419168636262141794984392798136423789461268924692927674198729818786827643892697128323282641763289367146264238971769147923798387471362429729436434683872932462428787831478974946934621393763832942624136218948643731678164814316429837383836192736234137484394219419328129328146769672624372913189734694234381769382691913212467167173128426321428197274296493828173217816837181373283191646938913212473723732191897361276748729617398343427462674738424924979272734236374648939376231641476838234143723124917286126973796364389743163428414821896713637324816426372986471294328393271316489342782313712493161473798714192471398323931381214294634276237496943646438417292721784842462846169429831391946163467848312131827873638381783298927432923286232181987973293972187827612423231921967391629429878681726183842728796179782682931462696342842979276347398417637361732979173276843939246297863137926914874392423648341439684979271791421936782317487671618717363987924183831696461691361463273732189624938381712916723414241464213938376437184871831348714926768243924372839423943464919429673941312834169783734683276362314696491914614367182816368232314267491612179627616796292926892182427919821626316178139323162837287691273721293969494239438327237831376247379182131474946297374248678289278963761496146169167684841271642382727162689392824694794387498967819627629318636871479782696872726828962424849142612318418416983986429193192976729314872731291964874178942139861826436784168382874649282328271298248131421381969724641348437937462696382814894828362128312721697962872412487934397869892434849619674197617324384837671378361714231271349784174932741614869739896198796132838763698624869241292872193482686768943463646987234398342686474748274972842432793919734326129471298184926482438743198724184641382362193791796321824263987437619647372647832743838296387641979183924791263913818491839294373674686427836372676891361987397476792423823976438731736291894693167324342983682636396482834724671326289719274247243634623837492142684296247324167841624628347814181947914369846497296198172196313637982649727187424719278132378231492923891379363261783417376734213798921982487637478916132129648186131837183879874829246479671761941293412741419489341929262187219481932476123639146287234868768131614781461723932647838286136727293727628261481269812967261712686479464297348684787936864649163416836841842696819289682678789198948398164731291241896912837892947972416246121217314324871374893826462182686348284749434974837938982731982412838614147864248464364831679274628761364694694849167297967373721648149269387376148913948462148694814264372367816721839342182764349398741671942637697463946346972786368414967631783723879678128142968462413867947963723913896132972698783462926814841434828184682929861968486846813234749374916189876372391261694979236161632124194131328432139868184183618967917384392814269624342621894293468621324912616748247141637489141782731763878348387382868282629897347867842712913891818976917863418693974324764313684386892181462471212397376814273868131321823213462912162698727872891218267396218623846426982748373647218786123292329178476321912491678189284269281937296389249647363718431784397263713179182912637961314783781969734267818234683281284274986431426278368341421684326714921832961681324943131616468646234179432829214679379791693698393969423497369398697916847819187879196427828361789728636747897386419813236867824212748168496213983287347868719879127183289843647816741264397321621863617281924831927876387812617678297961489363616971689796418913714872686491479739782364382328382786184819268363621346842139896942829768749727347148216963769621727247929421868749736918494287814142943493912398387848694986132192368717984786767318728126839832671418943869823828914798429382193643718218439242736791381384616826918168143697319649639179819861726837261748691217817434914983438162183219624618634737341729316127121846413864148796843427484817897982838483486862978481237478784264274642946478498931812736327246741638749832689372812827461783124679716216437414623818676724142893794868317847284239292898638491938732812869416482838413243736892768783472413976297241794642139132643271287193236861647876913279343626167481962397343184364217981343974243769767373836294632494196194968697383289361979326241898649363629737878961816932168143139138962364263971341238476371242931312682936879137372869132424917137418387413961692172168214642791367837162347623181498439397472868271631768739861464876749434931286926781814123274949236429186798278278424386137426418792432483464134234292698468174364142363781783826372374269839384321932913431764917824168212938948267386941471294368312471816174671316242846719428616439678313926416216362963486732762386739634813876269414684127914813832617214798147438927962718638318642146973247137862163162686372341769731628314369281742649763861423216389686349838282314326393637238396316794216792431627284368978132143678134938468343484397287129843278318382892123864826182821393187469621389419374218324978129494396346498632484984619627326126284749294986191678178438316948614894621362749763796167934236723284917261923296292736141838927241931462797247438737318271276461834123123176387126191827826189363413819178287973931694797289791713892742767181378781783861276379161947984289282672478492714786484268493974872896363797619436978939321898924927189647949417189387868617419793847274271979121741363918736164643146347213491343934898792316783217914372474149792491871738724893232828973719129819832812748781474764878781619863942942476921273163912982926738341276492731931914284827942314747929631816741279364924641621287647194368984139323484137283618487624692867979829796417684714621648167249291624326436973678926912943938328328619169683862726184343831496183621712763676824918714741319616974347924196192189368614239868739768273987971646292196269137413237282469383713749493836916848139819172347283298369313913767376386876436787823123973924239372463273973828243934121768213637147191723894186894264363818181631464868137236723732314741362489838921637343417243431912317264928637631781981273262367619749186489342936293217263748498967178382683689634247878318631937129689437647989414893263479392916348276978192692378182614829794798676242479873979714731393287243964149616143648346183737812968324186846317949189364131797241479491723236829173647918737914216289748216464123712141292829429173231682638147824849647171461828694986382873839287164149479248472679898234986723623683912932869698643231986243272691638372169769617929781871761838943769731897132976768249347496143621284831293189294369394714619131287987467419873217912694623138927419619371978686764713231481871634626736147962616829839219747481768243279424168162318789424243868491786978436146712926838378167232831947234363282836368286268798279264794872487246173743864396794183676839389672314191981868364937263792478694684623831393878463967423276839673717816816724149269121937413413237867929796767647634192934714949872329167474138649292171797936426921626286178264316939186714241267437912713936872347147196341924342941438371492681847462721781976364318319364127983767841726168429212816767197147421683746891861424826832193781693842643787216496948327269834931878364237636316734682147936349723672641979749846294346496726396126781347242914193232367627348272327242792348673973121917361964294372496247164142468381496432964219473212798324818618191298262178617264724247326816874323967976926939342129689638142839419172431763437183173818482623678238417474987381914196414718676247897182831816941878727914717269161342483749326723813473849894176283484913834124832313469392429268174394297139819819264814176792976981431874618627684989271879431736843264719783671621628492764974132947371789219647697946428937414972182986239213182473816419789748462472623278124326137863232479214174219127384734693263484213178918616321487492867132687824639148342794262716183821786439438374964719798134617937892924937292178439137126984268619818216184194986263239729346821843864721393829242728943141429794746471986262397243942627347398472768172978316723691231839786192482764892434671317132348181971964743612171376719171921283237487941369138484341217474397989292912134897932869283979641813413648412494783724296464364124942781671372968494937938798318731684943828493424142826242682624834298784824848473238643241261723924863462129719367231324817138194161379171646784686212637631729787916876384863812162767264696479264139612319837418341236762128729193489749413673649736781484192676749132492612487942392823986862391798493717613431917671287239729131474394346128989623284641939138913984929143676469462813693639612842327314873243178472137612891812636486286937314987164168391314379172874867163927418348178469281929172971676437969179279786321428473231974729767162919878626237969498171838218467363496174919782784376398987696413249762136712324194743849237973761219767346136848398971439283423626847398219636948398469471246468143171314382186827497313891289638327162942836729246861937873742621241479323616787318643638416414812812161842894879142147871414397463296486949712612643481789421391213787318289242386793243217239297468419386397693692167149491632724812791464314369812898934724674218738616412823487847817689812134948427273269389871496793169373187494283232862347321849342834841941613928682921846269824241823647489631267936814969636836798676162623267312949693432467626314769846872168717898626421747297917129193483681941867291396843842347926178724182731637287424296934718946418124384693717934636818761637912363796989294126176261981849138498784849189191218168462837647613436383298473891672681497941293183818974683678498464236241849273691218428948678972613237219789634939716483873628649381247926464614938384786363842948791748737928796127143621398391367692817367249471961696263643827279419219794364748316738737672731731324846781681381279234931372181416413468623412689198434192767628287273931287216813191392832647427428672731912917239638414874324864243862979414132628642317671413413867383189712487297414812641612639487321287342434974618248767473691617982679161973636276387324136892347638649816391296979748379316949767497241914368761871961482729373421687437689218726268271494349321431367236148412164786271286478486261726293626413726831831837826742983731748684168987976232463812121973162839686383649426981643938616782612631241694389612832427316212373689736417289361764768747989498291637436796497696218983747218427619719714386239639263749786276484636896913486439284686326468647917362916421964296947279613648171747618372183217286216924932738247291918428386148976387362649627964742837462812943623736278142964172719136241246487378969621693138343218489398379634189842871237328397439878432836728184213162364397484894616819341982827821476976191981898691287872367643614918286374326713262686431791868121327674924674236417672198416143238462897123263429167436312363196439183934923686164214176927342393789389234878276947974932478617928283264392398637676796916164798729236163683692394878614139267126928431416491286247394184989197137392968148342148294197274212172676829413896892428937348394346482832841647426148484649171394893416178618297914814648614898619478168316328627648738938362984269186813628371894396848378727292736386312791493976184873781278628279486798193913413414282342736362147894671414782361864838323643784614379686283141641964629386767619269676274989174218692148426186484214132694721376826748679379398692474816218269692878279476127121348636367936498324721376129132867827829434784962181918247169687894926149373823969383714638968679347837261793723819148642432963246474124312868781498371418734623213132178264639786217173217312476139421327427214687468364749291916479123428142738478796198146494181648412128131461723236142787342898487284276742963123139728986928942427146948219727861684769241294393981879461317871372864639849192986131924347437628712814394327639386761792872747983982147816184687393689418127493178274386141362818982838683717381693129621746937679127168237397613892864897163674129728613184173473264642637437879329464629182762649792492612474919841678373617137242398172962372349482136798971323249817296479468949897826197183732989287827284319849278481482169869732193214769768413968249297683746126187873692197232786393193921239428267413843823828617237134189871971684864789327642719414383621619191836169683967463673638232379487264368219616189681843426219728693896974393631372316216136414729732386137247698218267379491769814196764141761494719189789469487972462837484673764147181932693923726497426146436386936147897482943676892416871818268378712348931431672391913628142126973834379893297239769629841471827921919263167469414726387137868261282468796179362843873962627139848247628792468412438283462413912824676429423897189826382316468737628167418494819634861782726912632494746163631762839249261827946481786923214816238647878763169493181367281834242121246929368329369318212942483168769739617413426464637264631427314873946787383273286861312742923648272678184623729236824716873926796373641341981848721932861962428182679281312863864343891796483937432767239487943769142368492387482841468324282434896734282732837186374784264213781789719893627941684786181863979286917914724791791672982183613468381412131914681646827138414829282398273818162394261464816812328416976713143896747413848298689828939297281978314643219483261367691978371749232194869231671729873121276138927478429497926712182198748627232392798729327939743643194347174941819832646197696947469483284646972969329179869383689382463134343142489323493287198363193934393891793137676394714649834236139214916863789268637463876318269171728924823731349623618616879131497674176147231731348323174787484161696946148623428764296898468123191348291327946976424648483767283619168394349491687921962721231817932684832893821432427964286278213614167424178769184218739398389427913837234968234734974241438248319342761963148689641621747168437931928247127937187434134819172128171816781473216129618379794948139896989498613413494192872868131271472478369232983213748721292137497236341468327187848126812892614372123817963848718398272697391646346464673946847616496379279419786816439319232384892928313692729782736943734641364121461326949327931828919249626826749363874842328767691871864748614367246398613616474194846381698174849313217196426373246496347683786316894691748923624312362134292829863714396323914948179287821737363923747343243964319897379178284674919718976347129486394741343738374161849634278184618474942734931482478932939243247912384782632394673763769374741468372674689234671439828347697474216169841738929284978439789386979739376129834362964813618232469132397616476216424848281262497627628432121324196261236271371263949293249742671671823648981346242192987469812319868784863173649739173421836971832343731693614626347276363626931231919679797428169123791947386164698737248638921748171219838131793262318682423291649261968781483839391286768372469637868692789872384983496392923926912814378389163687196249642912626381321476984248743438281869231342962767842682173767976842921431828186494687486267198327862769496728232921783728389412697362694843693438781289413617936268381493821713861768184713793279164623286476931762621726361893712384968743748713486429464782746849281368493279738731617842698397949646483412984672874972963214794947312786262126783246342387314362932328262739481439489263718672832636727129321767289787863823492919737827317171471627641761467264214194836297394142742628647428174189674716243484942741749396191381747431936787849892678783914713971636742634926712417276193863473249614972312371943182392682469329629768479482787421373196912871283671343426746981647842698324396184317427482948394236741968231374939641281936328123242828376931937861268761989278368269736268647273838782482768416871216921912439321367682618242827121687387687124916964839484943736131874386136414123741264834214696974742464329281916148374873168286828149271891671719748297193283274824963712982146794384329349391473284139498438124946978321213829182148724836139176161412342976369762749176964627632678318319872472432681742469616243867961872684792712423934983732892713136287617617236186979328371283146497894897637676462139121718697898942361712187121981842312363838394924729764197463139172919198432389841487482314182729371368989347864126739871941873163468292313737436374613696392849361813923898616346787127948649198923826138471646739486184362367918183439194141769161372768387438684874931786868248184732423812393129168681843412796861821424916714878496817914831648974749637369313946178492324782496918287343416346761214687874342364818429383783714841682489469423723746281876891218472328416293834713693794678371627284694194391678746869243181827832324727641416816216348934374768934892927869146839138978743682834924271979617129321364817693297687138631898212747394912176716187926497416984782494641962984812476374394694864949431426234614917212739246769686298423284686462798287496979434691428692916943414696979784679316841842783898148967191968173649413738128749893736717298262673168134296348186762634321783974696189369314867647672984217823423791721478742191217639468798698769186261437624721319834916987812467412137946474681323932621269831271341468487818987198483498387292424393734318769381248728936918189273494362348281498429896824671619497386217383842894128918174163781374138382132938474393861342129317646462926463698437297941837248419249672798171984724694796734612817136982923279867948469181439182148941469174981647219127919271267926917317621384817171924786316341264649427924723979872819472784269319419391914943618642914349217978616136787362363418931427612396864126964986389287986173463838682749172878398491234249161816363469714763898942743938167134739864817216167236169718376139897919717843968127628482828268769191827241931392127862689894191416739317323678763234963732127189434316984983482817423182928742964728782349432348472161718796317436464912381978263867363183798723632171343984269483842824163748464241926946212697248983287978793293426232498436829462419612671719694734848642864768962834219236368297148691271628791898948249742964282612746121231963691873963241832413142149141861478136278247676786132782821628172383893147132978321321793719219748931271943643989847848146727342474898748246439861618192646812371238981926213437281961361234613287961282917929462869717317124718971864724232132123149726394319416798382341374898979716428691418193963237919721463928296289828629324624643792468372919871313978734761682623727617841212684714848637124787293737317121371862839278716794121832723128269374868476974323797237392872316428683437869472363279298469892394286294827398718313269784818181738698794148464714836368296343267382697394891818267614674832862764762643123863868741274183212626982373936273269476713874387894927896721636392412318326343747869861717347687818341863246714897981378263274791636272129183827817278139764262767272432479316834267484812394161841971374172384398394784914962412842138143984161769826923629894214812969674898464647491423461623618986372818746418464646432437617313832146291814872614294129786932919876186724876189868194673146424127169387369483238381848186721636294687178736313676426769489876878748923182764972196483214374732472627121378798292178731724176181979646923849287694972949238762726874818796821696923816892969793636862987149646364147497619872691482927943824367294139424926792782816323717219141879172892341624619242137376138439241787321467872787187976323972679287383284312391682631689492189824879894732934396873834819626731691973414147686489423826242484871241747873987149731789296326741269147612974862429164712482341648696376138964789176324717612183232631823272973479739437932923967297487292864946789414271849398313134741834196213273739696346816489686281868121297686396379278949489821672827392419173197313167638718942794712178494879349767137862349737364682137437374879768972146974838462784674348296762429394839234929146124297216862981626723947298424397342914386393831791894191784942128792894674873826876371918219868169346493789294712621748943826863698948262783839643194931942872637876843171848612347273671328427268931678793193969291264874832439168962867418628432421421319678216978972689617418128749641817163189421379641314314378984283793714918381323812434698261989861769341464796283871638341479341743471424161943871384136428493429323192121439476431936813247374218263617926913736714871231431626418738198432762927947396389716973863914838979171497842649891872973676928623989829647626321798689693129679143183671263143713646323416989783232473942686794342169464623932914976126293481739861267987394214138213729697131462671478231428184324282127847137968481362126389892863141729621768613268141632193296367163137164834937638789428121713217693283824129769786367186978178798747981761643698213693482939296986231394929143174126319463164294873691382781792679684183743692314879869738913961634314296213261827182984796374362396461276276242321498913869839726218683717482323717231321936321493268313719396327192393896436473698719713487274981673843742814829396962927464264167389482812489726364384836137321891837387237312318294924393897986132729743826786237698272647414946149271686948746828262791826424182836316467271963743946712743698393962396189869473973189818212989679783136238187329437676372926713947283268981273876274629121463698298463796732174824818343182481674196834787874796843426379784829824141763617813142828147489786434718148478714879268138686716818483147237989879828967263176924816294693643963862197689764846291269176347487291896171242723727923879283132714837464242373639127274198981878938931613468917249828927397691921862971717171818124928421462894676943272126873874398486929672149617361648693749163727927461712863982393269691412162649838192781874749869838271423289293282378279243176427312424841273437621237274342372769484293691981364294839862792847836747427178362386284841378684369734242474629879836216181296129479742464674987828319493912796878281361682481869679234149742478982186329392368342347846267212481313137876173828724249298271361392683263241267143247382463789391686264389864341837691964141369346941921282361421917839492696264286917623187174629292718421619672938789269373979417832621438693762986968929828796361618347484268628198486489689214846948281637979468479369789734914849841717387698389692372831481847869423693263281979786398727812942691638913913497134371436483413137493282138183231849634742672743671768692696371312329398647914748218329684916839263143124749689827832176979189237319721629436872628193923926139836783842123476487813436867637287919364696148381724196214824927261746197984978927287491696924874812871914837196279129737389313984642423726369134641832372897248483294762849296839167981676128961827263241472428621284984391362132137389427818469397191238723746418126836121417146489494839747814349274723196949428343264716839246864896974217364274293127429286973787849431646721874213763943162647818671289814721796867496149727647984316247438264289692973893187823694649323621912912638191492362678613943932426129486484286379198923176132769287172824647171989217837134394686714714897694894732872162762626749364691498649212798186246281782927293263171787169424282732839367838189863649814946341469121974161819641249214673679829762476323134291747627827912412982832967867672498913892638319789181947341292639312193497127161832681818647827943437474926816318921761387219714942497394812683212313874294131679424394712693132497384646394296817464863186264978174127674314847347397931923794741412124717937142679792932823248767928972376842419796727129138712387141676329691813672682671276179323686724146142879137878947686242492962832963624786984938982692467472618696397198184389831263947674981231279874136768934162176143482973847963679379284219163192398126328737842979236868734174631812964183284138469378139197219298374391239813294891674646262194349161762126484949847813194141832976279146198248123783282427216916216436416172747436963468234929383437247248282191263787281943898392949178791632814821916716839624283121924643237437693824174641964824824843891246232862972792426327928391864636834614789268462193782941467234983784717817478749627834148989782161891282763168628717268968982742797641724378468917286879371782123623497967939171732972486913462167648748984197283497683831494813923724683298983739489678917964383416124981712819313292487897971323919463842918674642818791364961624371789124946461261232317297319848692618496414198482828327396819781392912137416746783723896479897941718187264986369487238379171718712362136428294246297279139746192973683423613714832494814786892782989461272193179361438137241276374283681243972823234624317879638276176249316939238613416439293634324364143412894728297282136329746846928162937629796427143643418643412897136121473439123987248746219276467948976242694646212724617283627493686796231728278123976292614168368418279836821794218692497234827636984282963649371621372949826136479836818369267978341748371742341682838974164729421941276741268929342847698398721416182371429429391848918726191964323974847913124639162932168962426937491741629673632982912919384817217281841984386329892942129738646823868271282169146839829464748923892738979646798298964879463746121436327183476176349323621262647343126941872613862436468187397197873282691318783639382184691294648191797879734782487869414892634868723818284982614928234896273796423189169173126847947934142181734636728126868723482634348792782869373982743913267972816792917191969478747617917191842178237843674384768234243427626178319414813427317314247291624841241713674616979214189269231648934864398393272762978623232649317641634646139791362494391763826131686818214849324868934198798323862341934871236283679162189342981374827361747148931819478142961317482348924627982781481283687249179184723746348131287989814381721436291739842169287367929694946127913174712648387349843898943486423946728424384916471678984212383618491794284264964632632791734634784782126847391473274896398632324768428721648724891932141848471891616492494689296134672863278147392949193724313869826962932796172674374393248637439864742167216738286274613732183643193128462391497193497349424874121324871747913863978327681231237374869784786231639413164736482719289378767498732487481321416962942321629674743647167347384319831721717141921414867979748748286483419362386294989437913169187614178793926298189764721326283937273919216184938478613948248637827912769648686427391898219784319168637148271642176919497214687632161391642432178947673819321839426949163431286394714693238389287492471216769472634637369679721929479413429871617392489823892938179742364741863736493937813874737413196492464841282419864261391613489138168718371826168739891923831818676762829391246946324716468212383982164936846983461898796921934379463876934178717474813821429426437193437129296232193763467373761868384914848648132698989161374986982641286273674846178194379837481939197287413216869283671318482476192967346482184214231278262918968616821293837697236232646162141283476367287183696341717926124843947837392147827632326478973746972436137817323782386273689618319323476289627126787686847284847989319219327962182828124798263181861636872949174321832147262789387324769287329734131428718646329691297821496212326413169317624814871894748979612896419369186214718246246312329676816721748419816764739183793747323614819872941831816323267127463698724784823127186196863273174381369213193649397841497419861789434361643879174893781637623941894321732831629482987983768982842134761973948787894626239373738391868183936864132838714783276717417214174138979393748721428426131649721274737687931692389238417848973641892743936878728972168164781846394169267172393861681326192923276949214732679737197621478912693824686737828376871296137129849272719642929312347964719467678192946126347248134867237238943734726281383741837914697283128961431216262496969267432873789361678786868386913982437272916141271827272416467496178164692139287683193861321964161396734714912726848616142643239848737326964674698673296734128431246271473248284269738791741748268264183978123738136916369328924329381961914372613294986941314614647837424894794748473818462638479878393831491269482147413828962848487374638636386963736917289692179832914961769267389429692746281976489474134949464726726273649686371861487341429628427397293612171672839248921368216389286376416828243939438937917937837291823268291969243912496469318148164718684312913498392487428987923741642982186784731831926279148136717198316241473842913214926321828213864739129263828286492797182467361927263139729391632723819813198381821478371721693989729394393434986212474161381979319132929782713282192696267364121923289297946138434373923483438636969436189247173418483141278427626473123417268942684272463767234837989467838928937949614832849716383289143167131296714721487943184398432819649687347974873292343483139134826932843961232941343838649698639342862191369789379248782968612416787832481892814329289169424787982614262639687146936368132324823189179789476941987382728764731691818129737364873262197419618178489671721321247183849213721719873619316273871837813872434373674639841762182421818424864676892848923281761749187913736163738472473171464876429139498329798428142469463182428174679134728348431623129432712489161468197429716712896261712129413868746381796218323848391736931793416736281763872847942737489896274841379431917432183623472783894131317643714737616242189381967398287189727176862647391397828242812321213732696717373286261981626913281673413837831712498678613196368767327891634343767364124716479862184176349196976962393497364924849878476739247494716741328278794387261434738174678264742789498793838242873263892421614184639164794341792718941369826249638934281243213826181671861238724236296749167167392183121494172162937292742421476913787293867461469636149612481764724897372674628697967693241878989382783467616891797182684694179673247631783727868712824398948742616214761686726917826798249168923843438621397424787823963829738684341798264187987467987673796249824989142986243719128363768147831947487926946143284262374818937213763473726393797149623289792491267187498973748691837912692728468327849846964929364749363192426361342476136764817484929291791498613726784939696989863239186197978323641481913676941989434973928214972184283284128621947478943414981263687627236323296717937429393439838649141467132781729348191928619249347619618369241748694389717428918387468149673727948649416792347287231616436469129343763424861231794862843161317413827989841648143838428393813214917837926796839698727278931768282891791291739631813628426279348494242832726812732481234637943197341863498473141936187676318939368989264329124949721737194718783624724293824732173948983273949646789789413743769412134726434632317913832946782926714171396727347964968783872438234617382941731341432896273189892383614932787961626936363192612461371616487676489713142878279282484621828342763932982486734363296429386932836418173638149817382689789691838796391241791819468264314172372498946739696837296146823794312418934638391287626198234893148376713696768432126894676286137931983683634296747418198276171947837923948941271792819692371981696864843132639262167614273246278616893497349823717969621282974876471863834818649672769863289738289817929463936926428182396437679264767874343819179364139818731247364146769698938342818182729272349471916862898671376263136968472826341783768727268643679746929282828678279162964149842814642917627621924247219898343868217216198143682873761379872746287687879272972747629313698931969361318173641928398124878976972419321371324219383432621397187841212743271237473916278121393621948726898248261471874967134319871382128983481294732439186781712863128671839371891824198614142973217973873148286971643926942696896936324678127683269162927618424671931392847273173763891769781821968196948429614768637163684736283974731347148734817439742879196398962614849271639643643943762974968428762796426782762621291964892717139731793139316837894891789692312836732732192764696426134231824643147832734936234284989138617634819626263493981639814121478691972176829747176197487194832792381231321396794697948497979724326841983861763627382618768737818676291949289284874989791846374841983687262431617826394972862719264283494741894214389636313416126437167641463617929698392487986198927984621437214847679328979743247967873263127249676937814961781786263164792478137941842724381313192479761264612719478298939726391278736241727393714817842781936893298416127123636329397936927612387628939297483984374718794347391342367378383198678626769162983261834279728781296324374674214731928396436874618279439472936828298362842314129637321617482421249782486471948378216421281238628397614629219462371318982913623972326469368467423231731948142438142834269892626287271976846829186289436397384862323171728196892916214919826917832837673943973981398919749279419373479429618179439296328726438789218643837916979464196164848482417938726424246719483179816894189698242469264948937273491928386814972674162494261728298648481487932916296791819198941863676789821346426923683921938718741796184976376317978673287376139384281919473842943741263249497263734384218731384967137426168461318148349749782979171271623627387474617838678424761318264727941216247831381812464687613217972689871692743632431462798978283476314316834839372348646176273824312386964938648739362164891676491473297371249212724283263464237678281837618783826942623989632143912397318471424892927246821218924943193424617839271348394186464171739836237842362176916821826781327897162131619783789198642964348347928172493187898726324247678721378364932496424131634243849823432327179781263492947364847489629649714232381671426919472819348981621819214837383249148794841972428249764862143737267136329438781692684764968394823837673974743719494862689142686343727314236928281374863649623681682189741423871213673972438124321687878941284368983239419136438936297271783181427836329473969782632393249832436736768341793238412141387197141892374643474182169386236283132482431313828383847291231382736986729828318291637496869839374614364384714749672978136712481434219836274178942797634368683472714289784273416234691231373848169381767696362638428929263428782981314812783893268926963213624949486472942732618672312149389792196967216276374381639363868792132146762927217696131293481496914931342483792971383948471281271784931717497324896292861842132496848931489767124613671496942476981393769373216948483962839438192348621472618438648927184171892928949284397182489438769191847696382417827131692823843697648732326714679823183868191791946298392431839376419762381636734978624296139196912634232361347892962323619246346467173246286867989467961836436438637817471864794839839719317374782628713293638937861647219382979823979698649481274387467847367618624923276392489282934834982928741396768379798439621616327846321629392163982171876983636296373978362414924364861273478318382324191916783274814837826376797164128613823987924389742462679474713268371319361217381614248286794132767232494948696126937848696362618693816163142494369328493261273621616717973939689868696742487923617894682174367327474247876479898483274741237823476983918471823291287828268714861212689623782127492894636249243798489617683431284824713424683268947491839343817231369893974297247948267387971374342792623673483171963861926342676423494126267917978138986278378714914263268634731329284912486184641876368383941686917676814382797897467862424717478481294793972397382786373831312631738617194379173948926869868726794364743876293492474869216786329432892642638246729369123673924783674398692936318972172798489378126764129216823189286181316979694634828673872824341269793247213467478979797614213691428197843767469396917283186762149748674242897372321821378196194872497372482317218242873274648769412826412738464973262367272927612191628312363682168372672736246137347631392148138464679698419213196463123982927432769396426712868937927436892969781297619246916416784326317219137827239129214289783814168367217178462614282372391374873898246283174898213846369176378632864176387162328392926283418746243742731689843949698768796836371737491343738728286246267123613143426782897478216173943763123879169823129291239384936218427391646179832394697934727867379493727976296876796927638121461214829429896713142962626329373914368648273729819467141714632691973614349174864679671941934172718319249416764171347813149712439372724813626919643637943648238249236462328341728279621248938736489629238982768417316372971234279873184619676381674298317672132797873297974824948632789878376329436739368932469637317974636162729784289641231816489272367969138247921943898697296427472417974831632464147924691938791293692974638736828924198164243727461382172143286428642381896123232828674914896894942947942836231917629168632949791867143184673283947831691487494734918486946186738732741437317316294873847492174971792191867279869869828743468468387937636169724247439216243917347369419827183678642769796314891896373792419717183241816149841271741284698762638436914848964641747639617618938791374743694361827819642647278937891619468781686871498162616917474832969423163924732682171486273983649324381427634769427874129784187698239762328232328141242943432398319182791364616167974672713214732731648423831749176392787698498189642716391769314373247483929127421878149616978718681787323482436393984981826161693612687317476142431428673646381296396979723167238129242736768478239796184278923141834623716319416932791382984764874867348472789893768948674367817691436872323198281726864764389843898171369282896328262646989617628269236719812347813737246139374641426376897894913267649121927217137627968324282167897169429437673982492636841487816393294281984968642321942924279421821867134248346934286274841271834124267167686313161938162413787382397128676918939172123267967876214264267128326742484784781671824793261864261839684694247826167918191289437187429631847973674189146438268272892342671328279491843781286471894731641286719747162186762928619348638262684129286843819172631837234626493791718916728732167237672694371836432386236428269276264916342197397324748768426782197496828367121934321231412673147982483242872867818468713416181842862917829817464127492879479837261616726847429318791273473762496398784361382839813912423797241283141436878123719484834186976127867828627191739818963719289482193629894162326791626174641398274867639827483721698984919137391893841271372129813432812472989472673124691824236184617689612382847423761848297213729723926386269427497462128263646842789612929843894642434868689143721379878967319794819429412798476283694236317614364943482861216427131941919183631979747196932718381476283293249269262314849414146841879731761473124284743974386981843643462128392498627313793649868974696734926394927626138929732978378691232378142198428273427681643719394243189648939863931971328987896896431276786818723973472484828913272812984616192948429741342783292848327463932632837418126719763863476927362862872647149281792363196236317916318982689683416749194627273274282981274268734824912814286926382982618429478121836471273284623164672673239747973632746723274678217169419432321267872679478781468671274762916164362928186349842762467674872932192489364217291298962393896832174981469149284942148797617314612937279468713819181684323736917847914827623129193192643836386137927463749368964674374829829438484784368348939396943476896216383679767649734942162371713798949768646878793921938196398189842346167437263618193493468296724876919636293292326434671237146436242832328496931938637462497123126161987934283678687879289317929836397893436368974979372987437469148371634794876381781921719363932931847348947373636436273263172129764878784271818641823612843268293219783927418341472612789724861461284171821691793782619428431647196123838694629813238286437269218278327487421287684972483868237279178971272429739672167873298794981484616492176931342679787863838974734616317498287321638349381846971849197878634131831847487178168267984763712478742434693612642967136264718413918914929319394341693794347147486913892328186271289782897423963673283694718638926929232681467387478763834947271919628383149878616384794946891282738243734829232918279128491316212761232831742871747483643483968432942673929672197396787173692472491284968136749732723874784361623262784679769142432917691921829381394971419876763169839212147194387184364793264279191681731313689372439713914684982941294249389121978714287232649126941647291719484768464831671767947691341814879389637692613468168479262683896396713678712643242142347891614282726219681493134746236243482872398289816363272173132942783879467969379631482679146931789763127263949297396423184281728268426748749278128184617481767863649392467469384789412737846387471613867978317278617928431972342462936392848169476298629412967921464717236128641218124867276843987231234296714232496239646437842817189638474963463741271439268463287947413841482636138147912384173197383641389691319717134319494392397392626768272931828381978629232732349676489243942639769687839137276812829418324836498327373819318391672393187413839691687169831867264736943418237813178928923761983723692313416269742634212167432797193983274349378193921727981246868167348314834741967864968379218984898726139138741796327871818973728932624869476192842674921942987618314842691791694198374243747283789136243176989464634268389432896836472967368716894976497941631372847248312839719473831719491941842386238387314793873782678193828478612879381237341673194176797618162962171379629391848173248272189373926783283242869283126163162934646438137629728381819479842736828969746893968484193686432123412378787616276162928169347464834383492492719214617126284368374782382943268696983921619463281438928641919634634874649132173282387218628149616143817617162376873243296463438179198793749823167921373161793894847941217167638379498987947927634193171878431246163192916389423134626286938612839367289713734371817631813484692791242719173174348292371396979879837637192678262976184327631314938373272184932479323987946181828976789494964936984862631791812972649143271983628676372482937323624383673629247498316389312363783413467348282761926436931671434918712724781963163281484281319783242947478929793968632363827961878186762393869632312398764286923697283897979638128492378743791817482171483743276767829629762894837373717281238361461212743712767921686863846963832923474679243242683781234262819241791836326717812978381868397147627624764848931317283268271718289232194284142869192147912829674139239121283489316916189813279268163237984976216842696898747486282329132169282347328268131736342417424631684948937849873832939368679618719328418247242748764913243439896463218179391313414847964797323293179248138479328736368762138989626242348134192418648289426129347849124623212792394836712892319637492923826717161674149743734618383173169681764187471612974168137373741269474218963183237973917636713786417239219324989679183438632727474782738383738269284642192471983638232627832643186767871812731791431643286192697841274817383729841692198468328391713212126763232612761246741891697978237862718412462496161674396281464281428792794971437264734793136747182972179679646296723123634376161436143631937943792962843673489323891396863798316913814693762363946149364864248147219174814627612961484981837179319821474647386141696969841372841782974936948461798431829671286373182419786972843938318238468121264836839873936426369767283626478328341969798262173282843972692394643128469383426418146468791264724946464876423789814149769493689276124782867316363914814286147172978712646984239739178921672841793179738941941489494928986863964169616946818367276246437381826123696746721291863628196924313734372767387141412894249363127894969741384931378676923794213693498383689637816971973982694239192426216463491349862897247123467216198134863913694741983686984731842818981713464843827141813836967878947186238937193838348192619789128247824278642913216481937436827429861979172948183194938972971328137381878629628721627949149213898174384874674143839298149427146872347323797474867812312643268628628979682378673278437141324673736496269748639679361718329327342174867964932198473814363439738684892186942974189743743634143197641867968483989161946287947861329891819313417971414826279298931862142832143734218362426142189746247973783732974898294783468682187626712497414719283879627892682948363691472693869871641683846382126261313798243471467424348684983892141283479614627478749249642761983879267947197294261676414818489327848912673874383892872139321489271947672821467683914364183161626469148717674361927242464698719876438369173234234931312627416923686816938191789292893712674678968781218691879239729123946848612846461486793264891646746121241243212982871329264768473249749826121897379872763741869213247839417694636246184874692734324237162784136929243181783637468671671823247274919763127426797683298361917674186432863163732346397319743423942693148946434234898384187249697871316196197872472968946416184768731763164274234693964696917848712727968147686124981936847148639467921432734276278767146843268629482793434876128926263818231786963623619367294721786347286276729328969276814137828324693932132746789394124168728121648734173893639892746212191849879813141987432623978673894373241346713464262183827971943971312896837373273129292786824268962893182168314287969286198781724234176161746469318479827429146326286264696263214982379348943687131384274238239694973976432916236426183232769836379187972928418131969849861871974132981293121316746787683234132617368431868294963496912398918721421276421736278241429492192368437319247218978376129324697313979832637632146979693989828727346423984741819138642729421783263146742973484194193832743428637936483971949697619217976763197918273826343916838198184824769432727617917249749178436197129642387121312641414741262963278173137274262967937232623798487196272787139479189423793787136763276129273682749637978472784936498687371712819124192828438279686426181434328123721296838462978736426862836292937838234789386191964792472347924269479672498671769394249323937198421686937863924673486916342619471839762868691497234879237267898713271349896746148286197242167184246929432718262864726727236898714261213186128231627689178146262847643291631383172132981313468693128432927314361394741314842739231313912789434734146938923861768694892731796238128794927124347239417146897961648919149381348231861232746972827431918469126783717413891274724918967174648389374124847826969372823494738479846296783167896314246827217278743437164972743139648192686743636214989761793894812329148468217194138182794812893813281249378289734786178134681891763837813976239481718264183274824693242419127294961341467173823626471316363987917361286848934162832489389121893198417873486932149479383831981637249328313717171797826964173486493683738248743624893218728641813424791937381671613496741939183816249431838919612472363238919727618264642917891948461319821916296974973149734631869348136462479419327293737373679482624273417987638949783736464743163432713691626873148164748962728986471979824148989174694143426492613672721423649184932612848624284242314379437279263293291312426421246839398128749472732847242637893432428384261879286976789694767216838976272928468498281782373918734867672678938329478416462686837319187328738636396432716764248328347823193837212691367632898916274186268676726739278629129619469194924827147268763743797343614279814282783483893742869837393867649634938382474136242626282128967183413926786717876871713921828487962619216826894748782364819349468343284262876818247318769798232647286264814769348271928392916193298384827494647469494613169686791793893971878319293289672826217423817262671292634986729723196963138198161379642629323812637937487898914962464634639418321824281812612673914836417386291483132689823782626142434146891392612381237236942971274172192638631379768929896793943183732938734216162981749239463948971763416461372782376728798348318749872318978478426838681792186261787171817634792183797312471492379193939167469896942498624786861316234398293734767371898943613731218937616173212867184232126421416397696767927981768928628987217276734838327187261697931648628989384638292621829643981249781262372942637931847494742812346471641294686342767826173162617374629867843467927924768269821431373836827347414348184927137413861912436347142671693428164629678913137921263821296178676131746863426271616393216946461763121632416989183483287896496791313267149236847892818461418672974361213131943794721746271874648281932182362829681921734672736184238319487649424763919397968293292672821689726741412378617927419121816937927642169317216968947432467961674647397217616898962781787361489842347216242678618794673636718148731424183789737864729121413962161681387327167678129612646987263147837416321741291674916136241646273618432972328389148721271423234138629896163248278649123736961828216143671832973938682812363213421769364847367476287876186138214768349128179126194324681879124989349373421394161817818739178238261798736481247431432618916197239136279736976429379648986329426327913946171374398697878763213219483678346239214732318189121482627124868679494373931832813679486476372878296843876973186934283461278384363698793876289742363897137872438916934381726279636961424912186246914748197636928483649296248438126836468683812671361672742972862378179737497919689298734281468473168727248481329142674163614343198214827681838426818747218362438132196762732321497198298414786421323472784626484736471423137817289762391689243737121284989398341278161934726864267918439364273897379679761619826147674639219747643898418493424914912312197243489312746386981363874273432467639427698713936324736981963769481464746934796928624763631413874327128294793246421263273843178742348763264939369842769243821348167376314743812181246361679727438462397184129821646976937383734689817267941723726218248636827217894916292348278693714784892318239212838397239736173237849297497686497963619763739374786736182869819693968794219169897439728121483179879289732396417171381214821879786986742189146983273984678636361921674798292827182826326487178416149848176323796321246396397279614872762391281479213618349418978263781374271612474182318724362731291947496484393273743278142468724683714797648143791218494673246376263961372374731842913149721736274613716819126812713474914236746846264147384248371678124616931416212946971273847828728982749687824796917183842192717412482426469786971463191397413676439839439398917632464364281787961462376893472789421619432169794386739489724846423243179728621364372628962123934129292637168739418797937892436748746136384941616742912313216971214912736932674637941214972381829324127896231647914747873136218486742762631921848968717291673742136384617384898917173718717849294783141848493137147372729838631682718732428683427369148184127874618647947641262647674736349239637261847827212312828376876747292791936479891329674379296486868484372369781761864342639732342187389718141436167629348363826498428716421319496247494834632913768983832794891489834389793947897249126317172174696768186268136718328128424193476719798361237634137679217174978914236869316941314983217329326464969383743497424917939489463143892964126767286718348768374734619719174379321286791373231642148429627634923437346349393123148723279649364142781793279282141972463984636941324928214794939791693928682434267316341786747616147342474284861624387317439768471934823714671316842827241246296392498719274317264812424893816484812814247843293213412874126296269781972914392786794983197146934837684868429876287126891867397862123928261242374989738612729138283469649143617983893693291387231643274198431238792191248143712479797897821237631781398131347821941842943924769137624963291439167941979793913236862419141497368398268137362376974717868343138214318371917617128319829727194817847847381871923179324719391934391362379617136238281794383242968173463647487282974272471762462461962979127283949473879724734713983987926367689824679641798248797839767816817347132739497462897192412749161642792732481291929724194941293214734816498283947638419181781319693817621431638628174346921379342692316197926318247148237931984213924916896437246419847172424918318712317314631896373936162674721271849172484716843987927943184832126762934729126932192932914892632732649718147819386734769873867472137164289193681671639387491313626418427174798283962394816381693137343981379192427893832686963619469471672689761487172184969312434162936348972374847639142427431479798291269874219868419717384181717842834174787284671864286718437362719649612949814636782917394131293428649683672163683683461236341641823267919623123123423672879374819183983714298142131974182326724693741671463719869878262814278718646278938918271741861474976189784813817687692418929692821726987836264349289731673767161486864176161926791797814329291397124134132829892624276727486829679739798787296178767374642683738673672382934184729872827846386249879146147169492398731629636218389287627132892178768784248767643481396274268426973636371343297472482317187412932481374348148142819436982987627134161792767279871269123839787979671947861479873498616391321364612679431879127679137187696431231869687648217123749879476948249793723412924823216797272172371948343792412787871793682926314986328727163634121727419412989473173869627817812478794138474838478187671217961373287967398298369349276389386219219848319363839143948632676893769716164389369476364312672142643242814232134291767483831879846961376382826393878683219436238429874149747293934676482769767642619127423267824791493648346429847491284817989831749276161638747419861386797816281738212324916829434898247131231892383142171926496132847164192983489748923976247898239791842648384862129486484191698629362987494186818941862947417319834926268727376763939374164891368793723847163412431278631812741238278146819293417864364629348164926193683768149276282929676796434694162891642736863678383132973436794237618171313796817189491971263828696878419481431282932462923234793636769726264672928376323247378247312342814678436261769176231461714823836189863242763923683639387278147978714829172183961284672193496478412148323234716937281893986278376769136814827692748781838671463734872192187683497614186272341647896923687843616187464627939748289814387278676491427914912742421268232346787264686981787619169478679171368971434329648982141762726878293717893819329296126878129379634928167286179347678972974821827162798478942748213264246498613142943124797184646436738674898328249373843937329498983262382343627623486973791736816128481968613764364267273492838349478639386727212428743868124372638129139896926841716138379819723798163412926718938672721317372496248439247168713132138238264987369376232436126764379182713282913717232743736171763769417871384962392727249762924217429372163716313267137313698162729231473989868176484289767819798273194831921928942196349283974961287193962614828284764876747126389383214379393969432413631646939279482629161764973862963789621261484976347467629619626191263847427961978374347643712391724891634841791671976749242467693981767361434732182649486262387647676731237416417968984636176216164368719238767643862468929324126292728962397894841967416328617318636289381381632631239248683616821423781282347413939412367891786394989323849694986784276718167489187671327147879278919397871836413427486731678649493969616184712382941481387427871739793917649747439478412348424639632728363949812876982878938798312394932767329838629293292831682937249281868174764626768481796829489291438619492971936964842698391398732767418486983647821341263496763618921837923984612942764891789281686878418461291236381814878619839694623813123768396314121818717626398421962781248214131619423623983429692738272692842729391474168342683626791938638137319786174394619741914687672692982634931236321842817262967817843261323467326942172482687273824137163231412438678916379382493723823421963163948737217949137696197673946124271939728146414693927274384697839741716393431847432839384347989378272836261473978724984781892142819834174167461981384167828764194794313697837846768924837191989812761821893861641672397916892837171239282464368471932684792189373749198736913631617948362737646167498643126212629138923943626382943642941462748928148141924793937638186943623816273474621643963467367487347941246169138964769691814986319798241639432138739439743687616134681793438482718492676476981372826373939469438626284946464318768932393691639189494871387176196363297241423616847314684697367474724184948342162942121964894147129261319631863296131743872684214894932917961783893714678148971828421367641319491682614946824846493493136436274262748369423138268432896232418287428676862729879674949647962649872623834917612341971741787382928268748162938316783624248134341343849793163429312384686829792893234139137179316312417368684846284217698679139482637636813847672391362476979121821286836381626174732874161746742367473971317163618146191891419863824382862867364173836129362762793418296296278616429148634364869796938696384342384146131421313234169736819748731696978939431249326821617429387686232839413483828326392928329318186914862176928689642896728286891237439172626292794873484323281872184281618168128486463487397298247282624614746818934323721726494346714241432368493621618141821374893692828176971921421471321637243126742164393761982341414167916147181723478219817389642632736287434763683919847484297932979718316179791962812491479619372397273248426162867341317163217164727139863836724918316767638312649764178294849316419268124324346728648128413174721342123616471967976198793198673246293283231726327943942642727461982832846121614617394714916378769632174367931464718236371341438234182398989829474376379781916872719191928932463761936384196147279283194131793414762743264246167138483627469432974989863137248341836837284816929817423678478748646134164328798918414371682862797274293494694243626317969246718764742934643138323184237267217461961362126141473878747363824214236764792698724737973232841741949279636239724686847376293939849841491984184948914178674819489394827942916362361318387621493423871471942719471286279394874713181982197986813212136796132971916326876324396947937894171439479439381238363726781639687932176272417629286768282616287864682728413839494194236192983217424848747281392638383432973131329719462314737937481918298613918946934217824927267964627872639129142683823213193628689894836921432473684682829627289638261793892636823491793241681631868212178368268394142938979398481616783762431741684329349816497874739163979617491243496187147431723279328792714671486128973236131739291627292161892818464176269237923848276879326941672647819891648482413926294716426832341834384613979816171614342839184272479847169894647497936326468481481721862732912473876394379634318616494648398717368924629269148234874132167686149243481837918684618963192484969283894718383134947379193141874919823831962648791876726171696814947416348369864897979292621624917684898989813676931876216979861213286394942872868219389436276462628371687243193936724682693674972149393821217828272494646139842438737187976136232919417949643814626876324196272423131838237939347376129474239317296943916932717624717614237343471286416426437361234346973872182343864614634832642197298731943262382134913437216724216184639691983983132813747614817361213167162172937932827967343824832681697134697271626186141328924629718272794217892493417848179178924124246374818274243948491729729627981246293713232749162147434961728924839821973232787361328238693892363483792162832867619289839314281474239321316812136141214149679712898613139717183192646864742898916787846732326467642871397318184921713437681479831614676494176429621823823834928149781346348376371767376464283673834943739182876342694878124976743976217836796914798497376284723437948369719196963236283873239178497636898474972794768471828161632891763416238386234148419342761978792187172761797139271392184142174324671367429843921361378432367638262676474646718298134643421328412764134968476781324279147464618916869274764639391943273929874139794637949274649746271813238798329362319719742434938686879641427414739838324743737167824748934348786314768286463739641938142316346967686291414719324134612493972939234181414874694823794947818641692481478348719732474272149284979174171289814341248798232941972493783946386721617979367693982141694283917678271741437376462891396176472386789792729379494896214142696296471729867697694343849627817219492739123763974739729767436378179137913746468131313286314682174318476981831267369178493239242717367849834169812321919742341491427397369291462179362697616727834836832439646936842936874821691724136127927174314761746798267436748168784737897619876419786937682828734974326319487676439473617286141976936437219786142491463893742426742673769282846937163261643241292791498324267837461793174618673978491738178978463939829264763126267914278696479479174234382637932727493646824934193792931714647167427823469724923736481897639436872368129732768987693481471298749213242929763918764741618372834986943238318414714721829197923494787141634127694972942913473143642483632942642726321323829316181712978946241967191647418236968698728723414768427148172613176832723919323219874383714341834676832176486147373238497967943649816284232896369714649616341424149618438681389434617919167693678316767868243149676427826327634397343742712623293131483923141798729381718919248497439217214694212367871287368192618939197618719471893867318393641616748978647841427961279812916321414812468713423193148174134183646862389697161476383619219671438719847493167498172834723126291439676872617823298417973837289162672874389713482342727864372318143723831612891743792894198472423939868286479781762128923437978124384694181769798646712318487439172328297319264736482121343682768638471293186262127929236787348796868182931897372481913647317171698267838314939862623974731936184982476874936971496136269734891392942423231341829193123819292431268437978169194146418326428763231721471647646731348324969729427186384834713827413612469342439138186429187876846414241941426769121926296928913642834147419783942121413873283837124343421964329421986321739612624867827876417292787168462683126498364862392432873796971919896132841967194136378213818437616948787964286282191491893487429238796164174178321829316843487163481619624363146869362878462946213132479271629689624983171414247681973697169328329164329729749476397623483267126167121682347836191713864219241464328381218392872971472837169287397381393621912848728242386231296434128386937398283178929862983291842762984767197389672464969242437684734878492469379279139236768971676146278147847946134628671728197162841749768131981917893291492973939738949718196949216813782769627393238219389382842682619649793631831727384179794974139218682897186276314317612381847937192724672161643943987917314848439374879472891298314687268767624729274827436426397476219439474916894231464686972913621748962949131234973428324734764814987978739787168161747989838268474913416246821841382912712929616792697232161634639191623898674847936341763689482964368312124242397472961469479413496867871738918618618261418474949862614863423792143748932362378392987121964641876327472616497841391718378162783823714691783683416461297861632862687343437642796941648484839491712427273912487816476138234398691232462186893793476413938148278343489783467172342687214648382146493176387178982763436126179162342412868781842138914794349493169428923861363676739278737618262187484873863136894372174719496167126824787638429348473693972968378737617297282782492936827284382979739716348191878763126472617983747234217362914783879373796869712379712742132392373748748768634791813218717469821376216492942181827867381414234261694348612341624239261817673898213198269869817898693121249619186464127693868438427376491736341342978139216483918281696149639193674732387141921621818747829191797289371313832698323127626467274297648439294628979798767973939613146724313931964831964798728281496234813737232124176971913243467497168367318984783847237818796912892874929794917618291616317976737874864913897676392327613468941431237231846494797189416872963819638276364373173617234178262426139621683214814172167294947914894762393914626717931297272198394168748186928219673164682928431642827616372694781784242867274719896871347282926279182917284898198398247926398969239492167813783189627172784193797847371787634286969641747697926262838171939346426986238767827167687818378689614984643242413868279474786169316262931391931874891869789283464676216361393928384763178138612636269728273498937897191272921876497273869437418141937948614321394191919621679738214686848178934179161723424697938238927396262636287484284262196371496341741219262971239342368619714974316984764643216496497316937691784739636167629689486487879637132794896168216742676912616827974279243831783241424396179642141764238694813176483946718683683897327684794828124697134921767972913783717168174343814679173149424798798283243676439184181764764921982641712838648494831912328297821967279823218281987319798212471492432437891692728764369247196149294171674169148378729487637982684918916142791362416187164768268621684839764394312891717868727263947938782367216467234649363431473864123762482786976832476329898723673617868471948469646428478426386823483462649323461679198373629797917486837937278783283924949381363293298176172131287192681383218269176928649324197938143179392478182783898783413743712913486831813494721393673263216829697236917817631367694967237979814727214647818928981979481267848694869423719638981698698329134219191318278696898638793829361384168724391626421769628379369497291378629389286748427472698673979391834764397383814818713279827689864268482847412198489268191379821278721216363417171971849623242986218674176742692678726972191494986987674219894861323169297943468976148324689284768421679213986921626348383792489796142746968121731793729897838973692191397614674962767347878186962429394169493716297231682786426939423624871629732364736743943897219161762636847474396797684121923739712427642848413924642632482362734972863827436261413863124781483727696429121396734674674297182397647864764264898964846787373938197498392717689892416396934943127281731712872416196914942121329176178628279616212348236131829278436124927371893832181428782186189873261497136194279764763712981824346164717968281819728242148131676369829217821842934824367131263496718178173483183268671672362676918947674391681431626964864747984179469261732126984168349721393867373849193727949841798461829678179193143182671796841319842467949879238648682123143282138789434627649274192493149317978717674174624137281427396714781373892626182816719429369384938976836294791814837686216342919739768379749836148196973616373627362793876368739492736891214984914648329318691369823213723841982164816986143826828174617363969318374392792632628136814324912191367916428638393183968936423891914861696928643834862862829183724846237618738249164891328641431319746973421927194783639274371427671763983963479428292198232439672849462629646918168149739121267392623847268421893918767237617941479149293686389671631643647829473426379128167124172684792784867416396792367214693126141291492149746263724238273147472968261349689649136197296729218634341934792834318769684343618297193281371716182898128471989138728341981319239731621832416273764183741683927326161916289794267238232479424132487637674747473694929718279312647316978438427827832697427816371362382949469467281418247143686343749794282742627231696927141621879434384147621621764212432978943817838134714762717619681674123979241763462712847427892621837826719292348486169878986738146781472326969749261317163689686163717892763267261696978479717214172167814238163164212824843818964864637641464324842342936767324297362463419327179327373679478629623681737619719167327438193498763462764383428629279734871737919346824892939791796823424624141984842426316931736392878174737824236469628396428426468273913927128397637864982626289491312143249294384132837163161242832946467629623821429276824273749786874383793923926292938382682613984623292848646729613672476849486742934986938293128231743481787429491231748181318492187893749239296212694194218496179729828131794691481724371689281698783238726498326947963672162789823643646213632724173413476126231648286424787968612724324296421926296161631672938317373264261694297243696727694379891978613187984216298973943431627384241867184261414618427471896483896962193131294748172382326987482464218263841418297897271786837171414289323286164793769393763283137367698269831231298197862397842498918483614274818249763134929423962393829839628763613834162842498248167423937928748671342976972932646821648987316384724329197148696924231713723262939347192143934789816419287376178346469496742463798928289818172389618976218346821692947673861341424741324127379683136429483916821419243829691649676313616732372831934819817328681469248231729417647976971431471868376767873627698174898937642612181646129274818478314827248682137926214842743269729471684369198691647898169382617134867876464193171938632972424219894879471386972628642769276818281641718929726419814861821967248731842798928962379183918232812467829176823624184186418489341978391741682126974318729239869412864814671734639734919369162627472931924268196123748489326342748141786192949379867261269493463426284817863237262382462164963191231742869842792419246926894672721343198427389476462164371736321918494786761372816249392874296219321617213217934981291861462921394782713627249424379893864262713147296241879738287987928764979496168743764349131383697413798616123976237821314816874947616938632621932919764913891374282727173296164896719679371962642914864728329817498923829796197168731313639374129634798463294187239786326189236872767348314939767247649723619868237431878483679762372628327298123918782982131268493147823984164681936439741637127939173947892483643848367136842129817948921249321931892676798418382797348124287617486789378426484131698969371291464831326329121371218921297197871987129848293978798639241768732912681484824731621862642942934198762797194641746172914294861876972987316923172719241832878673164626924129289761983942197161694768929783898324198161763849261939198486727939384898762323423647698419697974141849361329284813849323942694126732849121396214624232372463861286874128139387949248369284297264962692169482714679492394362986463738381321496491647478276386974897948763791246429149763176242149818294928786962913183826931469627219413289484947412912438317986791461963248683298367926846923879274129181671487361696898984373689734928697161263689217946812821426432984131832192986484612968137694621491847862418364212419818136384291794948134239313474723973247979474713768368912342123624676828187693846968973686742147291794721416936418231473136716131962486767878689268737121827641341348983943783167423217969696429841234197673894826482384827481414249648391369418348636382143127494314249734718932979483793282642632689263424319342624269637469248182374984169671417148921782637846728289364694782412927973982679474949132837141261431492791321464281386387863161494641328621317421987431768121949727436139879417139294242179412989371261897484892697219164649289218472384973672838286329748373963146269792436323141871297191387182371978289761691216942684847976239838434249769476498761737861414329171379782714161932812148783741367869821973621241268491398184683646348367861267394287879424684279379343494187917138616792378672898429398626823632694984642467473292936462874691261321243237612897313489324146421379372431898746917428178418387124248739164672163976197627397184741948791286387212974623649214393642341636191893146184342686917638232364727636919683178329829167986723942482397917969717924142912712318919341649896894937276727494271873616286938291736493478428148932383163813864362891793643924938932698671863724931386871618926143139834192743849761698417327673434871868296973741797384872743286489163274242768237192613634789612874328629896382646294864872386979243271987898971847312726843876412743141631793486942627981473714298238138178484691694941373234394181696369247897262124324372162938163471361878364983626747676127491812687329862717484989187926369843163828327674734746126483463214793921834182972932132497849621282384784249267631496873642426798793181839738787126324246194619183289787132134249148384141436841939271832461616179273161612968418626493163179786434781371216937821461827962878927238636178238272923727464683874121289164739126313871832396323413637183636736864894939872363839193673234624387647817872189684398976874874147973418613673174149481936246414963964649642782818474897214161691324249291794298346943878612797917831678197138263491632193126938239439738246268979386276139734964716978463969848194949417817242768497476787464263927172498349239169289261293469479176861212421489263692184813923983492978686787343767126392139748163671381348348134698171742347389748437613163892437869427247124316463681434368681641676749692918984712128341297249847363823826421382641276123726927416918712871498473872681869832913486498279848218979142873983871341673121248289267421746232829284798271927271716867974326712849812787686743896463729379481981262983827347376738341462639364862498217316432124891239831927834613198242689231929139789231619379831493698797468416198732383849413473491813732467839646492642649367494683676421848942712674123863784264318191826381434372486846263618313134718427343641343763489129372313634313297186862619274697123128762473196471492734892461731237894829629123737694327482861241836213867964769189674343432643484914876326129243962767946363484168714146761263127472312639428268632972162476173264842393638272923134941642928962943937484982174831432627176987132798637283171726842316363279836426246138232638434397616929816947312363146179414342424618726789698689726371949793489729363186494319718629679368289612634378738643436243698748961396138268679871414641873971969743297373964873621978171672643219174393926142627134168296971292371482124713987278121743139412124949371631419387962626376314928621893617926986749328694167369834963972491471842321742739864218124869426937827247387967492684398174917329168791438437362942167891983728491389468148428926763181498939624294723874726873949693437384127968479149834341648618148913791769731863418216247198489826746163869621387169468671694194628797841928794276836967497137314146362786314183939346728463894846386382936462323898383484724843718637937828146328946768414914264719684149827192973676968693489737829793198314279123681631278638464682834982121969731276214396979393947163626787942612314363263296892386143169142873214613792943474786897316247214874172919283131947419173724938436329432124283898313249672161832684623793237176123464842418463872824836784941942693934343724619369829634287136482724847397171979638471919412169398263812698413674187434813963987486723246846919163418713121978917343481726178784918749728361698989878968416789173632842973981724218242848427272723641387846812964687818216791278643294138429484846867671428672191473671948921821673234172986236743167934943784628939843263139381797621761763836274983976898769491764376748682976969476483429646298919637414621734191878324761262636828781736248973831816128313872379463979783782693623241624173743293693494362674178261273217949893986326797432832818296393198712312463263218184189419328463678362381719142164937419418243916389762983648787692434636736278619391797836846816291464189839379216826246893819329436869343438391978283924382842418972676814173271984369389179272164398718494721974298176341367376218986213431948489641689837867197283628181297818964623237976792376426139171326983673237616427282489782874842973861374397374262696718984868437682828419847973921416821327468781989761832928191238269267217472637172783123746947371963979829873123431632976319418978296247492871373973832434389737438493926131427249161314321271398187243264174616891472121767839626136716189298628239383848294218367942431236324871828726979862761621791681814319136768316984946848363913671782174362679728737682492498428923279794638762483174923138982873176146824618141232843927979419148747343821767316124317862314147298783863964764132329624682691392763646267918372368174736428341984279481796138219163484183769728391276131684312194813817212489637878734279671827463793873967972687621262787874947164134179769471626391872623121648269741278984386431938281692646293927867467892847829141972419867176296936828392767878318969141874173962876134978914781892973812347872414163816263249892746823962849761296364124181918494139148742684839861897473863467284942417492318614621391873913931769327687481682121619421747817314198763192917248964634714132328379497142146389461367413646172398419781271976124983263798383182648671297936178184247632873426386341948194374919787143276874836492968124949171738216913284348323281932462917971414746212423914941723642913246319476361381891242413873213682486168123619719842464384694126494343212797316319217463181823431623196879171371834937916282168796468684913796974262814287234812926921764734262478949761963268349812487297486467873938268194741818784823692949829817167818168693467913237348714741382467981734296961927843861394289748424242391324684849231973847431769734384746438397292784394934793492876798379437819272398328769842762691632316414237141369613428983721289193814749242912328692467241349814638927439646946139238642864893949313687371624196184764616421696147321789367191279724973191818726836974239479218943126247147216723263781289749716769872392413896434342684893743861628392341739762373214832946324968397412984617397982343493738716182968713989372314391297921819616786139636121612947896497683949483786839731426789641394369784268648381341428612342629471479213276983682412126723491486126191217271283914636242167191492868382671927926936827843264926123783181261717216846812789721826371274396473169176378342438396272934828646378282746437191919329461787676371329436172484219687436862767471634386368798148914629678387272179236737614212494912421724621934628969787392863239468249179239627461723819483231947976972848767628498287129213638262849136146873472687691768763262763767397417691937181261868316832891436983872371268978721612926149797323272983263968974398143942482927986498671743624141964174948634917929179413673918617919213186381231831763687471219713947428464896392134718741861783139239843628141394938386943276792727273761469274212763929238181218213841468213824932729269281747314316273678372478691823498729429479629179196178238616846387942474823814284146173436467292978741712424793841347217981896342626891398742789483746472738381974798262873272947264343764312376284698219791923627927142718184179673676148436317684283419796749647964279761814967419761684361248976313829726313212972831634864241871746467923748214363498689236823913217817978392723732739231286264969146142398378728178918986317162817349191879474818297482913242869838647347912781919784841732198781814769231298489427273827346481282949628643796149183794678748382438468671218124781319474296129387813674734631317398274864834934678682718426893168761617172968626282847936736967243489192716719243913813826738486923278421231818716434328267492879481896346383121362786474393149891738764121831894297326469181281864294243638439474792426238926463283974394687131739747416197193489484193984148984343419194767326391647326747894389316743723263434782362197498792984124819191479174728796181327393868748161474838247826128724381976492692748479827682173289131329476284638327232639132198426474327626947348793864719127682368712182497398189681626287148912984231967647414718634716743762467314136171862324294723421414369346724296789192467896249817292682147372938737272179281491683971764219369364846478697184149878923923749349643972973121624829767613828671714924396278769813891928439181378263138292439732629717362639426974182439471893942481762714793484879742468641832189676287369642323979174818698617391487362683238714941916473681989383737296278928762482874862784941212914689429169268469284726826894978643239461483176212964374693684168673919679812623841237892734283964272469487376737384643269264868382319828219462434792797323142464686714376847976738241692692187173181493148262371812728139491726834913984732392984216836173987374316964612378921874732814364941389482486327916817487972393278787183961426279812484847263878789397347689841843134938289327684373273421989871692624386293681734974684187838976327268948793418292126234349386873879163196196794121891837863278696821494893479147829129269487216398673492398378496989842963212146769464639624731832848417463619276214343274731976483218143243264143679476912869876341738961942198171987426914932127649387283217146821319349134327947697291861921278697142138769176128171292873649329363938182121467936827386738981679413943498347491371289672838926281417239717368384174967236212964241218687642963412892367242367974816272462198436276329164698696387612371872891919761976917687321327216216763168726842473729293639347929383698484618169394891683289192169397847618278762494678737628143839412137489682138618783789217964726721848696497969272176986263838498364914138329313974867697682878612964268432673628361681373498617689718293768971734631278971712481471243416267626372672694849841348147123898162482129363648121783276984234323671813131696814163474674676268676498343869421261469427172871319249141976234168347868219212832818139146741242721891391679381718717824891648371397849689218617878682367231218293169819639262361361767423798471274173838464263636927343743183986978426281923198462174941619621729191797341467282919361214314932918768781924964981749791279894632432648692783271246282826376862487184698363847931437278328471763432613164174827326971324316968236461698238761916124848432978973819823986437972943472693684179862793948716214287428246363486847161843738161314631249734314367642919728741269684378481273867486263134629413126168164983247691382646436746838648376423178472313141312131616363623861481983686328768684363918931291389472647971673421721216138676734136483217147369896769692926346397689847348942362471478269376917186792131782947176128921697949717267134982743418348918746792174782189869374748472374741426147278648397816476932693293831482869681783924682642872962694612483216121969864692483642823431734171294364164724246463173217389376281492417173416124312478713762632834129494619434126949823698943849791483914126149183621762147492791847412686824917613638278298637426137871969674641769767679236124241736734121624171414721268182149826939831423834912817873413876823267876813629287878978218263683142346713187214984894627439617949641621769838129219423436763478423167967828616393179437913898769612481248921819424971916417274181463264838186836497689481398298463214181796197868743213248217626926486386879386867234341727849418984813894989371821242314132718927294729484739327248198376876187898461623213971671928631968982387237462896184127129482182361293926391293168767939171691371212138496812832182162634126917987974679286479631438248927174716871262126143498141981672394326134286872724129672161626316724718289197924823724634281769613278178294146423436386826247247932193474968681646814978186369362972616176464749138127326292347826792191642683781869397468637679238127619139374724989138797384689478263623192463134232469481714124138271947642984849492628746372763681617986431923692121623232369179428324749167328261641479793413789261764147848347616794614246713982946787176326814174619412721716213416141782132138268979741767327372748783732743931894672146746838629728296943686378472313989264641878948179798314928212719164197246832783493287697923176729342972497469121614964823729272642416437842764263463879796492874798219176139491423462784894878481461397324393291863791689848174274296874634238361321239731619219419319892878672316381714918687679149649423842348431648616746714134989282184696284138621897292316389318212897684913681693162876291391327879769724961917983293746248476469179314734928179747616923684974321293296763732846127279184149374264142616468231427917691329848614182414878172461768762132176263236724868697394182643472492914962434263939489348439461248327812368328492387376326376968723612641649717386121798626369496231961341467436142791467412964767892842726319396934913948342137831798946981632373436728427128434319134796461417197698937376126414646786824738274369379361868976389312487923274842626862416497317912631386498483172476234721713416896298918962943262492343692429262143134942936324648343648287271971676763983937148497682741897243479426942386291387197871964798167246913671497214834743968127839283748319764363497178384843814293137891736162143484936316396784916792983847478397848463989179721212391693976123928614863867963238719271968969194781424712817341249298797986296436143681274632723294174942372946941347431864729219289679679248267234384614347893861824938749742164763698686389382321636164278174246186169617484213414379679261273269436179491827313931984698639896898136984287969342368919261986849726837678282396738493621673719321623121464248149389191692147846387636379892879742361429472368274231971634929146931218467371912849139796743479783464136817863928961726174324861831817384617627129246843469691212419682386876769428614626871621439793789147348268368919348161269791291928642434123978917986231237371347181861962876271748726821462762396294268468474393782414748621814317892149342942149762679738217962931847879486327138713943929216824614264693926237242318621241761714614828198362783726832814767484637871732693962462961428216189826287683867619462467936831269387972686438216717379287621683461614846368628183131463434617297234842794282648274173896986238797198421937431242438643173729234728298797698294616281972391967296838698647962789743491867383234919139198646787296468494764924381813269814934278626941817184879839169624214323238627618129737391731767891761892674194892898691897136126418312781743623897189783872627249638393718386436289129762971384343648142961937194128648392641827161286831428141721932387613791217379484216839467137424172436469684137234324716724348127341724289171328963962642193613127278162729872429461232729796319634983969342183982143989268248723846423869162823134182193914789876824161686832348982184196387979312748721924213186846981428262826921641616393643232732974928161434763941946478717261714894143624796269671832862673181869671249864181471928181393127234379783618983498484869861918797376486816264627489372143837837871232719784171647413161818376163837471626872812983783164289463967987986981284829179683241824646829391923183631619683246717484736848673762747432161272832126724346379492689384848273638238243817373919178287823268787247639381923176413492142924682486919861367149683179726241479724672698698478343627648162464916873723649468212731819237946924236486143434263468768929679282368984383279217641834124698737839242829284327148481692628314121683193767483417383926276478673164393643849141739768698946937479213931476718273979249623864987136489396376714382931898496343496292189467949142374248762736794389141919198717476264617417831971631478791814672826128437941696163796364963879749168749861727878398627648416249213797623434719162196486841689372872182969834979737942617626929313697626874632792932818798612781472628369329698237938983168373919213438739481246984874346982694398381493219483936181727463863838927816426912873239871863834218378217193171727426384396921437368294962872137142962632879148368194764787814878434879341329267284162161346489263643748341631237373637373676376817397628398146169283879319131786936474616179893732167647616838942878384364689834616817691712429681683427869369786291676931341783987643742641983672717234986198278272386273283893481746763964649182398947286471383187698424276183438323942727276718271234842373947149464847829383919494171927213242829796484747821721963194832161484719631219178927914293282439476494742137274263768249289264284129812494979362381297437298386243431917393483893814267963146949696194989879413491496739181324727676972437639734612318769762636421423263676294238983432896276241739862689398649319438241348636748694287213619768926928618162924868712471979131636467829327838676183186261982327289763127389789862791896867292793794936732693713917194328636982761742826187214326487437364349694376317464813791798217317816312737614964294394261273738924243473876837371721696878696719627969128374864128623121821298147471861473276941263498738281323698389194626281264139817127619737626269636184713972324389437216132898172134139838473432418148123943148167212872831429743743138964268769312918341439818381243832869364974648121496767638232948781742487279292146737181376169493863834164782421738318914367379737868973282612698636976372727124293148232917923498182971424949628632783474736983487414786732381363941712419742469832382461479861492764193974869164827126724397674286312637832313981463721828134671623298394298342987418716474812879719326948294182827137632182789121439349647468369464719694187681732371926498948936872393914173278493167273473289197181436869267412313962981879786896921328137486247263417897619721783871492372413834628326978923424972126287263847636187489379689679863429846713437434617694281829769129843619192643964343419732398343194196719234176236721989876943198716174747143649342839868121783794926427962748421216869396841912963873843936127372398274728361418464274369246239418462616263647387923838924182648171873893684647474961848276898716783272428692127917612764971386232124723731924214813463918263196184234646432947494984634271964292714134613841487684342832913647237879283847293697218968496861869361367434393932164837612827494693132387161962196492383918298329418984673
2
3
4
6
7
8
9
83
37
63
717
312
783
#
