PREME/G/MU308041

040439538720187568690129548134454494957747969384189596415559954766770350401155856966552642797822548818991913803002791817081658157780149401152779497916443590495952274479323457824626382324115403447938711685323025914651979914692582310991490420390741658071270379017413541924573522281875606777297906165211041307745432463796061794804205856563139521523422445622847785161555069957899111689351074564279246502279186832756957540435872359547091302816206830122240264643732889608551434417964055807681493364988118278300170039246143557224687610155865010515863320923235721046453999118190421725090968601826615757106640080681026009228511133778015893565851912792640758177489922978011356120802790918358546255755313373136558615630104998227339964189837812605058604074992332961638651032873950466086751476692623090006266001658906537267401087259080835174036568956760550023903371487708146186495611450051416188493371323857953164214789619650378661082880036634789031260986872809183108732691707787153810850857302784886337321810820422641965785146126441035117436038989285465260428858412418861471733925776153713125126593234930744177794789092798231185089702823404839679615739360852030145254051796990501838178364603156340017336542355767829121542791831974420546745879514742532014175637678787896809267879182375831895475242896557363648603298053978477675308921099615764860588572773726439268423619919517810280616280475223274078654816822383704591742630257425002745730400977899755067843681918987669214624378260772499394771785218480756173099363621718331038083989266548014281693351579566301019487112145285650396781426615910049103693828516701451387676776559461443683732627704863547936682629291296427254383932142048667861072637332555705575616754319322583724024897515987107843671288941516965440102826497918950342694096130757409573881403460772525965545217899503321930485955136965152270498050971539538296131710627918050733230146715732634158917986082884874992459191699190005033551568477052843251447476325336075498974573506503502647100122221138927447300506083529946509381903800941142504697695521309922636891617739667677650507503818039846612776504248697911063634949334567339162049636753695904367224451490619585822675534931143442001235401544238802608183562619311169666479896408209794209779380898601438712666719273438092791529801913916186978107776690802328735448879061896183196042337479050140329528503643579565341578676805308027063869311672726425862877376436766413055266326679780463553867386581431721090203413908763616800177893574207066096482042320905322107373225637701427417196450527928465837115365971062669229263575646401444022241107729587708613046251826896689553233172374176124209925452303534524438534902121798947582452433264898000161361538973441803253741504704233320574346872940749307206585580884632922553571520528495376939733700917257589083019997769215524142915463190391841477789199540024856610790801945695124561316009570217896258075209414588736629324712835496333156464095612668338581400625501910530989993338577259842770951238653280161852360497274409721246545508558975804531805699324034934050223841761436805222766054358811904606725948516754975640909695926216202494202044252427609685854116083188364107527333600550347426003523182677131473043080454118636936014335456925740155382603342204614945838225608323337051809785161864197402215587584482310817198714386630296228312399404818454189733987770293437153088883099105082994895504558865902100047372920113949313882778658777175555407415906617864873427850878207766524391307863204815954779644767729910694950851236155892872937241817381369143469590693244243596806349858282646275388724355434321605565518056621921881461999669485799765676310859944879666417959652179805939860478421040183436261230390721585288454878204006272644064127988828739471771712100298352416118273210871027936604840858786008501104072321813585088956296225696796919250201062545161123832043168633527805408930552638522392994683455920292832414040398582492151601061501769619641023755573151993149952269987174511028624874391627549291465847393464226911007694880265295222538747247413910573473855290157487836353647644398083569957987002005021494753597145281130650620581579426631521197793736714540739778600481920712885371646673017910858848137163063915473632668610592548431558825821832965683682077894237800403686110488425457925369930562221700739881797657740961860566748285561590674664378650393694356061615924287700454774965906894649050273506079187694219400367721847353703275097409535179247591216913596936256530292488634633182197547470451109210356934792474838919905154450750820627337989157271257201573350269757736503956467862815515252806882720144917136053342551597420171449926549602559660916615146325718419050358980742120396628645106896720353012232011284945453966260024688783466562651030626083304247913439020232470295195875163363309362973344619062761955722941516731132991692229647516357429387463024077162792102116981536164589762836911050022517178232023221044626954510525830762474197056163641851695614257138105132072692062978216783144182104995542615991973699395462787049782430764676564198466019702318138342371709558733592384897165459234204571406133585211716702497078518076497827716710259946865029036237147859001029354098850349524711098488931721932414754938441039208224695944019429105874676958316980339807433170618256033515200110471813646648477558030615823101652412744579114218045158796821935206167195618774472589711503908632003977929418342677847990543156918700196430807578967960473894905977660691960131197519823060611968049686273824329217641986493791975679867932289272799765495978019944875246983447354178618548497880486124101106447218174955417510247307779078574559128244444101284174269377411059076794178394582533551331317033996374366021153551190397327262716000749979234841114434600803763125030954116889323507194822486711594057802109662808297206065772331727263098199810385372518521736083486264338863032289035176220791993471724660673924881728628163587806199826105302705082366635155245951364885352860154328545417229834685772556727789404071777310941939773852526938490441008890698997087735267221074875362369318145948619312209913628413611748022199062466792423353357281163050751249566522788986828305741740139348684638907827856149846752761112364583682594392129471259939423900629775919666154757660986961106336072722889054633196633838475071724689023532976023815613601576411830615408105528237660416562070662988234671258122110440882284920539066057061394604673083863602637448289826136416605059595362358844984994568066289971837349562617806265736027439481647380102660464997664286267431882261995989284291903121223075879192277490855729629617137688148060777893059187954798725723648597832978711304803618002444559691588779218918474723354990734588443678905386471845600460609312896898787892956087365842449103581899675521170796922444471821716836396330315098389874548607238825168530542074416395999552045159938029981640717743392596075408829767693540489801222857906341505376590600901998396518466810267999612785540403302163146845955104482048537415283237591918686364147547774218172843835432513320191079382138939625081649106651370649145442593161144869343694349840623154431284709486777011750969314354043818462897850573542496768242925415907178019841881712651418312734648911763937327279335395185971816688165888485736484039912950092340996560177687870543524654498225443656076361422848866578766220291696337405836271052657418329025901748211163859093998485086655049628439115650952931355265980841536417742460090083233565329263187494473895520168851037753496319333500304227427741824411975535354810200949284876217683242853412700203170395850713275375135401076877053471302786539461783030059474070939310789759297420023830369710423150494907480523716967114332652831177838234435790580837716944867762507957791211670587846172475059222919845767633475536912502373841298295034200484263763900460886928050618040730607790260569998808077841844318011403519733736868224328821596721409911074734326639000194256726141273589416013086589388072717647394710020895936048460064978739160300909939265097564759097748284653410600338225750719630246790104918526413254146828614535670214428023942229633605349929742581937953749544347538234068496091884458351092593948481302749166361786761923704006871068171880763335537708548951181086724693259712679717281312333423864527233993511428396492257700419905664440151773827733521692125762435642754562547367431537143010586631032001921467369161381617582513085304500434846440273645065209188757156072504485466570844991357293034991264072320370630687204712960097130911981267296329990017768099693472441518687626936020440024036946906554589379608336371498015598157880329358557336814504739005998813415825013248396172942960721071665307457446193846764403809576680649300824562434688418602794482877656214030475955762219908277679567215223450784288867225181926571649596831331296172109841923086805342826805992895509506743579623250788573840322774415329468214075114186489412977896359783171572679134275063358896020230619544270576726844328686854223600134711308066643477927652445694216589471351332196598982234752073018117252612841065817876867270566326105498106908100596131600951398237701121989619771973640242588727156146401502145191775363341943136807270295779546252683045207922486580169685401669381915165123273090904530781196504225218673214655464135594357445114715064994256075192134446100402891132624870840636587778845754638796608918288901472966548015861384154188541566234455921639099819725530352672693132899785043937425528782634510166707614198948997519469692033902332677760538680475381031939563450053123886908735441656807005258929574412349520087676113684068628145486296217292366376660813067384150929807373893108701309974634439126785494116660323886366469601998025511992169735594907196625225853720235711063885826542611972079360529873606606203620894412649639670722420291441945979520253120845179980227133098651792418088927299369085508190316860189819714693527693064363127376411609873734564141092599903043951453470625004450724758497811777599449464420198033337125060514666054456125519237991370185243233735302932805171566968552924785099037382976514201343715770082137316659366427331227313795898382308128801496974087033356819503539532951098977752305458344846679732237609306313380084483601161260730678882863630546377029200363974317168693514346541216742594584660903606663236686101543842031614577861782806374898515233847674374604601128082997220995818241276527904153509169225012536759158685595007758551332131847284588134341790896232361701321326194436332768150434575485849867353607777986751979785643340729967436783083426685573479507327001214530535580694479647681836634619942553793498602458706694655645069488992543674227892851873566876649345834421455354540921790747189450045600704939328754991250789685773143556226021683255724015148133532723652028516297314782856977492510915799397500859243394766582305358730227146231144341105648043194836788188286631170795705265919534333609289144853069260265070353892578678300693938988961384241578274212833491072009031713812281036970725084728957885659250175468674852263369537290416759253475048632910537960015323069096222471546764200357992211232432730236892528586718520966747567417119082053767152162484982377999218752226057159237167218894904575146000866672237998358528568122731910460400625622816063467112844640696590913330473273800745038580254370608820880736667830854808867326680486110322438909492425468653968086081721341829352405564234727936114294455800769231066382006652529780622832819056794633113895913086547484797913060764826210247379230581015719014207126540553138083593829607527866121843712670162087368506983572680618554288739162995274909278486976094758656851732429015130180038933206882273873670044640036112846192863190148711044300923671552982399421962559511303439810803971160391964399455928646918734799829670467748763036906403650930493501757729304617752439650514167849358770611342920041313483560467550457733767188739210345636625953780388197826428559342682383831731654295412084459813453800929813459760370716182986884420586033035230672207149510717481327752504571034219887151864639450569407879842153403692257291702685557991052101357569108241081401627700941048410169379858074476206586738257103782294892344559650491678583982447286812708236874562468134865922928161054613294810459296181280675941076039747715951104117447514800978117913753161289739583358808499197401190124961856850701877123935157183754812093513281623289763081294378030572955975990973554768388503197964794330373761066006219814625837649036997414324125869133582316245487450449308316155391188106163977626657588541879856138299005730769997963528743896529448984062510880453875309104318065694946102942217430111908184648166225642231385059822111502672763135002527472759116796335768961917254467396847760368679645246407669532371402732474796366049938345267575415403306306573762643607794470378203461996582433135442362177568824775435459946925620917762217144102411812642801072544914202431548024464760041455622947906117259979207646916335518136798547979357910022706235029962293422903717849238430247016136102453805339568872778858583292979286239772246369244282188882334423477034371404146769324959289480880340486141698956644547033668902391571732131945314898753518783802816303225843649014298994343976864790355119000790941184227282801481106364477683745487305867667899211695475496197746976508591758511104477573248576780342390915283401660066155130565582102980936043040321852837351236985446972709764606785881589323801963229590725601371507244567520067404136896350802226451471697429888463285497925680854271864705236063070833674833801077243881184214551216021237049696398536918742959259040631633333987483428429672555724326077466580793488840967803697223371678409754057677982357687093752105663353996205822396343908205597082741017869782554969269043582889009388852496877303411190142776623076446954639650447136078605247434852919742160570923683483896868412690758115121899341806520592241408882835397330448280840244195158921389826176197078662242683398320940921231564701995049911158805870434010368918064894457483579985716084936721094713878700021891560996967272013324715390506162356956413732261371196909458412016883997565093367851039022181319590355942395624130354480010760340254541663493858397886919282832251125713675966933370818013562760451140385977996220400444995603753819054043146863815778474441131422988197421652163063452205019396091392691442499132357478956174198824536456568754296939076677747350808450339935898347754654215476992180112642836529172534052649309963068978190872728645445831307033584887857119170963403927073976054761290264966767607278528879415535955577365877937319692618882727011247871783101237409424230750613970540396438585093819221715474118844248701667482588556357234381741633521828990093513796296063401912173101107125216063126062012280074443503034965725632551889411223573851215750865027017090821358255414644480353266040686824936166185029351160287861566427436340018098374648475199132539180078233779266569048678068558298626900994209886703393347183804983533652232258794439024393430817873869769448343633776846242316833849347518364680655777227190448569104035746894152359120661105553352032005000288690606952568804907438424964401011881322272101269200304080176286354830977416846133539940696273378952740725013727900127970982225436849133117661927575909991472085158010402870449368994806008352736792326152023238337537749916400959730356422508763225823858979063074275015455267547678119945601704660165783885515994211725252932343209900499007418558574984355117005196709330754779316852140974199506867188004444723032771129570301631256921395934166216128560859017543759295442998094103830598633554131620538390506871500165511513156792053806268314604761498879234143646111647842078503419024215487684095601466516654640906575910704803074915650248150993980363259405932720210965049836724549039433397456321881012127241658575154646584331956379902090956511542960521722534823866578865099388547424149233997765480874211062557700773952952049917411467490089597611818785980140824247833727143915750333472952443980839569571907280634846609123246261392216542970952910784040144477707153283814931495179884142415494474768566626455553596056594692467144638622286876361056657961407689063712586853680174052533199111215393976430338187791505447825057742954599517625329970375484225193396365522842309465500328946556029238662683671484148958659448342322244985031015718553253295353160480445085610517473064086309362771976280164466501344085646597243590632057882585138372056767705844170162921622012006623337899118152958201084781982269104470397328158403309684273930680434398008557607530975628275338841489579854702295702902546910081237646708117327196527341428791776585826084285363773092814237186305294876644846158465778726389679828160739757586825280164717710962407574585810230957571369041537040561372981850941195237868117709337386727264973335884080863180800315474116803075521046117285175782724857612524460974747187149127984098451004221716996166874303449397527301500688231859153357968445354308629877922054052710259540819566026931770020743950806218540315054573136726245952625236851493553779279612133255640497450204812378887657432931559730178541861081961264629414474296772067744558085244360649630765289968493929757885986642719395598591623769130176879955005591159129155594402472419355114720269942203429624199692256040981617634003462630029505810165352885983856377305366040709335186876663694683341612637926359245295778621833323485975859257336936293397010669590043148073534936216293992060113441994270591581437865090868842910133025911156247079381938529804654335576936956448579655492552340003755523251612947690490856372957750878260402658744683462339831426687470258081878450161475249177702767125397461879038671797899977226295310328278109516560903269699271333106114530659989375103754466417732131797391563196123473527300299664711756968494880944264009779360823458617160653156135883346164957557839447945164841183509654991639406450276914754400546696882023282308267066447309532813011538190116102342513403556640755114762824962900522337223851977059246796474026628143649427843422337159740697094608188396324392715560575873669794550919215266237536283265553433905904890495258378708408333150227417141705534731591094517751010594871754245241343675544024574693187098728895522839223495933652420425583199467384511612530611077653778703239466940883201900794787351802729026167331866543180957255555935785522768998464168322578418936303338629017038210061089754649508119906628982550930344037986932127485984632730479025111262798505284497067517750278846026351306065869655860139340143466950739731060100510505345167245017582669317608135835333336679621986481179876800534670468390899199387862774197976247399341006321155990901300214291967265567627517904846188914304816258737370576520859505444937500168981946835404141341624245005086619334165603642944142015596671061220584290936463100558158004857915413723542152393271510031751184811106823411658403212726592518623545348361464789996754594260665481166156664899809301971019715185297835223364112086537145810015324068529214545400298901027312364860957313941949299685350718009593093876602546809238787959170441354923926648076971392881651722963591033686356130026590348264169029688777205309119626904655159732392905047586132939401149269121306825511675172610882404337846469833801844745316635430018887712287272536527657158222030335134761948665143156953790781481917527095800005025438617542586008553631108976272586342635170685087145056221161646445169016638844481849767201241898658354102028499870908796762712424212535347451124419235944073926548879799723539997544211639707868572077517237995876912750764853348461548377549385254019765484430776110597312778123688109034630116507319449450553826765249038141150121398162712593333381691202454892295568045530854520309947763786268954187333645835344759442478426107608719405449203595819453369788729105111438069732602035892966822729481981557104214007070107983949746737670598096015906469882807008737656431427038953677247847588423445523359722527228699160021267949029953447059229951432603616487191127023036972579199318522989582237289788618011202916889591459454360074337940682068917179055723141469713544083924503037119301302472164636689951447322728704025835577940374519834846468075065938792908498535136706296054042583274864902353646740470243424182285598838190857678223760834101005534207161374503044424312678418236298659045030118351759745228856074204514064471536527434990561792406596070961030143495401089033856040176592913039237549970274085485220986191538297117340636748156437485294397993547054873471505756615710490573102406986242089462154475836117756408983983379542193541865910862993367742027221627778931660268736244778232690831931545899793097315428152208118846973186483788472832755394417731364830655841072685429929888411478685053070379125501576068149739033466959291948759767988645609779038875940489964284616481856743999277883770076242490927168812047460752903998688846994240228128293804469084071070103590700330035290230748097701395899652335335786230296494101941378132780665154779147668136187744305592437781683981902813095714765172743976449785604742029470753612257065351124656180320526935467619986440399409958374660710745736377970325649591294128280422752938187583792794736671426189155484933746296351896654621846139451520029478496741284332987854266275857400036794785793977617040431999693471589817326960226883404825875708428069131958996574346955041682175354146849939296196028945610390040418451744805068621073673780295500583238840069486766120803609533059763350637378703702639028026892468908284221303209630188719399205279364523517917826735936057926294415138117894408662405233449790450304934736061901244191368978975455289592616526278625603952304107283701261983475877436093880346729812407164722821024502863448931579811008858650736289656095136181906723916178004074189474306054751066057100788150976260161667211690211681412630600717980770219720525615867599191796707163004455268714531932509855605141758288756055577038899555459918010816301581613631876250596474755920220278504953953921408609817501489828854966910179338454225604809966428211645165098051250994860692952418073213910220640861530549839059379707987418030327943281915044466008916326376963229350983347924439234915301435939895543513562573119365456555784956631817460817489302414493055788905888201484616840155386189033923457511159950045518018058663055771925445632177256485772290739147631857681446594981457375424231436342464516210619800687098572305552376126113952185897268529434643949982639973335328936506320672182345104745564411302554045008635292368906004904184325011889385989667143763084269948939270764261939982197210009600393175608108260629675816199073050369055278463682083880036317341266064494749086735374249800860006333082839931058800770677998329316621889454253911119095360617600931403459750843199569266860151728040157711054748651313969152529294334660345744508341199051408748629510693824296729526006235678161814738929214618302242290407879398120954699714927668562667476491463921743712021840572907167388288866972599162084568427003836246536882908911106784063793650709155818337280966174815246072909135174179080872274732085562797136848996248060590265047650254421280964551735575069789070261125160743489098172815401046265257246808785768896712518420398823827255046134520385237860402943601797508412588696551116765581644443855793400670913167292169468716915591706396440414123258763175810022873327123989297037493995940764124870688596432373096877074263515821331216567379546403541240671979418321388439227533945341315288316785123298064014508372537236090421453021291614640625173530043985879959756756310975503115073363201283832421008456165705075158431431413334389378280555187394484775746837919842420978512733719054528384976502164654653299125333949211487434515678304910304578653677936562088848874824751252088600145074829308983642447823255161912532984477664329888935199109701057196797443477598283600344911440895123410599069956412075815429915304314188370148640918901437829656775193097103355724747751250103953779015919489931699812387021560801278334220090335278142778712721281835508222349238178596143871399182223085657513180556378859675935222172791764418515184404801721882189824258576437355662493129027858641077504682277484497792384685714095448582054558849181829599917335867367753841283220710881739846025754210104312204023052832206884579307036155760129085329876094092472712574165233842945500697699226821114390331902070581459388170158094469633458848526420019499145881939325856314142203757132083459673424669816929444148563552079679013705443549536957691648567112940927288554910077036497529018506775104705840064065720661170228278334928642279313875543803153830806708067688559574502600977769035574702796275723941564626769770645949106879330691872078018248454219163093208735518538934631852401434059863175643329366226628406593331478751024728343608360680252594295041481410236875082399174183654176862678142799762524562990056881886351345882314995869254009735377770294630757745810137372859782329198936429218922363625265014252961020255276037383771520180654375357715381128125677755861363909243097288303437609078039279382867659891566431697419178694503295317839746300091852831237824970488752996234469265600617627062654588608567719095819694918550484271212913771720002432445281903191218513360295728109241550113589613910699861469622263974888674397056416031366398507644579757202059305204567863921564291790724051204834694811648911044231138761729762226431498894360003605848361987718232895269390094742476498672082646362367186627948140893593188235932498413768875039875899542140943455551952815797044513116324830014314056227223698124637562127963952974721133451244791187866276242094044706224720439766701264404835777505170598834565965032685010026970641494373251249365319416967904553252017622803195245977949978949577415391296897409139180677832194353629601938488133663817186982561702606279599848226652789908218713325562856744542261354365626153713434698008332840056795269174553914834209315811550163568560312670006454694430929627153927441139930705362558835336901261509988295812863738525312268192028702945936283709064288147413692316268791843315801172619045350025134751438193864138727804753954316833003483271684991010725008083390259550076257304064445631344892091671785157232520527027150480114433230607352416150124985267779914308623817151797987491539499005742567226452997675507368397018562052397972763266765548780103801280068154311228039443560922982637476877918057200653009887830334607996181115118431898057479741088015100738110808414234472688360724291676991384679149755572663961362451331347737661966815096045624654133181376516741182049838319003605479445045980764771758408155210711500867948281611507074302440717015176098785472558387417425897334947961484344177949008473877419817422157295597946091779920575278179891811982641267142005706902902001481057935777838146106755292941801937824601892912919996971857987542186175873089493247510099060337849638887498279420178847585626577896766148147052697297248534872784954795055929830909391045516804362162700519055819827207321343937336365203118490709718429156185984385108439353924306895027400069222263059256837221619865814885580476203806966208495228459607313879503804589055552823563625578731357108082439802636675818054551571809573820447540010999087765569971951298372645549663233332491313170590643246839865411122462911822809007964162091262466885474409815452807192144917526251415817409070039863535446087907820878398657954206550969574020044085150872947496512252853982300758956002363778421645497523821116193421681032573622408229877671898941609226521003948381645109968660398928788528884951492113309154683091616765939504276425334967090328817646061709355801447864594963454932561834236782104187435911388717003719935336258284345985651664550927783966361070773943092981678141016861904238763734832950965496090795005151584037865615681336230856912956472853416457425420560744693968002033398454846372384596207188713668152271171323696658860228215484984795527947273053040474476739128404504511743159637079774780945799950857973179411697951768852182657723498953042062367188867751438876918455866995628279338804146746229176829544394976585927693769603216358412224459052814394814355571041760863254620644223877531103833617702769206130769832642775421804934806455721059255777643402920696529052089946638804630990876284750050941312703138301770763400477080131799635845805256695879325595261726906734361354913877388190044135411368063760394557492939081469708106377992515274152593063462483236991681468514711522907605751558772266126374007916945122311160024892397548664777567310003405920736272388385827225170333394759132225319576395411532849451976138842023199258654421552353857408501919708956552625461021946582243235787352758570822994855761479618869415873793886674106305150748802431598375292434730612018133596658449603678079068166084720902093843124923846640607961187560871026366484559140084917282036095537689324933612633094208492528587523169978425546041352557814190822203530086298128006569010898467293694817252047598574737149135143729130594025646654137133139867440745896167500425290955453279772763948416368682145025355570002478405125158815715542907249261092864767873783598741725072173539609778850763475325096299137422683163877570301251306130333982925431770991777180285362385673703133569524733066799781577261307148216465438000290165478030281126481300456054450769767417930386453425278421864533106940273899976603654275758160802792637845932524407975395318945887447767173186039788066858085981882041992147428434077273321000667283528632568307973005459327039535476742088817394542706323687532259796349645743083585037450066531486785735627208781605140266104164410322532119056633682284693142770897365868654750899870801041520059585905463902918551942511293609393450278078686156409757387270160495758340271679535151854675795870946111227429056273039209653511415914008602459806769808768611651788740420234531434908985575482438648415721023840711786528292118409664461882453854252841094909504348194789438252202908517827091560390065927769381483978437136324605691550535363558994641262533928915073545301753211087227214130051942540633954008285989303409696680815357069082245368590704266465138706979884381965685933179400722688498804966476074971303868169129584039291135821761283887825277386570378199451946167461882960465200564204508885292297841980016192376257006885765838756487922401478421885020450453675581538021586960763709807032803690562225322929336780364366774019890467280506203261346226262692207770502884879376546304778288923902001717042991771411042521742565389057383945565527337728981179333739654324951706023968665145372315506169314666025929202799788601815919329041572744886129327647627111265814775935966007331126590260807125395416669594959510222578897870007770269130710661940172622118234872561894284244224911275079556980296219549291685613179881105794810135481947559354496892455551356948194188124835356997307372870813976003733522614245045677111812614140874750393204058228407850515826991620694233509947888262344027005012280328588355163052895570805176630531183189585534589744003475163127456085683090897979121271010370886697260494065751950892202179885796912163002495772964958203686203554380514316159098937104852167210005136706527962015925350005577896184887331582747447582042400961988116384416427332641474715260455540615369980645328232418216894088453971440638622338123733876288465520393132066909907673469277540806830141558463945374098179616914970184756819982458872802769894655067500727096798731460671476584442194813898244929032986362134015273795293782134334627675437331600020700773525178301562119060472536692547675638729857143882828987842479421936300617081196319165746587495130245695320320321204833234635691747037406245493169644717818249524509263954039321482561693657242859912130025745976006852724607109684219545752445874824080334496588906550075756570965482556659438553943837668106620794368301776500436623735262694188268882491748859351754704388257420607941804666257579017966288225633362629970597124536670379935802149399339127488031177722813058080418521317236686702867170535378661982824454374502537161452333341014360065460601709055838795443396233984442640671831321785755109486171522720168943825022897806851932646759166320397286014589870487601908911099150558713049243045359324214841029400989504195337460587293101356057662781322781521021211351804027467754428766294996216410080050904448999085935544787382953668542180291596451908096401219572284882811095168791891635766088666672929360636046637247983724098204402164647698223577067491404661365678764193439210347193860292708696334518972098587509861861339110633817959613779344829528135531127887425698927033080279256631114795550063322155189551961215831468482951070593972983854166092443999314169990370933838135022830481326588650337635795880424142073414738603947682928325060852281901616084488284797009425195783674757648396640557791846581484136031503522544093423221890009467688023238115774587554176797608557125631294930969067324662193403575582892429493868319546986723851929089103393236437678814219628751618599170952845524731079699228087260194860047142741789314563408114026638840936231045742282634310165598515897120741687409354555597785198395640448927603561562383133629235299182453965928858317371882149784099102261522335432003828566916314971408110337496360873468648072784877758203400609326126974849639362849168025672534963286028161288057658910077783560996842599447453543060032186604106959308976445099664899722916166835077595182171022750427791865909766174939058312640742375604557901007984695325355393266403782411049113517162547690988127078991777439685209716765494766688657162280184797425910709707441545627995821377456616143690646544262740586875375086469245292447582885247814738025995017080647839891518667077357674050028767582450695147479061941190565830654045453506217231885977467175229076697483620383775116655285310527657268410754113419155344875082581176216668734424253299298146549523347426402777357386434163273796604963213311732148722731887158497434152479204903024364387243123990329484966067017358480267509408104854749094883902732637228087710719700780504236264593118601023470303779591868202366821058098118620765647958792537257938020442481734276972097608447173490393133324034250697744085426371295530607185127611264915639508686236608461215166925271080163303885877857829900509857949076407126070063835739510915556232213037155503532888012974154405746422995872514302538422765813458853304946503565159409390067233716391160545045994934519880887017274374996132867974393341259405021484977072828036569138176891758176152359953264289359725628634430677803511258449286721962256438080289678021712879399887355600893887605098581222084388823164394117514001795172923231740527642115905770527000863062551413993665317298795233599687484699647380669583478634639436384753140404191383114017622162542114355709043580885583198650282963881314765043985598221027224901997685918225728945623022042591738524859080049429912298859963774706208715464317609383267707865287995718262349833028418998916779871296809957623454531458298642944499325737274109166593277480866889208143638911606362362690267454748473649829747330837327425600622265156343883522105643556226402927476312256321521404061981403345465013339136721402115125009581296688605195337147331865512430167639581306288740952369837495313025752819229761024313304530391995933614097954538757196822155809939424296396699187283210637124254039577162026279715832894329537968020737437079625137568206735348434864934091051164778484514810367641055701412324031257925475887069111781841904068561024044549717626631344613985694224477485214233173466435837146794039975520899678357399604010472613267857552193478802929171178415659660399560592519242963093615701227525630883065242815201946346376890779817801847460306983768845771891846354949646396528640594157282001783728334166218865602661473930098572932935445267832337583688261993735742353978398569231400563550462977813091279116005899127384129610278341151861240443092338109697885012755331533115354973098747650487663389776723714100807611717834335384329757753196595438590018018633478797308597442589361515268306732515659935268672595161466233420963074810726443791820340246296185507807382057059923069102010537322956505742465261166298317864276325052811284595606641924805047430479506496861307669539843173232926500365713919186127878933767922289647269588431655411182617616409644640666524657200237417880707001040430897389848766349493957847772333313951797528852368734448713049632550868914398197507583001169033405998715951729779716831319661913722133110467995930157591959752227748353157777161205865410805764505349810297060096679598023939191124292491149800258146782766610578704805799445771027382165725015587321536786385700010557755205380621494648828968568803891381589179194003217299227880291951029368321525796404523089727859813869601524545870976593861591793420727976566678119593589104317450709178513532286243721790612667655825772540857168547930283636125034405324594909012191287667528973173328464457397101780661068886384700143333559629067676476883810078933130754439772312021991103768956180741323748023543200833006394425701870728749906990628281777542707625882347722951880028851333104449635706864526803588314670485812764403685959792035606739092211259884032615359370619442738466900780002084777145612109366555079118593147998553505832043447184458308014619283527328116996583904370127174435186444806231995318056708288943304933166267435498889088456475298428369954176171179948518952637934534644436267303257806836496283707358617907214744630530784262853077631189222335116290240924442008671309194920642227826225069719523986446130755701074873973646343933404663786338655677451350428808472150578026105507372653892589117350953839809426117567993900214081985339944141222121858472897853366836505804790610560375358747582799932654476158648089809006275736618123738852167085184867388328764194150007485092736117282678530007343707997519687398173055354541435602566877342804037860640443460117359745022230704895649544613568607743239543497308737255392284345069913420409513824694093301038075612203787894729072646080324824489230603704633053239167311466042504927452575871398565011122166988302387854972084749409497689287601432221650255755720537199343032563787576269234740000472254868775106088127755723979435244984306990245722732724511524035368313505546672110323505154797389585586951152043267157778868626535941325658182891198819378209561090653946810548380210937838573179667185098284522969825313214921273868725842688095462457674794892659739053060500718942308992567114576965629618983064938961899664369386586820275266621145334124045799516770026235423270315214869219927144063330503707382547067991382057227306136838628856694228396393962120675290097039947733195988119832639899252199165037316198136587142484920481186212674117535118543244767788147560662607528539550557696193367499118297070296226316632616637832035203122705020409058232836629353585630853077764361370571181744648191635003124227420984143792738588490359007528337709772690295854246502772701968256281965348611959582107252963757482564447466956715343087293169109799662039219687787112907869331123111014831367788523429642866292947549835545225002259265725443650189621886884420220094222386745304808962518246161120830989467724508639734303092863851999142353641330477168964416486250643673771454033093110163535831496342983965807016971996556785354500306922836688676104976821372937334546960488130758429953305064124681138778448088287385087664201500473014967307645830612507477896672602480749389144258400032968404918332573907737476881013885893790775694074997669916310703039427510948888225988841865876451491640388412794954516188102450858357067419371746673827051297900493841327382380821531032485700123987210915725105520439618729129211124016594832189365761238595548987907191699437619282579074573712012339011642907151622914443017529369246687061755734313773247337352326809161161313708068052635958737732845668997172176333417083880673882577905549521268228768078942742848254084360384381664304707441309192302816271520645583571268037187382349319784591978727569964663392379221408570530896956741236260403985869687092105937426026240056151678381910375569234701071999461515954293347615292062506585666136332681913344845314099980812989277437109152989642331385406460814266001844324911632627782120324472952637419685893997731065820463663062344479479783430792862406638864605530770303681668137020661782938459833980336733678577910790389474530322840000454010710705113029693714059977665999933633692493296662954690183756299777210766562670340516180787187727756321309843473130581354471193889060067367747834126577871229112467002983359042344265999857210043945050140597097710124014499150079134341556775034513450332127450086028444718363988809086101466546084860382084432940435381884615034003097818085070376070368480401439689404109143608497702733751148457219028748400972476876614103091373919790707141671107855561716086080676751275192268499131734447729481948371555414348337919573242694993212555005140581565251014446597830170704968662832776481903284611267295287838470119588316346354077934151365040793268094417848841057318595940165531698527865461862965021303849173212793803188786208174181019611995683149908091184085013010484155352627396518249517903540741603692965908211747879184838639004514783416593902741429177597982069044722251910212850790777142103904714539008871315208146194537565742068992447725723544279346423517081302899688302367855183925803366906422233894629700855205913751642687527360975225165858843886621399766429983171152589927409658034733906988502815139181364624580020094301946738782564539484001116880030286136627399958228457910438295435618151273202009984546587103439092562016708971360542246447587659891420761662422922774722624018547879098926744536295849253882476152899889066039146333205265693135613243235890559093778359969998671674585747217303712052982074749149418297906395105614117006277082740668934440102684918300453788775074108963348219921024970392545634291654670213011972746545699128756683025588346015420448016247197570589722774290828996561859981892397650660269518767221487442293887782632452722512937742857265409889348119607800131532305775670023725039946085544026421865628585071111650142749466497835302360128602188481551263186050206749568743335661345313711934425723233423624771552301115334077440538366644207892238677576121643242493878922680035246718916812157820856467945293222708234344896931068773830121652882318932935986614220777361303984079719602155690546629305670107998295163643920627151670711423068195662587192760165961496134252368389128320469977374913366747419652042081025231557687136231533516408585271297005198403952921558026408181443314827388998512713324999538481283216512525821225920961697373169918932765413196459890328736642351924612831502699409602212743103004665430487392441942185753274554107833079211413340757550463357231104017545024766324093324420106123237726511936719129695832494047839619177826055494506287596823191582360271922041581189711138464285924298211673717729009821097964251989707856117866821088266565589364109020378084652219508321939184722212568446583657457257119570986534026759906451969680651458821538596208836791515587935652231583852974672702839563931580203066629618834088383725813907812115188114444743510480827262060044747603985462726118933894739948842819858176022603601839904423587861179800600081355060458411046556777092313611795720874084309254058859926581718734926252572766296621744032543235807077433394609001739727614592495168436639791303519592126523574087659628946159845372326800821860531393629267871903650588422707467823952668811397705123914759745369620395424885033248478758197218099740984450108081127287113679762056311133092303134536915804193503171868221880245478053741063133075158426161942646802298834640560848400551897723427053564014933787726504259213436256916685600713455071063634900650110364628752868964272564761175171965950775460548412667690878829629773646635266976108271643118834527664762126963746549777360325244129216429672294962254100302632106975843675810012915204271044733294873496320709018552497817051032788139140817714366350732032028600468552076465415154686261672560035226056899799544218700831971701793417919706222894233413982904948276626637828832916558806602389190390957640072465406828134543988635774301527268441877416684737956059564710625558321201441017195444876252605978285673316999240873644619626058324678393969570297425922084344335134452439427644529156858764254030171636004518367451333289023712104294586824453600867174631908622899157432679086011911542546899512547189095090129041166073833594178402531097859668448364982347330918193807416469845605031995005562635018660492944960495296822415310521623953626676879168848337371808148696885763084113286117865088902057718194350846461519204302624047421233874192036880096263620771670681156999462901935181673197960224924818913229765853925554324103631515735331777808106415382138235864166173180547210008480713717286378676645340013612750496067988126691870782354925967569062037863032560085833436962899920765469808938069404934227345068896323667154660960782244519190644001245644362678936797509318077553169674892325383147262929849288642283948945119386551686591576985060410483696184484675631145136245091429167056731686924487265483515476462471567196656428471629791630350508535092111835428206838478210591445498819733141873146010548923541726161995618680232707960000598588029384594886481034650279587412140109961604079897485324629440469511917888321422970594186395480049434835111979263959384807089843657706549587129762614271274706114988818137330361603389957437651871769132922501847510555543807717693456131212200822777113981263027291780647525474232561865130407048107372883163397126930971888080723307819101492616196464427124500247827478729039983870720414067528430792050039725368049526181145159665017143902646033889585698105867169113935918579421258563345508822896031764325773604218684731168077724304771430617126561385837337044203944756270668935309307527364350290331323948626176923129653352241144906445072131683649464055676428137068257988860147182783725300610247101924017939730458769933385976069273837881222334039561455404757518491792564115731192325082319844550362136837724143552950870801120387158777547929916504118450435123076193445745328771508007866670503916348246088065132851301983117790857520729524107636730337689940858639261699676897626545961251885779128003473040078313239249925247792606264870194087522234765400944782947480548485715117156354997690607906350936342436794634320074404844296463186224416817211408694294197727204718978776370976662455184036530140223806677453908572771335815208242079860312477416830835352980747656870041654402272765389566994147262951910453575263937162874818383588134403498460344153411314282642300197916253322951667938149910170944512765064217742387998457517804540606332685552250141618795478044819164952394454807398222686322608080339755300474012000109009085875043299851839300300558431918565622222584070149709835652379560826545377027027641763746474192440261876090204075872283257094455406136272811193624243526243790691268444546468450712793152365440881807147548854471867237002508220089934851387715046464747293197792228190839062819714663186853380620891276839956102159874127936335427185932330553508531694864993187213677671646703318098793885344607335290116625616282027065118031151503055590319966290528802089972773913730043445514841829496924186327534474921257345748555302978286939868198150598974524764815845004327810012641295535391084404339559776042261387609419952832180098386278484600576623249070652794839597421375515120311800245608361132912537010271508940355227000921386849776316149071718723545240592089158627706088540307697868541230050595408457745604555140485827227381807682679653278465806108337667087533480043657068073335345573137493682869896833030525963763427747365198670324547151594839481832899643840046779101118623214059428928297372848508232937574770262551262503729628420671862701622590224995742167300258797822802600327965843266576877400396640046425843880677722079304630147621724581581090889867533656972474136244592888551880329775439065405076095167687713782600305526878688772926020748366095219465147639619364366914063213067461070737850176420484396875773475483910212418122845972987558259520853000786027705942190295982486449460826217558016695636596652922372766867156571752949637284898693372411725506855761522977421074684453349946375759769884372904458104061379925592028760305519059907287580079183533868922164345534688804453961885931412502761321899420837424232122491790277624680900004581169863642409812441494837157146487922658732705404413264452979287818853752348424028428543284549259268061020657888880606562978773384754253494858917434231545945468877036854297813046278288613391446951941293998753830184806333145007445186241066903564375391141006814344570316792024467324428313271925966536218634090086539997756485848413142008736289052675317425663907368251831446489619406716938807562599260505571010977647203296384528758765459476281259186606530430303518717425959821448521673036639315819000874895673031583917899141862762487609736933053905021249419273079001386430222498994281258979828112755832652599166340144901035463224531022217456908264991839482607790503223182759795635349993244936033731157458578278982777880159121268635798337011353607829329763403497963692766031569664458674481064572113302978760125358993585549429060074964042370004863127405223713504401486694723018247561109798764518285441411201635515862561020222871891409047609650080070208833230739878230698526974967850952267667924881295402057565460883575446300345259259067841603865272948750403158619132618240192185919247228153864043000377023308278742580846715877703655440158329236585013498379146162859344776207422853416817720287807134158596692855606938807391480995850725760604478481047872857948947789157333049522372069248246503310135694080397957180738609157232823532350703729581067104105206820213156763300726024281103256820206176459353063322087221356912519448022454944720067333883585169380456931005925856692668299104412232258810005767795653665052422702800222920967389083014291989989753685340383387752547647965160901220283494524276428179499731666530921986477572307628856594455342958068978517242332191093275100199209222476375968639687277892255567684361866839312676701301521356059125700784189732966303840721347950995958416007787161836135587747196451712087812167147091105636143862808396120789865640279975382059065615329414332682089861843230303244756306065603377869479060438186416420718554349684277293033342781826424952959030887599875461934386437955524719740571774355824575324768039469691111154645762728289398464251515452138755158501194860848755155742685739941397691797824074658954199091697143023231173342973286410806511915300482951257816089619331769231027659629137896998599701220428495844415011301495624879603602263089787399390328317815886180434868215918741507364563980443333939237682652996433673645117227218151331648901538299449675368639996293530188801778175899641607570622005452972652058763013651373246091830283539855930210411918548035402396889119886316727855462087980456413782092055825724542058118905549804812573547613760409515611020784271080502762041693235270723605609012512181676820413456921832925307633294445275500391795508398172635773760937263466481584732630671544835052691815199485562680847732841663292332805551691753186655246805993811536599728884227905091419046556799771316878052072829509857076822500503831004804784712982646527164586464255260965279513332833273633682701961114607058524126189560312820035931425904460886622473566497393767580233210415197705773100503057073648448702473565279659269894816678969386290137973542096455121587399975925762535931458952607556420492402983989411089098141200168746747774941238910675319328115097604597192241177153406553158033634442938461946098969021863325120191437917693116739863835559584608548702617390448302628803073071269326109127870241317726240504490470000301806103891560967959373422843941234429221785734888244072389801711447833735841645354954842428447533652802384872059876458731004551973573961224882118744635287944180697089481147341255966228619792498300384553151971210138259938544434282239779266936744745787517614308700549857829578127968796994590006249121684262585833176122615999742353734325262086614614640031730472903928983284723046608997429623380891852797072232638422748755011559592563770099231924152351318072996831838361584609039031172843715175029336750887529489608230954401252026206077068346685405247415246482404549636404155377719341059236168571199846620018248066894181235898009604037138462275811421830901098476633505733161149848438975827137200015981715890867664486192828257948762883768362981665066409045465957105743057671627534350659621978865734680892718387829357418235503528917507713417607223517558257194937440934190226780877292745044392657830863538890058083299962971832007439249381380810599664974342377651505047428952630851494169952267593701865272822984012721321370514566622662884288651376723594928471409573394646321973212853916446492150248417808823041810439675404757052724685205078023431618535865584226821001170249419583882323883174080027280800296827061779368655000025927392683921661408062434353808235333460860122790446121536408987174683203511555778623334487815734701648349760225875521275184437773627549873626813057868516550610264506112143409728400998322861732676851106302010156630201778038483374336778348746446778219785641583199101010230175339140841470499633437001348768145167739868507626698650394968759792118930911278176328284941421541808492034657267901586144227625366966058605227637029730840866533738275650104964752256379590414221902657527188216116509067575121312059736149449866454168565430556737153341277772707699219073098250776359050621254177552516138158490755068990834307016678923443636675307360929359022713856683038883958304724862765380772401101887000464752529333601788557091462328396883766403200986860920294208141029787659164132205397762294751184267695370972138862504155732972179759731371786246972374901509030040778934310507844248386821848846803703670793829145802465665321842996936903098911832449147744581829894845777337148127340935499638579535543661397883865156811057123076208148213286262469966459941056241087045360082914370937871270877082350991775218038399860213421454744477913131653281140560077831108304224523402907838765313215741975733317569114033616820372321539644456719154594981041682094291131269228880306188661481703219246052095099740618218600913001752527997924347962447922249721842678894642832678284347702927855250201771846277845730101476988462753594190524440085961056836099599493625194170016524015369021499402675517147135426661058729476580316786524747424324621121506120193943046903240919372838161035304951599579086344742940765535038395146288951030204962341440344370646915169172966517134714423421382371107550447432622589162107155650723683179292292107209992925043091286881843383747427367931296696856950758107859966715423199099875443378188384078375051731066778205269238313166180098651567351902677808946975322802759233861919308581448075511064948247937203407744467820578511379880247476971638998735994879741263716254841592883524275379661622514875685345619038835820491986123902908345535437374364316735680124358194262525279070522875273179542755361601873484346845199578673296359600042889195357817506762795425606152166824999961018065257458599531506841949794680442245962445992538939430642358951908656330647263738979866765636806379816494572929154887409732480048548512996378620347218335276687643739784984264143566229115404109386454595415244747809962941683821779066973311136687937706907598909657839130984070344742007199432415167445198894035745070576333751959834618621306889388702556722331534022865942989833900000857806659997056183181383344668665479726791731888025735715094202064265577668240914075810467926886979004532181757064290517235836920768590429947380161420566258732502231351495904785477983643466818163458103409351873414242497776981830621309648777341145864399116148510787593218327243778873452463793904518438689260241347560921658120701551450089299929045874096960368654355890211038801245059704976455232489989078271023626256532377813002399483736564502672689817361208130992478145084751342838206156395836138987098131091966101237564653519642402549310329936953691038802732254395509727380492367077846537033791012885658849139494549800588012480048274516747457808044087762929131019173870544008558447309614088841234260449535749604755446698807976826214430830609071317589085968090634339580549073786787470809297214286425157012069458629554282176171470129166988498628525479453383157978710860429471163901376677299908519453461700566873413842520981984048874564445971795117206667382228656060879180254083833058428660332983651434051427798559969130523902574933293980341092423728692713157077847723728466610118074201134984144437102822817578525257306297950980448106286346258306105351758588781192399105531284515234692228440116443485155401966052042672819388401018720550902154310792187687763995029946019850649893701985010518547527561271444586346253933339250623945097553905407346727790453646351840880590259503800319613103283024033728755215718121418136268681279566475287364420656793248504390994415315818491158725744241498622687374611850618439462942456139933051555355192517465072707081886788453469981092598475703433997822574047542442959130028492834051228348635854166917744906942505488239046872485605291705944207703018034552165025577168709677425742431045964788012358289082035687373438716226190371840795902364891248872765804742900902138740943110503279904967674125962681635637202318027961610997866637907628718524210447810374758948434197671115965706746953144593127745031900862392299577802426002854541965118360392106503187680728834912206492561824676275749052431344590787179002453652171099152196051242783584721745099655255885147856018539078352876342711680922490294677190402510667727878748672894447877109225305313083274371123453211024154292345359078817192727388032722097032118646489163504001503482199699960657532739553208954380303088917729474548088181525081090019056472558158325608060366749224109986132761592175011393124975309206619108232734899413638972218651294961655938812170585562757168148273453422141637859032314530191912842158089550429905109545250279210635029415044502363904705561394998928049464446134129817385123862047918102733741465614585053837344642529622419016203876285167280824413099263107480160976694429562212827198542853745998705261066837803483607871968251531413074108029912255936999310051758127818110210418476503321547899684993384033822665604294073794809593206897866661963505593667929525306807982528293753893660053413132274759429084567877329621881681218941234645598539451622802566508778945782835628520996911282073127534278418470296075326530653121672072440726250330389359465043421417122360065360057437797963334577137162394886671573610393307447654887568420465747718208346516933667671857378164505911587546033783464975444147747514898429102635844875713058726026541535614418774237710473799196706459924501392041842400442719690316352561251753786512204795854096309517840612810333520262048266375798531574461955254351293729565323764494184406964106668369771667621687312689864622692794793782824238753469826891357314519969836910105270744289705301962376493268007604896617478598301462259888646886220571235612864817867880821379557692430533856196263595667655387597805509256271213925461353292110888745165620333561648853056889552222639467453594118581255856352421566855089395454720290699444569885519970274018989106825528318785144515043649678029893370535822036568898121622460343279414683080077877442699158435856604360537286089518665390385294242775631679712380340171956693207563855252636949964805566376470505966475583541814762879622903540666778202727227770746534110669091605713487045366170887545324290325337997289114241915992655294739334692692079699601482584065747079638657345490672441223190038955951211127445997087499748138758039131278922973771083364679336823884095634560366292746062922686135993836809066003319343895924833473818666752385691719107206183154971398050375359333363222372137417887343032717482072572359279991365725165503946384607046500868455829361667908618790236028089866064489195219781972348178685690131282202114562034791341530192039689310814461319266247796768149774110175376872858222895030871020536810399456171791278292682312190569890701339479981291111192244823486951940956356226802299633736311630119791093208924334921615275896155777159109242452605168955620565988597274908858304864665072045053010925610092110300764896780695412114140891801244389556100240530045968586529126253736569864300537234142003886039357584253895358969302649148378821346800168579025072522273152316465771486025428304907452129487543146842171924305472870094661130345606587730732807480553575344509630664863590782419104890761635582535737652168820348242076018685912199976941687525130834236700843891070174438553451514186650023458754306334116493223551057174898688020302485939501744077763564497493281626335379404663146271653667076247357904523565956540572989899819259025437676465148819454849715498698711581489061704171981375878529318232452258008735020620355243029745263270363620343714877750698098490525092972059858681445260997023523313709895179614617020276465839935708395066521706008230423951361051869646846322890286513846870918646187855639929982289288207757711069905289661871808881744659178249504966009669362631503423797245002340538172809849050732097839970451214398771752306342980668322549832787633008577113460546196712048687657885165168010364152997947462313042922864973770499572817723863114577779401870763774255248037672744399430032928673242669188036709137434613520439926821070798552958864070932604402774996690571931398568882317834872310289538912904581337103327779440240061246508790897155171684576737038529200675415608036990592877527333783335639156230829562170137008493463674515523477555530139198974000642681573394758153309002836103923289015285859936178721982703677408259829882710081355204222473457210005212926304691257840939813550276468169409297873675747359651803675629974555111770938939679426861620302886973398437511535063450826665393510214868075138382716690161161431693653277190464305092823259727367182680469198016861157578918911308976958809038718493043760771038581391480842093537830438566846310253021824589786259053304888204372674720975990733521897769415567972057970237255390394185297513863992720916951490541829566112976789803889697927357837249005608174407662219190914248275254594863408050582676222386468748234821260264056231536848587072936836788163438584921445615316183349561263980661366292719744931014540342597352934837414154523293290664053403474732083168886070612378363229459206175035053362690675897276558843951555892829046547661775864592808241829945908767143031668065150712443535666158105031697691081685077643341369781850843242070504213235780916571209368999387169992929002332088180145924773098156887945273235032162048337847719388023263430306675574182836991188603833413483595686421827009875707703582146298889158006824480487662456087776551928288939421306272811062399458910466926743272155743121558333132697990079949500078773603333663306344519965630987886264104191571537590665761313214447222843378762114375056907623282329167171768618744098968849867284048409339903732546712600929507104770916741724481474668517765704967765897916988088792086448543125340228469130925914067081458057333013114326084635642303749497015197926386025845251589965146237030274459416256128991823002839456926762632440399371759561360561296457408678411305122750661234294125756319351498133360637392533979132438470367698305372633260527240972459855370605377551981551567378284863598704968894223708597338736590022912827071151526996562592641905705393326767529020684252135675803733188840059835399642740108663950353166364066248386624633366587011941535630850200890625194571792668110297094609830223148765344098058382091142707268321642446095542807212263161947562780618666646846206131921664347050322126869368535254191466038708612006728768885456460479102926445114508398146242405618147329699767472530137524470853394127374894370099821646166024685264252516734947285459024053469967767416177129942898090315097103674326221700598514509269875196055772601956115819292682800014939320494617552473201988333588817544721444418625142932774639723468319043837986555237619707311175020876448387095839953669018941318087879598390014805049469784907007668949502515261920619350383431357899275185729706288764264710380752669567661605553441492973957790758296446484216534212083360217709425701469264167558134782728622989961241649095077102160474298642755483350177667554193205657437842579094841056425814949308075106101316624070331028064896623680306307265317540720073036367672843935540264571794029798898311859398502941917320436150835086733791387432252813787168561204838043599430294452708873496280474203386795732292418727059723398050331891790338067855896478326908657084536724170238886793722443054708031530525755855392373518732191084404654448917611769951195179956640549917322980125030917571575880621760688331650957326099110567059743989360715291967530939036569491353247303425129618297751593217240744553718672391190138990534444233122816534578966972606863109570839074571989297655577580100937849674154218514725602314641911026145774280135381958325740662369968082107620614000153019733786718428502139592181424939348004878337411498615122706778007209456118181264954988224012942213307026205825021493368374567322592788619897091679149744672611461313974208179843025566178034157761547175951809073629487076100709079415214621059121080669516324931779961280206307587087457905293789122239211053485281725938891107441460231593901905134058218941374014109199402531183064163901818129568684319289286423586740967640504374468489506036299381578667355690391927625063201026878734613450670223808421113081418455477154283412656677649355068784265382563711713249240379337828519941041924485878994972658650389835208109087095872157731003008717175845463923195438768999937453670363116530819520367377637833053017498318504288586409083847818647548730679218443513690120873138579273325362291899033918551544216744966532483224150930953584592533984415870533341628840183692244565959623812549195729696513198401114776626970277510016964866197664766872030350094388779881496587285548479209529018731272299412524222122529938680460062544290573847147332122304250865311369736861841047900121727184392891093167695807988401445124700260642257441862838114159511391195286448086736476515453747226566075043173172461811124268119015461618805610854554594302444801075429882803786140786069548289635430211131377286215059044234499424248618175284956694601879106869593493221770218527858485641808224088810212568646267836376979903940098555372158135046269231100261077790230902122283408987424763310967168059973074525522060146983045907204881482230349222724613085877057583722762261258135015979291469969986665071273847570053831824084906788912046894297772323800172240961546462936667881069410701658413231026581374661570908765589846310651382893002769405664744421452609058516160091309155165712874891498343344453398166402390665904670353208816640012902973136001322586929597645549467205277627501969664144339499031781985991960995460406380868555731237886411466534290803358482769065635071956706503352893390826345017695649635514311020619921310006742271627741900497144017451821524031816476901906117468270180233558985560654798657834000292774026274273849443285766964377954189273971077967459241923791073950690054284057862669927320543402292476671988251747353720516019205988497150173648914735210057360472903723811426144219883271619546957968987536062914738268116104693380006847673985752388793580824819682003490210385401104444247240956888691649113991644497489356667513604549157027623878874554747055476319632889399522234510942458093925937611204695395553426523792806809738024385427092168486327473479825872795588865771704378459683449280153863113750897524268364267173626867790842357004527818592568334140481056849987340632623547153696750299256983886787318338237666031172472729851128982415923729674322847025658345954344986607156638815470699365161964555651938978025064990982545808272903743175721810468971265677801291604143098168376718006110712830167295405160280698351811290434070537551763604096740894343554625514603510153381856116703653942739701508201139716919439985494094775800121220788794830562639162966202413074702018583213646481707156628070259936415068758255204525161436420756068336049544249789414071247138747663991597107462478644700027826969343832220140231127056763606611254894441911278084089395683291823911560773105503867096620496165834784073013090999162649885666938110122109960572291949769327301325454386508208024744367483759262987766666745600230170451714846422560971604760861012726113424706112682322783421722504022219943348345656737585345740358354338584446761279221890547039885563579673487310458662620102298376896593323111668023373070000367811765278239444588023916805097992611846724167522074827676432495600366831738144308749001316978620208390905428200913917329141844997655034484928385219663078328654304937211401232337581813967035791700723709807787115850644834545096996995879793638388470096039717963381544997541009866147222837127308365152062496329669224114998661798959548053311931672047813615980843125697958115617491047669253992018140753113276697925781405093690029702468752997671220220002897742501959512670559092903527605436550184161257725325637063875094871906796539269820922075515608540884907668703227549112182601362119125081039351988328430535992023067696407631237032401437564522601345480623200503833015375613252556598628527690366933717996483249884164808741621261294326613084109326619588254514276079133633948090878204872385103395626067044084776651595727684787098476195622085464291908898204207225422503978075268774635382531037697927431833146255761116250567229737203357088046881379652028444699952298488966181197971218712476186431457621925915292509273178572263449181249371036693525679018696959790182724444169508656405884791270647508838132020207157469200575222720952761358129036662722113846623645512679663590550264559057844596419937033390716843472458720238767708476405438937064564493130792974371538007352010110465833681625406974712009547627462102920318656863442088743116960472297228367854790999267751127464154480602316670824789634111880295361603304681098028115177291028585724017792993797300705781586962345157857387679368545200728661050909309268923233967239986418252366644296722601616711743162982531833003576478911590119940394020886912802995533325146626343056191554572009860439063914303397563678135729133766800999503580614252578783636545422723032423647945611942339034544129011885024368614882856952566276475647334790204285844201302713226650359643840527414254898486300525975711870819569608303149865604839365494465729141399857102410964521917992889442900906496699406182051688862000031790975700571838131102879178394867055899742513688727252494194063958005745583015021135954297100213726945929293230839156973062690974257673053208897543259048335218116327034620888632171913082649308777513173235657526970167346281740983724070692346785628595472302697278914336196690475920347421518785816792813995672727073698617711007306544409841783423348344165713848269875064786414518795052565971614378899804831973700921419627740381165076746490683106817696475885968559597727896616698737667418547812256278436927403515330087266955511446632662388216191181749075128146519010615198983612002282052356512910939055678758884876478286818005486010595020421683362357403690639992189338511091739232556195941339027549609318610048493788906746308328675217687201924950539129964428755324407896543581145904842557249097115256713511650405566186846543915423147225911531904015947428539735293026503430188998566031215332907085439805409282240416737520255527651969315749568022411303379532997747687667386414729824611796937453476388677254838548333341419170239608110472296309886927534361904857114564754733452666477310653695961969396047045773569149581651653345297883021775681415768371653672593441901192029809310879758483284207211619739693880572662756468811264939313049096975257661396693930455256131663709954952424984064760853286714691774061010801698157822064709446575304129586269003328120379768097734582043942054400339649079207373258748097912551690087300708904479519915019837396286906312455140944192138266644567452656961427699694146298330056721167293026863402932082169587066582117763556453564335361314231305015688220609187843249383610864036215382072815712423325939319406898547243020126886431472271644101778956106739933696895533556902243093762904394567899106459800226524853639946821106718076551455074115308779369820998026790283564197985271098883205447585283406329985589012404279117426044469100114120016995333304134564834151096530578469654170420975621140639967047320511896707483106021370738261062878960908056414740967435157288826831701429570346293303973944382044996007999389493987317172846624355207201459836439613561555402482515563435878812939680949223164821579481252288969458326468490815898622858504818985763437516246950833527863821243892225065336589233056060853044947483984822366602541466924016661899396915768969812001643944034718014989333131251336658427787042379559768363825578258721774718979985817525275444225824028284235365409695847245407191668407976253426937300308384444897561701903942909998595961162828034814754572283321994490148077264784367699149957156780357280175289420824994548470901443746178312278285949644423645905977847815655922739014999705749071300080519395262214764687212529765387939159582743596948815101786644000472147304286891193654614915038786654092232568947779720357702153710899924340696738995741184075696102828883475811112751318219447411802583537097532241746318701649000978025073912835227068744652449039010487177482344840517992169773630122553141219174792509972162676481939219258984469997268343486382523721736466627210511780973513607320461434203600010975617820575587494670430613192590051326342383404114041724000811379417604421465026631981867958344723255224893157349195240472587395997774529333551269800587723623848151520511253887221669242900758694433217139100048953045315867388232495748987385756504776473556324422765406845005765197550609642289205873334623586805997867530180777459968358587707108069829225889916708317726761480378903829035786169031851229776172912859890321954856698542825846412170694858691519995266865257599045505148467056810008992761276060841179925609041102452228695382215677893030100965987607629100767436551295645436654178674526075663609115889743642666058873787033982117134840977410667812493396500564980856124145153552231070349417141432027378336892295266732410653516987285970248723116320469827564229510489543020121089360270079968777108337430506387476435870456599413523837896982847284485575847321130395998344221519933120277555282595054435089851974684817885412844596525056699152260909112298402748001168124207326710739400539190894410166794575562676948881305023095089052499920319731854292109845792905292592005130929198049159914149836438684021043152790335639457020538174684169127348074638147190606396040922882573116335174025800478741347014846852518893661654432413816825328549592125410735960187312989822142689890044964243520871367874816330055045049301158990397328413138115669076738374556998703838636404752723420681509357741020400946795910047153688564140984216965679467489956005566974878601756973314229704619793277023481125785678918092174362382093494189318274584029900900688682816042942643532441556163711607573253309178225646616652531454035253147402489410813909517332940022785024530915161250293970954516911660193007284609642467186016968954978188381145080947116071382835732414342158626121512011024322664365425366957860669825403568540202202083861945930423154047617786218684318813405442617760474538688387464689934989780313669082452285293291159661653525283900164290851961058676168366212216784660974417325963517957495095441347783552626456798038886000053269876660567718606383966639997058046233892114500461960371204074571065269553090580947905154491166678905535356501158337240050114235279009270161542031336807904271211223612284036213246699203428846651915474076666632884646300696703922727938230336945347309544073983180824349651857967088957836210487342869082109863624280556530181247664215698195784699377861810916012170073738397533259689157460531447016522439269860748768852212342406722032193095573741840790059657409453237918027300829789517915416854391576900077385209651144201576863707194160682634780394546524050604759677430540805469933115161237253264525170371607929617627639095317007191587073111562284780571560756335815581410782393712872483581158757301475154857832136810590717330468146466397940246984125482734229628032493944684545807174909742261095891258233877797740165102121628094223057224472657612230808936696724157919045694088605820925778822735703770970258136905209122721591869010302157292122937578814675060285258854776002965831148245098542112222923157010752166161378147076839602406113145925710233927363362375752234424351472428308799700350707607630352782682820027212798591517508117303651083846051822462416520265525621620202890457660556686372950011332578248348002204669385968354930942937603335706529334098359509734757093772942334352964429274230203988925817857740230546675194043010954102535069472054463850726300725694650593439543554013568584510787044419340292329727284607876111024358689656216710996305455302729218884041072679303400427448673841797030485479606007066878091230094474951904856176602470898599014147707762420990492956755754622801264558790486531287089928281527417406616681929892784277119106598061733332951423200427358832794660076487110071608241085809779124395512031738776285397521548142569652572431458541156110634569111716746033394076916579145311541066101267859156744906335492054288502524617302408572509181555944089062361209245860386597507075020419815456047695676267524959038000749370700725020461000055617022721900763893500700162536036749404388034753244138418219334969644382610421531568674421416826892219391793888140922497934168182991522391635197964903706232188898670703723386163617812947306172428767071671052370601195502181913895528362410044871011123682364732512662734024968937876145589206183167380193088960481198515253261523880955937627613832742127263398634501348684330814453818698313227378366920450098958948683744702436128306819591441786706578818301133242170755564698285457663482932290680427743909891630088901607869555926523174292507528419752753275411928337034951385597664365382722100262538245228404561733507038448506516903955835686202407560965826668185897210694522285295134611865643713833321928550156669973694550724833474439190874218382264006675431445783131423332745464453538574810177312227622373816625758588614787563146658140247213181223573389551349261871980029000537230247932751296991334583725218813613839168873606176539417419646858979016224608880019645399276320247148367168381384530715547911061493287724159531578938602632987728794885010393652621186600336582234187728054090969407443773516680825855909147256664967422829151479870261544387084691319617534665534457798770823793673634727312568025471963254470223792067142598810255550719028589010031900903533149719591990999617697972380463744080296078390170567324860076898495338696131915245381734761883229757697213209958239893973027971224481459445870909405040669124064913058654054322154084053410348770279463342025657735927105274619148363146366013278096628672195923929362706650169966557086515612643376859134755496340380534799180042645593750205867686405626507955194584821040025903664512929133545447215661022545092078123757523739344075264970748358250162525606499784635855843977646678907814782549908821771467444609164737691858940266289087473084944504652966404420661764883960616211487387708237506834500081229660727360369476976032055968777559310283260682494221721390674475592613612787935290079731108424835606430461271576130289921033653150920517407536164018607489276308720390843472963028751049923858334251097563209916132329450505282541896658115330556315056506178439244510719091269735554375855395099620151173984255848035584437158359088478103335976687063821193252391045997136316776480488474139320565177850833449658179386584428047181097458654957755008752932572511497948152460860856146497381272951696502927905468582561627778896416978340927772731880041423859661773703026805618179345823125656141799045833357088812302134512138344781373538077412127171632806277415889948011881096712484200864096047979314611241662119547927311418877700887542291224826860412706927411511138021036488899139592065835759974555091053214428389642705718083306001161601144917156146959621305130425272228021193419823562413031983723434649580736244890707058713104037951681428580380133585553199749280080419806749866080158248003149275588546312776241616782499398892224206856151450188123655553046458602466235028208476243859331217435854442678525992761615266789343837458226118186888473746506227209174086479870947551081879313730847183368304395597435231514378124021163957985374063924831451402816999977727819950533742548743287362277644930176764116403951550024663222235688533661283296310239645388393415742356799848301500497261321183593126826919659235292855596371174708245085409842695271165768930499810624662706645012738155134304385254948966433619098728178455574629283301401296247748391371849017086116615444036718027461857974105159022622415815089759094535948743860993134142095820093405167498862500000645547581863520493175111413063875420387705305164395698045503915912382766901321293247936151784154743298364013367404389082488695721850449318815978927691392843459799076146386387952688757638997248083692731503757764631352170605585924231593568596919922124375795005648957097017819804311741475887570136623427316839266177283599995640349505093952502904143264388418103639386316860408159443487152175215821191254196639492902140086000211133102760030239507760690568073699476899368416937246362838187308799964064369175303231360820891039911417489719465416351008029239930814350771849887531948733748461686635681551153064259091275526849963895322532534734181847394693722093924008250184862819970513758867185111445644733041274676572940974855372799944829924005088288676728532202188311242340698698758251943530020071967373841471831082691804668232554010398670622950543581110741363525482105691673830878772464844186564571947458308314829649803559899794031769324667566872102326049068235556104810824760985584741007856990207157517724731755798709251666858973288973839310758378184623677148304614188423323330537938076985976493030448497957980765918563271518368402034715394893039641410264143096879127655354135365408601101641347615419248386706590204661854588439954954721865410447835271982075677422443445724498330716237963658114895353779836616234688235538845990119558700343911931465277060868749904312426473380984230611015571457568499639676294872848711259434543374323095968018247540587937931268114665028985176361466977496511662189424346278622788746014601955180513079731750364517138608682912251228355275744993472812656333547442213054648795340858874196692274340070870444123933316794107302491503455424589850632495137948109331677709586022335442612545777177913649382642541128888435505812072911899656519299532920761249840490516646344604159288664481311633589357464781264119928623696014724880055713205321572448532003123680504690220112089227422225888510022796746132526958167152064173358801040289785291568722072239581292355243331770042808278579689033896339640140287519710308059700012296376528076955556836597346665975641019464840091108405783655927555573742262982069341022658351471825551837798654009915996358422356968513982584930042328990034443497840643518508561361793192456066422657980811143799269590666525175018949913121543908066106594728824419176514300672796958637463171273957194246297526490016410049950477442796830376559767166715701928683667401468008709850101272271043953485405072851805084452207097020572070038732483936071912885732995967061967741235225206772775556158710662842535969740728621833770313747743554801480142304402179718873379336809067153924834900163405452056804523997531430839503034010637697330736131841358214803585100069705190349715741600328852480993974539748185901144590962602347184624891986491772687074050390528434240220856282348572136799793510412313749109315738952391141258581045017416937127596361216095060641223940521213460262919255766988378986582977877257084780297172689556379013534058695363022646769159217383737238797773026871862068700958836245017452343324475939873550181563936600659193277931362244580751080719094062253702353527389841652360451091218261931881734690388213481680375555247775434302509044245474871201522986992249570131761845496292192669029615991454420851206685115714548020273875276588867081736126285183454787641107942815547263915980496144570736543207889926929185634297057065029681170434586010461498894162460554820360993541915931264905664752443608589598580177078594826711719736985871784702958684425573580702522860806381038412379717753830177068753156683872002381261764402628368980400425604175405059947955769916580155986634850527340046692482624012604172128755725745002699139993334744359113028589521187943492783533220391750612676557052613155870155065584124156358650714037788172647270296967957063230118682771796599417916926773725856721179223327929554553536881154382900147285012432610079229688054295134878437790982283305022356373422592698983354720376759479362241068012097223127708909341302024740304793510104470474083491493365768805238083247799987231577852925721663947726213796420357766644740787888774176671283123726742122332032495018818810869994632465398744603427930792450389271849056233884825554656574386785697958957263979858759659650311712378866710589548689870086936643768064968893189633388240202016919582675133845499918700064902676763324218148691870956909076188954573391659029321449469791331353605752982735536117257205363869879992009020980928678332435213359187024966425011564390194511559121107967713155552449827255389305880858914566453469993319708129273809569228583468049427200773081984042489608475303872766771376448297300960952302959058853426112236641966467886362389848542108790023136436988268159903358045258471539367688275474841974511274285621040577868160873886854355839659250842885322623140492162532692100304552849814197213502127581761715126801186429876387748483271384053121910650545603132052324639007912090817441960783761724557478312305246421373199175887970365633947622236760309023110606665087705216519221949532467602177272376034140353565725593867092270673393761192799405684661670669584618859976896238003233119760896987219140323987284459303434670605201721880581670958989945876517694025065105324241433764452162601178035161340647922364121367414933600169555477783147341878120418703053887528996372972769253206098862513985701155927215314086019208148304367502637145697444328668136771730087280234270049608443507940271011581416884004159660033297953678842642813820004071210601362689728847539336138686214869343487692572335569295212296588483308878699396649936658590488206291158908738078085007796156531840139388421162187850402126044241759428959126575975174303743711636849905033284074859985424593740614760217781357277027511587990484018472671746484312834669296856173631919652074669365145835432454872647595380859773498356560329899418224237447815922251749361611257709964989455320928408604427397242431420354114208955684150868354372474627637829217927661373038374133643804949739872924923132058987137010153943042695771198574060488988124179719382136334379127589217924511853831710019061667752443432081590363407356599774354511023846436846020613036923203621412155197542272346176539570236177482208374167670748039517014634770048474006316915154661018088712190918137370804015437891971647234653543342297284633521272031338655510920372100672063723919879762039265016956157704015993869808722726684874410041154914133959784463128619602136361371205979141996424824870361436453420040371505957990998528374950727490424380637581611136820821950747621250145071325006933907712856695646257725781861168032072853196488391012117157223029913901342347846436784981801960726654563165131614589937438474602014992427609817899549588574454426159265319931830920078991609764655747901007124265999499197071600783353525858897798127601841893914140177671326142938219591332063299901181783934169888130035536208006720649431717303263145358266053094305385364591823363389507910996595335229755080216194351364027687341329424714962749905787550193286558235695220866909485136645509563365460810202838910358647264363619569890943624397814656003615228975630836071469962170420152976669672123594276752750732936977228056875094896990806429610910277407242275720397763821844917964734102565939268233762658733523186796915450120435651100032101808239862052843131299985397268674766609267167702353920857739098824448672804296070573399502693107264471124332495139671392279009116539471829226975112863255302256375040167909707690311777599413071887109061432061918543763335622389748558140956822421710309108896867340331169628265586343423689317989126182513258359438590627263426089451110710949107328490217540249612047617149409076306681471841647053280029543724858749614035752859368918030706780699987122085324884016383395142927238771138511426083263699763578025300745698291670369540781122197822796416016688807266564464084495573562923030293203934627601712682598184893916681090610858984515506067107147174997447390564375097291674862785361168293952551901875717609448217733884285650727554648645017866945495409976364892874334961304477012974526225321885669945243577494581359635383246127389351249106332351541558869215288629800932313411244538900884616242501644022864286200814943740480738766989750127845262768504505441421910779945914846420660502636559109742857597935065917026042678684736772885573605476465163771046401151570374457497778835835530047349765871416816741160646022583899969968849360051364162296537292145591990191544234805857900356033302252106979354136107813578154548879317395406442156409199725221113208548712921485794866568192666632796194271301193023515135436204609261054595270861205948275640877979286409133716854092809383766975526645150500388579388823418284443097830750318754682924142685668651153086386511925727146445500337816827914997154942902183748148993554422843871775968830024692269337543501215362282248096713782343424933085980924986928300277619187198266300429136249685885382191926100190509505816318621297504619810634317826435802000246450846329492243855625211231223266355689486794604676048389703675838191759950794464958633787971836847091620378586112894964366002185475406686925071849154258404575292477483542478855491906237675809923492559717880638601148979047478815964450293990678410313445218072854571702564989048981624229930638754784143088945865431970356812571818522638501783825934207622508818186312526157422073892674182482359583701729188834283234854919197606595411709572364924930600644138677044640520291175920936563561901844968648120969879970269371578274949335005112515999019611647993314840724142497960455410909019642872340620255035565438613003579438725356075823394298211536189434521829458361407986312369280170688251816734914576470505253841847113206422997913959031997354939378801802168453813076224735677732799571242679062073363562255049694365785074831901946609024281821272816894841768854494216440187109780106917546675569437036970433580265556715231043050885403124271120146344687517149207044579303877309933776111895490650650345455417505632685467390281153134721524713648262528396804125528509174416177576799651057737572712940172543301915981609017803879888918043077395623426700929383931215062370789359801272891148828509744015112245324894541733862437093480295466147594808464815011329059348228848740765255584189591896050071597962013591252309366334408349029492541149375968376081333874142036988592668324007407529300083258644413926053368792832556108915786783371314753279622833438408473818699340588327631708520944559637341569687672715330494095675530011989289080378614971700008976060571644201056067775146177818031933060835864080053550269988615516624236435220118558272780916454263045305093019161144175640854416796315013021477504117989981723755379664179424488607487521855497333524673072940002286043087811777796793632880840357171827541698792287401264772527693532357068110603985990222790642722004292617726926138020868994377245786645692761898676786958609152400267064527314502360035034422333015535090608391936849898243015777452419265787440835549735428001939640579755788662795797059590624058222551242980685955053277413253142894044784811655845312834029548332759632750335847745629663240822450712675283126667357192900885539348858184935502194465353481921335550522897275999189468306269910902938843859296796162751712057904817322758450442164449236636668279047666366074207774476117240413077286103906474518695327865023784334398497292766593341923803105373447342678666441699835318277141158761339379652727861942424483647688029844024366116988026697410191567131880470717218334045331785221023308127853006395200694667881305009652250117300609664884055825024919512428225153185124693013156319682830244963713379359242717754685137068434639828037317078345770866898107951813841537842145631974551346652139550431303786840037453922309849668714184847598954445102448246469303834308478870438924126366442745186704133851317193261747599088444290677611193221492651449914290334370164167484234636414262443881527666220554839137402507670458971010208672140529428030445003348893561189434984798052427519873908743563061268482812757286489966258432659965497401585138099605134919738233323446768764384147124003845503028833609825049843613972135659211556073122952870947203707575951575453345519755115583983170931647675427738912170046649595482587141626627535750120289038587660300350180041430004707029169218797131835832185109120873949202736041893311603108057852154529407667543812003859657787848041194375691708152097208777842065148890273836016979608161638411220796271385099084188717314206532930723289742078849159716098939621364057180368057314180221644542006081682669780890156197817330406667465250572341395143224043471591073771629563918250396974372320338993004382174080375003869850773785796944170503443049672219198083009936859387194670371749699469786229394933282621620375551587260041106749195125321878246263289119868766193283695396510394215867522567928532206326584226776925975643217290878757674405667924430413711270057509192781423754622826993558285711459170018883422750506898884095335675274706705671311036628198095737430192671249483015825586475108136019046414020857072853273387186728861872065713094685092749176845813612733263332594781938202023294313522128366882750981253251835291855038752661007148436355313506050096308951716805954332863593416144256342050256559288262268295577016402564952067471822137466069072138586716865992037578088972979160017294166980546492674923200505970642756928333776001368728020223997885251269801433734245463459164007106885631840459437935136626580922218857870195902475386454176583495084730648829536291154481451362062115485274631234321159047117612005611505014931845195775915187467553310670613934357990647673839801790511070361584941799137751589967703893924912206483705949537822047589183411966289818766612049310671970302240919986355652553127292579707665688451884645764026253975059283392636050714626807034240573543308117116453022859424298703922534244538198480802988754625600105941044350682969100528408076858849507989039708072601526291332162808184376682069901220231649599994020911508170069854380691462316058867502491177175600162435419120866784148299666708622720546278513370864559683693722873563562365261795761642654011544386029122545762846067181945462695104933835718170312934355354231427085300169494804461111397521805231115212310386364142496884045061161893726187150400167536179903801177561597443638623574527091264116895813448407916917964030960453736843029023354110616889748538263075428238215926131399524897647512394127045659888554380397620032936885530715308017400265372715537048156905296616579540091955341210641672131166576893702909525411786020916085545420383254197261822825118474138768507988073442599474884798197976301150890358884092047134000854628057755445892888019040871741112939787650602613517160835231187507487146949680838105202420087436545316520188486147282926034603551699260839453836256278341882651170449243034869429777745265751792932477718986679776465906630756036710225296835926831908054048648834246099840332671520986040001762515102817260697352229458356422902041013826172028861555126881912577420420170700679196719357002019389025776219009875375383283069193657149726945072796477434722141243487740766178125128145365747098694250164976697033303064979121116876676485541543528049183862838389531480054698736544433273069906458986154501697162969041413678549064438317114270824135005638879741168134886642865482935455023802464693122412582782081159783319729768940177720946569101508384174537505707434293500189769836027823707188059263064601991681957577344142162653452165768175647288560892784702882723407653824503083958263023126306807840948711092161135992103747367943559177679595166477024203560524477396402846820286989097828498330829830618433775117509778383279155829003511907363299673653244023195626240347749359583852095347757477585246385469724783704169383548241801131540822175357633940497274360630016094473510952632364942049035956290804233203798658936362540239676511628836448999088542852404634583369130260602880306904542336818888896517773864405259008408751694695971669376779714474278514586812479253452065444302759550022114160632369448307188781866738723183189381791467859401999013943674895351014153078144327060431772315053025561716492145092362342881327772069494852904582252391353482327670076738993928917978549377825823097605384196021714669303681446517601986072450881498962470255002179706400679050795517564658297086656227856954327997479622685268245844379804620075777967296469569653191560968670095176251932775299890537528338244038008675479477898617159675638510776389098286663997775600188809152692851192886124709422936368890791989645442673721831252917965871508860827797753088222583353355199145049116208391592813283986756936974551665789795198641219801037036950593107434239559631368851616200598083352667971212550876605818084849103269993941807591230998958615633973796564576791612095220909782794533003426070931771524521711020002009231318190411945882081824607572780114863411297705661163213782716201698727949639331605924194802177323663465110842784866079366258970713114125321749874361248312956649288770983213405854164498352239622485704000898889408934918555550336755908772442486013997597056042884574930657374934207583886711622493137392198641025774385621681430217535293266861491313535425142149126603546473581385051184718829224514735700102468160595757010169371731297373567032217071502640225429848261698842041914532080553305071171209500722842703677464221198152545909576484982904569835808529419473379695446217903662287914382258928620369560399350157322095720616109270537720000021302810517915062013431239752324111498120713000211134596008780480957508381799167672228426689465296933882675278319567339418266849852008548357990391121327452641398969722109717918952291568727380591101717094561678683863459355179550444821757589597810958913268020091412234685803626945899596152452896985097265783035086831691104404463157132104578275133634394881551168228490844010089205096633963048793776882517166948530190221637748184399878799532758522967314641634057541535882647008706514413080951825004019128231035439272947167912510193761897913809540315521004305604363711734963242637846214721759114789209752528334409002298013848749410850585994997418127043804913329862175353701142187151188095982967689003449804935648788681092701714498525581721663902385223771736281397652231061439672703119943273893893445496869969211923490776600045619685572454091423809177085561792517713309747710819286992197449731727189879210566469557643128856993835127617567598497908403914155694851718964980138104976838300682077129213458731125620856655688097903113808960976807187410971947883607957090767598465136420315311974392394503349043917279688079551431934520002521539760710546663544929946409680457761157763522543836425680514258888222456034717324278930503241429305041999547427975265668285340222734025640111542337257636968834666849899506097464060728587009875958059822798289881680908227559404530470919930609230005457113433049592559079690786958419568947850250430052209263039094913388852427731689941315489126282104570528709941511116498538934293075705540932754294634474203028769603574852273568196109607524345515105212752109416482154223278049881909428814828374835437272381373817232086129297393946170214547842692508095110460778308638581643871770061086430734786411591160885240782704946197821123086036031115613025709376817197563399338700299087738372970110479590483041165819318308324821312089090961737139063665048122876130545008344153213654301609824490700609268891758632889590407618435049462984926562470627034814465299888944662359518775187632650074740785676420967219629820009092013646489179884043210566051498010743115380580482789900190886224651606588285481031667782216635774617208379869614743584098304546659680837183219598517779254445154038565257883137102690911141582943877361683671846772140977579348408706025950440985826384917625686841204657178172781877767995679797344564099060152284709544050750946399072113889818457598017983909181367947206786866341640269881401464696515830685122066305555391371467495330068049367296661693174404289910509565320289855778617247672437140113704243404181360561604012524904603068710889087531987784143227153960686583648409356514667997356070943529304362512771047300653111630485818033774446658592354322027821607719866030179996860081885944179030474677524964011493765261086972030835892868064512540987808171659426576874162616198969515594244885713917560274987453179328548464735230988956931168765838660048484803722529662053769107692261100918242924560346378376954735071024910579181203008050088304757063128869243793297451599024671803732345523096727993180543051251259172177577010697443337150700873507932726535672963632695537411716661204421844032574669170780927630398548606284797592866633970348624211786822957091815764627562386478758263873530591329985070888375402375446316496276045769275117759748827041840722324624357060656917692326965341229241196922540017213436000663421642761618046822427935889781999411817970233710378158268427710695026793286431758662235665635454635253202520754821420997841617373853178733764660223216766234394221669402873396619190743797534666757328170310942735980400384862587939878674112925837646940408035898902987471187447044081204627980131189272641150976439221763690699625437788646979284456753531484956008699439568387100975340027004350582427933095021635563092215241335169305029980827213070459754125696908458030578696143872764154989273543729375913797489165202012817347687224952557595460178791816626829097860178819832730540494288836358702833623966204696358865696193669054485397552307878556907818035400666859376958426692653120212753847478742611362490689277689711381568210129460879343481597606193142043097939580364248383960863983006955107503455488177345498779636030205197155318606726166649432976458877734293386049961996365014240596474472437724593852055829040764781887840631531599417299650514635529638765348925076572815012901969957841000570896123975670540644881025003264578812342243489814909058408743809343422471057816705661516257527099336088669134301559750890764559708222620164467741346262813843839610919905956212816136021691771716996049134753206487222680381520490903978266962655043353497306475895132969124139047083492036712182600759488230629078475658730098710172600237766701881478903252095863016794254332457213005056978916702647980613484299587071098019694202528554410795548654498242969396916787026433991645303657813799901922562475278895917162737747874550933012160657775336888780196470404458385285388906121737321943870552303004924881106354104215859801267128325749359927296823962705170071219382611329307745391193114977333051998456318736481357795896207677860720161102175746323027178460653684932842306480152014555988767217949708891470792943957431238200903244809288492825205039155571716850097628515956953694960005027065517365712991639694266618550974905756759775963846209800585217546742488425003074176970155637632952557056316704112702538258664135336381108637735155460995299560279346935706810452661333413328307854893365698353059341375847793326763179374789177523919144725193990421990701470253996956731285261737677426423285539905991246132944704052403604923713337811642234106002690910756865535810780037620466957764044307983836735408703411588661371331394313203341561624537697561695773201362182159083977345289101264356760620520564533688980384904423991763354911443979520444418361861434309116828564734754536500466108691203096159130440263184655545834424412533332832891480403698880961349249102477524720519970324735171762013398626575670704037933202118933757464804062654766637258477063300828080010753111518332554615571382207020860066305836070883042392892300956981927676154625422159190273407404426990291241598901954364145987107666329687359580180959109004324029335081358593573063158825786102551164134661671378894575551315173642614458742775031824793908852809794603152875983805106083469746272817437614626210409526463680563249463199954480552800670477476846029072215817806156820282902304392174222689263424834076795299875173974167619843759827478977134462617372639710477811318791312924966937811739141067426324389032949066557641733731657406706815462695143976892196535310266884377861322722993982807275734694381900604976954046730141073091259947129285163969555426496003238137886502236644138465932399070795835058755161816160161437154996075945201076406342301598045721594685652282746066256973277775641835532577020137384987046189370357588466236677032077005191080845576602805413375209577821229799723798657118118464704251640931996859457821107604741628021102063228003397889939051105663239016047659518005329411801578983431046316876501095468822974024091883174616489150357929117221976013464413077266772409680817478015094238326156998947954860989597726795246979413882455695238615722763458539608422460929653832615134896910851201256093765151332473912653939057602520383854352800670754104597877673107465914288624813720545049153946910556752602708539329908324628347806157649640989198822913778662285883178110531305851038943357049741539906548556229048187160629872812772928496632238821432565122044611035701297467004885648391520211693126201915273890903232651551842761272372345719778972536182913255368561452718507110850408393759160702329637758439840860387808191140690405813450372396972304930329575059941588344537846368952711309900304670174228735338669088265957425434992053262604844241951317425906122620589979278580118171370192522966453324514847436289267610125062622607568055366083951281694199625867945511488934267429947674115867759332977793237604677204479161703506659601061933626399588573406452699291478785859423636855580446311270749845692057049120188475408873993286163061557506739635985625029589636622515467960086790046028713339281926009440085426745920127686207761283576007250162927206563558900650662362538683653710321105004422727712342148511697600291370624465137390205728304046152789623614176887575583037498322518501100523240905330121109141301502540785418187121182138842974106712867389294495916056076650855878788546279125605331566939837133481420432076441322293608438074428650878022550053484433770356397755131345977108433825985046937833110086250827528879147314659819701062155358095399895245069800932454538658959041666310621913499437694746679739919737681996002105107662393959618768529909816345904765506037276848148956822749865395166922392727192144601710906515490922439595734485248597952957959843223503769717189573417054606605123944774213220822227628839511063064884390561170545606474349567255589222399731536678810624722918048900368162695496089236073646539817871422238009860567808879951872401233682150528655679836814061571114814668497741414802266112503544614307359901336684378209370123758620718495745919207064444238664855732895145004357019872740178116012655759445985666108896851264785070827844743497307377442326429660957005698375018330611776593800414979721299098234618895197037737273173639275120112387349721870354929595515619750302648465312333809329783451858856048783117070515672056040828521404741488858299843395485703484173302333354398739884044793701098850088129233406092790592280921777727729507151619326569653378846738444546513261278695568737021682026809370617609651495317487816373817466853373259418511732229482444215435909395157463225968241830257742016220993708873853771610817985884990019143544431022399616179443151087598483225918872047502552031677515458747541181100338178141948529876530400191159932708067451798299500418658387288910178941601644796673548226428574399216259051407293923699589266093754123019919710740387947262906826090550376068087654783870051547336127997158822482009198405179623144125548128801028220277216436916270519455966362607212816029241323690165755027549258683237818913988185166952554391067763128996712866360187532125841155661259850424454992921945074224591315928819964549182839481176811719800074738138591661362287076573879218586771244687066515795398970292794241422811656698318676677837465222857837191608354700048903681193784577428346530381856813195864032032655362430073038781464302077985230236886140677774048258584684544733796365880031153454022955821281176832283904880948262455827922692138687407182783142236774022835083315222437988000267121238550364985015865708194952732316637225443793168948585867065722804327229542549956187186093798181706644283031139176746600812966112983372540360363216058666065352758105411781109246325564678627161497274849946539829318061906917651520793857343741599013173834598508543838303785088943730336423373892559703092516427476178129708252299593730245934599433116478280684188073242214849046900529856874086799856271722906529983594019051200568017603792794773269811462217203652270892650700822482877256486325932325032760161148636200211959603512682782737781729859328760138335407042795918920357274285274863208175557945899980508874107896921532034085528198569171878511402767734719890725438119316499478199791402921533763325227301476643037300500297009595411441732236485189132272561570810746301660573148140798907147105636967156388687836868251514409549976437292645843803261842548555987991645706357514373802747423497080248411531554871920365362735336281063250840728916837053887284642794436636760132976833736589387681337435238641981076003836123042584013418296983007260787780203981224078754993683063985841454477360861112827439747992794717932902709867382631365839877598982907572744945398734994212729576728847249864510523644926740548521657217604024416756708597844705640958126505934086748760091479614231022352672537748277381561166530563424561966672237156833853943226814827060504667482136021812901107650080312039200299414157507314136545201902367469127993214003597566923542285278137611383164588280369736470907124588866643574511406070206115301373545108796406792328944651040458787433958277480070319306052395863030717730713292308348031831777362592740423653170008510379517178007501415007729846329718585949307466797795427450002604883238660437964079830682796260947317452872498660574250364893681409363952665893571695994612900150309677209229879126574341119287008591481480966152991750497624470744802800638427333345838973258945990177636255428766494380908776343812231578668369917994434181228201801346374821915483588004058574908575461750682517275936367998200362274218606158852130468801042940514295681836645125640857754793666919859492444125461932581497366674849669690483271114056545178752970431792697257766188696297646960526009533616867175787542967675747085801812130729902827020450527731361243063694600662488802851205760140700986701164514948782929542088567364799948793411061484554109747805114782057160817773559780046441338425793461507374480447109814831628053368553465956454217920397682131086978789191134902745725452038073435466171632350294368414274003626865246627673059212534336608509016901316101833160088874584104235417428001681203266123219429022054044058318184486976972140059083052016683339924566511775079061805467830961813493185782964451442802820422032014909682002289095695172264894668766310325573205435119054188867181380430862067418018281767736193696119850324500681348564382343992180589506636918136183437531561187424323074936654975093376334917239145255338410165986842465484108390580888529578576690622635653706572312148332739031973540748154834461047950473348905300536728442828436819076187877516403807377031216804539463330014470447930487039886611028844901653301761758571457678090621033003862924368197753275524915329566708934459368127468797774769908623547339102520434217749865489138008628170183469750228704757395784492257389558071069752338434744580959898862796653289704419437751014574640929131602102059250455987592945692204444681338364684418867782761284705459256379338870930375223450500467601958672160072385433593065173236776084565646811013858066263836873708161250493519335257334831755512138223456418301677160686636798071448580082306440015196609061087301907379337594746022553393647129447257916208427567606710362289004756847296370302917412594580764427290184987730127365603893711957835989173309585111031661467907288073220800126669727690575678322939206895092566531349236544959019060343012020259262593833486454651460266809884442232554326247885404790456669194052436554485892256189835728369612055700707883998690121553483511374195502025760723940205038799135467954814169318406873397978816394252165101971551745920759098274570560275726629248381669599111044696633307707715941705121465886482099852352600935356924400230151715392168795172434546253402822234548326724831360458381983346994750396200229900793153997502593462647557046675969642569415643160552682636417869403049124510088396886908310773811009391220306842135156006904763683518747893858000763090296457155059398448819959036185538148671372550474710512054728939378695940794131325147483032158074575736622793709237731675176724667195692645493468160090123153195006272042275691426625456224575476820735964118593153389837400772020490361314220833949270858106216525945251972612405246690106280357226309363589672770006856523559851622577235610483037661182556456957386819244318909533401318430171335215093525325579412451045678464551395319661878093597404676374359184013840347886103150359373564428662972613621646003914554806227434554840938671617239463596927374149462034743315319262336411613854028790966289656198199144677752617014871088267843968286345994489879362467959466484511594646296668327510392231565737807442084711095958549749164434513298267891044582669123039940466083123769341178494129587589829495606695717819078914424508449095621545356956387631401707285335991186115001892252495823550700624352276143460435352997462240852488718405765877960122081849411628725876970703887250713458920015223792537141528827344137694340178575002266846272889372632777091749880731566238963550674903817799070167298093651080626182715468413179667328800323792967276106900412707982645050924001940059170258248396880900462862566488858991434937421816863225709686126547220618420958578590192457855068572183571044495547361398247466603395189504899144444115381410667219079723834141396676522348654188057593175453814561237734384220032180792574974708423651589083521406223139040166281821876704941271274027702870939775702165001778350980370542323870273871451706126063593637232913640684116838258888036301550649580736493957586104928182018617048191231546979101457654317651513861484205544541390143161417999071047678660333973097688807609965179620340796212345373254304557413140604969841569375582626536411584680987960139406401190617842658928220753033528384019550712340188263720046805758357811530190028407550304297986113187824410327687349179441826501108417766985452467661688838374344518738068130330481234785568087098552456304438987597043251042680239125591484111466322513901428006274788396694706353000616571414891266121989275072601091442137430555784465454195578652770585878236059212489311725892038856931096538115606866191651231667352703274027400032163234423023686505839837551061187724580469502802178737072997716360977984031537661351156764623493771348272017018067091958740338076409964039108870603985333046005939686170570103850000286947648336016549819458297576212364571596601199517934810953803919135245637561524676376630308514963963744729305732660184138239446345555376141797020162359547110857421033805973336566606449423040774430767730654171788356214126182555069904871755038758661707887045755966343582275480285207626270116858638139177073012562180439031188799995094316190373574044275892226942183919182061341607705580531893152092425203017365923636462161742523723427726486090950259923410237989913706784471940364992404182727028813853939383683081503779449979345741768864647076747857459913675185784223065945131082858844164718183278623936606376072045013020747016898403593860108082887157274783323909617663400517216620961145876980463730257041078583299370851521543034885070653082585781468200086891447243042668280381339433325374048589655826588555551753456047124091452364833519679509276513089010816243462220159382736580168275012580121536510275813100358119672712055122671074899307868240480133080892012572626494963614444454387127492326497543163753696605322848754140803813988926033250107842107050007941606452524690775072407086583010706456744429130075047714235991243394162226322205241473699465236243539095323777554174976704544720518963873293296774522795194086296914865403515218047814784695087742819293518787584075753262226591905582325960238670702739002029528475483784797816546388396086826694908703899799682292922707106449369573392222472536450240844360932525508749414100023787000866759621409056118811843387315335353198800754760296080330506918919835158285007319951625999977139221845394289985466739920716858092890731533233040481046207914833067847438755986963129748945624937511308550493540360494016519581904797549918965421473642606846073163973355282393359824085861628152272324246685287420632443300741442109513961310809618601573740152326633311278254834790985477874896178112884733663277323213773785291751343408184613974794068383195875462926888274624897278077828605007539798669938924114853469010362821060384006284399655455985761126532240744750114590111892939656817141859780558935105927369469052643964310692461394236638841259651593847401862863850585449037723335639974480543765420978690594202055767515366361441723451841750968568732625837738540701738887807395656675741885265100784030250096809248335917939843408841969431763149015075615489665312566759215470637031184924860045938734696128677630823497924519504750461119496283120181794534636247725007735996259724394823104174140633992183339781910918704949718081827991066579400344566768429995175526270707286353618483691757426060471541167973134905712636683786405275564491380507304189504407473467862196600193961048231850006759964923317006478029803189364269281756782404697461210273650777242344449575984847275683830415978809415150373719822891419303478785977241262487287062212560509282940381556379414833046271850485091259437687168128607498603529266881936592066776941316818094839117767735044212882851327572894859540606076481418442994065677659791154448559674066748204541508977895092940484100372232006441833194508784945969130716856677318110192648251180126337748878195552943706619420487925855310686633143342910735260099304165185178888258317030220062330182796725308548457638760498944176864776253760554951755319754031230437705212143133554581387736955297338107419873321244400826109796954864906562212441508456767669610661532403522906669605615116013104888932963572943561918257578436904120873840210232290633765102771190801297963330446806049521849582860430289263626888006024634460523814551644649608866768054133268166634090518248591300690058807049267020657037190525015892610073667717654105240614400155599430698644008934847507818982398681985607713260478348714848626579798177248290562430311259294324298302373388519009026245922675880911818509931170108779286397747547927058524706648122396955008070933592117340876000397463373730904732052357834891799685721959513907238684628873066719726188957162911726654457333062762276609531938549752417212441730327502902831500841905993683929258375950253028683192003063469782121597975263182594460240088565543055706566235375251047485731519942884546726553164049015906156233052657491705747783337438785110564953707765759842230636359789584479936734484872580774334036259402371226503023456768593379451625165196598934664363557164391384579454623237102039866086201235674783659395068788317899330138826445079816154249464500500598320238501024925750514761433172214515025472303832237846505590267006058115909885420350829128371072544773853923522101463802190714681373029714329434641691776816959089960563002851398032018017852728397965572092910229390994607565224500104654567517365237471832956898144983541486632311654435736824040604797963671995984948634743693898117678206778999553219136686883854086543489758266237334608364993910733196426099803810252101017648662552033161860167747668612056736023356943566993587300012444020711818503764924841923891372916095388686421010639301997469858738643332329208059437616312787264897489450356534967929384422805926372078712115332257508602649334603604704793757476431016946404487649078820143423368186012049387554201507493647578012865133832771659952177570465117719517189020995868913404971145293596318411281992375877843305136936475350662858891535327705893504238083908373206741748408182833156553745967211842156621005422679474275379153014870925899020105261747402330744586540260959843066422531621011311235637948094497470847634606847443068020868932767209881031017086271429666767388200465526485888327610859763831718521142715903455858149943395580611943444426249726764796595070190910034999746820711509533584409278793168366150781828166531272385892809491850535605379354151395865619319427558008074389401393309055369667148945222259112306826711595858040880250570281027965563693014473949935549276477467180871037355301906708996610093258539107911448325441726775753833547602716457191802821052616837129228394232371816018823014722524142005057788267590851189451114408397106277100744143849986473805260815861550246098213302638926138954030938772535194985633270171746056532961186551823987457849333450277910798856518906240023053859136912670576173085266584642497680050762205770129573263244510776670837503677879786859207107502552703955255388534531450069164244179166446617242693475775819574346858374533295798219215197228897882054056901200567124832768732680797215105069642106873089486950122258243414224484867439613408957921634917903492781460637538488491068347156642155621183914128600782066624318692876631628419440514601711633852240304918480530163806893252083658321799792110098769544031350087128960862843680404810675533642673049624914355775307173258369384464140191499534439074019881343806403811913138161992063285898586363731950819693121052798179174848655609921856105003988415392964052201383797785957447792497418772972568813025092169464335357449038436366848821327069371696644894592987061008197443207024908962977019267734103329070379719288803637197344726393031427655778551024399530008691139795094706059963955495636159888668687008805355121505196468402637278631227917230166568486490879754190830116090857912885264464069765831888167080642594302841709146485319747302759470177328213788109082592193116189583206738172991101473017473442195913596703875097838391973518568921537386815228798952331436447215625632489320034112288048912245303686412578252522640205916518630283898250592945452367209675716539864425491484321873660233906179689546946173085938356015893182992528240081133596893984423466546366293276487412055887795441327321192445210447121331480967149832135020750385291175983378421918040997851817929425569982953653348972920635390840107264214477144839792512463842449532718128452456757414097208057088808571024833869133257309629311288800503423422818253868690864107761986340622447932362061907942754045097981119146448086776729091595328732961840261166191454091176756286248257761486394125714394447058638116717229527669982646504737235846023801783074804009280961399441216797614005561394778986682452084389510239232939481241890880117866960221652312270521452363666233310279393178155837639619568887126671917185489104394432348242166872282105480462264978862864129611653881683813068031516943909576631347355697127698124800890699512634547149670357604583025714505190599021389759336425154303075270285559276946926445387844362783750383737850304182132263683563043595292973209911461121044621851415324978331604361017141477097822001077624290657056922040303976692994169754103419816012797098964609200610855388713654462035878927100355745450612842359055272735179573842375268824507117898610215750782382400613783733307819302348771494897908029237847052067674314922610045651205937432579745674408532530675340665958360299584000715187553754879245956676707673331061737112469202029568380585657337756962444221917559967041952496569045490226574878226886609617510259269381200764239639938554815128506046943599166602469920122571129917797495417055168983955815471366585694715828599385366729853151384835022575975401305204274683212422493138960718425815911292188086503029835521053923675225104476725400578805681384022652204976521437168426479649969160102010435811658482933204869961797988866618149041016467038071472908574308128768404699379851663976289745216466250254969266655962933682370397862575336424473271451357994741880389301586014055077375361877758459951689268167818826338998704677699321657617684795733813384318546906348685137065287310649942589885934686076294061015296341243695481983577899180404077615256210216904889119249177034625710502533671976890319018480260440238690483398451739854131340554227809880626498457651077913812612768569434379464033768384153730426763354596633568816015672101289209768862151665258511210242666979425828201914233328506821525594342681376426169147498097244138707522025042886643169131938037009391730169612081547044483045388269606636914379587601438224652590081890587965065074143762398087319814368662427012785770167723877551097910807576501194437683588582897738077054372549622104366657977271944908799937194841844485896620093476436505433082443645239517645197048852635331455960462342535120641212993023317619216180617761452854158525044209856889491224664105217496978636238333556306428419962473518582986698933781218407009660242512104359026748180202587836545798437274938348136507770493363813126342080265345344590491511318729647547681289556410097124564659776436748604364106422128922778232364701760564259492739657503123040265266088628921177189698953064600120754952473418866223580323327579131860861972313471703228721680372535860172314388763998597742192881326466929619490338393408276508777078704275856658803302238182221718147397440911199948520539214747516765047134642306037665409726752433094650925943911483090191364646145510320970290435459998029418129091522635204554117713352341858403875071831468804918461846976230508817333123488464376211870407020846947246762180952294624558440893995498422840728102854614152438397086015982239893969956674740331803445660460831813346221214693301082454511648549863997921201873151074824291451560040181195494237306989269199842471887874751758942471728837613762567955005844320610590938775462622277788674278379837615320185345495388291185855443438481981863839864445909717551055639962253324556256957816450561611357232010089624847393513927468659793279092547442669206655688677715273900413686509704685193320372343555050532313878502460699713038504007077050550800556891986803484162615629567428869540973618577023034868184258096980287832785387743093152082219064523127025817742804717141704737915191120954179703810156665324031430578414663576566892046762799282746266402036382615872845951532745472229652329458341080730930998577109939604514112338477375379635944487917362334017158971273338071791259471760597454851829350289532015699072475318978702321673035669979170514248824267731167448113842453663170602969398730262366313704239546101203132564485452374454491422310139929729374942254580134893875350626225928343073998366198146818694127167885790884366835562261100451851156781457728120589191510649097710311888977477294475316538224786666407583737887149956243844684093890591972173248026816946776148176494447589312040087629420388891594646184525274668738297610984788337711162678530294398436898362828937182592731554462664106005873648872722400472495813952185778261855516650340258285093832426062432127300571257948168378614666304580434901014397589486902030275147598401800508535576567342760428729443268004083271072583879651981451721228524533032964756509752153964256636017431169995665774186218831569850100528453747471354002185510313640191017265055022922644138225031006674168819245546646308341709562530607999029076770139413894748888139752964006272870023951064077252600102537056806805062616486340043182073503943617511440408977382052102573615012770617287278250145047717572213533472344328821962428821860704239824003128104188733310608531088063746625278611412155259087232818653925825804265050370062256607622676651758993514278938886157002141902263735481268382522420679488385830554339203043115341975911872857907687146139451427521609712486084901279677895393140859628580899526738590827714654744819039154995254572968337396941789046365706300297748855037116009235215651651058038284208164271086454143553581381340980373471090638203741855313524165259072891780835729322709133713663866742484660819184574776577399200040250897075443619653687588280086035612187303050907569892787263015219864649855455554254716557189262228598262107536625003393180062591001989307975175348407595364361818611982005408286686617336998226073491768686753626582595055454752475107115301919864617242784333348892895174850969801597841191774916807606590905873517718754973163409037149017657455693055044184031520534424998215501383159456466294368803950848182983338169347492140928260959729767616948970603209007806515855401670767636972386303896313696650991360342342504126097877690389493022605079675551133391279519816886671162499875383936503815080300730941100763234044797017164374571557312468700536432662635914501461466425403594201033673866649820990643942366695126120601935401590912386136242645512959211360151800188844998695864632024581374572803851586524275159322367674511100070260848700067157276996245150261258373743946275470775346239825545690154021477311623978399202291764679772116227364300970675441770820788976159884183143473065605937886009229338368544622476750712150689351459268162457989509978346246262981481199974402560136092337908073766883628050100515477483534453069528104113747134134560958245340973020433088136663747059021564045600601785880911262210365576463246112615273571685718429239146006303178139612146238099388586290781807557121050401568193963392181680577390532007296905075846490394959844952552575270569415883850782904573423896902724062134938280993052063119369890269809596506669809816100743861131231285084790039473156420463476665026981113480614546245977466277600894147782172005975623345572759208459671870248027518336619547913743010072451713221516615565827243386707764104980392185169327630795195299281857959749425532858288260256447621477198540052287264876868036570745577035125762500810397435032245837230620245852017182669183376924427693891922565997489208370358621632286301513500793122232942060201868836069306901228579927448308395590807314374221669697061610248105862697009352849596405776822919535697021309171578611671423918068605230997182767159206925697876449981879631493892591311773322988208921638641493530597480277837034607071847708041940614885418405790133756500258614099713291041992177079688006971870030516966576324810897594025559957752815661013522959050142520207524513245095913187106697464158392856853645637965679611927084576084914296378449545339878962205451083307199322209135527935402343479192728294868307711726101198282774508754310409791321970501449165129667217048192968197286647796088082692389112612405432155588588519827211224553846602557365889185327852213513617374495800554430049489889397319484804705020140211323221140690973875175133377627989073224690348442509396216876112775376722627971251223720200639527012454561478957767432653230643607407053242344738715304272957683301968061264063473485230505334572031918646987379802269788656535824977216535570934774970372507541581515183905645963314039470294451874728354618279049539514130904831144637848154405102288509255671359446990860431540639438666869410738114170854045748518583241845252705838294021255737791917545835863950081560595076231502516169290010927838310007034783435023652685012472643808915519127464140864157393416928422172249855327820148515403586685285922923229641493806471764858322301266281209630944375634507377606800812119227272612840795266958791512918584499922092438398940381231592689770225100791728541439984011533450228512557603940692717114765183181316459535457122528316588060801262398749339314931887347417921715826970780403672821572498748710139757695316431885744912961109175277331928072759432770157405757829458616075476852045312699873485592691757117630119145695177046544207144970793587109943402406808155093877293208311932120555660462974323297955158710175224369565832763394086319109318961826014382843930249426197609762775928838917342406412772769734837350106024883355134735587032372908214567298119213208841344258468760830865279020204696690507174612036555958475124245179936417900391206591405689315494516554628059939027613449079906471110635899304850542458199741183036545265012691137143855068923282957736900095237373562357899879018976608734863720934150962612771737175152531954688749007181313376264796567567933889243868501300528506854153639697670011070427702465742086881090155998047258847367915562173464469896346366076141786874730293838124295462597510697719490351372111022316849254522965420176383414494553975178074760059883189041324459373229894645090822686018577389023675008334682304703623478616598671367837196281321259318267910819865603097676328329570453690440038425483855619897090326814162036040311179820190332164999926346889316929561932227812534614719738086547864327719002245968497960010793041580497535283374183252246302371746952900845900735731393052875094272580756019213298855632880602171329214100654004547530265009510380221470736498775410584018711077165424973973429542350742214132352486930510767191287188462854320835486566298769617031901710160971448502474169774590147757554971757910846729057563394468237149158664286932393654770196957755562437189033906679797979000434467305714540436182498856765383964070539730059641463708092562690275208303773711195969623146703584478747602557971689109395971353460016814263568941566016438896655230595302682660149653310505070316715505710334320662305320404667600922277767377081719692501280620868926341486295084918837641900020506927036348801227183647091462943234687819443185201599199600833159925833065236006782468473733501436171528126192893942044388836536743419033536930542565684184767496140609176905104043513621029327133859581433519998218997477861963762083156990498683878557546160239631423077119373065715037228371178583341087811497961151752789102053100889588439884275697142350505572892105024785686563339704912635858747690346673969359886464671281228563948560789110719748098521304232326959496396527565957973392809446463069976628297494392769302954484369880391432877096805893141046977872969957468928163955759423676086245627531119794013899550712901047377337431117167797989106788778926814446303440050617302142281887231589905811066897346052432699076696864238349886268095586617776525394225510694833187390861787203067300058244867624786283785355172676011783857272229387694843828733662197277157048713189836103258517065780295940384326303194629796321614815143791486362061294278696963301615227667726418392439223295499987188435068583385369549283363660167259724138539123004120741283163870486724450008807044902820661455386290670589369685306325222387117875602608112221392487187144133023794729190883650734822626809310273252459255601242791796989772778691799965178031920187535411246066799739298640630202100619353991779772909037366979330117156365498471695659199152136022012625567939017951661440172854957578222399394517257812164548667237322992412748542026268705081758315644163388755080207749854810391883634925031923629489780976682306288526079558441928640284256415143579300778864982765396259088874606493842688543917235671739902561447331088081004047844962823070297403364868351274840962300601339580436231667488962248544126057274262902784961411734037256977115368065745598748861630796183702510921649017940697083458533265801729871300338373221615182615330357088407993490584066957049181676217207218664540805673305981348216033942468677564432855255990359414927309347142446903069165822397863736361882896739009845132769883222606130048149270112265230129177942899966736156678180447806619712921847680256105707414258662831641613941479984147828967278151428683076975575922940203523355760460010268263632532208796485386572162580856943247748926974970810209240743161537328141039595756590028562674721588201246894135844650951877887948038814086044428894694136382891088406558258540016119639822478041578608769938397406934259534220774280954617430370349958754376812192564943816636774457507850879636542916210904373181340790401711222208680107746919470169082278076858254215509805314983666430125981353264602850235300382446201156960998909482645722679456435092298842298077014472187913567314533345960341258934214681918930995647611584650638333069579118945849643287264563915426099642997553689058559741288980745725214434784750375779575556131157410824833593009211709349542306967408660986713659971574509510090921699955159108129223226237552659709452424427629181910078423481524795243090930040142200267592987140422111928523150455038849189462552148088414007558614594232856426955765217763476122222121573685927714483500999044844725927983688571920855682915299696619241568905483484334503085035171399806610155291928979085662873317363878741514957025182797602417071797449663879078794114559357203015763078440013481135640833195576107296668737767453726967152516754761752124227169808519483840851926082750417724180750048282600369416850861567844402877479922411142314992752267090345462927243080419364872232319569449763114526648225227806983589366481555408001211516291906947530666375428217447729096522128847780179527577989876016264143479600215688380353305547114024550851268132720389805759263411509105028456062503064529557672622681324794781689118311290999781313078341669762860007365182281152627327674447735104788947491090278158078796480704421588205139459332556550842671423017853873284022949960483904844553398638602405233469040402452617648023271158822778286132496348166893005803023487363624859564938495800232538454170802900615278451687090373877028245663256310159703680868866431270675657529407209489889046365634858657017124241764125002538947122512179064668399710085091665688244988750408955321858055057493510252105026878529240961959102152300450770913432003287312358575080348020763218443048730192919691550841121954151534151192602320510019586965442210691857921639592262614736415032563533138727103479612826632457931078674428716762610097069501984092353771210656031639908956315942317846626715575446984532871207017190259917852574682211013482257707137198472678530887013104911583052388049003370069545127955818088438086914228359808277816811713362034108290053921143613283237475285608892821920393570895390012400752867381738319331614352111921925120791850802089277542296348454723723697164218355166071876639077346883012675737269546797534196436505345394434433924161189811521402739449340272358876619253568488198271131872333195850815603571091110100810837485989368872110901496312957497047453745143482237376784196702631126659075106252421501045543634926516654690755563141760935932229412807249587298558839059207291946874741818549459318489231751867626647931524888167967979667216863620817464223277941660745102853333213905424683809329215296132818046818931045915982037557221696856007732148473748389825312468012633193019268460389971451076130795195389403451430175875818609387434830492949312328928984825776735236713667946557820831142908850439978124357455578755197202395061381162022035140718475824053588414282428807157489867221703008449379947404996187349045354456703950572913268207938657054427893570241635670541589183363115893472272532331826743742569273830255817581840227765420977785717602265038629054720131161274552715571333923066135176774849015549415203935435617312964449160467969410785144255362964610725339544554520070015580146280336687387547196248010813262692558271733253856384685332802191793121463090814434139899306389819039236033971749163408299154008118517291781459488084694411295694272556399490740981117450079517648383524740945867438758448446453970945169692108150495343442111211136487039013064403243434680998836297337198345111000537138899706916326104522634820685881206327127393493248469112090299429688679932960501605576533719335910451770294576760162574580246276456022680248464507368087562385887005436124698284179944496864433410072737171301645575221599948571178495734121217671439720805069565573587051737231583596770628011908390403851691784972863433832492324608590634661981818027627739268895102624330843016878166402180123730143517636373404902322590161287752476458321095728247758562349539097551316961611103369174009290030056476176292468243349010912144109973402854802634097696210060311849315401657091286285262716447624437415074533702055810089387060542643129133653749312780404234636846493542210938330307972870882510972218929000161397600093929513464800367279545367450231630348858581968834939336980840062532134377180166051783900002027875541290591666442498755382859959545260086174300309066607702476525444216472925580503020800894113911392652223521313115541398892620731464373320082957594359038773890173674529602521412763661454420817447495375626103686512460104693200233884961501459804097113385889614244193289139481569041480831377248126516218344861854209772490622617648262133618368877319574340507008439406541193937721582391208104379619646856928188139641484901538577990328801367583141907757356412390693710161897937177100509331570577303124236252648765062272437724107340229767378503335099085612543792356872546975237525832137471737082594120438083586331159868326635886192782528550118558857103285136993603322274468583242670298573058777939084830690141658362150450263117345966884687470915248896868177996242047860372279759623028471112028600486205012480841944768183443548082942119662414218827943804192521995887113746015449609001766498728532311571460132883889049726557038759844337859039145152910739317843519806167437485561915201556330397013391123783155430595410991388978634132810620958926832819881636300901044251605554241374537938222221065405818078252729731125779907179566816942077165234361672423017933044093667870947144591566986322456402810160689116406860873604768552615766533189392987020532723257009122078870507037635899927920533828197687623967594913722577938294971742334219852701521590373568919010473985063249371283726316609767811319381322202044730996892651416052562171020301594336438327946963424153320822425349947137372870685515727958997018577301125510687648994677516770413704858112264757258800247071330624058921207133881973453302537309595504574612867463931672015229142193617334962274001658126874791409773867787894498614984887263455594131400364755241831105462200475504029787563200841871537056684802193982309478027543053481467871554139289943331000592940156897928776573324800777068664942807548404373800167957370335069466000799205405147862824895151685662049469189302072415506236160996680419545170812616750042399969684459999664665916645607947695354354111056819560002219415727537669095807606363141510532149708164807339577774008273359692649042078715938256308147998101790381784873044769799319712715745222755755656585168175180444523688070653646873227366815754809164154504002000542528932436002837539130991504599396023945206778408673078721238178499838923536754132820448530851580434415362773719788427828054705509235172862022118563433079129495320928005582660682564595766879835679191289135665364300649480921982490361633161240550702008064487835914224687166960248698474651458730171348330572677566398153952211879901930114445286410970366921724593585262704865871167397570889935347464077581392123076412929578072666494355268078430511461623931014257089456234545845358297589667593600933500381569461345239129422446699388705997843734651585669737797060910036469926457249098975052266420380604877361540737765237668335351801574097937415631214129145080288080520028260755217654857903545210616421553279635356519534928926353085919924719452592503202859661903369594924512919655761531987023823134630953088751212279568171258520839074523764676848198990961378434333120821586164878933119960008248164966190335841907577352035474597845355443908826119578886592404448864330583243611602341965182654052247792476222103498009480663995201672354562542813041157112436479428874807431976280111283203802800014513124341251470913526995490736254907248820947073629111996572631655623218212094673675054476964501651257063942267871519393250226834396024301706641590892926801753402017828236190007453653490439627062862431302766838731634253082968881259519113901145412830592163938143572736798237527696279088560066188553080522617692999592562257430453045008365988233423345235317461774934581216176122152507100724906712020700048631637845512263877969501163677213367381696233190239855785059903908941524010177515231119247233085056101230034887509718377188625035500251436853411544704009324521673126480953736623737798306883493508891924539814096294808657906073531353552414938224898920092532941934101344668612412322672570894217126646473852011855371693022862132839399310126986755586908731267446616802243807199957840896314093108333433343055978790842635929263280197478727065246743103233079671104440108651084418501980891221001253140404925674986723684692975998484534687958374401927516737675350069996633372850821057202934651521181548176822051967559801588955257284754164813429475476107995661340131480842026007832116154966647481354257500828593384319749150896690948899803830384612046852695483353697541044562509534684555827357231528799387407529574222765665890760923627287728260746142025841456221706034166519497714047813600766981717078312487501895007752829848729555254543980871504211722696699111595835419821178352356800453243160689300019893338967035826465613165525894133182778564175573631475453897434529911233523501059823223339812472007094830572591834483232502140783153202837106416268610379739028564662673513328103370811238738787020364904050015362033327579421831731002015921101960553904210916468651825914647109557008471027201786779641566598885467769638495815264872101502417872411794643625359302682008941431060578301782806369460838444929240154089182751857276915453052129460983065120501680528759532729575658444956279616620561694943535668098093866216043500330219435213492265198639075266634529025976509036623961061654661856675102337678985375480932388394372987018831003845460302453252715510747639449938795763310704950991570484087741708322184153044522814677927075657779071659172885988742175995308009368159607817592883400340194183260394028482662701272865417537716515167732335786080406461923975542998702929613599422309856459197047026312431423725392597048172255382966870289161669772506892806463855058345651595219760971685835748273999000765342711303947884978859620927720140085141401619499918768359390998156701690680337886765592297482866753638945311480667987901419534789418621226667174536802034373307171843594456905124860591320522550106362106080160571804651068252031595247469326626725331125357394707206711851850724728471700992360688539698646005670440479705754296941179104036864610086524358261607334040264290186359083770012105075972873253987287653532267026156887934472541670333469940173269962753577934757029387279602086791054918867697049776830832729939069812076570567308160171112538186340085307452402590040325439224581675891351430228084109581097299464502497149977408753835469506930352299758240197463256859243075378788258699710141906562393570176553772914325214442934565234212858759168779620692911743229979392234895821489621202384459260761134356623152928420044792250499514104117725300119432883110932968284358416097321819235713549999621175785267510013126651400745518117176820919087515429950775971243249750914487230106952202497149127767449393833940162155952023204246865532628152333074231064771939722786257503722694448085992694301723722159048642373943706490306629193129414663287915589001616069514700273416448254843192093134166312637396629986835319423750443770711525812767622456045670791009826990614664288148592507110679138462778669180598205461734097828295637853415164377204492705609168718530099257479419802981058520629030558411755555860927320669283014804110356698179304945852153161010018502190174742628949252555275718616197669199249297897745355948508386755641381505792596877231006575500237356078055211299161869104257134726938832205622115591322217515571035418970404285845345864343094349581427734654219502532058660129622374686896729805326506751662950417505056059202697686458590156872714760605074654544572705814981090549800779236012610396827254018400275479306480516089823592084439673608920133666869127256004085526867631224158438085285234764431180604185183584805837398687456649330464411701844997479069994990630152949187571205864499316145841886978793534178467109654643733626356694255975615711800231633083970373272006890280766319355408677854138221389706425190809192027624106577565234443579554807710694039518666344558045419615665212052231413110482730771006545273928971974195666896885575159128100649594136813030424202390902902141243816935849639232354990015005992331037598694596864399611394070148351604179693827850468626801211499874533648774602254614824270546921279837226419988563640377804084647130032605415501281172054777874316193627429804493073594700965229680832001397710245576317578820118056208294781009983471986714587783083388705554428336005145338890923422553401765264836225849668123577963397030114883959216225624128228386724408824433504061258749073815069726261186527643498586955545098692700896179597840738921818649213713301816851720813862968374628706682079299060984211461796193344305735013284020518425961300889309010329458993089145365255263159715859552640523193403777663470896602074676144805183488289348866326584680233126935116819924527905726977197947480754209697946112113558449136479158386389864738456104119948555124943357082443386858503935949160246516334069211209347861847272904167645106195457191492167135662089616014564573853642084737863648772851814024708702401175663068215818939042835820448349700473290474798620803582672520104374388198712537191419972266678409248976054345289097834877076861917506020169044734812107799432441366059514426852182211590958015770776289500186771575980976247256559471819876942885782452901733918945888801546449117491294017808165215708042085273292580547082268276932194580332751155283588989735354381667333743171979446918553510202508422266516124050043628995685211984232704075686548729190092686701358887800225719647914673989761827529441098608243144040607849590480122448525902236610552445542194831865098335295140745008282282451848899527593678387856129213073913407902113608842702727917698550812335019912489979785106624174808688765656330856871533102865468289986447812348957163406298052041060722604102903234099988074847001958617240917936376360109938126806500097295001823524981133110429569467442187627281964537967424953235528509888675590641142947421153022299158822714652137325023845560039293410066601011046952550846169157609016997140002341616189000405277660567790257084268192755579888076235706321313055778369342522071950955471047920675083985493256374483620935519421607419386662264055411878141844828759877103503515865059199163371433678382991693935816662149517796989952054973074072990214301056023834386495264169291918435439978667433567750177645574848662567957559114869194269449332598402936247177736014451642666600540061960655077738910562893655840958523021179912778849860101789257805010300770369178193907083827834175581703741924750742846310002218472866217635006499961295836738272409202490228799988126088423700537866897627183328257424584959228171249247742443605732464233598655055181168803897381532455269394505175619686777242325107448728526826497857296776876245273336953303700770088395113417864905033989405654442565608398628449544555602015645853566549883274280585678326363728107810880145172602740379104727331744738058148574890237707541268487118729620400160885168435796142267859671956346373542389596916753561817961247272668253193264283878502824776223236299067986255078788719409353511439724634582147078696775391557264556028385722509087155356967658959854725191610797142371189118833623452701020827365233207184863832447242663148200937305883592708167010007019318999999248421460561093306848746062566714094877356608260345659219451288309894788304101460062362673667857160328628958761689960357456321435155256255477568562795253985388786286373061551762577294608420471005427224122294759715186594706587772109791501936363490995910637052665323204743220908154700128030122913878164559673187202282472211012532138504780918069492703267178300030820078578250169949034714687954716816619387441746643319435968434227003195612657016374790347005073965895676699986609653859227313274344425507860273079372600109745943956741757243703857581495829701416864115340476855789056736568523962424748734733800469737828739209186900601012118172068920313148481690893184689138279767856852643581839458805115537759162931123994423548691468243478275632831300021753499575971223509349876684489077027678389352385975356651989477670025733639011812985910780922833597859818843319688559417224341165171735679330952891229505161638880132686200188468075762720812157805829788251452463521736020935548346152851627587334378759485081240822932659033287768886560575898963312498573737729180204551862378793205220741486158032823198149734430834626851520746064629668560016977228477167170875468842375397442341561907410050148743531766292862104519915732452082106076394613357113747513685350992231390349895127560912671396127594309440520822750605442950696101860534495231078963420274823206123243560029607231124426664148701978364035960046194938423612898353683620354860382256944156198519028990889552423797303150467113697797903655074216051843802812962841400070745733465412414339785780825218963885239695389364549395131811016818811469836907247500720217595499261288542335613222879830334460678578201307105236982051138494450005939352119079596974204540942053628613936439064742184796739472004430462991806121061982475980962559941082219316558125278566843336100634526527098201161636076123710838537930275392782581134574198229874460569242215943519228721455935743678469127099176605042134936827351935161232437553778192932095351272773021105625534977362482338526355561575919350022847147431687036586077144982322300003112777747311045875833842529933972668366860644706210605780497260966036732743109855636608719973971614578373492688802799012787101214299016813999854204701031411501404836961511862239015266112018610506259680060772429325488222477885821632256525097905437631888456059598207784381528318548420397227107688709934498500493659131878644728387064514832008186997112268069234350431911087219895371579393735298774986890289743082296553723518152360371081838120669933981872626945984360804303507921287067737414345633377400944024456314337774964244906133050801038875904222214683206222030414606199780637939739959822267865514997454358835428805050849293348486391182778052686500025111440650940745205635925109085047861504991664905595285592050442387441358048781648556074560326596230317736695173279361774126765657589264686108103567944975437448241552355898524204818057161998219502415651758381148176639243406643844210712423965476587125006226296548770859519853313385235483114596380744603469362192322164313223088981574021875223420190198337873592969555226143231808590028112547975399598271684387373105451898981098530259876112444946020692350405950146414626073809598745948007083743006747077045771344462326012251601506924227999323786349236018183509915974350024234878086208130560468604478866542647727556296385734260046912930807532944593016955854373510779805019288686777555173609162301281782221364955500559324339485718666853158323061320813494817452047550864711556835475793596254987102118213381032431138090704030239475230005247270051062662619891935404137185654594274750839544462077065703731619744099448315488332680961419402745039683174869976934560131197916037008556074981212104542845183752777854096159686334026098133817772346939711142747230298063286809186147852343321925932731636056766767898604680434645217106277655302163643696703093651383278144588377995136864228099038349061430523151895220563139669074701349409061497501506016951899480920344165895938373033891457846762831268313207397687756599928485404073874773604124543699017198761980026226727794853776518005900745572150667014151426488970289311650970848471683522410957097390006437184126766735624470546230420366468659809825658451512437658238584105818511868509123486342485839464563675070836349297432504442514104977079409600633364314869520576045614131134361476096109107019421658688140065066006968014011075310540431294158631980142281157263365226617881708556067459489430932712346307565536103184207628188851944995319023568236722523484100258324750024704490482249762660928349906739173429374430227977567016627506149079235799701333282293168197739022685199133382859466361082621066531786997926530033853614529584723184617880093342457695952807715509481898903577815962058433071741378510611267655262831363044638094781678355484989978208403197105008011918486198454555788588621307780636587142589850399573656172197531815206301737326008416044168360172325069239786044001510429165569347512875579269991624984209443935842041275925915941080287269914002014623081834427620234643096860486125579507024929241323460916796026306209468533596054538073635045640944221297563875820000775900941404891463326031776422363608418814280769345307278679889718860193222176213586692792910003686673075271929720030636820425405575723751764468216741624159951704023125490750559119616781890871803977938017961029201856993356710961301537850027733139550102495597344356183298206973158787376228045673603858420756931748114428352405049922082098406358375277728386332305477169219679482519155910838851818372033653802530428699388845871435986815779503621044520462526632320917614224637063535807404036621132577603163026045309465860103667950095677452106913019728770611238496703943711627334027169997342328096683094714375861587889113653091370083137756640655074608335287621252245579824949047270039578680651362523243326650073974043210752731298323919689803650236590167588225757874177756469382973951915388491402845791556725517172718499266981316223544419019987156873946656007817889596852145506541217199513911038584521405842662320801099455567952225492170100475886238234558253044744717088914786388345456511915825046973944768774835349696862546710788040690341984251669862438067695750928123069554849588042157040151542463241700747123987676768548191755490333815900701067058834054030988277832282742437768547677345869859363254689671179093590801284757737537269868131739317884704043338980381812877817241916459573632702332693562006370769843674870367577200959705079181175326545612945304461342371675933892600945196673998967145567189560091988365772191056721852169448445811517275839034253233355484903854801955823468905577154150156766903279148419519272662809211818035401498000527812572334490700395430120714566728660267220067018193800720045192053612095157206007329626467661512874851640772956159159460140890875524721832054242867780232912594555853609334108447526126945729203438227112214873669439818157768594039009643808195362425292736091050616320711306028707807463334867770242853353264770865646300482997921192974090419386610222027341061126208826889608248587579706333177320081914494835014344817647682895565483964657822939139398894425617043356495866954550498927988495036155170511143296460527312735366055994647695090465958596596152160733875939526001305955624867011268039726637949795293784575070260155852734297698908595576036023611104259758775173907279655159758434305113186294957210573040587799999729745103974180016074508053932315404813884757911757573730394346411799277400373599712390792521795634702418965238576235404505181186028807423347378539002459677789322243597023893095204420926979971699217136816740286909068003812569487881925738000612844153254073277988364636698871975315663853554075972415509576819778722954067207142946359025554671703086222953278582226993063189970791265654467143788747184414480097790532287534263308212949545922166311412937980563309172349905591265627273686087702585798072575408681696678482750596165027581008144053106803796095024945899970007499739702281234811801237455824256419911346669239207755147347847976060623396962034644470486847473960784342733404692369217633788677712061939840082863805703611619144094519898844438247111198495898895107010117728905155915896766554735001417205057211791240379386907129644186203097459302224244303086535850166622891102291003439866956863094800719872503394012524577582120123479763325520680216954395552552665671417623578233492786860075072674269448219825701777332423762958964146450741447945325959890012131011745641238892255531920531553762746710649179886111404322236489452080561549939959269831501189597667515982684339062838235073284701766681421498098476498119679405526269073493725896394698287212820698344687949280598171470406601778110453483146202944886860197317907140156408228171202776338617978733442239209804270698274177659119576395661212774913952623540810933837486246397749221743228792344768894996710608650077191085397679943852666669033102746513778439003013655052207628216958229730284265513032958270707754086103202279384845003550335493300937193959342724507309464706142373400500486997158029374890366741958053414200166088253319126203632729763400498407330809279315310071447439363346187908728041718689620401071086754438099322345867403740896562327904453367353595377366139638950844489657818756221727394580986939563020332894972758631088003106513698536498461637586818048738530795294955238585300851913247191288434107273948109047413051869236758380990850738363614183210442067536859941485736806488247671460343898836518348825764012121134197265129577550299812299767168395476105688377902880553801321933151884126468969054200476253943915072957911445151253472079983230753375965327891351599044068590069529031340459352995566470642543557755257332259771665506618196756854933347879848032964211629094840928432054906702142953756976626655788434807155908161051240880615307774953643909289973028157990947790615151171804794471313402267441713943895371288940743454771354685868820857023573503849672561933324441960443903096125293528748784483630141107102634629449327149542389531133439628628682251861117998999995132576237848790670183303555308202821404178803832942441415863954296098740831255202651189916904407858494068228643863783724973586905874293405415925435696888487232503262233838438592307505675660008415673428616903588092582805458454971574909484899768040007901077376729060638321772880830755761601675914891801711632317229233819888133604876439984968681199709596159533248160118539190616084458553343343274700091975651202007450760865191650455388216297298995926561000808744788123098433441432032304057680954601773207064669640372149825613877255555457808030297218443769489828766897680360222154781629661766404406669227224238836421503100128515838576766480728342794943073485401301430815495496937009664612932925764701274022169471179809727453163995333334629143128824246253132629104167220241730799866137025506091449693008305990195041892143948544988810520062590606215375772219850805870984350115637899295900097875941776752926778965587336915647469089246360903880620025412127122679902080229113604530193698869497065119869420562957507562231528192061566982510016797203397792515852328736429717763215372193183420201812015690740567343104040534610881685566718642128687450023228856056461022191757529922956962718538141608084421700764101115137701782264275855160953829982358646147714379106298650594825430613876655764690338243404065735346198609937487323325817424296782570855404277489338821563048329145165470204068682380790777834251282071903356793952266924972523416643519206913293891819985167190220699076372867066081323018818846388084266750584701895860017581302362568809791994287662659951512291586442489358265753827614319988415521242234135361562342080263955979703799827395445646427586024427061125556295310326410130119771454295866628032341298863780908534876690479436434347035550112689173180895794749912313177775842372668889696474881224745708834286892852100217902323683590078275412076752966533602051251371213028276091878581023542188352477215594902927187193181861021212881162770009790044598003195709869683138415762082173443059015184736118933368998669848405669938945182952286911699754134925452940281495845205254960123121527194647383882382522679653195389328220508861081416031742635465180426447061068064204826457105643961090298891501107780250214681888867874789623799700427534264113939038989317496753384587251539717126374932193017909104722549756606014328451517226630635230697942850235806234007202683415504205748667247286838887219063755216746960838441963515546584963487269510381085509777262760551366432680895171367179339353664838424221847809473832020469002669083022227770662061255601476587137838833511560019623458418396463129880734145828777866897468363441866298090882178110530806458830364842679143028775772474070708281897256680976202870748201808737369413910784081996254086588474220323088297524493098181346100732563120265199860922977647491316977156388401853189919237536696263163041903858870197424104797608812717695795503909769913116792917326071143577503081481087677119061845697831695836485069158470257003570767715444537557717232649437934880859438552477624135087932574442111269066979800408122751407337089519063321635010856881806278363219242053810503542652703115708097238646407536557440181767146557502932779313151620023272299643411783549677633834270948428863933537094508210182692272257778132258575227586743606440827829223808315823156300024816770475486927190964925991111278493771707472749771777046451212417607418419653439023591966893946823054548005467608982469215214696089254935696335229244864446733968541243892393537273033657582025447443079779859734544846236792767023863076499257027664572854180682053419472770209039412477043835080384274492818930232530775373608744874766741567388042133289560571822792319822470059152802380806537401439436463074639259535228971965570190757689480476413886044570056366595022479414888505332571877628218111733120365803128435524623241436501590912120146047407637867084023720250010946005682497815790796665034304443439671013398945767450124516383570126210023139493429756293220827353197482321847567359542850480980080920878842416792835924801281941711478822648167993349500075153706934111863685553786307533625535718219409552163514807362533879907390031824239229682119974426969518183447323822498737050701008098162490765692212294728865174024180340531234874377091575095892184909746301856998892120861733582199736118592417875092147232523880357128843329259814172111209523823577674412716448433225269827225163224067116425509909106877825253865165632235068331861874934402621362985390873674053583481146282046928850080760965971081027524408886465711968501594184741415283163619296626797518709839939202957861750236864638572182367287219083248449016327703161036724473561666941924819076991068059323587013213636292044845839873089203475390692857319323681746800156604951197841750925049281330171466380306090921377557961280505830557227087239386035532448889717578586429653333930282297032856017894902925198176406752660123585812949417395103032500471765200468449870952356783424643403346864507257928433831713752398953665466977102765010477622471628926490320300000957535615867686107697253262480436214138751492810034760215676447605273347469532260940303694213716809162288101798034375428637286159462942062453115978038959444110565817681660625291660302353244022917902441323592597958201591279137823176566443442645309432186426727724700175446444305138468863901298787214315656173449784911835881422037605765001200757421180679504291819881100700164304983722616321686168845629139039471373419281465718446777231340202048244861984137534413841892970187570617929611416741558948644375730658989628139387547459934133970329332016632670060264642965194010806619694911330938990549598408327852321926354139547342030819972371249750475939959680966626195253931268258686816423397959761566990878586780699117021770725909773969145744682824430351465517934469769123069217279348121207849526086551603549778419894219138579438528341301971382976656487052318950652865296254631130875201458114362602099892104561532488109588319424131797302322885671106817499065256659521976518000635458075901882457003839396116861282289992219800735451037874589702156868813654892658835748970643951342115443816228299834137278684552423159593100173613902189898917377783790636755243957564307379278314249368600244077380432772864514500628824893576724903704143814064623973783604572640241487864697213647684610669962925048365139272623012455503213663839949918068890290501404632591893537907695618391128167196887364249021011244015861243227840236358952994621563286830631680861709725692037940394356348618596906893827832715527943898271557483153434528827914537704462198660132135136770691680593741177060686172841236088994490914434506202082448191826923281655808459754493675431485176648493510351421729013471635335428952081904113164570519446785394306915604460936005788456404252915775167139502955246887270739095451894368713843555694660075744238697095557669990842118501049057241249821313371399053836649780133390353712507106264451404212933213818499662359576634539518898437420942660776789583358971325298018513418682473299637915038108934116679837531884395232832603444881223807344180928838250619699674280262794110232524757628255372522050093592620143406469903965697133087745858691428589432803173598964194421686271403752595766310417376292938446855745684091610454318127372140112864945867327915476162820192894488465158406520815414863634331918751255004848766337755139441911069050674343023272898060075350122856181918697634362408379506352026126036778057050606185175493475254144057066157643622482876676214305639579672962917470799561796460149029779052361520092882688286383632734599569948250608933999584483886552609653669112943465222414208241519115462787430745383990606192069552653973951156082678513917745894689979168688120811474921612289624162332964048678617366861782454515949150043419063697379659402849767078889788778181199378123100245736655004524236656689409020875109493522197866375870770517487204820725804503575272301990618836768294856584878717140194829879976213236196410156287426781585272954873201951737624061641020055890730718620687751405098181910579831695554166249212245393837184066451778159554756848155131073319699268180458037241231416005162188242072763142390238884862612626010429518253894172073153872006616128295270623267972538872110655667479567194801591088569941224085447144835926097337535249974950010922577503620160211335369770578491199099442379652617239587234562861869968891809325620760189812497393781907775646014394173189556053355749578895442116047633247482514542957932931132682074415643792625502549704163679321649951432849527755622572015361938377464675581430241798512885962875197601083656197070161676646875816270766929065790099719394993601052739268590332767038517609559938217775327228790093385429828420301079264003112086548777428970666267362466551951528209464710731523250509898123401445922444692172910880690196675050515482470642207826957941176256862633666391522089385817496778777522737967645475777138281248498836922912092146306510605032411344189761246047350835542070456107912882504004915962680836666010766457820246877731585284826933537151985963056889009694781121445378002150549317873860327966181102950756124663396792659343423413801785422535365941996062270545140680482120081327875614395173686002295852398133264783473414428641126305676595556316115722893103083147491769642330412953430537907599318760284891188434912667719519029894242554195324757925328271313665113718597234561874662660760431958265495199629339071363742811733514273804995793833586616046487723405383628651910063225686702262049567388729066208128613997084265373987082021631134446893318900384284434813514073300126060669884571581804117079552620189528528669776552962359997237114458694517177510673560324301380174907228821342488314494996072252920441167200745389435755119854135761985166173538551658603533975391674564890846908323152879607956600226222008656503491154502146942733969415182764552621225529523615674539360828557941845880818921829886549415316703391655195747412998055951447023963201749224217398693026087881195046403628381536903082165911805075619809957202296626773421775850563628473600263189042866645638374133483003674174829556275308926929818896308811908817817234754256310167113126983190564445680512360098551248497364242902613765242336522139803206295125384418386413160979970307819411815196109650884706352346158003708320025077230703246242397607436742488486451354961798731694236043561184336623554969027963248757486104913466188702064207852006320484812515605360780479202385399406681564490764597684784460915094039991508231939507494689398780620906075684779829709450362298882047225420311530413645062849108990509598540557082206085313019654534572213157841846357323100031125716878859671637526569803066879392960236739042474139921267280413607434990138236683918533538197465939689138991930720794627167895219669003966249571360934467545866557769353848345525374179039896453989988326167024581970128621614495423013371320566569864231104584339698238825983365774959731677290138735186880011593490872354809745950628386656581192913061084967987149061387600347646588612257690328794661664968926691784378294227057787230333839264453968271870973486912003504281727625114969187386735576973161149496433498314127425410884054091041263551730615359089478706608915329941411538871494456060283500049024060512624475654627174747171119388085869685923087703853668992286013528693868101510575695596352475448090625682169410615101504489571142584964488472675766644632353053006707739416261246108346984914457525240894538766290906718107773764254059158211456805320211052352333444997656826246080014187907135079276056031355689635310049679613585572016966638928319798756581405259313101930248755874397689260235643620522258129244014893539707227399693530835507556146112629771684678817635816200518145113114676103585795886288017674194898053896946532313379120659297198380923277719782011329655197027639130717067143685915082682061053476085518087796973107198143674494060020620087153188310198247756118504456694473155337817702236366808710513442045768468537014026582129195134711903779057804391735101787536641380371181767064814548826643316548164130938851241209348853291324558185948269226507775617601714226498475087334942042281686025927305099798822297259153280472770964221627255298120433684265058322253562395512708205122210230532299316408097122630897725931316625305424876673916909454227915920381100348401546818885189130335398706481049390446771698475729814110807497877349552059094536977036229181173215083543203351240773789092665492394869838209607787735753444091873015807383801803862330191161882295011886794775091786589551545051002346928303534900084582474338292559401435067243165431767191375795460780646352822918000673651703299760191351418152105183206762645169838567504207768368024310632767381759884596625989834102345086776213437135249853136128619657381831722778532360863221931116740605287784135695088954516942228070608403926676845832069062077742929519017713732133806568558713252621605668081894972932603364436256192162323273453056795859807704985310173091315058583156112340727484313285777877783596521014930955684121009237257722831715972012438415055162641443629100709029787495933394641015162788734456350893493281767783934417349739275136231536701796116005358950477365230116584885832400209773868890072465095035833892956280710670313892896458445571645642446692052400331191457056945860504402968060014711382955089505547327377650419383403180678995692106842017408234037168909252097069950517020930044467439354148875139677781958680925996558009605507713364730802421193795468273195402335362285218514649522626457377389311268476032682018964970887587570123931233027238786655869043269157979857757229645178713652722275119939833497193993697889391018460429128327553961381479778766342079108487594687667884776805155013279288689547266493228878346275062704788974183701551919489578654929706693727238388964377653940382579017474429573648608281361326959822184271711785352372174857727294751758306066058573034758755887375913924739015904981170729259171975128876709499483150544948394412263094885971740119672861301754173877248910898484580877379902375602176606176625937275531349826512656811106489526177729732872275132953432250523857029619661411183740025550044239929116603373521856310039164320161201023429119696789692256351647111440219133756762880865990263344969875367176376280377398423346827709131745036514430678168100252221173544570025409900606225132914811735372667122823865010331762492605879611013709700055094544195535502105906628026752042130837975489931220047714081185119476375370067528151256781423637637477226591197813639691874282650895114984128707018764082910635551061602621408567666284874288040389986697609552395766124419702247193718099490062672870627472840091904756424057277417042033242107672571090076711015094747698203658002179032009943120643662519606321786132724583031080149163017824661808046766846982758362602760507857922329790485226107485925385461120894205044623174988370830584544972735836910790144632894984420149911397925999007321888362238655655350498353222486025955412512492714604684967501536045453518266793570158768569720801122629634840184558022018387699937761122723814330908021313007619752320118789774870834900259390852763300486502112535440614017753633814399298881219283240366240933855040156001353782975747200195368864406391429929308576377527262434186374058462712298211914990466011271471741856808565725502069471564910936414149045853335850413667945707643112414397167059741532530270909975595728998139805434829972775970597205949095155562577359374308605417949372185819880583332427609978670882100201831162919652700871714201591209094425469758038443967470260462209658121309101559189344589623528373172653624958021676376374117962973780857719307181446676238848470444812579579725448418907068833725155873137613482628129484327825127797546461998538112952943910768085981987877628610998882663214556318970344459793951055128152586158914230534597930693992439668775787061680157227434033529809897190645295308801429829214309699522539837547216408485632340754416600833671023281797366221118679320649638089744390393612840794595309794109794095284692386937235361038681194788658940975272772992264227820207935619996031646693026119382212560226289189635935653437122334174485230856005095829188544949223481183943310445750564624630426990781122310159883096661905209010396845849073315227339254969702416869566632163350179578141333981090295585108647148250900249364453176010112479173061966604643053462252619604650880350081995221444027689609881594207867761525420939603776660891216009886238905377262976102419972045922042310531691734635865492480304122984120675775392692770438475276771533027562239855078539813397896458316127229761573684146310240443158645598377524411736403540067350401143727908649546558450881424194026688999555261479205542136251421835353795911619927105023677800640887887366503824313171058311742695498547821635223749151269262449236695195754973286030603621518106253749218811569218530622805086895357345729719014680547540245931188831043164851546809443772605084015974501021403781402920369245568615983764558076944606204643331316528406391156335615408441935723582261937224884862210079938855590956786863785138868725760272770182708895858265736319925226404542399951599542789250920108874111705713662456797288805594046844456548331993095921142020544397126202411121249891473645576528803481128531088013328113297241132038523156979550537819329406039365591024203441466252221513870295230408305680238207231847728307854521278986588195009069073451190203932916581972233937321571385471698215037651740950474464077069141797550105223971160022668181268575223337723455515638729468190144928767699453837831299084612372973947270772624779750148850734639902378440502394730850066216612352766385508777060349943448357259629878738237434781291586368583821316429401673201664674943324238247018563495970376957541455840416691035598244559440603544285748991567172938036307418510973690367900925797853800819514249616400673269576576306151822267001328471098741155705918192897600037352136509693933736141100799420122352604978589786158861734067595077099130693202824193740887971146729992453168186640043262886652958236694207655100296446153581117481163200516115034095384068167301425319957438105446574000058819879387216660174787550244553492878353082383239896492757038337705205825994114761436307156951587484116580728060122322477659691976406713022532847136913492291793845667139706642553357492251010535159250655861544070282508637026822542585081647245069481712971759389625471233861754419404440203189746787904095029078642227659990496908893182464810330931605738703018317944261366732593531483005183003882011726521894938022196116991678784089756171135792227653652470187526274446997361448241305546024836519219883566376501378965325498641557715210064098378474238632701688156305663398319714993255182181790037708210420180328630953088364337005462293055568383423841694105863980633403574105137671155216391677908638421837626282100707584778979332826473926067175968100574297049013006239903373046526194674161393909087178809495356602063619270674103459078841349007928184181881803403914282010921464625759774717739832990524374471153925303872165690269249950605073322181381357094390666187096766719656983822631577963559572104867171474123897088724634887293035465278569025568775953183771946407438559061365093780110613308003390534101836925018638074569604833443043405277652452968696410202499700866315105804705429456822048161806384005694662061978287589797179258307731006255674080035302211414962293723619008770913594382764580518662273036300076545695244909293797253267115428854354709382146794123309495685897603281999264336897424122430144056029482607269248716180952722957815883061003517953850269766293515256604365580180255790536507190800465347651672176269593633773229571019204205698738221388542692451382676688021103021924669164971011819250777517780285021569339313858209215286874669654222690473615888405059997405735153843114276774201657162139126538871974796316275374567863768401627701309506178472729177507858002016448999177420627405912203592190817227770435180786895242298804261870965195114619135937491977360311399033222862782160310497922406419778127524155514943794718940730723629359515786918985601463967037490130217476798471666926932478534150643235742870211729132698330290158948289350068883387095281392998119543766202181675169873916942213631260851812994243725684371001830115527493756444213417852224901846624540201873981305867434595317847586489380585301222198851211673496859128126546006315031011727180168284840663890953756652996006373828965220289861742783419526187252619558861888214213861278163067143766313318091197116983280391875228307816647383469071310093283532396996367945073405622932948962508491978369740082119582583313043611894982034894074433261093703642326811777641975834010434853958408118909014090255311268077665876299180997272801453050821252743235546711107931919778912180144240820751695945417879329720433536827526860521862942263971567247773255064001286351869186559481158091233742356333859259377966885163160843480495919450369543310169253252305974661124136904348059753747350885289289594638681927856522154245888840192814398510132216033287115810152029483141585006617773986855207501985090398991540487017865661293896898295088589760187659609301265937382447116086214261846027616640708918415646109643682813013799134539530734442499413324570162281450558846931227735257618804994475412659161560578711507496611340051374110798589770484055763997599680470631433476999702263894559117669226222143668699748955537381897158865991432428839134991893609252538794051989684643192466380084341380286909768955083994148579642167420196287723863602292622863584414383007790748421361088905306052525763385315727724416445195598152868288989475225188145014983548582896607775928830680019821917118288313821818321329426293536119003419125991332863808168794819334342220967971729456992030270094320533034685176513613494360666765295544940642871243437565971879699517861013686953628112138290786224638546359847008241041612967843376033927776909165933389530682750040935105803341428399381134395537347286834645987290433980260823848125730572978249908947872159869981090785503053299869311836692934729697851522156641817962223059647126343114644915522844289646070729957352116708026782364580869505992358832954375562857412268173029840968623745960676671408711184715935043921640313762118082560068080892004390001049223608683594900805908760610559351599215671671282030527082304382450282544943332080136316446304443881405148033222112013540380819387130136817505701701685084919653582996160608958810921669224171561141363780085539315163652321702254478828047209488962009196149737539171574226240871056731695495356711875154999390989241753635386042621101934246219438320200439067251302322087903557002413069610481033324347018215061571821860875369474446217875423666961360019805927336769633398444453476717084609663981432637499667056337661750196028021813694420890333485182461660969455164171273952394180971975687016642552937105626528029174302323738743366881309904323145855317876798774046422503599902297666113485131447156146061204790948589797450505250565507180767144721958798450036061300007179619029716855364287366491176124496263260804140834786370656087308318559298565204174407621221800609531620767252057823496471976206607322818310315276005384271938217796764633954277963715525601108630890346425601825712687410830142119560485553812657186666117357519395308384033823104660089064306744965327430859687103652769394701833087974742513683388702378556621152593247580379774814756700054244960300263275321977219159158197359836155668741843569791725930605710575679619385874840820945326382158446557273329781825722205411320754162152612366821797271196448871990891301224600291406557629644447581041371527799760218324733832729744655959159778768809486214695593254685042325286602431971285075041941331181716382515001719651492174226084763923019049683269571333584986143005360464794749207361405514201834985708419047491653859064992158863375163841178003166396277843819839503520547650790210786214501185962499984216057862438686014827875635069184227832068289390052106679964062181978538549825102732680733912499880067865877173312494797974926132948556308530098261056038477814310933481896815303295197066120391590798377308733848887744889983659003153777355267456434945418465421434578888410896598598772761054917326810469070741311874239852766469068844685467772721845477625823543539589976336166928353281323016479468290233266986499595912642750251012078170463910348620262940240054201743154469209987499132389507578166209800174830143212520312019149087114352022913518392139770734985529823743999037291373417191183194134100654283898647502576053075620147648423889130996739536996860717153036712691667692934177072401836903904139297407280885860204879180663793586125241758457004888134223524757088288915105868336864443979517098340083766298315114638248078983982603182014620455756184001873348640238482256610163961630586920045104824836144768143061659452850951301644896250553891997386536708984946937233599200538066730239474502583140625142980711774005848325207580329418207455430493803956904967653854828307018895273479909278236297889512857263630034018013522364560437330734131381474118734690239420424940640063009766038039912902805601362658827435716658120082006379449751814198024458666921542183086288889707330055531779854779835362371168986523449598820955392148857976034498802275071432871219813862700018182791172812135418364948950612516061606951581412812388077270128292936299399202610790579647217596090639793095806754635778823926529583550141514937191315152055776885791573696500734058406793976959314345515389661401601811217876354341424930964282658464968652785469129083017342382387981017214944308829521263779292141498460467346709031815479730535582078347203886295890394541907766773506919793992791351111657562040364526059672211764911571300371219771665556571899427981430619856769017305006546712653094112166693721075979804575789395616812607792083436592620257668999303665591528772753788064357110123617161162783638446984873345380119366103925294144634352445163625556692143642360602561828873215637107559787799652523235839615488547046680772476326806450081339199850932674353205470665156018658506656288223327035164698720605787941380394625034047033902628603436942875115565802705942276545895948069010122858099245361161088380409956642049940714365268483695230997164366762006846820254624719991032816801486484043015789170783385364139627417013680763609067221914595045721673420196134320532085586638527736503173514658637089756030169868454153587917000497059671629021318210877070723249635052990702084318864811662215852943846506544508346325644726808679669022209687844676305676318995743696769574673122530686811148468950352923437116824326239960200603439611412983574574723801797765249608386572540588424550085003311747181139976623240035994914889487413350410176505549757813182265959799246331124501138436132613416048088787780812179581611515818464602880016635812101675266254829328176964990343616613154179477636193051190056817708810905761018648485769788665976868652989657381522566686374336473066219313325143130472490971082190724110066569298420888385006057383171050289232125459702219735769381075488488033259462294012544744328739565922113168781785001510737454362981617202676544383605214053325796023365406630957356688545386107094785642979845975463256035897446770049016890657705253654715893694637501715676181141956047308372633234881286759874258345709602890109497694688351647194394163604156976529971592277771902684996486974928956487626477840301425493230581336107044612136143175982853694749921233206680468026421715140942751824034250188364345546905590734790240689225554637040121194084888858143702008477281110796598547105427655589554992520066650215735065663769233650311446707612080214833091408872896308341367773491270250763343625824894109508874129003158893961958764542042741779286739503151211611724735241993071900735912534315514378890699708096380297297057024482566896753562324905519825539768215854469274348982789563456129216744251972596766788965637898122893526239335047800738071513620434121327305297746007302000535627377687938179764873123833351994482388839247214313797499033597963725579659718284027951810160803667704987846986966487772506040487377291075990279902216883163858256472119702192439244034277919200696067134477476407643716057270952127969296378832837369855061859931404961337042982013733368096435762602183908055623931315473937545381968802322242340544579928990609770383528190939386261303348923034506351927423503476140006981671867935309952350683561537668258251680802547814647881763591241817930402451076477614281456841180462759344102170193206027999149880431005507436592028814374151028996876908092519079129221341690144339123159295032158137928590674981642627612408041923334495205089662267523098385070105905787867024000451889589182880779224105141195286566058691005359102587701914466057789145461553036756488368886047129142894961250249694211256778078355903766378463522647987639710334078510230799232956936639465183847907695670393580311587801494902072599282627904505191782980082604058944940990517546116964526661428071064042507886961361506263821720663104368118622069332368107330371789475405994436716844905863427612181711545948666869719952665415625300408695802890614326882490563789557198152615792031151135538297722551114872895290111748077552221975754807691323040262157605923469211007716074106013246666587975968819582178861545666405865829068094389596421582093222353629131828492157693191704223150970866451524215209070661048787186949170860363221967350657416962990100725932113462095259124438019783847361578952906555238333041453934751892758652825920723805895434166132365608961816123999994300342071199637936041302196519870251854217261688148591363095732928870703982716328654781221935240861923239509116395322103758749341594002860403828659714953936301260058970234132483450595389401209569234272353847301312577841941018706397095169581233645544279477830686505677939299773983559597810378996762027886685768560822732029811733355484065836804285580800411899133594010391841181907144483126939730796585921746907943775894740303733405517917868210865454279610128818761739057333873066626000290151165920397862396890323352674053086053587600923473601017736124870425912132916538012962602482070265116770150863588495775341696939529897337543474433299447221970504923005996347865818444683849380885871871720454344145161687804761145403201258631485672428653873312818935864592493160912217434697378381026671866619719204681787412656598450426430067617206649652161544411935764998941413412672175533233366236308383527305373140774215076319410329328300569469573644925992597301543606496355415572300189919364331128134108103440464020327386813501357889472402277702946281996815738433663636531533368165897780848383598060188569652153876056448040966775257548670806849659455340430733056752332190456055504579094335628251700176647301290948585339459528508261324182601785955290402038872535854392993610117153558801552986465358531601417776507760144944888607116729623907397858448537875005776272950718836486946009674332022893437477980702754591240740222483909965367306869687352325556155915685932912498005714535098274050958065048647916263253560736111597014323619826370717519633289818668237075431043118638902335882742655251635034703484201711701220447314049541053863081467610351520338454306558637748532378045969250363302820632393056461770125430427539841837836194425485864317073088063470557775750561317044424373498280272624802285564174938023942199022728869147430274401469687110773608128145684197884844845368825900060674774636291391417362073986255309268433877777159789916588652378143433421916456815374554702740421920062057617417408332140573042139646692768506787025389101099434770654685658190705712844728956474690600291697747663363797205384538934553341136079322534350067945574552029052475017839559733420302744983910209209205792938883477538833008370459907902871750021164117680714537617555029873561812540177401282070130913569365591799038342603492550063702601402555343563414999782752223110205149006549064281145451413280964311820015434484325644841156412236690330945199600906372245885781111879905695415051208510299978973785145284548100019388903689790791557125152716695463810139542876053290308360952864630647523578188422623209880453017453725057827021487410962407587393631009970196883648668784463876530473443244816709401971546317462481121197346065741534117946971798889202178082380023344991352367594661534542476162191873885210822762910014886022369750639458784680144098152370653812377702915644765478164677811834740631357953885609399203856449008801315887849074937913095252764052365370811831240263931233190288746867053233415843915676496555310178817262760465452357594310054786261835140232498450064785216894882291371298500438077183983441288571493832681155807170014691332714679097229898290882298566914913187784539355767808624591328230963119691324976195795693655939361198813962458710281728623555022349341275436409269636192737515277585170679606520516774922848445129800523809618353263258297179047300763014807711327734453934483901259162359824743410198874455590358873422104321633231879204301987801434801294275546242287759764739949551451058742871867331033439465757539096335812249619392675671266346215710549628228395369606576372692320192106959061215515245291742301755940388821926167084379053763673256920586219491103838132097432908401226015571151065300363850453696147583409046898340065938029997663537059153042011372771986182199843849973586387372125417171020584803391366383757496479145606399725382282400916198273635247270747094054530049657297091511845102765076643398631731713442920303316894585216986663094251853753580749584354902530396616285903217714781604660065051917491127723468018900561740437215495415255441040793368427814783541620256513862299280541890279004810225306677975960226611269196538771005092102166641712779529395162118238546976093901344003151919073105936723147141236261582756704839327763474699009702968357003440714730057576106259872375105645240718870956064875165167862483621758609816507709756032064373887392531979716729851983679629924592351293941117192502951454773661743156157119065950245630322383098475228279515356869066510629950849770785418910725400466609355403860737318925262542821716669073786141894070060920416393483824341848854236229837744879671308640342752900210885302928377644033039286973875426519870860201668571104469394166294415307840234005475563791594416280509820248920068005703896736371264954918712561443180521438607859372892679941237129657431007634701647831888246457756754644760410446389407280459563203229688944510516531678315754432131047962031940719859012643970940079070196437196309188046805507908533071419106694748413606267282210175362976622866965337814267204716683990303656640029803645871872482607438130262119095069151865274667456685588272375403277362949471303464845723390190437341055513271242552339088226281281629511967550041120983841067440092361941459674634643407897030295027168661894771085992390646130565029921962287456228030322433725984028102564732745293517103900116048704868716540338465745117006161892306944967497356573457613451786427040759967741146328359494929286527963985934216114378364437332649634071152591493580066509209884190671249896147918509781137491114323604332061085191679951568223458605285741212716844478936800555162824876452812166102195605887169590456723195921876332286639817069854009785047262719292837166461979934900665314037547087880795731757386850945976317394851918635857409316270423856273074782107195766247083290032567344949742659719471188728961566110780849716255416977320022915272646504307016562334006210269438651737046893403855932793870958144326059477362681293650975206920837739326350713414594413998625574617642558004212153239931810541594088531450091006549253546171484731767117645708094312091008902912235930170104410638719172827693042275562090188022458838932835639172642501148673118662593909297092364030360038202486318979439694041771908941230376018025869256386361335579881836127285560950206586258928982079938681902982989348217792281697627113291195829049475654882739373027647224501361506919950550682019383062144413171180473659326618020900494602100496684675477307718285081437648000620949808890438065387127354948569810368914587055385251220201622256329100312445538171578843710727058972995034072588192503131008292072271274331917065211762767937370928964672994677277689265978497322239829489987051129938809277683150356353173398755310069714897015735769173616858964603596822744593819884231136673216713413743629616470900069365112262784836792615282361939435956116321410691190778759859433066280543658333838753403601397976693319620081483285290516919257210111063157398766128294452606627294519321391777841092834943707721976369077748206458797426287544956136853745859295465199382755933184125880642231664526137920407298637200431549445872806345472236946940116415286791551942688096773260039167829131869154323520429331834171612551807614580423190927596761824246964963203951406251864666014546165855593598134953988867822841828080096280135646849809672041402315026879682340507129072426063579638930378871040815609347192796417085130253491272101545483760066732757044484736547542889385684661450712880306567121951265431033442797515578076201000274858288042411107656656313841117554689456397293926267024758700815489347278480866817217134993526381410814787867652296702498306293185040247580243149359887975274054681987069535817101829534834150748216338183418980339770783980277643446106202377716308349266847628240214264311039514344571890161574697448689992884586410662309882172809056654418746134702571883750229371576616323076113759488760825166359143675017541623612375848899002621005190063491655299889391850465872331365876058184517344836521107597879250638574808600336140925620786443460393778640382880937934784281583707139759997557681931499846772087130787980265737075364123364613275072146199284744836599840981546132691724553523130790105930930457101076980640353337068334962950978859349474298201540578120543455145051847722741631511987394076410882417274552882647010404694644800597523463051262988685732553019979501344824936582730032314363568055327897292214997977962945317963628206797025010776210872681454229166758500372175910300317632536705517126169964886923719526949878881872696490301534131943969779296251724008473245800847969381541603719091328361080642121046843209137538977691893084337594607410176970523160711568817508626843025933358955417204721683579923138570891804897214107219692189936869123830800042536452054415564213718984074047377199589404793942038111994868676894235306910138923385583599020036708285922209552963619354972469496875073065657361267668885061297270875457639950091604859654793218521900824839676356410466036860726248830705757742703808488234637518276391860014502276374082401550391509389959327499036336834507116868081324677766295229524804374309427733600877083062762631813797534947643421403127511817617027639553600069780569161601211938327138668948270682747056380887158239675383762710684478572936325985430903158805589258040347996111266378010570647571599582003884154982674225864572170507073538028858450239985843968961337471427015581048415624603025600391490023356084987719143955671485238975360099535046249499721113578589349834445564395734957679139792203951341867744358762518870500275558168461935980167350633029820278851791179200308197765911982344312220553688868919654010494872678882657384724568028839344867665776314073759699700313666125176101485911586783594230814424175010558509546299439269852309757745917638427658994188602371332576016787803685065983626550963960109441663357219094387102569032132319312050499455948391995745754553654112986115322918027368321618366695501601396597433378450756312927592228780993262217382279334504204419112266131586765939924636597768317590554764486542471420807580992338267918493889663410919872223923413960620259370326875101140705904080148122211954155111733606605761898189226069019893566860603955909865471697189387738088149196096415719608772881970621587338531099877820362079960938558212123953041956790433910089966806728951895209737137380146959405126130532177151230106209008526457714695567267138229014616003398208474958237431984388341369612384582404218980406567328997146849871412272608068165380195011772264160693557133075593106945039848837424051914588517372520404132653971928827260786906491956893757652388120870894274823006054613907937050725697122145022789050440727930619672500758876150053210725352497603337846967820241699401674063278115809931948264515009785223727509527117115857412927790908079219943635306000158109263303899653129598325168917092194294857280050020570596508654561015916046671091933661178458814806773371800412866392286134997450094984033274745016862122530717023846028234403190111729093562706071589514100596267459052040388481897972532443127487628043625833435204090647495382698576071645882199294279460213915329348592749322240643636892823709369102261740794031514809175080893694861885852285818930674975859805158351912012442780899513592861584536184288856624629178369933538673088336529238538664535242858548344018178140775546709525620836492194159132199531456313043925255046277448780136097636599944920873739925997789070776209421806265339751134552491263503535810437950933158611547034254862040886581900996711961422061581836718431912507893034421674430372517493571255113955826366740657623109728802295446670454859122729381500761450319511888902215170088309294997475497496063997680508815202921736669042779902438453035902628827411500265754177704782989085445373448964833524739431978287655778613091524260600126377061185264974424377850656595915685194915219131760455729765949810468541341018782593505400267726667603623249497546159415123803381166984518011311567452495717288361637704776532281433084432411014098842559035891800961812779331169774498110099645650200527403175173037532540409776764304239023277176682890401375653996900007895833572464435851293377011519862003930545061663500036853575898081284139116913425897182285572936708439773467158924495522775600710133999513636458773166463415232981987006546184371691282201847493918050264247039511218266422557872250385830661701017201845159921807602153607677471762591588034876749629363700003576916543428731788620592247981066959029947631078540081968553442750088768255254938497980059985422074553970674627367003726913257592545527025770516612722175026057301973617379566382063065011831388933154592452816619525798406468089188899837141973456740337970155276989345166875060842922537792875127226396571030537992504461979740610492975600689984459113292628091302203003520512655148432778806896074099775378501892706417552848636928983981872054463177292073133861981563787797925782157834449524682892528758637216483834008197060744766522487867231215662488462695568629051554877373937545188543540169962533691884507282573736521105748848683579806243801100341348067815569361251800046331507135769341163315858055192434938286910027708896838085127351473596313291502621991547045769900446207225522397343630834745259654231961247388562064124640220814519850194161885616478072183872435453472894469466315320131615974108303505581279853939507048986994006576119481202882810561368598024517179653821800714251429033525291233270534363958897162031879898146233437674173614978911533907269620507435560350444800309746069071927609588929637398747664392985499140701087239679805400016311065825108113790478138871818418922266941714655992533585768719550050817572752724823446371088223818448304251392738406432204323042125658954050179509908252063294176072546050076997869743875259908969083486180202774077987984891971670805229303275746368816375641177441833675308805917433187042987243408631787581005879532518458486708262286908898568741071466109087118183087988788876736556007794908975549381581817368508335649364167249509680046436698202355450133372965932471372591933213645199865647893984237060136487727541748180150882451510932486585820825265414952635732096923509800508143725813649998591140396984722361079100387069498425561260930623143268144292216258059310887158488219555999818445782552371415203757852876573180209814404035012895853617534567160948028058429556652474034784607043986122869596258489694460595660404735622987783080322133831187342237203997823591053997828976800861188991142166968651757468831975564667200361875270211214408603219295820471874674206399288643158159685721795450809422665678392295263949478227839120959536206944138797046676654146571832449810761583220729085749455198824024217503985299443424290941681090804328832374768238621799148840744609313655850123829120959695044462397148229007703098331299858368186111545956413457077963991253447595729867208499000743370628019282573402163670717112611625243569113913588560149085151982424335934204208113514159218366871048340546478079299286093667107559429300297610640389400450873820587640497905558640133745384223191672149120659118283171717144727916530802256603173546961453963508329664764391041490470456440504156951717377569036906537953455145501384732915820770373276655833077763690369737320820231252713793712459893469747309335912297506817609067772267497938547177812145654535884094732118880465688112424690039196272554599683545390225461077321039888759792646162924572167583297758530644772401170798217112786901569438973657304004201304824118408432300212900559524381874177079533991745030188496888648314946353326739516607149905790951435902191215817737033972952429568289162930960709475255904591504843996326635796207706717621715471597925866338090610761614380784874496477879821621417988617006238969254859418194602006805678322352917984699862318315949337249002663137425314509286402343561072006339420604795627596068566853945861298728905182583320548808670730772951450736071952641897536868211829048107750419600624155114096284714569961591169356023133703843421670493632769547955643426836489404921984285227443514153083250715790362380082689964440924059950237692953985014416364515059481171271603737190662690575780269379755088668814691937086741473802690792270486972296313251539675074135014928481068876167718992169126117942246852035478054572326540032114886759490897984583422739135143754175092386312035717342090776205473884934706238188403287271178774607292827072536456807530531316346142401334085510028276993299234938141961281730114937953527085821062277539285839603059881339312124331093209840641352178656053511930759677577903325919969136926011242647152974119196664704794171519690580962575929424386766748808384049598490897791061809443116940054682241214322881377079020188792880513389105900068482826955296986303041478808255496607551929168111612721146762642599956333450593613042579983432249378938245780507885455017651702910476853141561372934157867298841848700755707224966312487206777894374023464120431482324576181419636108729376946311292286329311518594246707455634295810353399132528587617493504894621791365822826585335496585682327339839822551011338577913656933483555673023922406778801909029730096167214981806723868992704759285154570534898295729969778840722105761212217217962967082511764197444032814584817859778539259058841198414469843755231890015644290147151291766463568669845838391142156546773468215216459787806160158813070003674147384727382132805371510722066441300199403538145371537302668089763524115760801363752431652188231383908577876723673523554624785728264979151135755738829194047786543963936921475217766583533204293250207585379674665104107022497207067274819977529646883289670961643917780490253196904413570248069984508910063660149313209544318921792279108278981258983253136773982796037954550461985892835846223183682147395838566922980905372678167304414574127154378323085303149567781321245751535274923120017089045209706465735336736613604928854041328563480027092061096468304587568115815094011359775971020622581042882783563884917484310642920707271969349180701715026263394618653724865765103706539242479886437657265279867854420528336418865988073636926237800157110885602300730484045180705183287785895353480490837726935780102781760891859865857270664485209617863580052015607863645864667303176444010957217911795009625804723518211914211612094678198268767434341869984443782813817158687052737887177722192620239097098026391079256945358517356123938731145047063353538581461562551953232768975109399684741984939896493187766415667268111447789948339815799515685686196053043092535815399636869806167501073861745314309787554669453173562770218730789414193279343208125878747284661825572912935719464104884032217921950132917060425798122820692933881259271461652584704374491951823695921853326212446885565570519814019146899275125406449928286930884529700111790713594583682767656609966962456492176725842443765664197167416291809698426518785793775599367729370373782546216075045234224967290465715384128360841052390271121598266530589496439981249000007550945183629326135583699188215212980709687882040646290432764950303788621259767862626925837397395860683451804459625837253422062024643628590192538706229664227899089006722106894327544957132202214157047253552504362435824391946200883510846503676238452085333951116965383637607324054983581775564664520256005770214238991228100627843488661734293151546829161941892737167730536391334349644091317377564780808810754220111025340045214453257833265896200188233674819916601921791340910255922324200814920279180503843744126684625640501404395088979813930264593256587515542217177905238603268862899717777818201686726361547943709689625182164950774765704383062450301632794215395333254735784478465013245741362183008787444542829974495421630317388032255453068915813296451354852643184330090655460788806796189405734149433823840404896992628527031429931228302849855059897914431752389218511281502344562019913795186159985237329725513394849356463320003349426678591064848406485129640191131272288456733942477336982311986449269494461872659650775234844694705456677112849817453348711516375289291853757339804612953816877249582845147612261845945720644072214333276981797009275868127545553387009600973528969912565816318707135507898444779792408100129825204591770126299451038046385267588083813206265655240441767781655113733474248627962436364915804578732344568998374890974354058173641810515757969446580417521418335339341709789096708283226397102583954293908438887038935238565355180317406178887301158705287343476117612048740265913539309712536359119524646334919223397198662240458256203987984078571982871250005480795707091786910962249515008063035067553969483548245633254424897245928006623913822806664992366925015563941658517628704103751545627476208975571027373173916366808764302668717879747728918827066206211890510439514756631073513317649662637120943889550869587967257052213906143342146273395166780833641671812594522202583519515621631161331214597092122459694451023748929879884195843649667875991692726709139889336379637659842809898565789795732951388653495007247616546802128927512004127315116066987873392658757458268924860489568313073880334113962642374470462477364870516646717477779126501060792186246545718202580682215260578587497163005450754014086494143035133392078374666940136083371813969882470856212870338350581382972775792025654611284707039709989429678535705573100247656407109336220846361132410558625148476373271624453081448432614700255560950864084935625237069896084531866460869314411226988281869350259452692176156451818097762336856577048816371451748593735529514901378216868140379524334926779997641105326355229376606100612006795087001451248470675613845926599167647434953252885067761322744418926687418098289447643597997253912483556707763552606184851175311450081888293007674046891616466594979961022077831393645960447395303813478624330819206461095210607354750691159292315366125043944153636223164254239789768122322811110067713492030544970893265647524452750658738770088873337233817776130261032054609539282983061626331412397467817414812194018637341301244400414800247276167389817649019030543637610301430825071315097897948932372848049182386197276896717071276608003409803464280520585804426249402985706807483084755341327059983288960312953361894466141941158191538845494416098341272227441746136837456797175061268069569230385547129312619486746768523410608190074367489347399576849600428385997141931261968997447608764321623290992356167572623262487611204212247743381726116672913058583279610938220354039930522759701308809179092979135777209000890687447792451200857585935637549741227572197268837710013678934091851287173012617510251352482311540464311027459147802271665747405899458042169574472696678731181174313703466560534703543257764309775505805611717425385057163246877254587681715171343611379670485203237827511865014051607909520307728992852326295802567386523054651624337680111265257356399896180043991359909700641653138659438739289119664152447486542994996084138218552860781481730350953623355872735598196536131071032687374200388512494986663207881455815813443909082571770700651861034827731203207454650532733071323471619672560942075104314065654304541826310951392573410719582923575857346996279751701633385558994530020062088057211446492876107013809681291713003743921453728217443714621077440386531540909423764610693458708330570957934649775033937084095848549406114889555846353151886542730589341790430315529880576016592816876281648677122733051002096650070598191737388278640070059645356552710542576621002743978519274698075013919071763212072334713467620398020111102503592854452710920876353597754844210947474175550358855382657703258765802052535035287590640645944789010715595338349410646470217404939073745669711547929234528831610552191664126748553961685426943744438153734095784851907001825834576544249460430867718109734833717101874815573549001763902877964403164040639026306611677025105845075788564864678393696917828792828600518566905986945946946053065706550343811379700593369326236164878375421673574452048473109908569835561059757247018516411647931781941467842532737381188509151253686764726699317756652158515242279919693843106963458826883984716970734671996600435844034776476956212839717607360869898057213141128733613473246295735270449435297989376229654138196223068591197321828462332935567078807897489518954129414898699239401175410883225108661332136375943124198304211248414437942814956887680326307879411717372623198028714882087745669600450959853149076310146259703401167912836695031798874467823067651240937089375032395451519023979109605400664693331295942550575276670575349032193843560893077425055187604675855935535997911514041145472637642861406071687144774887931879558778449450189307289528976950343148698754692980043507967478346017234551949494362477090231217038348363621348703259871932790198054375438646541953541113635654044727354029275079287261098044486226819856357937503420568356527358763587234723360033774888189417652189520359389963231299541448221137769987761763383950072414034955946765573979591087907055417288696824825813478964384530890540251000168477672798791477918822986272552977495214765849020065682310726154803343842398362837855481895631027719580027127954752627097826645851304998576816097897529814274938486686587910705667116407801446514093663765300331332770386313997448847692668984395424842029110791467621528946420213167249457376236534236100805280522750764243193666651945832317196354618949321967572533337377443126030945424877356179176658992903192870098761721689454623004874291661562144139325409122282733334160473219413799789120323242933347257460650245521378055136132442232737184143657292159235061149849520977425129663971263402112566422874435220003763785516381184234181193013600491223179130381100798146392527478367837927535122848127857149359999084377803924656824715946070497215445550018230081603325408668431920579264362491673801077173061006701630888387396338981934204322433635328017711428695181454610057600047569866036109350472415278625510714130896723961122355953757630114295377061372599272493589920461786896501105599677205522269076261207555454372147065922774153659925360964215098407408745001994722397511212079902281927318206725224721771761587340436317852299149464042987435928133337183208253798333583479032918410811138301547464365049003855154618738133080589476115386991013846275575658415472522814729458331083096584743420914652989062561639749288318511271420860208152976764762322296930644112734015722795000063488066117125821382648506745803044269614211065027049207460269431678132557716955259485294745114384069839037627327409024239649014868075667680494959978870660497701064564376575187851051472005784296213486085138680274126928935081201253239846775549285315008500947276478054344810485564438171276993551814043204368837094901156434506342477865153444604924900001828142749430373249618454336003612388232256568533281177119405168474437046990440339284994703404117739268266500650403800001333523189342770006365554243429397003385578595020992323285147369438360302421230025401212709583161763192935399854347297821706942729575026068757067800155240165256088860697302069990743835529685697029407797020480907188519438789081627411712880201601256812009577542141034461439118793284063566084141797386257462105014937766542405145291592928657529371173093326797278370125825094397654746918960193953583923696136411378283397018095419155555217762027096882451304126485097956819295110522084684133061119747384622169055221671584686408804319070616038303826278128264805108678189492984152873501738088938343956569803286386212712407313753921920735861945242415068975146146785152752123792146986704466621444517327573756276266948238025114847631592976645767733191511209267746978180615949488013846028947718656328594730246257374810326267659474382000075917344411145709126256595621584069374333437992710357308381296230686372919427935472979654675563433427658959700268259278090203601099736094644112481519491616479347816896286014181342805509368133294960970022548300607688817300047611412049275823690209231658195833087721529382335920312551761681475737214008155821371883923840486052495976864922405297547460463945548747265828844952469887389575564873196903747090746000823380648859585702985819657706690379867361723786485105655140774358137040865898356465762325372978848715021587777400572453965271968936020821724913535674568080861160896703756354434690746991938027105011306848172877494747592199176033707389533147399228668024983990480331573086410121727721922883653191404987376041305236685565543978247676719768763489239847062098746186078281747504225683223213936615583458587443975400918083026430990763822740356728657476673835101481981426683656666686167643689376816428381489351622652650692446583259431983282213102372267043305736151939994205035939966280069168785495458392046283118010370964723234435728412522892845274967510366346415439842763336684102531190943178108835132252632451935029315919403304098995409031657338667672064820393175027748681373340205372903435574516838085115795060880876586777572384537366135065306484024051141981784783767140267339883174204726068730820829844577906581694286129851907659562070473021292871264417495671611285987522012958417043518981913744351181718952623952588837768595885924067380870856880480852566084447626034728773600193863240974294187244926059910716557164688716277725285851964289264699658125065020410761126007457829211692120911716812646861296287456884729024451375138178721290945504250108101260859679996682061432990662171921449598102759037377879564779113222120230786669205386815783426747871469945634198464722845017687039147276916053060118600617501974202146711596284166230203666398880449492373762973424110061602909684256683106489838496522829258561432406537576531066108413684980273139903469138845820711880549789434004728896171495970859003358020243057863955302690947092956218791174484751543482167963232742660583397461421489735516764309631619808581760841586072604940111933782652999433931085970538764681165113926217863013602946020040050568470208184861453182789071588194728956269057307631698848410427004900603100686605315119424172390860552010935643980544338777535355829736931665192641182248670002330193329204458924662957804295102121306652333526972728826509976098677189148908440316930356054379397203977570346468395072125396218686822286651021743239158062629279189185445870605578848461343277348214222407706019736968923883939074075306742122433560765943932041470932303017669193281828522558693827628994429569311114953123960048929866665384962582946864824299237879333860632454853659433274061750362144066626072686916026926344908186676433023943673507937996498813322792946319022514059607406473855351836013131921168306639522217470239720181940304801796223161017109138640678777933152248905481054254955630089490077424253140910418386184283637286183128513720834572911034233178772907500212498367111801046855684879441205092025898694805778217248711891772601614429910335001728132301427765569890842478265819610830191621071234169257652683964324120664632382603471820263883330846244998877298949042327522902788998246721640686255375283849941553249965031551726151487534530917487372007635405392181352791912654599892162800664479188132694446253242504724057124209199262794853781486832993829557239324888260977654068801520862659266661013809034449916169373247621430429662001791090243415369941195797064757536475650701474127947647995832524381102992743529670464652809125285764196713370643614121766050013027221518590035669664537940590537286181848212526962804854584625652087604637966052135026199133738630505300671742869025331829804169812556353721104807960277665562072233615603483603513963597877101094540220685413520276316823007377834403477929901521620545243609033875781573663721391626984521472846178089746536667002118932682253613287991181342444272674552797763948975600820499621445634187308285070471621733920833987303746221646610627141337788577741309924900752214380686397794067606592287306001540942324093489752232867498838322289077498069382790286537176100839307268301959750326500608179437914152269612895489934448639892456393117338791081843628317386967396141258508779132398700573440089172748476862084016850615479526640821104012500633736204235571892306504702016269735646919934934248202021521750203896391299399883826144397693976492299007711291896879996379348926254239553442318140184608061439302367964628056894936563309190921734056264375925446303645002802371792848004109698494232581159460043253142499258729007112457466503564653753797444556673388867885695548046551735523353894963256495024511167177156689928666050620576365453029829525177302266564182704050267589773875345593662314766568004115986413103405947664764706632538594774462534642634316546567219303256456812226254227912174325809981671368423622346975294146490487641224900868845694575959892061684058638595307188755597301176999115105889208997596703567223550296921411077238941637201757479641560748638492310707806584772851193503622358385282155622667064272657007550822866942232290266434007754554532400517458399200542695384259864868390021615220628314794743895246041366728087786006180827102190159064690318677095878388185918448220103486900590568166714942797415242756168230514633884668988909108267246300626358728187767378508401943762907786390866010272124104270988071426138533585284077309111687315245587398822108332614253604599975595855108400399810109102223820477904135235702735138459161654163388456747870094981235006047927421191151421374142945225833468842702922038368470229029688026391848527717089501589434252226256121546911543883399358800095046448090822677957008311568316529788278492101828784767610050939556310143444631653575699607752736984893904307798140820918360544570479406078847570747227986997675305943576978674746440278380910158455405384004846584122188834815572586099648324316460923781500048329022344331724114328689047172977831590610988563000048934823910873056268819730729234829772314588629807934154965201201528873113409126115300109459804370058016344387705892777937464593386823667759475000735204933545552002021876053259161232843126043162998553764173458071046592051198608769561356701101762775618410648015087032684306331993689106668806047777055493552112630294595059179514900148131124366568155253497699074386973251609868078472515134846437109214177640789439839757545651143738003454022510730381929616554571007183119315670019828536015388607597596681664534647185171090618696320397762039532563490802463454029744206663867086002162375919960421042939042405888821714335654333806888493085062652651654334859387002344688577556372455196020716043268539445262711160017471495786773868272691561672654081090656682117863870163539257798464894739240130959058526058301903339652386991942513621015713535554087605810485988400632804814123790725433373772304997125416548123819626081851970437642843344211433864930882609556115723518282318077234972385048574780624274485963060114811709749954079043956189733700490893507380547830702880108786205327982649600288430426418011178686854288340545426435245325766063615380812521953414553975453095603881803461797282193849449223918949468164972242733946633215487996591928689689340135538455366765301755798910830404018190254000738160220876225353797483122834187296540939437916402417198285129534390824259708466101543692644574050674373288165961945486212809500095057421534219994545844552302403787905496550159186871495548258443304814570794312362135008480814031260872551786828393645438421325851420953033502919142064818003044004292810832535653702395598739412797798722913679083220667911632918966218304457830116188836479012599940163870144344483821886174761556653783574677227972856657024056829022815823048638930297043244814362328755414192394291256950111269573552163639681466339894056311183824082529488493190100829191118861456451869428588429180920048450747509234924706118300018124439433131105299153491361011717542023494095407420686147154341059750878435930424250590490543652336974978351133511725281120178880439175273724357191408610782484331542763255008387717533863289265613342142273664859638292766251009750468686296310027798454376525859697368794020946715214990933928631890799186393932013918169785037998236163631400941330403885953968251064301769109162020198943204519806679205600149386493875289702061378115390328579138182084558022080136277573157936098839378407914678694862146184828360029855141978667483369955611802093820348238211609985405500746171110785632131721989760228401380533952541001508051450285702525817274514265214525343309873703280136808733445157017807852152785217543946705087429413901815833713233353124964961963051588972205475536626354015647208525900239353162348586308023034170733199495165112069128538685841968722469818977686289090884960648613345233819844043006077375194443647197500665047026923589996278131634778270860127335230212694954772665545473229951292135056936137547510684369694336855446143399209592725348594617678565002022646645803596463261148961708554641419776612760370373084989004429246379497518077311692164141410532122070954509585028135621243364463038906204497674544203800920735475926091392593211009032861224442103920519355378086512704270501503313138622520592459199069447569841612470438119989951428340820821542574583992053201997967814583814932873268278103562695217030645438373454912326088595927980566078002259083599007566412035393695842587754254687174107809829457816186779345072271951953331294633040390644256904305300319226357558699931421374201386281187918027036213406851279676461181267614479847617077798577679747148408279129083329169046160311453771959976683076112634739846342385746143718345724607287594084684453525401141341452180220595006995906645423534801137471635798307944258150160032752932464625116656920980997552971787945347465660858392333747175376455219018693709634563310100479466251800875603822381771904533522396398886256110292749024684989176553262601225989030266107505717107183980557696066296349050493882874675580276744963792012550102899062151225084550179616308557752901666619168860314085750469353314923931523418748990906102249933229199436196780723932576566116092423943152882887798540128610895431469508932373314337503440831556077953250501968122974103448502556203936635017924266597364988659608995292768473588051876194406126845519150182112236980893203340514522749649807155259933734915175236059964705968454786580625677187496377325444488567719112682023143303122331030984983821374063863268420941787245811822357881026948315763807923942874158661311216198425314739427757712663198030906143781410065402905002746445973702941951426385699891932582722916482039922634979459791360764689523447732074178612514164884103848863715871764386051296052572013426569085007784722325859660366237448687002464342367635913575331598083152080532080411593960521657910345895888536880959521020529170086859451636647133079114275323255240147380333613013440694391044359491942334715183362879979931306524531264733415275076682685486852352544931772206067229557253214851179066539075798627087118008453511708938711342218211964530171799012099571633027535587181800021844643401516878628814911140724833354407494765774722612167134311966314736256896436925210727240215725175876155055784019422757120652214476580215696500392817258424670201837975188600760341525941889250314995674791811720552223965701939830809561166015919801804528924565546153391633934988272411726462975071279659940884765506735150256174193303546443767730722393353167670872786323776288004082921024639012131169763202982279099851620145472340175074643196907387257163821552648921915977762262417426242156357518371557643657029448792602901462736915573781620828658289650231564534662164519674907975344065992233325427888104878047423769523494160727319324213586850266184630699823330784349236132367435072236145381003974443192609635691303563331749707359009332277016472321271263808129190702817984679487956760995209456319825509520365185414512882440356554123011566006112012044359491194929575517314661568118458106035814742110535005611009799539582310820861002497001860756787384581293104781409959104611206611334978728982465695013444844385086877228116911467135112395595060884648943066157797979519029370364569141804199319882009184868889277355317460213226808868953505109445085962671829571073642481477630065180919159587100963415442098724120843984485356218315426600214076631580658816774424599550013186584437578663158209226715949674847508556941703751696638496100953723524190998163048173315210054903880308595177605244630098877173007690900882690064866426093564721015378737913772011621994520757060356837453438267540016291698819381994356991287851547022345230270097651887061854289729282896214582528388447833583532114398656013415720538508848193400237582673597198263907422693589082713733570157231872206233685318495756613129790453417234270570159836153252045075962359645786826343445905463284227707713920479615888347042069577119773939836567992230050006746692696570713876136844473530375289824287220571987394153204285050957755060052712178616938698636900451216378037281999090253621201573477759756001249535856853879588850384041878925518997825249612006039584317090084100979935105873656941819870604488269068949614035494330615202967963501822292879515285912484509441979232166544154626813417893839791546338604119209800900270841807466868002109106117644116380117427032636295935428319990916051605228384535196002644397414000772174053218781848823441125929020940882819803943998345727795501198691832820264407895459036127605708612950507244292452674787134758647663029714744221370906887781866572593022788197500120906209341474097840363305258993616826145301570972742060366559353137903408006343677559351721395801709513114706199061561886499711558560105838066050320931198611977665980357587297016695505774562094374320204746784112070842202876598563578119840415646472111181461447388448316124257434962517988647136505657951287328517488382777181292140297256412435606627885333675385986809130999185873177776562837475275785699185558222282105268561291099278561796223065615349382449817098060446974206659664864150608963540514392859972474137946796702879110837275514619519619044663342234693285651222560899882463381273345759090575274798179562741536452632252326941624845396407804065069078160302635887710777617836047603378305567986949238339833404383787636936571051170971479319515393138185952786445326021081830422307287248035698802308350827116972308281580745952397766022431327133921509254671872517526783685043370580091675214034299796519637080462494024586970608638986616969207687463325277995671344739562823870286104483955675932212799230317516567524280810728624667069582260304665051967236632515355448100323691316682390003185763110401077582286724651207352300254966384087871890693454741834303751409943332677983107182180512862492282418756770578732378605463869360324953992824901218910184892032326972311416552109948393453557193880104409498992206931596552357421820705500082248243098046535015713801133384875613114076959883056247925898592676337817608658492855795017056918960251833114554338546048799368387526457835350215103384421003635860003390857974945247403779133719636277591771359044903132333432068585050477413137849429383081473287876546715979295869904470222442184969005733136959718851070761977764193388026610886454289683071058634547633678500894766057267640722971908883519442604032477939121393612562345452578152623633992221605677591294461252725366666113080443053393021306227171146544864769048864220202303192981691995304704897491590577954220220920538633945482566933473389035255092007822514106066950762583859405127990513509137547701152301883480616805241414952105069987369824444362385939509393201881946693351238642103424609447852908671574966742248777833237193234626518275787254283402477718628232460152864179755183548674337497510080780787012193040073673347089267859102316228074861778088375529745517460522550075897784551756741508435938751632470535498162097178638705177687108508189894767570260951022470411842931331335281207161141580076038615721126075152081504464238505925275349059069426761772569323897155658398274187275312326410364054476444191479102980109802899592021780481370015542030942448536589748765682233642300758043914585285662617605049690835198803678521649910086393511821254466797731270770754381642797540154992620616493265442510081129349147469694321146142591536308784360315517472820682085583251833653102798158875413228654849412187562247148208245557422436789677903116501527027174233670458776639074935948879245479488050053789115946176203959643276995680038535401067294850174948568790060450820997731103810233219323632848538027140873323329501116041768650500895027506468553200838538972084942509792131415670492671594669125022560509229043979182585846118716875650139142187495109938783777810297702564362427962351611228153219040956502746532152328813642908270909977123851853460345519082771153836466132952098748550251514334760187238333899317853051746135975778881547494205272954994432142100510408124124852391801747959374430392454192741322376031512724321326717567588342180781646518973589197214302240382169819897172746842446136962387642633293607463634717524263660974090403217816578693806839220870065169587768832670985756260378025316119658037520620938874504139088662318597791788340389332729718330760777823954977986753767581615068371505902623723900170404308183722363077133398879820718025341594082503877344300296909324834537769286174086108428724685819072264610574645664795452750424718843095595533432337611246296040777826242877833479191618827171811246042719376722239579261200208499077224026815973311276823444537628137666980085110772294525462251749363369997498027978958803063564503958243068746466366237418238920309046301860752784344508333520491065969110869378601901757438644039661367442717554510142031265224434827859544517627065365321615912034226288938071602931134911051860159406424630479225295245032729004046096339978905911147550714235722927288419879503945256478355693791200503567288889908120024170104516746922325766072948666345490299132339073303978428766557875602593818768129415218794574712693433258024600304042920261761428619509709689285729382822469611720936023405117789491525276647679260410845942905226492271418035896403529620071573312452774996405252337057749932692899351922599951039121233900882715360811998914214697643199608413410016989288313795147621023970257993490693016052060006843456015598382642917140098603887913465931776431744495819918378356770248083999361045353022607472201569514302187440641626774230808384417951849323331985571893539881466444454865510988545223642445943314019166061733112914982284395743725174607362887095305161560715162548307226194796547276543594252209624400436553896495905171864069119030927063178680605063275765882852483731570548513699008877605239885972185371123945369872704737407631291209966994640802800351345055176868097592047541164564213803915543528137918957570479430931051198085689186469831423449732878242629915086945221967999018556493567392464554491056775397848549819422592809861769541473920308826137974655499050187822948790581185310498761707327537700607483982640211880160188515239192515984879443733507505001728189928299633778104115319893229078563170836601565393185702845676142965045614129915092430460366693489220758908661444647075366250964013430734547245932837081865041435249872714455378435681412605323343617559470649866619064202166332961808993564064106258594834856047907469907404281066136786608033547809997272254744259492065547255548155068002099373464347961750353533870933036706037285831863650902212794149896722762778289493109238107386646768826070070901636500659908401776268015020385345902786558580966073979814608385285006807758229704650821778664209240935457774191615076567061131350466371345701515315386825563963927137782402472777807847975648760289597334990132882058623089990605109129942203220823434356324216452877707922040151565176392663187257336885418139735163654957937255054666994001781507813998937978601608249350079872319628749990408787692146259691643024552907525922325740768119219911120543814073974598174963340740407297604269290499359012531748678204312071059887348988133084233956228984430954121480387063421562176806157997975467531050945793390639080643578807911325159299163681924103154153224661631400882228751724084090886954680770438296618311452861927713620207214651943134973904085153326506637922727347120652369871948295176545958407589004374301684899274480787274330697330236793576983638112810348591337739796847952142584297026492510945795954655340936328533225963001359640388878464539058921543671674658459388038712229178007469746634847248981952385341662743515606298069185254015044569281194392851687443503635035258040165107190009948951957440707151385482614865364652940245953184153695820891692052497576880230264594753466925114246512555694194622279879766274234700928076423110349984280355485145631365843770372637865246272853682994236652919774918327283637864568627655834481001267251023403252532069414222268465077765697830321497470914677375633120770667976474813640343876549215455306140537626328535087465371475583585727703213922217593172638963592151662177209553593331180646711987133640494975662436905455579394823537367420536064046047889500394437203687605210199167188079326441267857762375785206484266540817816823096498942758970508486049398454115636591276252406564056787274281040722232418333600402369611454555687801924838995322636021021511814557378803364053860693152128197941889944084613222023832091288131804797172283250160760870618592339593184774607990283006775654140989714728748963774533422043198288050810561798496627208637377435731015860584999339185297436037180095232111120581789890777154404235110478960095235270045305214119644215748152986071305699777607241385186976797401851309792808079461808885163835886786967479310732927242551163934844483648348117996134946817854177008063469946275233207878141923504578584220807416550566166911216029424727266606572424444126042791803450147491050841880120395315720348532347270830219721677952719754795171383308297460882737566368683040764773320647659277030885444332339736840618969895679499806351622575601282040586976710955405987147670819050800635100045448280539787060826725658171951543922769712957452756750909495897093583338980090200953494668787507071733403852513158269204407835674914376459717152387825395982871112526417203442564768590547892020378140216106773727196974916082994702939521121935616457127538724719980324559478241603528981915834689149424075103503999716577708128097995903379983759139727594056625349493725113831032128535294947616466978058005980303510806499748983367766981647239894586578101902626614371294881086094722139851186689477364808442948151707442205553483201472164301545208800566374711422425944043049260021348197312648332690736193832141392566550186926242544087578531477104268558435574351227787104031243634696655357571765479516962068428943326552876117519568091360989437591143414424031269561696104570969396837782903274567965611062676289612500042653257213705153279135653624476291011409755399918567123128516334418222899002635099906146162772964117025558112682312754336351982485635589490610804662127819311356356201537251064176734853979391212526600519506768796222353011322837820344326352220039791453339884799654823606564068819314268359895550218282584853248140110192226963772507541175491378858340749632189062305231111389508357859138624566772969026124189375919380257597884011023308927393239281793935994692108445742515391071566265658045016846758069400541592275198548478025887645149193349373468046596585992189596277223190910874698789666631461573474435746273299323397050939737861677829723995322478516077807549687345508300410077787460508544074618557162246760699063364163430852747094983018362457249041804998569465064881228620151480398405534734532791715901417524423229027700491439102105782755800452348300528292843263328849018727834405087137821904067540178329980701937554154989467987227818144703783853585984384342505015572317425075342882074969323592158173277938264109096225810193013397563004096325633790623363864142586815279710719090300392725466673931662138354151396427495497493968670319090183325636143210712351258261174670632765141664508718009674751109792129109104814700495725235280714115048481859344750176408719745022738359764566947127884673434869563370189695216057950069948911312944686277736372001574346622891624801633244775974085703266700017809228377266767034361313007338350414727166477066440389164536033746865879804954071182751953417510836946516029041520194318980720019110786387514219853169940823917131391361254993888359169614762706127549908376877360908445385091124487195469004941219063929802442647553288646494219922148159092066021278109457571331632893159248025722753758951305034566859323431272015953253630796377836945851118156749892272503364724274892515034224766041430344434709942066160543259717847828860088882280274481298083166977042421437352116947488786800205758350280473606112258050620160446930045868869294419817718454112855149565989171819353843578497305108841181643794512444882935313384906724049598445155404796714950690719565793018168369134181137820899668691659529741302529607460594203107457545739347454613413975833760563412475111941006575356368199170501689042428881516398247958107796452181655141478388739266469305234567030139656613539551847143656287168219130019434130416714205123089692054100999232446408569552650869590357325095108464674643145051948715447445073378526774531499955948545892644480936800072211960269915923997576029357621516130819693169499642420162609221594507131392968955164425620622290676081923896820197648431548565824849912354295711322173739508480410282510413216290163285070093315696361044177458337930044874662771881826585170514116061169257728425906587022606396198678215130124100716896967873379924204687979912468181151610520831998272963173974081635211111825360384900250553105032749865101974557747977962035249476766381866267519932481049917295629857542472972320654213146684979673970505978491834002298113561441117943531652303384787221132172045478158479309435425787588213028589882356267533116479461317366268880926887804742431262193949349721333414278661091406149336023417173975416057386842723541306518275518688260112481708865885261182330258458838953468375533626798308826980302034876003039910482778586396381226654995179841105511422304325949611195273884922866797751678866771884162570561498934846514844572684511948195202739611554970219212270839306182877807978914454886850826500945386542561199177915787927735282865610703254848763572004112296011172575311623304670385901298007859097017497124637322998551204022862150642350809800942323829505295336170972853464110085018890870379799469840183767822487757992817989283077069991784276295837688495704030864935162488528142975157634312502194124927686670317736930439839801123692490670198102775022880657981046940910683712240618359621900777978311245008688242069462857061884588926559498574914726948100775052567276124038958311805867598920541827026018883602838051918127059741533646204021725254513448225036408509049050441913700225086098554857344288578538675192551648493404436702023339428014318644317510884048643149050700346377847948488385121010450888053428938389357827444558293223497809451590600281086698496359121517772543559616643632863905451671497744442101814763060551103787997096938705532260397138768883671208204302802744745040463706223543178537555019927726873108702389788636125774547830329105168569212848107576707008726897289604695102165605774567581008890923504532250007883963261909335719224599638969077695837575593043362020132113760352781826047624109547407512562336792729489153635601277671765772135069919335685956391668074189021670599610478054521950375887611088695972796259780282429709946881978137614494094115145980099041544554431856199091897350923703050298965736169332951215384765213803281746170594719388998353984821054564041935945138307797267787481773465102907064145260670753739431200573444594028273300031686694113101262802244759311106094279446410303817626090939057421692275499795576032703524847992540870593387959748962699708658406440254353634644053376925024982142344058751182972216749330785064179878411089958864132395067202632385407389987907090453722047746606283754744217133313783536221945765643553344231624676010262127257049746994834825347611188450328008301806613207247044974376924654437999884724130495733053757378745302741498443395474333648581544093989607866308115787761047945333717565706761845057981617413553606868309707935543978678048047484184687769469694886076243338462081908378111056303455803098713419052154710852046754650785099793528549225018799968655979066572731725548869027923133193780650457982211087011860711637763184382066642782909377766912749755912488322375177437617259385540553307414407212610060005165323036020151875240547951370378174462397019836544299443047599590576058686458298946497296976609458905506606564328892996494527681987960463453233289347836006022060612766483486744568845817186632228066205809224639372982829366040239118529069415869798027763509960231018092366149534997533795268156532615422766720807409003647002906590680873833765869980251764036253738944739823751893034336227673994455858978948288050559274885514868262602302738370754689406310043916263774392611745791144659093615673902318419121674124861558537895022583220441369995580737073699947598436973993951919534869597241437960647566305384111869251926350493048986677739229721358712964119470868903939867411161263464275097324551822827323038034085252316791751863231302513026996546338853661386439877220166276304486770201610295120859385844247740984379577844473612645606433434245900031730148998605190934500564038927529473822634930362488927197801730796401960165631130688508915109322502317239199460213186782198064856502808310094707769902220685413498039826908667034648223648807052608529119877370153938743867018201545204362866057987088068054025748596166523668750478825820916159696450713484685163118893138551182657116604500361043306512161004505647855370538998876390969495206720416652957719316829954426566417731528069608294408606517967755849600781950700767770489813946853512235136060972366121892903338124484080321499851279223547870639420058357966515561103181563150665412014823654497502524399001370004999949570648542363318469530458157038146900270594535911657617112108010028655892324669822289829694253512651072969471586607133084121593839549813883761891916256549073185695594477324481621768232155514756801769730746216385873309857046424542331364619569903622543941562695558127527510595261682475483752667675647267475536341266038345769686773721703074437438908153613181274326273398115556046663147693242281571367378876794487692621124981207058085259447010629109733214570601611901518443126979473016238437788796901813564103998942301609145549267328324035368709085238422047222900844509578359121388309737500986010911133880932162069300109075123826786291471257559012574020527824915612883562170946200541113466031177542258588376415256374059358444268463058747849650412408404186006433336927055076826437874966981107885983737930400524113720215506407825672528294517875667060523621036214814625038433041311187902273478867186327910591989357360954902084174188196321761888096878343094368863744420780331382453711967233773570449768792678996436527961600930708798634121179644871168947044141012285634671242751970871135630173771597309313717057089008564299672232645935614795797437752404734028846643951654341302688154795802971033501991806504462786989317031776796021855594098583502909433473682326863308193363163989982873739287083082769337329096398925927380590548390431752031706412959892291540384385944576037115142955509050269204642746887717625654716472038311038184037834545504661544956144899101950702249326141669224578432933949322299396073368495177825364297268383153748046429565309602467449942827316582631715097157903175239787327959734916724578569578207106730844478361933703099028871149194662419961825832455278640199169278752449710593585540502523870637604034190496315128797478078895045178977468588318086299247627009579337387665783258186142436718560699702662435374732685758104576681902486587632601547546703440727672168310412474492894233904718031670211991636943236452152995278794741845600929584890273735200309404280713063123015017719666134200963269142963439751038135403295604883536798067692631262100223965231104644570571975425418830683222259181588258318395454564301135885504149545127936821350320166953193168684757459621072319498397403296945519091398246821843583632558088229812704992567052200597066040852076791067343251328527009693812928127364892946451087471736290260579988221910455321839559142104850269078116222949603414241457982484347235513563458747760563417683506322329605752453008411732569452530365600932648896736516846669181827197030445239705879864197242187188725601898751325650023403186367623673903776106668900171674651540192306483390046011400484424950721624841506070770670802982435847814432061121824905415480534876578700080393152311044325106041157840378229305197179534855995566255391230235709933636400572025876028831412786125292718112391083150712391442243793855547894943821710357652453028117661185901032268582740376853363266399397428496403867302440863916447928110225247402528606077133959139193010513395594817732839785060591435441738586732516722275397944146140624537820056909691875574640212472558710363344460636783003380354960986804282203267713749126570669929610861424521658959945738480171411489273422538403179600198377847596509098896994042288898617451903960348023859628373562954340103000654687069793048489241475958836864119787192299751591082393487790841211334747378980381168868021182210015728575666623053259906782956383413680131592581501570696928257445957437418130462457867711663383164194899223046977804954764144108820493350029182571664102610285251542363815304755709157774689559524905810020077609741921639454503977414842689859879278070355711500443277819637137020225063127045384802262604799821839997902866251607337518780010889756230392311471055628395006995814755195299481270852455555986576438780320979021360347536947848576281267258558682811127978583489765998140088553132887102160647516197575504944591793836960552973622128772471792263381144019285120981456486613259128428712605169796835572473147033965865743601175474508711810817030584756705124085039423073412408929712549672247850923597274778936121911589977605718474398392035181821349487826311178456509235106389252200022842667690302370996853325937133760580954868148962899665449477663127185118526959725271458875603189787844079227351711051348636863728265445782276943252915179996426547068417766470453863435545914827948011887962656218851780137182741800505021890324815544352881184534957100387956528176708474949229440761415099333297404786940510234446628413374608103690265711340744076236965668710526049973819488540722283933225368974482972573182966858137130508811258913784420047128658552139264794380991181956056518944051702244869380016932821359834452568714472790281483235461351422204606931692008492677488443943252532185876576667274674247170284578084843709736277758656836364336296167203886675160570500993628023936262821503426342957456444264984938912697626021126561531606892598781441453749958589589360701850904773516998791329056449879602303164139948084077014925485125830984761041316385593101023618294310320271601967697084264943352970545687466556225993974136592289065878200770102916928179183678875051695268166277777318093108069494032760718947213356556614509862260354823420414326099594423745791478274647517022392927491628759694615038583254179997040084497308551876914121779003550384100579223201059174181811939672004284187261363375793685418763992006093591027007719269174723570707271931963818503694750218541863403399812345179448421062998368341872480761482980515570325565788184319433159321215665160934728456181378548447912147953507209258881546194865455604916936005954804100177688454664418696895988418882633218320389396184178993145846343744953625365984516892427889369316567948404425548364586601441158759647992417520584274838361778762646846062752400609498589081899586192223486387701822620569848449459937680447515737953570651919048125758027229754884301389518317450145388975661861375544523401454702494021805748569904846800407839653566495139367793077273616407386752794793173391115952361470110802542857964019403519431247109484083009299043401562200038789808499871447779023886245894143539551870077214353889514574686883596110524935895956622168935372387123523099362124734624019312019361243420974633215260937993505558495485601060460594147241312701626036824359668035346959957698520360577452069511627330768431711587051670018949323118963136646628818034219756163907195870468768203721926153026724180936085097328686364177263335508280985757343205281219165768065334769596061500339727207039128363701754704189318565790232408322921495701900885393773084667731475920738430085720487456629332791412674798434047550327816760155737743918262386417317841237494348829646472321680763325053703021415607793483704311654352048393921394567752707054363483673213371161601525944107132002098775935168253361846361053221008590337500526362396926088199264221205655239969930733516154910411318679758660246473185714281573419369571701357142534667353909903503684969948719117877469869548944764587042278982602328949065315932314833671650700417287142228843801228788061630903376121507861844446481292243540327609712193945332659059770120743444802988831794685769745171763572064951258775336379129899104138508486770386098773551346285574534618418727758248554236910720920100762545692281387665633113596500863807732798974732983626321222193804426348456160538841047248643212939019868631468459656607859737273031287357834597618279491746946899957015315039389903232085382653904336277919547566971354789740253442289391086881942235292097173553888342339836081584840239175418375858335729762768100378260088396805898989210354245958065930240893925070990610980394811973604856742505979251351952938367203531719338181289532319375642322236083931009759435356903892399388791836297323743557642884985138175972622935004868034908694788032938205169443530286077365216810944934654446438054690314342793678033965185432331328255899954344679038340634868664377178767036625678753300969615964430625108188574199647074955070645604253666343215444404332266827624209989006754678872154420624113359587008050157850205103459100507626745122344037254382056133599885690504831768354610829881905184825288717824547258222366568340836773450878414379566306176358057487165831585005181512649395222857929181178863710431487836557445600518689290249967226042544747645546875818645127769190757629569414240354470198485000486103288651265266134944772271599889727352671066433182306782945106122320141941161501355213463594073324816330084085590252292393958556396438565679202149427170052965170699531801487498727181149818366268360036332314534683780725267858724600658674147840962968116101362545389167876540837365992714270166823253543676130358530114590009219746190550031860024956133131273381441456049922759464397829506340977211926794406850334303259673101902435322962202406072100172066205333650178589738883840943287734168367612718742125165878141353174246690122129268396326005569485110065242388751720867006748334037115449659451162679575253656786581579358687771220399051495646126155287118169139256448085378780631659168075852808774449225591712370322986232169417976447544028921144217365745560353890665674352607037044752675723154575331127362069828123607596711054439976001146223926243338126489236697106513325534046104248354605951041503271069291868142557463349009584884188273806084590005008223743997009050541394992589750133007927480995777164118556547027296433605513846907516845834313941806377767361507879808957889812980398469722240165647575674292060633976440895559923700466497195292949572343256163254287579494032236514539965770626651590170377157389284012124020563461702059156579044119883216401897078266829878373353634525881018334091765054420333567985929770568480993305676661983603125381721570457171564963973752284364576125212641154034358673137076312399041827585596615358662856387550567146164323123952859235748243533881036882631451136587635314082799172938211513228587061805541096934279164972764582868730092059046604281936853737977860350261427480337605841756129958639773286856426427187417942482238061667401338067643920246019316793901675875014082003679147347047576361896390039373310595782027496090248899138472372077944132835681615833730260526365728207347202793306548919986140820275342823086194700640919489619385353326885604653914490169405435849771269795067963982235661680328828300759428183341141879838337728747527575188141226670614931734427101436271112380279404727018013754028774912456992306863032482885582782930385768575256283301879076935647040136950675067399891043445540409280716088683274987222274992140162270215748210975345489855460208359481546767526792733270560730344743798506183575724899941403598841690621240119857567990448468140723920290159434156982232540455667662023661992559944395428338240467627527063921963428444750215881199992985936843949037397163493306285663826571344992802047892348126361298667053767491536275415708522263667851192257289290119836806714475121936677731929836368541607228467005334546666440149519794865994924935635340206319812131925112066438803549548051202718958794929890642908277175491819597634870883421416931971665162675126283374028720566148432940351411498629089812432399216017068035251454533881070465073388273743883243370088208017375916956275546554594055295305839749901223370611338800882857001837489177134238629064245568167281797367945419240610214551290375696895869073358205315727562618926100539737401256185189771374514835799638074661425113752154366551082614290974256965846981132782277944197125809189262949075941308737795429438587605882254323801719483480836436341938151350311520061047064258903748141009578630781081585594836146121848660626140083948194984774289499576834410372222413860327955479469160761521367097266906437012144824959323017192868996421595675530929357088277846621091202550714513483038618806773459223112743786298920641039529086854660880772871853460142155876845610495385604972895990187138694331537430841492759663390050122633167654746896803463313300038533370093535777870336145816729521257195902665358214573342443320243555644367755922373894743595709323101232457942716752835502448083124470063143070052070970529173055762299018292532905280059170468876363983555894777003461315042758537312936804375116840634296237042082984198274109513995929326409961344551285989418086371046940388891451941063021502235887886276400186840585035583077271450399444431254255732498352512036290517705801953125072826654455373152192408807883752055625120462841217287953827780251678337413208320340426952749076240601053126515751176707031686688349085982562161660938871532211953128635777471933253779602605639785662639476861725358777604933455078467576618039741861905053909140539847201203663490933232686661786183595873528541427104088788048724246105805459767611989953760020634859506061795177868673548888864547970684158984018789312114905483085184389758050999823788831591736171209809868013250265951383689690621735261843612236582363727827057300137779819142804349443610392481579435174142485292433649324548445459480544638459644673404888656573887872845164859134973125411367776695455589224744003645302182526416709565438176630854990520167261552479192836160850650130820850797745659433299114793498666358277565271780680767532072947540609307323604254308545930962610232252417190408485397182068641420295164685476606898978341827180270837248331064698027764401400852120457351298431604734107727089406457253139911036969288992269489791656368604783908696412655244005323396998135638092007673536772942550059737875727510456482816409433738615396220203294046692154894082100460275077503583435876772492382667790108879214243725909229255798961063214465314248604286672309650979578377980814540748181408810273232052822237201892040755423021541765813343384980780490768307048060766968962308656280927001764766801293091260830565917023227018745371548613141950423859137170916740335063507127798829030036231879176017254590536338887705317446190280373726016084117973883027623389621890031913811654688758228806590736009520905410568273669718395346994739603558883785317381490312492139466623327804929033299148570898740451803543875729821793730617829341631771311485620561552840603936474011145833731590143742231239945597796397620083963807725938842489354156951846347045721039102214911077474183035619011079980709914440995914622671274066066696210679985657936245712999662893697511507954327893945464276428415550921700823738337382596946368684631341433127194606173423387415410893002408687144720324805914968529684955274064036105663678377594666473541895928195194085156879120042100804242621534087263182689674646352210174924825524991525647971217703983223782825018356433234723519547881400409163629500739187618843550938674792603061978270806668095121192689842443628575490444009180350508435357979698020515604037733819528683759666149294965184766234674094629922662581279182600310892799693675049278438877826283877039880381213444120475843477899050530823812627193159668004251300656980154277668073456121151043105094784020107593103151843414632799959835715276606798327401559840439131704363509436273499355985572031106840788960382972429341689023014259822792157805206122865985750065262092435728760181867177736616919117360807902298851054160882261209134617479786599085371114401434040144910020419217592323964202566335246945353821084391686805323550767327862011672291650372803255348923543947921283243090531180183833704067345615354095636887922103173042522801309435189696164348213975087452136984361911199826110627233773005884848115115346594287453965166938992303566713413121160749160393792734058271513178898247483327497432743247854793178066589921466540845062983004965861944905301471502389023073479775395256106890405686049691282561049509115326014305750273144973517385148370999280733121728557043937317752306260877673982667346250961280550899095589608446014275842895193929195581823140283222383576541106851488407514600419148631150191168622496923414612363544933525389273339514616262760025551269975186711626290356540317882665553740715841343539425929680803529975583261902870563998152619651284421426795048863021977204162798930395299544464933940321101461857073446053654938944774434774749064399124226721119295034938965827927631035817278015426492269155721884763175494967051675937781120288977262570125828033675349682427731259749807961802858137043069889071091745248033982582449893742179815535737753357206606712043472098705042159630011978976257883214511675216831067222578163736575382761072549279176292491092936729276349240925897709869136769506089705216992653225921187052741875597501624457406362675842115599110688326919991003900996354229345440624375673445229717653300227838657026499307858991162830877041735868541645371380274343375657774865228381704824394146968062542366883036110448346685167678046807706655771341119501662019222118723477405172537111939547393690372182373706976009370581733448334617978353340775881870696757174587104904363475552623212603389508743951984059068878474689522493985037643509224732209354854275597752221361739202103120032713042635999079256848139201215665699311094102864835714256421474330641540288212894709108719675269429113100304063297510197156735846508668931867886383200917284100764783718672062149487872406600111606983362325693528758212757751886283314677681104052533627270094780901513376813692402960569944740095107153446836689090920715265239722328056515142742521123723640353237738850324267449868832477864158310148870860276625668289592023419400181788088497734872648315163197528451204767014470369882345358614193548990686604291095579149145089900040670064566867788452072000814393790425102382871478525537396913970383399030202536025377585012474786410908123026553724318808754671201416584537265609278396064956381412621560088474055524026071591618259016362141666473947885962184182355601865005973992824163197587608552891364527973259474434620857031902780218540967660557826354155377617034597310998811648166206292719362649605246044522915284147684331341506012849570013916301495499504573686986302998950040279727861209775286491549012017684646759913210468783320649428392469599067446159012776445066115214126027152148488917830031097732448853579706633935672609178912373151785168510439927836911744801510192379696933390041687200440144052116705277777916011648665677445357240439069198821913889125314435250800753635330263128937924513667583339817888424371032074756492806828605916506317054953629513105222857985079399033227280368742366996482874276253277336187209303475992256381026089404389962050773311083729258670934715054639017534954524105049082455122249795796930205944572710482357963127141820940643434149087653854594046147384191622652921074490274058985319819302308881305126364144196976180397999438923183465370761830381311121930568758965330322465901970770228580261945935370871381636603063117974940380822923363768348204450189242931560718625336868217602354065086758589236008930675092075512404393720783738445951677060971742005395982877245456002858446762856649119152281172269839724918833867189214845254791774853173639962103451459413795570424181944001042461947811061806131679453205435198270228944720176825359827027475569079762497113553872169799551659933977904707498631831112810473560121539629502015623426687467408085631595440830384935057892036443442716913244847993018259201210733615390495515517589273718602258182481331956578295041716409072752038118131740140961463246399177548307039398697332251808828329687293323332426135209824703161390309069592874420588827788843534605429903627571548794160786025377692649011772662581339417157775909490606301744092959959209561580225714562217225677842382423781031481665792859656342490240755381258047642577882034857960757303555273699608823606045650374922603456378551820300033192551375803296275784590629643134906877385672578301014132227950606279038050763507606757687813408587487260469501910614573068792048602625977993322183549132156056430109625881035918298217554278051828227288255279033987815700445917204848663785766899756262348613348242039904888018020013660277355135681644954473410577543368029605838376786391437404082421957455081714624713442965654808332288948723821207996036465927195496288162406897258697797220104341192698345667382022871073095236464060805157223484319919527381191615888200785154055737168117947753930016897558885510999585912406569767738695560714865144836053791622609263175065535121188072879392927152062215273396793221596156937956163684771906469181279806111830558023819774648007330700217237977042603004114674269396231041977755556260423607244563627011708542134543240428707229939523710994380294133394442281775031018392224706954007359063723117315357149663529603857486389143614756656926494471036063582344124691104425088693442303724855168586605243101865347235359798007006730119297994993933753786148492685600516005892029621654160535242662151248377256277824666251440196132977680034195828297158320650215057250637395493023375467047064165899956571534663999562730602463774266790790934766906115959714932260436572077610997643768696588236884403641415305233506063703961137440424972510278801498257250520925335164616873303612470371099062126527885776798265652701680735069257751030371705040477706206287394727152325450787864094402480334424568389398184173118483861837073186510259962343389177541423342295963007692428493845150557292448750157367634074403777832646170805723243665939281454548335632818912967315540953479452659254590684923206618748238249905819931275598011248471387300797134111883326825148013443709124222399011943805292859722263635533195166029865865633599276329382452211614775872984902833637486256508564728268929281334811251147836541042130694243395483940044281407104165060892935151721717085825325275822820676955099218632704708820942808491234510668874027196140995458494768283734309107986610046106759590949836228887439311493458221187393070974359192447278225960727056123759023882670156397102697011970423347635321296116328428590773049017603065485643454680119412434638916952631485837324191557245041584955454504749492915258956678800413906395727557937598367142056072141094102256128464607819614976214954232125805960288979020962275620479659384668315010994271222772524049814400218215825691347745104711219070063798440256975471047552964542774339612271237247033691361118607719259841411140541580821026160085645165685112566120223328081575044643706498330961008081827827898829505354798991675855563890720889024800950815868069289232218146241645101278923116788596424126560477137035788878094563417092729190171629331625333337964809519468969604526062241603162083170706522970062537304332573035037894695883288383514627133486979833695477968263085780487029339298629847476247051660642320491892959077257767808005466676852001244020675590818449048725987636425095760841636777354129580201338608729992310397432271729645403232837129327120480844571014031055298353960652790525474440198205496834076308237808285214430508128478133250523649012388283471538705661109687010512385755295396280355014842358106165161630305564569869321802387312616427578687051686679477439840394248942578957815804683668499631689636164721759582985696188261266250193623943916318163673258685853946731693652383692926485518625045467466138351056122210367049261242651781862326931488580821869250783378828633962522564163994230686198309136044532947305326041062767618003959752967633372983379104283838008072844708998816817183600854677353743838649907753549894585670260299025214903230651730831410410039206288447415316240319857190121768531172572086711172484498244485711961660086277470475560278656269644327889149299440638070233323680803344112790176880065439216006415978029854983821627736809521176680897803103414872551926586445327576375630757852302574984509562307023625455058459486800028184327279705755782008404698841806919397099483634857999242138163467975141724552075329451600654503480282044337134900845698461287894685743962225009854504070577097678801767955512994860485039502265155707301847544614822910628171117160796732125550450433134701666967073791733008126215903614413317078575622302994245003692310671245763375627808190542781113333790380432005077184657790345643606733143849635118341009583893465639880599861150256571635035969133992144439491621300881113995255711006686989225032645436889348551844408293435190408363860021696370353616383099288994976208177978335979208499635073894520211889877033459434780838482708126740175381566773724721992146065711054645907848436593705837604193634364362464167988102170317554379893110653277097315171450416888318469277773329113638624006034748058691296899367256082379488609747902307022944402715143352653978248939102703516851935254750110929600576617701388919849416638279075819275555014875647245309815677210299306526157252971022489983257743427304753638926500092291993204044699134155290256164374207277586943897916194836787145256619470398519363947541511931488372002618240908049774205906232002266288808596365020095749583313241257660174769308503969206107235260893414368746762256488293268194852421342089002940398328796821935730524133572138221644310699520499529562040820990099115811532937064009332089994383833232925067129350248911597789709701357938491430316782504731019904201589404874529892424168786869903762160087697372736505152419449850899035296287050269863321897191018252812868763541958553177705458099141618652991462832605945523892559956156819533256731690362656235120061074712703448487394211562583473354551858706750490100417562837527955843132248476819830003270017166601913948729264238185841765864150732859102282128343514777257241666683057606965126578729660168904084721188257748101295495685919933553374870646248755113312346274860265501533846692903286109822934060662314858728498071026983932201472699897917491828209775896218936591245221541780722772197555332515627919918881192966229775755110274366947945019384750771890497891006491576387214577424612335487850332826994558888093705164405981994690547521120257755755375107017445525678329248622659988194597060113875977352577799389298820135125005454444535547806614531825454790349620823601034341572292708022450257901812905859418895264632956170035593293407429496372637928243208662368808256213765568741808732888348559633079594242029619099817072439213010177964089148876603076681714702944844938930511425757560032593947573764144967700923547454675488611384804850558338704722771294564866777981843486291007719309848836801717732874677106745391074101243643416097395936210201312137180449143506946953285286541842357072810378033659596266702183955273398256203235520978775359993108991700214351433108082778811040519434145994508899181944834653547740544436857361713576796685364468333711076883815517854623788611985933320115652310570139015909769542953693141676313724253164850398240739195815646599023773409786745176304404294065545804884542340723935634409578763835612778298544901154294000361902052539007285405582011964323017787685545992152847747300591298079788308477722301483758942779344392457171781259978606037620314384992449986397811220174498926872049803804782201297228130629935046764848492078383397044941420819297199017510947769323666105068770681813772650574469788434014673251615627636128539625661134048904624958032769901631902035611505622163239566840360205819156837310997068220782367693803883050748090991273671164195098872794785099828601517751275003219478335934217990052312668767133146906557732268075491391020363246808879969814454064930360453498533401046277143513729514467648369974684839328053562445264564826153368442640685267711964046947385454085735549920396880856375311321989419325389665551846410892987017417555559372644967733957679013660224959132269183035601449826135144278546794635654129869908387061313858450533783198953243729820703762891222584211757449527823646522300168974399177699895486475294454919334069688841345148344558652307932694022815552308625575269498930271317411998994080197841298223515219476020179255398753938330055847829519393480549085152567331782344049938725905498718703217446132986267688522959166427666269665695724701320124002572867784546203556294456811925407133439098415245020104855559358459084353269756571543715934944328145461545029141869297550282423196799113118512944468446600409212319827529377104585744992153965753329468784512289473652582248027078202157574103729552346596997217919626371705872592197251076885637755349294385681168238556506924107900731147968766669032605143827473048695660097462332659850426138953832120578904240748165595844939026636551314837737913646303584401140833858786894546892193354441789787875327488627299450083828933514024945135114734194251563640139835571906861914056832856948812253617767411175494825428389828843930336128032984759009834903678313583338100297805435169041778843057793815230077862643594395326944576360891233039528156370020795158535232012270556605858606592599050120063157788009687653395407537422627857109545006245646350358905280409201696868896500911916716882879198512967865656976771421832161906975019969811849295666977566949162351558778217595558391312739851203760610724817545940173753130932526381548091609832245754023068353132031386105411371905643576451441384440098205276917852008841122912685682971428121647984268757468727608685160462778558790439763431681499489455461445359514355265626538193411489366176962962652523794527384454121138828514234481626597149880281858421718335441513240962117943382058938647750990479933502123806176376463340021670325687704749164685314403432360896897528125196739034231346774340619224954656937136700681214135466939005747801947672811652393437417677301880969948018622317861173355399145515932580204042821851466196452247295119331985907188326210775481160522347254106976766351866590134024749698348149699316885861478057404213541632178335128808884407773122950543934861706117875697063404385476448517557506709553459281949209259782046989851437090343137266861029938207174556967975089950796528316825252794796996749849613785910294132191845941202640163573748010851708139248555908091178270374093871161673508674657690482701432857016439623853964204758960204308489838612113487905908199195681131928816051729204112746203036281352807215115622271146763921129599847031746605803947448503644460619814493333774924550147012816292546099725615205258149937636229971600761433667847499581591114873409506209225474162275455896362644112217522575780743371001362878348980769554469600061530695943796851626510593857167593373355740149682131612723013535629488461265828098875892866111296469900115086772402014872200179118895508460711227464260441198601763325314437986038576402256231553415435409529958364403948502453217405301153804240672522301565307096674948932486242704222007417256079564476759875499748437815573908124258771328954771477741375784657343167676766562650153133896100945182014252701659253013880182274140257679542598393108084162195480237748996859956666240887613768764864542078094575468565714151014529790444924341798216284907128902940146606534828157301729289235582012280216556943813906758632338479971783696813853537313217213940556145571862159299850385237378952293676323402130209151482166882688297709767229758135893345136237738858690329220540232728466329419602264783999513866753046692282316528442093932447725651766255151921095538439569073333418250004569063163189901719434490506670335714582181588704861208664081478741027723110440280988961494651307202928711953475308560961012235467360303960050190891781402260278551539240586723102440134333975428409180299559538546361945026079911805704368486755046316043688747546745198074140714425126447228831160740378319905783536916310573063585477524014348479546283050488069072498569467063228678552039118847526462563789354981925536633421300488641234118710519355789583733950843555366575714732135202038761199066578566308369012991585761332114125141630393794168986563393659755861554213732266676875327796247924408082627798717477588803117277901994129335434884516218281491231342841614308984855116157086246642632029594053727806277278658207587249954711712842922568915561880382650905939036209796563218763972864812108783788908924933129242860724816519373898138527399052611913838573798793831709873522043175663244421429188668893541192224179219487851652189578949305440071649255109745723586620949711120588236895924892795933073640431752473735899850534486635344361221517738382868753694187173135057606532675313545144475172996276451096985364250642057208367548283167510826699308494556461264449219959975939420704538575742746769958268323984816087558228901372273338114429350120107108354121262510865450255967967807618081516597988348069965728870538166695720258498761243177886740996288898189521713658857449353932773649006028469869468540467800916933279866575525908542850176847492977822931589126371285754453099416558766838796343510887636016338476503557093745168717090850877398914245609446670386571913505511344747630070315621425722366890460674674198332729487389981284970913475622164471138324353156427985309475311590715891512159500108842107126276725099462441268873699674925322460302579728042629944478551491072552921001574952721177739471794843397246485497836796386034779533416198375372136869820935088085702151815203996804757546759601825943092598029096330784048522796164397490726319522099976299434120808625462483473675875147190669256698790046327467153801856194314686393657799839418403275559635411589779087437020468439515740915466286877196516988477621874058009859573900324034090775868242411344112358459751710567215188936271194612327701900696441797515798181044241902065227752226096736061858804146332359239311502023063238477717756656261931432045122238069962189526749129622432562121119659275029625328292563120968539355246055353504756547296550832172578183093604395498603613191447757899644512897549064583821580645600659205476191361287917506213970046014229485464964861930147986326833477708129553070619119130630574672678170972354526654052681562765902552253756827828952406166343639023347268954290616082707883491159862952835489267792435606686915450055994453606831260247115506407422219106778509178108942159654364031042009468505261299029592663002861226424724553521343425439985340913461886368022977229355372366235700567602003739035559792045809166768117428111066523756480935567123593493708974614658695605694079118522336902864426550974965231116133565265474676852555857760065400851045172950110973496190464248455191293867489556324718534221504339065682753110141986727725956887160240746193838362036052707045354729686727612445961429574438294879181459371274775769185106740057636403109451704045809512533879170025297672347253619237354487989974429548737378884348209860633481717847498888077112943718674151695577016185701836702830192596131272742256919023204269913706742273907545794922305823235725591220131159874334992078850491806616759646264079602904619139608541467041975394325930262022872675647890925403995096910690361798111406885123670156208512714958392601147432512137560660726968745836686489673121937250700267635597889720097180894268759623660360502729561275915835576556447450846289760649264772844154713093585868998617930130938677442245871418704837811454847342966566593639703657587808117739227167384811852299350194755164888805439091055973890013816911422301175020594394555031684340494821290020939035139181303730997674766225746952750262013373346584001102018537197750194602009010865848205336850944295946591991297758559633271913774198520849231824520387410749820900261592624707900994224363388509709668213194250428275641419224419368164728360942143621296427395999776769352020587711813950007444700154972828310451074975320064620701581596932313968436354089898829094822166708544432784466075895317910472788693850285913144984337252203155132406568248370273189838655580862405313141287846062966989268868390661130458188091063541425556481825182441638766464841795657940692530511050067409588390441247993080220611894238150408699834270382404117637349136914528964791848478072359514761067329814921867472446684485882733861087369123974221742892768680783522145842020929729751572189620491429795286090146360927461074110426964804750900521150380406400240834778664671917482509049286869279450964831294948679325473497502809825855476446861719984987440247745271635907417750104020804868534458735438237166550740553037808106927179549777027231627617289288363713041704461473050413116077242611799355876238777728676149434997790362741077541979736111496241613805720832882420098000404532696567575751049605320988331708753321857161746678414388460781101281637233692717597466960127979386878007747847315348585190465919838472486917552725156623927181810163224019013715581585842267599461560116040931733543340153166087910864841812874237786313699991848427848033095968957195625791403308284907710126577571814638003774892415353888046299960550849748506569685253675896710582500973498753203004294819170214850524996402185849960486535231081162743103870711546552552587438101927276410493497888742945563905466253111654342162572944224209359971281515919018135465120603814132997074918355866803387275527697767205488673264485572061302548502033986233612298196237626612620851486060343254675993778919186739616839308777796233081812740897213437393958118916199879493354269734754712114738966280372233555779600293980454583706611383224851887227925887638740665120395507514541761082320690356590220012602619856631479713634024642780932018017445120018979183382439721586560449090574314539705019727112345634952090964317269566232356446821291509129944746391920077781466334551411166074932449207846693936289449501429125363241107535823574344396185125495920015383536272817767278922806667583780888934854966913443767516153271734488626635921717942281928850261169478942984633011321322377260298197885725490913856937716984290569231419192807694199756208590136881670864189398282989016571728900981762025609335746217960788271150169602125303427840555519381225306251804630580418876243549616949932612727489192926742785463290363421244324748974538524017632111839466503651139761001935427162639497610867400885150112440754893682546428786677829752216369309487065724881431062153116732499132197372789808955838401449931048732947949140722903231009628109101767113896759425541822320383511718967894740656580446280114136311372776459486592205084094925221660088270082323058882271145739498282757008964425283103571425439744330337526875061467449554118419107444387398558154393311188424959863912485554527310120655018286439217454472884614255560858345239210632478977782983867058429111417700594108087381063821376425243043728314886930515013625604312035767918095674615475257826342277093040967809575466050332282804747448328913539592479421642856859897030118201456454880620265549503166349838145228644801285040994152043062520715363289159855428173191823184976968051856638808926586022115689847841441949583955539025534109424874656999268712492327093134544118307875268796170662978292276343493518027222373846557304657502815767322839119389373728622222957938053063088025166776711886422924714436228087745179157744363689569445863151005618756025743575428030272122465233425675383681963205642198873252263415281593613882893418012551491206914620242527680083141979560114597407942180557032111931928943106461849221471629522312418776776525668221845458649395259812417524096495760287337725840622473520875997383923118825333751030826212342900062791435116919029355115244585391169377689188056091374859367427926035481084546145436020108094467747942472026206657666220917431262714826642023524262029149146309149311836572258759937914387244947647702317607192491351870487705249860023627624767494345507451333340449820871936019618355815983932737975830120880134109891778206871056007872288900345475469563328231892835255478229566528827325563094651284289642955259731677274632781727588466100105250056142847004139856552968526725136600585215506256744225320821930305843729938988934084507425048070064886341559137308757787070663012500968538987137871167666189195404745052934979041699240590997054748309609134978517007373139263813775477969953478935549062307267484794291357096116309491941509549632907019389136955915849489160570667861283445329017495459329207479714547592176785228990957873441236132715282472675116736954796182420398253563906519424983675640732952209593692690485953763126812765405229650806857602788397694260066389081693368912307844193918713479393250893885759991547137973139021909114157448739986183937739276617351531306789041586038942004687590353284049688970684266515809142220846063635292261844475784184402982724243376172634382345919818984620828695441202810913047862370879643040209496555533908220455024438856244610454104242236514000208400505463034395994606691171924307572412545766923047921880183343362749420443742243321932716081487686947013368643545953706676289031716180043526172854663949465662172093142129148279625798008621328893262903818391138701947328786382769606652539462260393197166562722616309836411405064173653932248768346706931948822441420721258324150448943518438641691621551112598309218426312475163743924046693885352077062785823609642206160564432636310004590031765441179179217516329565142542698529211567449558330294118302990659325932925581687611406465459864501385174201820417602114408371311341192330402223158836384078236901933689209140615833814559547746217094148700193931782677858953386968364715828405444423056369889997744891029093420080522098525897855400611872410774335796469174836367491572126093267339700581529663350444444516707235875164031612770089110749650215298546078479988095220366362424849380933512322790556470381151201579019606820585036705230239321055675996108529640097883022384411779833674322830656849630459760537399380729995924446505807541871558325357902142341083306089387266084123440428561491987002047898340882143152596852322897818023573097523608011436254677468790509158545617554214842749662154164848749948924368733492518852718964653223350444728672094958022870259282956441602630600559553734792110709353074594109804913515936219289393141778908297095451575484043797300976590136014599528196055857589530571449562895138110737821983972709835388297111463733968919199798798145325242153098922944966351461172383747349784131392320083287384047219962062662912499058800025014103529431113419405281656653700821054028720645721122682019416494402423195738422674436964672834039058117792996547188725658805526382090238813848589723199441515425052122998274098111207467414084532343186896787397012110541374228815880390811350979434019838397455211083188541743441475279833709545654968859694119901313244324072012960889026100725776062288828527344196583831058485056816028304863724975967988387247801018029570583632860436823100315768143053733848239232186296761708485123196323932401688356587392213774136465760216244908965819935810287651003412315750391206181052884556368522858723171665238686675242483990254000177355451857963319003187783302435087311185588048987480633672869614535268837624179247351348251869008795064340611634032336209085738567676958729426419649295700036921666145382258921801759388771022548999076993196322139189798388987565582773659735309656709622645079471924515526422215442398448429557583296698404653115815196205163980623128644362239075504696896231324305563833734908516338798047617941989808310567966158839212793436008796797164118946492135722298348393104286939636205031357535574193329133986168838320811872474845494978358385698965082432128664176358863004140195790635551709830652555607402331296059025545565262705355522511108865124064043390620702436635814586213912393980272219090873230335394579873277720278236057642859838093218288653580937166243020213472548991323972234368563036522797669679039158250607402493176200693741773398492464894817782003644766954344968985228554434100570060382678019048138224887468375277114301939352355318531141429994211218718441394425898708008330364460727608314814947394532617449934830724317966798940470829443264649881797638559538282935549401275431519309316014602865416506219984860337315980493188948070202241234573770909200907301801642763031115065413330352029559221723270903276694213603082118382460384898119471238904174736705137494518851156532179156427535135632531626308692940553281503303651393524193505840142900563313954593181950971945111993391462692351960707874913967118944606602107813629576442241891572932081206814933779322269311931224520611474061413041928146100119735114979890550536258615363238282824075697403393471547169949035124634438756864555921393090370861824138344079212945052745470816876938835271069551144644780965792203218095323240447418399309220734366141761341514464044923184732953928952212257509047442179936591793555115064190142396011297786730544764489878416500938701058582615421749828346090679169862158489858029363101579327032681065138261332100343966685565254757771218264395482571564771155763883578762306894962018119961595315659545692961390885654338316604777762251584762631260355241135711919294125101991318707438432206621187730321776183589260777061468724745214704647122686760142585446426308662116968620703872930130771222309453484161537885109784682776807763901327693750307494806657158067838899721437138586144914546100462993284804365471013666262034233943792486918398489298764996121173359887872504212995790847114547938680235771910413366797106285148849236446454512181570971546595831070608717610263645693522686125883926008083692544639198175415903614200238275488684539218394499439624064823440578408263932305849143148239608854301711409630073018806646328088344230983515778304048960235379310345273904722544389731478959492126776367036965132077012533702177177279960960715603740778522754551942058292035081770103807914865200191626041938912385231882468995700163185540295006772633550582631648793575840126649255159784391168110942867285698023949858743106476727658034275006477315234440347085425616838933042431168308993732084959622709746633955649173860700884313329450266338536733283182441637818911089528331491166270816847095958050568797517491909489834634605285965774555809302028928343908730587526451322595211402733940671168008661773283008330806420540608197395634174508417801245221864203088672484102469423154483768273169555644331657740520632927166970439087418682350875676018741960889342496725867208863774544674021070810336128304977579775179906834965474851574545307808875323097125849429643445091661265549275845646319801220199418095613544417639332736656214314411678704878413399744430501262695878184259831648540575026311929179396749132072624217018060201244257932393552260589107751958842799854516528630462754485856471338520863993352972986193411024270564496023681435422049677885203630247656096511048046098561803278806332207749582760396988416898118286129881129770945994010996593455284295133860225143482278415556725443439796047203796183433602513942592810369250572045839519156546216944019664952629047645544695511832941181096680827738293862199090733738421838654415239137981520059461520823911703364193404698724566700017994581230675963823949657554905012957629800033715838289957626674205399704756270967724842587333397047985577807655470729085823545242784028724132128829669790256814034576736527115479415200626210361638286095488346629555223065494629168112894776880406683789983303963984794929240027172219503913361054433260262344317563782824517738292910825092866548584307048115025959035071902622550791705401713689736281393147454404444584522897786116715074213592864682920755230087591051440510071657419826103460648086166381666082039523213520839821582599536086302192380498451554664538684626050867610770084232703910085366772076030650543955259268612053691033784346854530785312375626229074315808638344586928679410950516673417356411027263478941055743043914178435339566045768242454390228832998338444904371942676311804516217287295372040766090674241673696323870431865382805194449008610155232491090142456664160386743611886973681684553446906978914574549876241190264391791181311287062649839925954751842347124912036402040968917930185474262409153439109338692667705839366853418450479701802207710361602466578724510837461377683420414195264065135927174164498159469396235860254499938654769778858309529022515112209149559322189546138899909590666534075030588765404707158925379642803284554907760373725392167284121774412586605151771201477961674725608206708129397813708768887761582364415801838576833946648791993312067841354404362888715040666180832230280324720632344743852492377958838489896192842908032362265726265129360343068462208596805903015607391436880350213281084878273508805752698071710167451521755735213608612486387499800962127852615524381485117791952206446443871385451970715416839471856004937863501255016453175333249621833864607271877565484310624076325871432868651062376658168208571458348432087512815396458104991764747793702467861253963560743195762390231331466306934184654581970452118869830949162482217042801711735201964638804701673868517499446428701013949884385758633758326982784075530207273021637283235648366471821230770295896435344609640207142297441128755103842629878511847755235860358311866574974962871510176746094237505213330886672590191878977113325539190461563848099249514888635912548042329767867300017201687230936152050092901119744076386718430212770688406060407891103281192255997027957556909993801005206451733561911885888581584240934357625805371621133474849485152205713821411280589892247947302267535724061491735255948900311930834801935913130298008699508656113391044861212330746589617892793055252492272314307608887776032765891366907070450952940486415624712370677525316161137672731603967957397785688836175586633265929561899567392473545439803810550328140365825588662014032533155242712306330806188287497885098621086519475410367150689058190359067329525182243964251786475772143154932801175629075625175391042893829243132023954223493187900883862433056463638025144339016833779812151777830129217863143228133812599235323646072383667296819102459513842266034212931008931932048263143907060039324629018090828724835415611945172629647944737099358315404133569778706477443209521044144672465743827590538865658318436638833285213389275284816098608326823389375590821393516238480691387004357372359684218543868744311871035372498343030396804595455769284832112663265532447385467697016932702653413949927739742057486006719129447420943428358246942497190072895548548209710572546568760813212102123920824291101726745520014833506737071932417013773136565117102135217997934139383094837524868020623770494304463498043944970029105758751616410006444261543370038660502701574638096072526260762178634071043982388511569362258327853870740489444525410432793329225363836331756796609644597607756153531162739764367311426490907773712313325827049616242077425774983764118157443888139665310397673753147965630516303590192243925874008236450510423498689287958785856013361274198120179358885693289106253271591941573628319728717032327597662446797651344562993389113505423812194499097769028316748491463555939352499394819714543363547901435478073725440002088870835934036607697143125075770990217324094923593361017241036005069113506126430244723110062258570737622920840955685064822687763839108667467774318979967231169057137977883828598943384663825985731968737793581071730438513718744245180921381477177863696298683278226716836734436169659658541986288276806133297401268761407548358938004657298941451127080221399839594019654791066500481756337152894980131588599850113255826381817506097893229696469417993417885362436216725129109328098462769046056780136116930699901713407349641205762644029931057485052534035443969270824656226330054950445296068017031556163303891464134067309833492313865204689771090407395287874496572150348918480136346898558055811189077829508443027545506064511901793238981785145270440106987570854671123710317519964477199395248260744979761899904602203862341840606257157369288545244178372976677668959796610072237090280656989022930680589275718152116524258601994027922563547426549465712082324595772668741455065097577766982430659626539109405846631824834337624927799131301383091440856805028756401805223491541506869806116100505394106991955500938891293305000146604679432904140413710021280118223543576678504391321733808135612571931901730616061548991890879535364971974180491910853499919135451537225091512934480645399761367208051996434859547003037701372693177578077571192001606260664520140741557664766201137448061855661813246992568301631270787052283864434188657062485038764970939396383425805521757288716282470287390415745913805841877066412566262259337773224240281743892831607212087098417827327074888216596627111406678894867385948454119918561498698801281823947383052712219608492857257367523071179400572544423453895424414375547480137037914270438919050292188827572476922994257228300434590054703317557679760590600109634156159349146621364818544365522631704719629220140635898834101105784573347834413597234376356718308060558974563844391320273386026950983431543072610522894216130859421460189672077848421135505762828239123069929549053181112123701496537901908607473146486924662291826086236612772062701220847187608129354063384257920471604766304754768405366741795151104198295608356604227375791929601302227958764642822069115201415465201124740703389950572126133165467468383367280889348409222350032100022525839292200196212201035354015828025221808262585234170600725253886280430132919772056265135256045690399224396908160621371142024875273048464736945928063542329329782091639790960015572668689770263421058107927043603037574151291187222899736087125211829800515608102303384327531253652173670902089815778897681188248637574724395803965966301889075071278829737170889021431189399725014855363323154209466752448406937151248138719412198297195923975899437845215443320307279589915938602160490004985396508848086833241523396309395476347751187654845981196833551386489625634601475857405837732514438138275313788265706860878303603141352792629069462689589709327144173411955677879289316359916908549884785186213143725726621482241000410118249035282907230231118936100313946068205529774562564793621373667515799398997733620684856827195089547889173351633977365780375235987409874632147631586698151186635541533137748566473502368106433538968788912651745224751227533798117185734739403042515989929315682345446443412449175973300120064102884318581510552904310032337282777927579740602875254083226286789796112568915492065712923997692965469120841059139597534413715937470541826097423332628036232766295908499161418592471767739997241555033119109972630145706096087685666505771744669528750232473370413960752234031382077366074874781118216920015340525631074678187535271347788079367884981602595459482814573551646851016012149448189950228638640553556274923224220354737919403318319784884908737114382854617468344733573160879073618522508046189315792281652467642711958286476920502058423006832617215369798862561996730007442245036174049680458493036815265818402372520576176730991215480121662626435418374077192537127125719601019333264035744767793136483221932402190396791607615782986140502262987956926421506112439762734926190158532118204944226561593654045050054615006926738339561826536156675968563564677364925517625159914975213616644371510103893716360554611343032984859691102229051276011488347393290646348178488596705913402661012260968810837887068471240982222615045876533593004654177334749111344243597716131954571935499258163169750047056668368922562463622372566975921159594931592000658421283231160142442396890793460298851257084561777899247953786121973337517825513701220999823267384919750526408772034234086289012056559367439809367918632710219234321857356464749185902232873657149408206625535451679270466817552893396830305156532893658695010119683065246328674156575838672352114994411876779648341103766711758135287207059141828371568182534095079242859226757587358001506117915939494007756508806982155467891188039340299481662027455392580565703329293457452504523046024365456231152344466711952740311589794809984942459611753958693197801471820663003495121258505222028666446227253079667494156094940694577617917646266789812524360897738741611681722321130158664816684300516067446990413536951688806534763310201967997693914894973544739928475484195922329520014340087074663857807064546886387654453275965809013532235860818440120502860782486584578018330169502658731091918717427479394008012554836659813100124304789182817165922018714434034009475297152196921015702306467374968511221711684591789633697068645794010951141284835940704219999436119599834110082114935983132218277515188090486352593150852649372663985853544692324512761943683992315177552612399943130715401831205104159268725255470597731799956047068619675302894394264303165949522308443771268056952329300636293857530536126334270483794968936932354543453515693141454830018827866149034077668137447179544790676501115775639565012571292445036878773821121367726167240558025735788797374139163772282099295773867755581206509131567644007515086406185449728465026502675115720144024306947998201139295488629457823594420473361459759782325487703025427902759811475074983566840705057743448620777288556849461433527475598486301523019196934978737182235540893449071747535574960500758536612075349786612069017642830812797154974273536128289951882466292707975852990085761361229452332515445908306260096980554974925509136088294659428663373254552797298577709083788310351181372572728799326931507693009018528908785728490507180635182773579866260147097033777778160081014196362980885455527508313582571253019584859488076147220110849027214378921623097179979233834210664865056841059906808375015369470589755939154914089724515784199485983512874652036666667820311585939866766629623597655739978107090643986025337666335201014006165438217210932960823427099582796057835541128718913796790942980498867224374051028573415645303394211415363274445659067286238307417314745844715744512270931058719435359584025932138317943000503958114883318422705602305867145287398974742205361647067245325958590482075087613176226512387607608283504622388890004448195124722613953242229845710883004209891689680438315388925868920938811249958858108405127593932914745808997529331149429337854484484097017224337313958003780430759006711290424998032088332166085028631584852637235940867700469933162836617057429962459756475144704980425505195929123852706202722305245532716482672017066097146374521050132676795684349989922474769279444313169194168088621704156807962435640442870147028228333826605883173949796518797610400857036650516964772092257592508973361489943681980374776599651374679969164324687099730329384893567537635524145877242729697091733795182035946103739572439166804252808566521444394026200120276339821800683418919762008150261832456014103022823175737465637880587440229436485338452412842899460684503970237500310978019082851094922120579692494651736433961714443940284864315272859018937408111276968480698551181818354942161662848699859723593358930937618693658472573335230745410545998194592938335584812806280552783851835491387202379213229568861830848247788858229577844719854521917089117432922151606529952003265162344274174374106834933165993026305881007933936844826100282557627711837586875090623743451815479681038372745421254811833776682150975422198533708350557144712074738052946859759994214062129964229808551681811285311915537606095378242924194444165362254627003269361156792366218712744535127643723131286380310242217463127441594187543494024129754697935720352193907547570789960018722012864548333174251783418893446413020824960738996212251330622202403236974351761871423141789194426631209816274293940077872000307674788993345070605033619024774364146671788196068281324192648265123987428442871805701627496702974683769033379502694434191045600026102729865560173650738850604410558864063723601336119725134574146321615406051707765355755820309219123602773742610536830901651830152521785088127731439649122291010738195625721706892435252888980325726597946928025065866112266798198160946805541413368142338918426403032075162687855823484977641991908227016727865330906729468712233461913825549682554376534726290238401988488787819887253505887988050050732667281654401344963063496245447157174106250315971973401855680585632852464635560277236071310814673934683362734571025780370193759746513892188222802924189256515076452659798469332523499898999527651565589873411395177060845155567550771826249819683433351262551406280881582124867669372728679054608340044385898942995487366622017399519195550398575982729431603211413964390476761186939943104772667069229221379055728766262252288584292854280344325326553405196982799158298198054351907868678250371159872237771213160790354425013487309823868942710556366156958249569685195277047483358987570356873798607060703535906813584373635934417913287127795655764501128914647644099383604328949171090152592903754003290203367872588539318591780332759658631017331035287232194438109868012270041990826927542382252568514971314086254803097534377007720758049992086616408621979002721022624915378563324987526295037459599108839304271489948629354621232543412104847327041556521913354872655457982627383681807986138254085482139626029998738290209471258987820610736110043022080675155638573265604736785164522394626461658164576472018019591947391962031961793131948486496301362163469995497830561962676909743422502136671598760675979317004343912345557064940129520005553340282030587114585673291960667038676192924501357057831366023023230049092549305723056976894586615295607339327751970624326710453881877394228960465696807560673271099163175787996744607359955538422127428045537978463357936308445863822462015634969606725878875133128595855558495465781050881021259851592242618534709134778645736616459735180482887248134070274257372677409420862670960078922760501391942211463581044484857183780107449168720879683326112403427116889326034709248153640217031243859485972641020715429879612889783608796547487612312511328426037991848137691649383603252759045592657554804371506883764478547694377033044419910249945880806379865115158081422008241135848433912028131161369502801117693345108365463754894382195914191281341679297752277338797811053248052914384758720185806341621538496240487475972350939002532101167433468459970514361277700000025603097141813109595150012910759388239974675489967885875338257005896546806076418595121673104239043240117425415638671936740319855635059406137359295829007175987370770970862679128791919799668156699295991685891151633117162184715592920772564509963260580941105696111994721035680650205083314330382943175216455454287328045045379739441214659777540439697698673245829253118598477717530352563520892113840887999557265422818144602078313977394737197756362696582932815114439255958321693133574432369767752057691049067886948738172759897818948815656491927134363189927053085487952592079492769264249746270063752734193401499564250507054280389404359193042946325158002233919832000922853889426754217541109547238880082175596168053411362379192997668116071467920902146715180231096495409987912037215856573112412624993997081141783935469263759071907728742042085837055882146074225820003360574941434381551055235252985554644291892690937427857412499986152336310518551565288895377282179490026158845370143751626796989909797922811767928131984006052712209991761349606368578245475729257463853016148434908595306354728957547665588613880355321456681885351791485589842028571065146212785208442130031727134526592787834384440871433269338130028993248659982882096573374291202887649359897745467011876965358966135268031181988821479727389060816602031057449074960162645792796940908116735548463142939964466814372612532665962041740223309696086231167765978428501689350255637097590711647886830688343927870431463116352875709704835567909043467461386014568675264135923629576931017938708232184822200005604639776430375060140113027176615076618919029123552255258037874113361839691119314866157936174126505222136052174558431013844987697691051433119849261362029955329404658762339777557258054313299382737844595221687199434383123571611635074113168092174932799038159806647401428396322813575574574587364599724788233019527152776231657422574636006630589449677977408456226862606518601064799152302310912589104396245829289306299199246732959220645971582360064449816330716534118585787432746456214558634214531108881052624515281510460356297664590261806725217814247885511704088293243344062472339927793481589366857703980557887822444939474353872183212225020642456178469226475100282240295996370403216104628839853190670276046305696541550707874108645384050426903043538187879044288222187663689187691401584849279742915789834048153786065030748750979574303487781105732871274829989600731038916032895057605493816431807991908003253154301000459213577545484380235314524799082383614119431176786852683441328099578202198590698774861504492128103812727439137930914345787541296236991151437929728873854569164483384187890364554936803521427776989888093664667577363368365170227285518787914961651783351101067955767399697288102925745896597617446187653942368776399757286742667720704832709099403052579904264760848207580324136936531734230090158313269886186940953485760788144795403214468809273717024261294277951642020126487152405539995010477497114990584169818178692747080344895032051844116827063717931456178911109424572258517401988470102779932289038316629400222247282990631858754662894910495754331868071367037111951921196725126878710524817237373010853343689172065093188872365311660281877539241744161198201459402533544236229051527898173819231511015137143124513923426278760133093258962536381082862226167408048795964052528081691406523110598273742080425629789156303497621700658393324491770891190124805820753071078468331281477029580136360046937070819994559170307738023376728581659538532963940409910120332878132100421697796319640468637744947298491164291773493422624423641823490134531428188569267945332626436220204281442902912737483481422959701245839459040045043810228950974901784515583917595427430240403130703068946053339045132506843276916670987353640246560742832380584906981052794125315566081219858061815897392361301941686425307088931856893653209039170728817762012106849867008923880710797843557503604759083840344550383378198125724682849456133155087549835361435688795939997719307463991927766993763880637188923354835093886061966950829183465795889079142755145385834998324810707362483225428748363175015443747887237762630271753865468537234499335285782027944262725102198162761820085753962127212872309599112366327533166143601625176587207032162591303098917744276615867952070249054430947077884369920275080372786203864104915777914708501760814896934257566047027225736396481540062577559363024339969037263806257988464284903272452889818664989019681442726697653917060506910665247025361359576044585187665258311950150167268871404554278500430815384617556062168335502318137693244973008741073734265737053540520234178346928360003388649850959567426942035685909670794402557801561757243159165224345929568992548800794618025141541696291880472299167922592025559481283010814192270423724824971675625811233502945011625571674005872040655098600190481484657216406908436416218540511076565933884176802645456032424875313441017877507951812868567174643532203593475209139285313571896679181814668187991150437971398062023535281496028922467485434014439968247186642114875609272153589185218990665922370118730853236658647635302599990148253901679182472882463041865355588183112634872894982712092078434745205845075685480473476684485326804446477375466339617801331234710027532372978898421059353661403956088471975372438611334469953190928682077585372208327079972669574166938406969883319557941478128747226990853201572799924823184053712043003713490302161590821236692906229427930262958051691719848409226459993985211204200702727985131740601571354559427542237482681156357748380498993070388154415020709306045774295839880074214762794329180789053862623027097911667013894588568520919177360947522056659258154620116536853876227572800555417482885351789104811266357942983684801526552584678025772748256670379264346275900785333907080006284682643796517944505779058065679046300341332856777507416268613367255265616995350013560405068332932730595578195814246460237219204878454190218267271212504840916110819162074862412473517746431163604242983533737474866344797665429856066282915436325315494345688520418379321781904582952045496250689906609817238653396280996698341382192670608910951991880504087946031113196732043330287959609070101998636796805381268397196883043789236123143428160738536354836006163563945168080805163605831694655135118603089753421087466316190567437507120101970918820559865078620525633570861213500934523365179385694784612135388033815626101003840197109689322072203255813356376620850821141076416287582961844346265582930257204766518050069183907805721559771143389662866385551859848758327473048120648922525417627430140130073034738584038158820826614869031715704090262821982671908791215661699917088183920677434674023019393050481598682234913798199628094504598976168103103201177696838791356397279784659642947607242388985559668517687124876181279902742586390131949717363803605901926604940560662902912167168788732675095080000080813289773166516786960386550330085057452186847902898366166523710349934294140689448370004492706699914193168901324852657260357292003376408568230177322480748329744684989117624297898460107683153942063306753868076485019275140971298492648341686976481660920383677706422728772911138826369051791196967835419402683458650100989596587853018779209231744820851096709925658810714108444861157255067163078948389496848276753606866037638889714992728799671497512751017081459802245920138714065264461300026652736962170575235113053361776124715457933426713037434545652952694806644929163910331675489075778978690072023615038458473805974593259117443414039041081208441019941754605839307087215236700021000523694520162438615013986515425944809182913098006722709253966996524022100515752142414375656604337724811449191375652952687076794660759143907163099665537206000063674271016967026523891549814142657994644574084101411744637182165099758056226643957531768474075973382118670124799122517235542422182427237663527011300087106352755387164535147442666389453913501861661756728190236157818830464953475955803006404113917513505605141588513244242132306323546072799720752598713532237278149394092108733774015534736998627322304514650824593452435657405350635074757989469075105954840635020256038358780992301429578696145139101813530261326294006115596676380942787763812606067852608884859259793363143358400091512806029079491024165406644485936775083480287422823923620511797458415101639045069913062831475800418783614564031466200779414504863831291862615804837536493789048441891021591178760370597335322052917398415936139000267211879297100223384919327942833752753954009649020818110013279205252258496581053743049778509544379335394882998304378826978467458549640586965119458099074040192458554710578000811728093733812186574948524901594645947333300705517404652403947439585987336944463047990006555669794956857251339011283119244331498852193989394313729625654439993478923608274817446136429464036522978078840986688404828059201550484371384421950269807017637338829304733756124783941796245858928892890505903860671464700762844622783544793183138902899615464524928075954961382802516654482923955702621699510477376664469080796268593900013565637056512625788503259673802669807510328714924649940597420590186535324795860875106913836698033062569479462416167187693321771529398415319816414468846477160100858972131684441367666160672799997229862338294661495759765745540197545268739878149969434787926336247772715777430062171639508198271457955055078314303613645852556592973291903895949242923191422382459363040796700739765269759543027392552789718129103439268246845981732675106590495867496504075837711471408083336820830769174694763672355931007359397229935070965954290446063795296019636679605388007813581409916299943461515577054571400862026889499795480147443734923728914421833798487578996121258094890260358103125249490557512292911230194067171709398778976675384866277233655447192251882702706530343324633043590039645792702021888182086572898013657238729447504763561428430856567683064262733820024279237395525164649677024888968830089178655944906746679309790785462634674126629148367738625365317655259650223805893233206958255219666956329123155885448374866330212381344213071488687160708249672788817612837479723097381978101148352260472242399178757771964083366392532326729885164261687116696198204928726555988012990350064151640520429162920821933827150183279228572863489632653880411191746975327068655559930243665897710760423683040873726282690203384139412621970936671090393290957289849091464788418238980613250448384088245234096691360287292328504782165549780944273805469069246762835743387078956181241911397237223273176463854234001933851618984302350391573556594631621143145963665411862493473110120132339402318884951185078094596499871693620900227323754275692101219119559437537594117355241032317793130682738773181747632047448032097174671801580067281156787514610408235557074990493766324160705272852971967308962232227195053683483878177764569388867803030708657286822111024226731475270502169233651773036483662211010282964091779359499462225079084103328879869849043000249359690613139747254334755371141160020653974390935513860998049879570624741740180825045108564151937002820368442083111044404086817159875320778743818064985264836577247291676690264319950441838158973947606244213430319545165675608510964410339093185240427598525823176244910573012897386016959606632683046509047992578213145841414822372908778357597574762735396317703166796033700553033485627586443860857654346750561215790084894658355528672782900667066021305850481588276502110063108169639432769569377970010698124083748978367139060385310678478294782488106922647891704206216331847385739285643101039003445970769938985188901416939878007398438069517273067620894564967129257658491768152147854991240126608804899146002314996307230770756418749706695902990488309119503297432317854449874115910354350220088043649451914485005176037283282005711414820544814469782245347388736132156894720073796608134590130294530805373175983855175708540172595783244583112811149246504025830565867902519351813775466835969426288578350733345918516125829242675847632314590613548956986361595561984325678826712795184347612703129949845460626283167834410960100211599876922704906000254377135328160247592374844237207723590459052877937849512406971770426036024644594770840695886232960174363325152784494426440974077818909579702134568525772030687704921535698917934193432381541014818817192169149522411821833439015908373394914525919266265417717172844834013242305824165328300665460786762306852039027745582982733056790764885695110503054618075514185597095250007559701267604569425375442174311990958975575677431698493295679917464542112816761932507083807306766854223228760430504881342946859857281678015025147284965169276187464956908882135291831551654821576966761665449910241315797377766832389520781968849958866844022285279794422644184942125676606703061973574128234170244682018865704276331509798570611464484843384328874281604809263628148467257670572127501187897404705319613396536768854645632792738180918958021756557156436470992831114399970675378781728616638895712694733050280930179345662821754251970963750241626697975489343532745451456850608740179403466244881964109391935663800180652977027304023808155094808820255532802624645830520566551686994963931328320501791091850808256543595623768702177929793316006951562915817995715642738878525842841912849578450448809645965460373995826927779678038199637368353135981314409086041949882597431856306492334988401753039319060151573148584977408144349516915629177803349830425698734462472060043881933259610639845441534430535905486593907820010255788559115698166941279017985523357630163964841294485674519635566431638774174409950828452286507619973157358113758762792560109606201469398587282746768582512449957532162016603817925303046469188973213734763041625317163341839190872610663054024094095455402832297845321993130622976855308095902217518188822700627288354856168399708114326302609944316074161852164636281073435862472281476370700463412360464554764889072816453335650545389858059677167474442695193811279093595569454197812266140431275591757944607831991314921516294121373049312642700152182506884558327624898350088230644920667717492532680868058067161885323132113350348384679266632649504143162105464547128055147552858537227878951146169330897622778667077023159386647226575169815396696439895233911938565120797725231542294233146193884189521793745117524563436781591129323305514033705799159936530578546509787392805739524777008393005182754663135702925120633733336125057831546983036878297053923969037654381731873004416905074636438074063883948647429690410911974048045249462553061443540309986966601699445226405624761950061930093575185913027867641669908298136451220987175743724107380091774860566895959008538589603236037289367206109206792449861736324218403084591132675409479874324760093393367460765824110750974010884693300106052956057657260275239477878461407960230293641478740735659662485478313919724401226650116662764244479402704671627559230127920859546281703276797822918895735975683714914390549103005625214816984416832367096865580637224699350869643537305643304869272738906537845956010561973496833703237483181949683997694487878738457043960133303791554192009002725157599775655215122068730415899266547274983239752643067679160559516027416330798271725727995454857874872884933268557213255791094528293212288844960094531813532398513572003102026327192116102388148457915878008456681521130831699578831488226718559242992817534189324497441174614465785496236993329500396591426046735317554305039989897485720479981540767846153716608134222422340987110673710470119866628557790845559610635612011638933713860948587106132843240014619119363915234311060721618976328927462686902722484731351001875492977612116278303358727154706112986631001636684348635461300965594148933388060635647976131335867181134783639744494202958226900782059952243567210192121518520463620534697145911214481914370112914407868344738530071625448188579201035143141817221163592295119319048872516471293299151462347043678486766752142217169680053150127640278240585844510087925551573768137631696886264068196911864050710388339874089978151284818288781733599140640594978951222318784593087407552421192828812820136306695837703521518605789978264303646478501686597007233359505132943790443287811395377899405582514162859354769585140559375710921754840848452506813540881401859215035022495166821542565730668097982811528988743149413269900573195569771771972020817339149109787674916087376856271267650483425976506130360506084619128816337178346521114753393731954222488147517367342052439253732184684888941085301745568687602455337080084684056030509054272639449634601130123538006949726626301184780415792519743321900953225795941571080294475083271517594780476162259954697651026131906963444653343443526165112451410538328192306405078765582847200942199696510302844507064751730883968670722265906788425175519009213010723127238626086662854961679661272459973279671390924834028743035391061306648212615789680834984890247012372471622678068650062315872246261418847740128948125813901191140911782494434763737569532198570028417189010763367476490340673297428539960038572935290199079829341646974326372082354989572755520638140317007172827951367431909377201394564392246692706158823708790829800536323466104284143552541452615644388076914798432953520661258978669383689874178139873683831968724073288100524593811501074913457508895625897913241857513800527128815486676853438881238219131302527823276933606742294246743177260994541075207263820651065929009970010775675351126662388141499171188747485966678396528635266940602498577076877755622143423774193230857083752198516107378435998348580777313673355337000365177885250443390558412304103501934206632279507483416569218381751256490647554671116505986921053155135023885424050691575784122570505788382941702130004829547331454886008216209734990215358788354856299482409648541435048322377135054962895434001447702058716993112552650856384230041574698989563495536290396172940494435901491369371587090019679162381520943872065916951841085950380046588488173393678077456961926239183190550092860011815565185286422226862362149510500487292133113351533184355170772458758887666648771092486494875219873725709098641058331161147042940273013672029760946066131067856670517911621375041297374511009939799790255710035528289791716888712162187855616305511903935526055457469364462131033407770751715615147742573481518571706165049688806841367853825789749329483724165714182287101627951447301333698032600224329399494702595317669057252946548075920237246694247804751531929804235968862398971149516182955816268917208561737923482128012361584180306349218989199693921487701537907241790444565658009573427502148576257943250489020536018258926002717646864074402373014490609863953105576389673129575340817901037965294521169561592400299679366828945778553001991849474270148591166744271185949381353588962938071762110967611636870935441390341195140718775893607680837792558875374506963751692458495733078927213641024716588277702826127029700330537650490136110619492039278060449528053972799244853213267972456262118986764376138454996472717439798026682417138876506968001847092601001295858905366759637867659582786237164223076892070143490115715719897408030631793035018671284056599113765580649965651191943431607582362443831909698663085245355603076472482143191753590709802223959602032457399271374316836885549684031338701479104205858017717421928958679966597930622071901777705901146439090625833827742126969439441819924160758903683130652336915478419730209844449187788393636802916963730981877172342279256917619290188735551864609486356899080153219768255499191393396839220352887364903345642704719436826455140274874835977548986308666421770108060479478608136816298638710640843725586796691967699421411120297819478322714393764417960684920532845044145810051320841050788646638906146556653461919313406051962070177966271758794699279037543682612536050926662690019772066823521660158197964216662989011146372815476038700456690156860279906190104900336667507074177508194900783505011058985875909467565528849019881789312872352662635099096818393658379062130049221868823392969185027888414268020063202892554890029915365083257072529724789407990398833483641013012015019131499619952997365868241444864366075761597764398541760760756600743266936555361630073757490878665894528807490543468641080507671190845339295833973196282981436547026750622683982292791213658479623584464935532909155938133508726179719850324383520627669902213755507994797907678356222367134237972789617618322065018940612632675891758078211189269464791089062922129593733023224893714523034504118337456467004282449465096149890687246357833393701328586238216967509277368205032750831714419805444280672013226899198194716126332153161734064039767959092995829580907961163457029037647785418233266906019622857746977319359598310479567762878728912269086817971799430078977015883663904329405772927377794705650038251615811865666368716259585807314280388670846851442905850646342551036970594570947905279338643754903127244014066799629335333795949555227064192983472208625968310317030745697377352771219728232002503952275963943063511799310661233749476743801704027210427222884111846265011561197721989519668372142093838768047616679036967576252689569190318367485138000772042889636262602057230119257752093498732617444486433790452586798750002861925105924489938848468519922659476122631148005884145568146690767001441004139913202588601080993970151902102874784000167998133165669838805828265643180674101345698716713828577723752706095285703024585526316189590853514071920384511859730625166585665785944882198995884487384944277571410859427406125970370171549401161541567032135655892409154775347980222132878783029233915663661476758435305988740574242022284945150500041281720991725245552548759441908194292137194836461781747845178954633121333808927279741020469274818115090047508107191916732066712995803486461576358428300898517159224847098606089053502757137820351464180463138733640831601011350308737260790311838100849000575678563323539916392633548415037910360990828432661922779305108494869080686991038402008381180070178771926415157631290399140641070097257799735819813405875128216031514396818052809359559523077711099410914119862050678579609294025872219679410501708992725031910090726110060117451583813638355834631919712841300920017936349807326549733050873680586712502606122927978698542721973354027939887908113818870901913385427332056689857702243916776409054472514815456882273849151541218821071672382342609300770358442138540462119206070416366165054137970433563543348562806520402145444854024324342230538620982076203348554810095807366243857657311939849416913626931381717865462573985290095852669228652587812615482062690741995719293804333168317818295977848764147155184390897324795967973311570641947108989761469682671560714239994129887718546260988688950008254709940609830693508583165224301253627310473559724401093936397327744188451539706850068213462852620817783577000030284054869612814203834873251136939750899468920798422177365319155914298423276656503564733697950423667660411158008252506697482126738051704132462177643856564650898604390751027650319892317102610600109444566427902075027554542389587263576313100245890234469191915980692705516068318532942722546126052803231828638410780033783561989727208279928443235895924200301826501406019338586332383405143110084847470649669032267533641452134697439875786539056575364329138382427901858516555459193810619676683613934287374595006347188594971070958780596431217468337028259795469055795789394940066987980026160256291146296483699606700616273798365519167734717902832384596579422484939869234671823383556590575547280910621343774109377153826426094498472218624145218698779648605770216365499997438145049634075946256949170580162699544105930811830695682764958883873107679197468824317784073499725268833766411462980316875646050610112745347623807158792300367042579442712581543554171870919542818135958581998175181651318993730639650137474600018654129312849022215783510058406196795560274476094162216531726983672853744968900258981558675981776361995772946017255277396481617079569426386100170438686773417846348100749210578896971268542226558893886577140589791454471622937717731483128619212194860630135970875527672212543868194536334811929868766727428971251763761452177013367032624011469671469992361820738955284528454920883000327594707035433077436556317802205154435696506158558732587495182006309023523151381715602042536357888516038443442683254459350046354590760425999820807500681017554719931373516922496073112139397106116385157057760715451879868915581043974513037638061458093519534412103103046399671691658098033106313589215230872102354274257850700739149093942638162987000207996351847132170857775607886389123219896173287898304643907665202016647552400368251017266496302556813248224929341543775008507792774325403421660197486631545437015192422068345122678328793501836486783175572533733891722898994281408319205645075571822966371127341737039921713411143756428628590204970977611411924973281527208425575047632150283927661467213186507001100828745517072058652802149317662361705282447927327520051103229823394584644888256506716552710668423925363733466341190642640798592380977393455969060848272459682446263597800415068082177845019751699515286056787749800392803889226279118615737328707018107776041138773490803769733798816599141036045619318209072843068437497782312501579695348469795428956968989943086208340084643690696162724464804343947881130194566674688042836606414864933310359048561567802957715566732318483056025429407010002554333492870769012751428530178528668169433026553182132790337178439764375615896695494105660254976490258479180337143664066764126003204989045093595105529274274745390104942036153698534007898865713276895424584567071994923538401522991966629025335584961774341517103520565562459036041729903966618957700194562052041198155367805224663507106907099326415772312967851603517434278744230180077137234558111099138316682813321932157143467240399839598510180469937951510554052520390142013620756709650516900065887693167048972615743811221698703736236404934779063321693345350414613642089562420331002038562312895800474859302562946967481461431236972156236266324517262656929996818092111398213706772078155972122018998664144304375127507352570829164954592231361182707068431472512228436277989867273165251934476679983484942550965141084112157566931088005180822656804123362290067367649005169007897702739816833460175951473776811411756729417247749816189398588285179418438820537843625912349073213539496066343269013862554381439623614447086067191919394114154523136535396082954334340505417864959581972673784085145451104289861298780467008462525334117811631457141899555547238527123114444035347064628684753872321301733151591577039955581892646304102120094802171681301598448522256506508633317210565430664455470187377640690075811055448129963855214184791680669025419849457470449520903117671526424434002202457837749920866893636508314684577214341783927391972153992589103637024828769028641724436451202092428686567061666326739420702966379231226389865495703476978658256106119256663316055399775707977123397002539047966775492983929694012427946570072074913319066112275185560698850835071259389437786596256062403584564195954322881526503329707167745695993369052267205952896975043711374021649761042039912655804666568772174996984059424841682143933943321545625861307949395461468985047678428849255993229624931593046061278250714468401440448786914328209396085887474617323154290479480783279014129840922990404661023344282238270746414574280530539654858368848867937136140537306108814466457870319403793656707134301492170506957898001904045457410461849999905396584227500100073939368404425425863301740628416212311669660685124689522495218690824145350158387212162014216477083128491098980144052803229058232914195365897134019400706099483747563018902781553815492199217381752357471040109856020420361874877087182104311876693886254624629892611049621200101657084813543789544843849723057838359677159221283458888134161388664615781680626380426252834425432247580386141352500279373133110135334328559523369587053266501219439570096482904050586346107532198359651283761529681333436654577360921746145755362378714838380718288814134200237413336273938502513558154796199954576966671774576393546444911875248601314174082262125929329684637191616719013962037710401622891308022307937675024588430211693897790088896163678382659545478520271859014289900918573843548819952327328227297103519016476318039086739346023134149983166215797833540597972601954980337821341136074236934108054558991993913291395901893093786658599190420493675642039543522661841417970606910272174121269993579079341242537989483403752993660572937137254666339873562529368549501848118369404649151748963814915500452072183051304560808550793945184134992921736296676361275617810731655781928422890783617466426131441410382594108433347061013351823418636411075729221351705461638670447882653085226308930942199601328688969873411159532135300019953116567528101158269129663431004381166815465464584464856702959759680345651781331744683351492176359249024714215852569491680867059900743753194636876629119750150503591324377969020982228597132114377708203756083312729728050285571504671603008211823263251934466558610627071208133911930492937993530952449842753536131159784018723006920905309782392299664633617582373872564413876590553465657618390566563118468202337066832388248248248682634608631244909228815262258631957952954998844182399024145350856398179227103281179438820035940240869477266531316614191050931849009161304370325920848800587729619470981917602355658676532417934688192523027457533162224297536689860623578645493816765452933934006299054676721259826009440893519213184762440427935379445731673112239087403513470742829387557274801067212176517427275390517786577803424412830681657805253381725416805258896145341617004137328256297289578582229083438802515444789700887435830683503949739869321544787485800247397365618865979998684008889898671718874196308333839109689192749394946728917565420880910571762244263453801537109951902697970141237119826755442122233804957744886385847344921959158192679669036183419508355301536204409800545245689474310336017215331531670748895361645247345469351135682643616511219135568170183545683519371122972526201236774699169208884445225188931988048907765071083279651083829447762394035258430781203304128173644886065471806454278829093108330671471214867705492132737292911803278087915310133043514981373051198397833248686455909370423547551005233900221256068286015290957939173168249261113461985283336300392495137500897245595976773136029759677938758702330158998740471242708696313960029113346135703778652051221397615742318882022743986769806292257103324869690104616724427204341671278300978837150090011182135286502178412917373758951130686214778549205462565014829388212142059372097077004758901517093475793927248996053854401413941835922366925889286772391371986918878207572650040197786291620396577864250201418168607171343853775445935413703906075278829026884130004251453812351825954737022093154028274745190786675565432204856486017665012121466930197179736353473918585208870478516562195171684844746489994070121878006513423737216817763004511539781137027072365064474422342894945896211616758701837931316795001737597411300803313625998815182513496748135460504491670800893852586051775575815291680435521778987076063875239830727812015907473119421766539529871403843736253565631609692364544694939272399918821998750629733955015685613190812085218227892239573154068196595982315362723490097875031048088561454524705319489703554491703240771998788039604203382525498701916846652472011323647135549347342738927380744205242195755040319402395760519787903013239818429112950664243975189398739142136815776841949160780680766301657149673796333619931323459299816943893957440446542049411163824050763828651032592174367007699279502004028879535433328072942743119233940879353261655552105656273761643039109131079264838652454873041403765042110793506153778628242835161860536109031827187685704188244596423776538558006901113902208055683223943139373193085642232242721781789099696708557900479752018099355017692416691716061841092413065135610090842333863040076986128359643496058574795508799085613204732541877386967900148481028808279550226759595982924010869478706039056580943893113597666687926623354255483208919371646657177797287548723428845434001147987286411895071326474557797611725465055495410009861517592106669244636824649377916199248820605944487387651756638126924553841737854102147170684276568714586747237584123631145027482258902715372790850929583787285392336668100823972004294333569010868352102842855134222532702466200949775143507002153240710434361092612142445367297309074767457138874314836539329733441610308774699085306051015767791565767401340740368787014066914707178351043048030308263872217630460106874604959122654955161230928596543352559520469980392105371476128530216482369951703338363389370695199940678572773292790229968637496256988631697329425231366454114407908767115009074046102011061253434656856999666255876559986487790974686133295368279534574478469000706530457590023608775057615634226981241660260467353469378587197088097054885814298775690638305890396511101470118729559267479722845236613521680360189727022128784803227999611186325801990519571191603259971073847919372956267589652344220853232675848130239600305545628665600716357487065752825027596899043943877446524178608219799725998976983292883126336921702367310693044578265570617684685242812434881291306146670523865085295812489853368391160546566495010521272746687594237957721913775504508323728427281011622876730353898542281301839212260311368260684566532602934017684361881800077248808792797312121521394017860124351823675863268379876123297709361594319298221759074448734131896507658643110341523033705047519648094771450862141359764808687035468647101812687833339658043850051781652807962335458435173708486383797906923228003489543413492953494671840307885750497721697144062843038253935791317858559424579005208994312430707521741764643123848509670284374916015211692212490241834707314206218030288133983128902688913398928742479609623683542434688353716169175779800761944222935455359321977086543254120173409273562606879131402320415370075605688568530117932210781460995023527879081657128814875384191290278836799849296783616235254432436574206674191648751190426671111424347560059883462811057186941921406742438872575888758339213624549585468427548044644990167838328680846335791783311970918067732531518835737511517456745988651832758824705168157654414249491511087813848485659150949343067431776527044654701867180102789800475009477592624195097295146741640625302037943256795503028715341386657355374407706062071686897509108056867120106856710836142487943940155955918074378785959739409294791876115840185298654694651866287210623731375318502524726771768746519865362272233373713836362094463028316144063017865242175534077154639414410128268757309830889061314639582592845862345916450427763165141001800135272268768537825454423090753547076883136070358631755588640379103747267575321632173738827045277869124112800186616434130126364276773850058671312157310002161226632424998219327197223089240947517686221170143125505964948631659538110780611368691288511374903033824198893367028863175681209413761982087486366013331215406070951573183466390747451385231572728647331773810339258986508577562392170189208689412218400043803363972010405271229701870332031717660086723109494769123037329701662112993099307823393816663961861473003343931461675828803545084967861224525013463410928130199940753039326899751506766478829129898045494979915132164939686435817288315496422764548841150563099394486107108481583972252644582516719169054571580428034610389196686312452412527074264835898249319169645435109798535421925339332701178909896082394076094791226262733168952842724892855742103472073053137449096634387078102478756629467013368538027168555582469468439491094128844434981323930604621337084324859353488969869739555809460894391984361375335617109138625184623004894214865157723822167900526476182778983600111798631503984986409526086483240009156719351348867026167349842719743391299782259639682779072958065207241546385987114211723718010753789741656267274451610230504680681788328677745782111979754138600393224420347235874680671857081628171811996385991730030723824469087675942308826793899841336870833339102726614973076038621740184534860634553288445136549770657503863001465611701695584840761425685079973715304366456376887643963711724255659122631813192119490197947295445428302582521354894885063474538948109600903573325954120326163599781664683795378284214732901556558723823655532531081038267647784230984184176348789801845921584229855430244476389232114888938400933017495729005256553507203960229412011104079986899356154273097527067076264187642493150415192555466983257854290687320221153245201693095317007641794987429868029429407127808376007963984539673427617820435533323557024523818871220192877172461163090646185957809099483620529615287124728316699136537173709684713905483864478461056222813716890664792581699803025970357327632908087107823181674460214126672438354064285787561928952170553517856446023454301640979498723651374356533462708898316806889731169351369752757092682027018596096470589932589817300983266182285055912823077472954795801339172167990314132119090875075090376678076620007373217828363932436593846168607181014924501689754847845966846168321282938076609244192732667137599646766162400028587251692475832817828873862016905803191499162092072708736046284602707542609675845876074289212324292929819860156208360366022930661648633396383839979710688202379979131319532439302752876305414240516985166230674014412642358804392629713134097358377849411233735429540258624306139883894819310667060888281908188216793764659698827657253933099990830398567021168932553582019297142300812852807887375495313053130366647898886877269919432045381641677063457257538485715093374361428329344684708134538199386767132656394158196577399357576093055262706809861572477660941538536403511205242619004294023390978669391300925862787845065353400311339782396517443820430887580530779576185404118621276283736375937664556023184357489590626107389322351940700728195121915131954701168910111121266799406877942025747750052316647721143166300912263501150796382547489814463839586414846134958828730405940303245685908675582444422136141379782545363230498602972567286084262276868410050033639993966174015753294998826016397893022816712680612488911356216038286319084381816037058907415750208499200028243066555518103194024975331271549076241905988910023534880194204416037631354010816174413252548689371952182747333612832647968636675549239406115366293711692636385986247224856192921484906627655626199610729421202046210176405860793368619980097128398331480868164179849369603823094046152204562879770473453131586978559348414689365784428110898029420883256611602462390465514562225352205750907956038990220166910705019171857956315827448558716405722994320489853311489184613679096606313824911654593248818246750731951721119619030589075633821258912824897170444890869857598583421836173123054642889203642949526892460360457015635419719997481474084683429799439758929586317261569198663772323036391524179116241598695291319501558367034962517693457820460898216427310674316952278581092106555921722999616637666422231544190711204764382743363173889721479504238254599735008743451599478064604999476786204199120539041435510577972657249498930657566335328332913159479294779098154553802543053264627012953844568640168511720738619984879460420170607047961941218390103505048738167476962314540666926323752167285297878039404255297000500583485156922487642622176764015675027295202232264233390248429599039300410769300779239925069311172478098799826410842018550233504109755623777091976070839023634149544146056296051506452103975740210767601748386114835346436608279620440209402234289533043828542402273550899712244082805242058248612209273104842497205401741955512004007756028698826259868666822125425706959377030085479966620928904885831328228636900724965856600914627247175999940859388329855492320508397693603777396463963416589015319911438355688606199711815552484498260494413106004976713031888560901144276898866052242469086549466717251739667066613571686695359741300646079031917480410046646743140182856342169155986439294711842438467714287996481592606282802246922270312905162137124050152841563751737799194167608043017308024159099680527062760700385577817358942209096430428772775614546549315148752961004395761643681856913894686789597566002327576060430937464626572638131498227992396657284601426009408753741637930538406896566610103244958368385352949236095233386528894977394022011892592592700343088869051404796492299809731836054675846329628221621495999417544450052595056769534794165264727574460520387039604918275468414276651577338849792049637881190595769129200504452562895834977989054709940747584456469569328239523239151658866605692333395104881816899521064201805222334797843202081937342163176786516921790045260894531714542557985636957810666191451682170440887853702203758081655586265408772518146233375008441785381234455913839477517684962550755907097897163875708796256132982956292065348273333529167218350068508163452400597508616880138705012894887839689348011666725640742451224769265797302473521690997971825199851194300253785393368818075182848493854821608825596498769871042589599905080113011308909895858805287711030662187929221603292146497790045296545794481220142460380572264727539759724615465619817077045948259199759446701581582611599103933588115414891965581088460511969885417416299422218907171697301285079288176110676707814759768556280502014599058064517900753569816950223529443615132367275232494070133209953274293947359223485040913142112362850337584944697295186671772261141373554436189950715752380599927626228541501546553634274841325557764198668786600409955361875761892363508259883136753175222522240730018367972906768299342068799059829013462174490246324623755064400265942359041075448369683145662937068763224581986717577670268226215000999972105742578953734081172674686012459389996975672195397671574880940618721426950750639374523243219896256114949224120850968790798816830172336713934699409661806629242952474007968747304212389008898385514577465911301397988249022491712529441321449257146499637223172128393152533244002908262326283962187286973785571065929669184148515647859335747040958326412226754978326763679069790646455583690186341957620690372520639027465877037970119074578938341016413118670819090617837067593466164604151082719217673865839187903954893766376453624493048874310728729495977627828046854525066035495379131390811159927871992524266383371476573078313266083091310607691400656680677694999894648625113639816035438048998993657001778102220566144158451028152508307879997449759141420199396212972223857293414674325258231728557248660864118494164446975538891798229001303523135683714017076669159261552895537033475864804846236924888569170141714111445541406140265217593793354407992630245514381754143837725831553550870843393269214786029803406775508407420095518387817276103397136918187182130123110771770863860943356556811120145477903590602086113803058935736976188327508646940149135034173459759708544287802673439508569792945166289090179758286069204758128229064129462007583479585684581221342747290050017255601491808797562589440736766520340216350324069455615324224275281753200115979415948264148302078697667056509005751475894046268641538134146346945145352743205150767345526961343762483240409745652865409526084030266245850293279839236126640849162580142524218925639593521883068795071886023337760173840165117314631859692312807534430229247697562447437358015886758780752581753724843781538048707203573219965491841842358720371606440006388691606101537629098213121037016161797131112130827895193388718790002251927807134357838989649620927595093704696383750846716731689387007766800737899305919475924492614059180128523677527620413113507737733349339217075736675049236579880889447083452421344786578172990739570099896384581941336455735343786927194149326136888642133855380248292758612318803101171433211401516085867281794458230308370370260241784553420741522935984835000009302560931775334521118656105129781519167292267892775478478105222522330322773201539695588696947318110486527048687384382653686011400944854004994733747242921048658381988323171626132277396756697295346400780982042591960893301956516752276708376622171290399152589002574975952186783161297937901682103195416182548655631297304410227630481659904282994382639261255591908072267337099318632723056590609308101621117835745120298673710493128863933264422321147163818526939224710986351216046103123634846377542169662619328698583377169286695154677602522281343703480724716282420543265571497506978828272760191642627826211536651069386492523682970309652487089132188145550153476446735503749537143477782192012897992378763758543001223392904986740788604250054661108986342052114172087290249604895632081269533727596986634903083708766620415227362485221044760778678753606496128487381528976005469513598470037817031165864643661316217378446329908436650445366112362745772377617603792263794194055911905123668648511627442845301474616280819227946066563326424586817320921034635368877464450704582699624132843833518829832792240194498255614534867391349985370753636421837316239775089167717233605394367630244691652534011755293445605545581908667475676761391730422783960654293173121332264247917990035282495362191104635290327732558930048447873241866180522220200143219529398867382487708850418831911578527619488073016205510711836807789879115433490804375180612227833540526133382778180410832550168998174981852307313844055396687714099895565918257089505353119852440932280523708257915747814631726557432470582194087279671415496323826266653384722233749073792378569370933884197829206657233306245390066807319402692062382055959551163448013548230498095180528162179721032932398535361099540410697124118386216852778604582128697497344173695270117262670963265700900069367545191102098415011423582231207464037525874052991669563778624823306528165942058236723301081934337889338758728715835910947844597619817238368465902245335593130378999127202558518505865865391259484301309629621516013581975937048272433476487172126329006916613568733819005081387649661383915234588649577624633771113791845052442999743568580192984859009460688914699323911725938898331292819202464889724104813756638342930840175513283145921471511162455223779924964508314055512963173245889377427131458783083582261534850001941288914639066504269122678732864925340543737349782602289275918778993638496358204161930067374732591718287453315038075016848802061739102435926252531487574050588975420846983845303403743589799025540974671167459940008317987616520339756448895873159265078635358367979997167192117774947259372752000112836758809128316289571863083437293829093318732732090161808746657505646552274866867159320606790377406310528290529963147011417163093959924016048599216939021186322429960738008463575526685986018483384094840627378469646951989490454054328735600589845260286165095838441529489319637836861568724842873372385961536787753206073564739713749120317318652137280296279757081801448675324786130415771664968393777560321222547629286432738607443314600045750091432530089201067855086755144133863117905414501078749135446960024291343675817754843688650610254329732688146661918842576644998487182610753590883491252217208810622717564229500464942496830747826157551198836804668276453896724621355767995309342898290394408963638017257686709094946576666220451864462012820262782008381247053579390123511124600915620342937270050896698634910728790874240183862312877293906972228273617899388984485047588129775434100874914615521948301089366842488896873521799666490505202847770634992117355179087657064558652188743478251606214489095614563501559034103749176797578759258362146901060490895735601173772660844960636262720484493664575796423547717757864517305841234360463514977772321006519232465033084860934594252224498140193129025870217612002246720422647706300571688455070176263881371116702211800258095601237727660614537306708410233155170006904535139038603406556939554899231795099688205039561678601192216285286418130055114792434221723092764478234967596259954221800987799043531444476711225997717009936099577245936254194639131084849721657597932819016217722197332216363879456651229918189454810078749738307629261164888267742668598478535109759288445603591293279006356609892891794700904490798733760533178370708116790017814291852123004129642407281719882794938810983742239537535256554177084618758882768382336870200934580420952559622385920818159813653485878763197186856716205985971965902696128364801748883729621293599238782967752966027555010344364724533928494345634519602961258305330341170407522677065970413654131426791947599954443665753886040956272715875250256030299314243377589987722280693082393552983675807931502949538126592088618849572653795870848606586371132027502902440831564633558094787596348019437822122912492669785871033193715899133376701969796085946058565669674923784365994462472109723532130900538498322279619927069190539557434290462799019412637279868327560226352008164474825829053405160734307013874994947388982447701450084349617170965683443415487328751034011518675560936984299482096641425818155185057193304610233266308535014234186667151125614698766479311071953736581515928714134617649725818410272361144436692017393231581950501887490308855530982481326011142703485150547494256173635067069706548101805434824334033049324046469216778051458458229835384571733761715523128122361057610753536164936665965513108394879107419100027587471329791900749718119377226425087217480228671085733792245025128118367617436020074020539154085728166444388474515242644577861142514661222368785437174705473365464553081865965398882579410439325323846558116959408161143661170327756038267319365139237122231250615599983849027564887671881407627352757851470468423131297994313139182482114596285074186122818989042133922074933217775328416869396123997034519527113444890866041744907646073403283065655236921931554574265763366309093752915468032953719392819421300401166484250951665674019979711295935971036900794112515169578297464424570541877322264385059644695610896810800720125659973259058463095555012722886088578052058529429471606232873017752371194809828896738555165966163652434362741233477075724657514263175949677976085358097514124298082999241214818397990890968254084260945928279312657909296085020739842605485279472492189730137466297839920581808911382788450711812260235328171681681393084694287800208473568305729943975759238024548299275090679788656415853730073129967199453391214985500422751080854501308224637448688795774153145831098212035778593629325533993504133478445735196547568299872277793194748008626483761260042092643147503058421773089759007021253525874280995308355611988513728813608341173984805824742647685728788631303710739182968183378141798731005820862618668458196354166263394521885545127965320060661461356299317730028488035308568450625995378478517595531980595749598499626424140806046923343296380232204387534685558574233916836318776191682872694942946934717027118330756787375745786008707836931262328435450521432098967486614925170848772900211725180215432921025011865761022949817705549233947455103278903489076835430915381985981083673137232509502878928768175802499619103175171569849706193096200851323701176031552982229394984023801898661385458046317478153258816337338575065252718567115430967986912276191845190159269659747217224294068211672099769982096806953184971206699995208397766293690722899242534043532267334641319978110159524470475698466726132643148715279533188849036695336119186397008058739869509794821171780588321051610235914564451138330746957358460085402415261266493775242694925189324461135576960103418642995603649949973186644849411498586755233096152612352955507478665953243308372943443424674334358553291747648387541107570688586507109284186199530474450887818410515616247522946488628788850807994409885300977077903242750227030759785082679154148276728139884489592872446794957573180587411911552645083565371583218614247216057651168666191700938930335291661533061930688810078345899859289878207861984436278218734971395218026519455152431822174541814497828120546663531549681107790853603552433343225482072066578638213192263203976376969526415342540414065917028116123725689092366616300714382597424276229222108381564465332755085950585762057880810524277111927064759638851941436717153613963924348873581992744809139336632901077016698177695840379983327297949298826255222109207702300216816498374558761862782075610360874982426526226422834805327089424641699413064255430020929716526071965633722250995808320616949143699110189968080980097813363969376651405835755595406514960545155503371777595247621855119965694436252736060321810579834734659173801946824313201297786939374254629729514348321601009198165302368936181325573847040873731320024458284150944232580922722817506683244502340222790556746921011922315363007934998498644715138422812594698051361642994669785831416442665761446561803452156550292438775283116450493455818750618339847151013017444765758283451151443396552504613786594865076188769512545143553910609555351349930358976409515557976872705148627003855718638657174928950385647579059941613428147617794072669382357091246943907397554695162603371758203170800583622794767983564613954442940018798179954122896004557113258309236674272538334581112916780715565914441238688625594603554413284353669290249108114600917257462235505550972807481752480545712571434687167103920633457898317600682376244295815306013052227046069277767198556638766498250747407043812368255777332844510025368029082596272567014488636709899494066861473227306627562757525005884709983365756220734767399404738685697317478708161353864982358991634861122096019231891706905768227074861761736622385452719713083009542399997251698222018219596034771982860990067513644188468695535332885684068346499069888452098178279510880708930657862319458312836769794638851607292577918292835015652775070704630438530296037545364626431750817431096522913301869006881565178856199692812569358434540669104393404306639489907622791367004452170980223091987440859977303713463717056531316062385592727474780981876430123809282655462272531435197648867534750240896384508834325319786020670710611937081629458285499118336627852647314404295505380543465067672843134800105107778015458660019861150972731654364335465374157951975334178726785883480540052745809488934447601374138410179853894281001951440374406960057450547393307430539846300674108099568100464678156285385274822579015112614767193632002596060107921325598023244059965847934953961013860151121245226335012410310145715445470012165099782653198819312279918402899964469510804344952224599407019059187345381644651755627085531601590155115130046752613133957776047994741349709645009756019212058695423739537010182630697642092223596892856036691429890254721709861049080489102334604248007731768871721929739613697925723872116189522953642820039733545731704179250954878524751377709389638409511307829578781947864662696479297710926674230578157945567565194202815613202410146921837733735154658861236261349260758782762587350926610629921800550895534094328642545303869184723627362550034838350453542725397772851270483519304673357445565057717597336290749423167217672596525655039917150205410289804844280897042384087548976668040197014126506662718082420743579807381590601365586957248037623952819019413912712311827079604548827105951088555268936053988974257954862415418983239121273887427333861258033832284981660642198196613661758305974952244013420730889149105248308924894758540414541910336884402680954753299483391237973077752385789608672299664331280704274251546405059486329728698911847266321880206390750042098832986162623628423381460545852434669548539416680273154566764204658418938089491356907240470042781983243390931178477087077626649436015660938069779603955999966621015684565060222238965943262047231781222826566087200822129288916140512290954188113462054369503399911071602389375647522461968786484867459097669960327124089862075821310412432975044332575450951740541922315667716646272492851562721597977172235358544623969520098132897866144552160284991469405273926958344902916843776340311651931654423979783710827082058637731476052954740359611115251870115806178354590303880690189809424801632886771266871377590919333001091384834377062164616341502248202767427928632324489063084672946065909906398720900314959502012679262895069606871898527610362155367759906172950170073455556330801685705683551865669224550838277657042106900442807416190107518316132073596952459562552568116498381451540848978842729289744574155701763235140383729163641769662857484437937556319849382859693625903666020256327901811931918108316775556716830074189250820774502010369864698668693687393447586625449416781135536980469530244242187270279169423494359701088842018884394454133260977142964624368084926665941162119162207673790799367505871801717008281707767320441822062164149908426398656994999985925391881834304635308467544412168119138261650139228241708707751440919866630425166110785492454006811617584171300127916826560270952337710754475848742224572915496404933239971147727694211877260843638954575612314753360940000753017065246538449071267760280458914499599413003437166716294717241233549958522841480831374213556125818239198357031323670496522244210126487665981569695987376204027443438909697758023785030816616347592045331519105076877343765782918540983727065647971141218863775214218265648302616121717771215800702361867824886883151454414316420276828677808454238649741506193128564174586733138004861881298116980599448366798040112026316631226505370238492499807596771177099100603416192690089758571377768657709956173358288004214346578297070831366497926831327723783073695930376874199973778099091260000016982938074489706739105331850293299405631777392339551630628216598558043812832752074415173197133070929072535610993252558014437651517066693953764295739172042837711661543572632204046417529251746193605333840244597488048972199196624010994024533243131617139998148037188960093857819687493886861610272532679550027385019821946370942321221933604367361298773908608215326301108430590260333165969493034960141047926609777250891006286138388170281797302260449866205404100568866829449181222011407224127439863420431243290073133912103843779174833422812128166268127834132971853040864777453767372544140994033452564491973342169924598753287487861896219386129382752656653410872726508967788577876087743637580192720737279078393357465099875737712692457394152999564092941285282755274195119163152246790149899860145450023179066069626845933353129172265465826538419280239334522223227878849229575116913489323056206980128480751289355923117337006745530370439549002359645056579434125335823181740607919324083197958474340165911167616445636471107449988820388900391873185334950508077113013766006141042912910072528973562759495533111445740638420802467803915197689782974453785474764694558769108201657587307532739450085815495502869911028816178873950712205029742215494719831721060449402237002789379291681688944435925767836358740875323794408700182284319109656466837083773210181222199260478440814941034934035741520657663441722494476092839311031911032894480257827946482542980914287736316328722914484222580018559550044645878204551674384759734722487677826978784739039222142748448933663547500756856936271442349704171238024600832585080024256469380952500008162695721314740159756550296930576770942279706882194448730478714352592152998539635627188986065242935126358435954772601669302088186938480086358146352005535951905527831337474242674362981354272484930845314927501605174241963648639146424688038270315182610969565152382850763342611994422190405068267714905308253786240793353232015674798190589731164569451346768466447627860229430055139377948097143306646689018755024932616116486203900043957277381213886006142035399989910548666069988750270553223747468025779128046870482642566200230113523378946088172088359166003350796154451385797704619697575052006663304186302270053552836175286011521910563097813888213809029024341510154099709614012360847333093601637361888802633853012656772000023410165537712361551729953597385034877217319347732507763312701629620300157888459556184964429954941633003815837853091150339506913225759914521249112897501728942174388013500590560246307050442678326286806665925625057942326896485921570674143045861374259207845052180138957149828930276992956320854620765732272140525879785147956913987350378283662658845259282748215607466562320090688162188693094013618059131440708978860653414393500129746952481136069191989646139847898266032177404006335278708236783191602439392378959637913820275207122086869707389729773486073983862196174718468242308247598363464231323266728181397256884726822836509390648551282948098954280483726214179059496736564077718600214090735811224920642663644950364604836124082761731731793139565540394619355455864407400882046895484945611990577686968470650669801536678038758927577405624337326701781958361009731676394876991853753208261716811975653314819452744115319991297440884676624629539322116386054399817794821957736422549247840473674541420512820041900307274457834084766622523353774801772915751284552252488228154232413523865024461092561953124302979141780542609724026444311223168472242319892882426049376574553843708742585135549796994974606021950892992043552711009549041934792612211500608975344653274505238104196930002674776958536463705951314091730766392463841892990004169903803413494992612101481383163726376537403370336739644308514825290669457462207818736981963372033067422662469490473042134753100792920724625787929585358780802594552321882845691628154304025079870490933235186788133615393007832939290416475045084408560822709746079560687592675610486009445572462786185884272546634982125870902849653930706167148212546589503154625480004517549920160392959388924165310947032044072676312261322827333541322372428450112146435368566061769370361604850765940652374700005222134448813997911799581038444918092646700861444747009966117824108367383334254987557162582294941657376449453214030326100027827640082889413243451832283996285213836212251568714832728249189815453527740471906311508388303808288203729499206787849905261866791221222671445350681213154081182856777791368616799243005798307490881097948459572230504338966091683818498821895409766867452526111397297623032160786885211279787781699640687274116945586988294912366374379995099184663395130510516608851538291584168964957501997288513685610957518685203464656752288067148369402555123879794827127505814179113081814381436714432772829559832257024696885855900714767099391511395511938166191684722908862972755325627150539501398265422519350889478925569344641253473130297989544730158214301271222776791214248745894435000882024257944196232292471543940848396587259809010718083255070364447985348289965530398166243595089724438140237950244196309148725744151328809879401006763927892030904698638826351414036607558003004066184699654945507144829433557417684859099601422990674999176358368578353164344460890325704290569476183740693003431746222719040623600259291696317963646405589673348049749924791962615064364275972778826737951821019825135715817274100652663251657868967339454863173220677250882913504711643195969394756538315814456446474518774113095830719999918516184400731730174703328131534214339561177604617241326421994689914723933495766028963559225452726025431312280652326978143592629385130721126144141279601447191922115419495181190262280854050431567873415742371852974918635361262820441260865969955006195065042227350560165960519821450387083326033848022704257415423159196411222607590523517548661312681078547148963112506042578942009960872446707729212716659381276173781969815590022473295447992875212094693786242189297044212404551377072024842645683488475157037514935450892407849568226812197945794927569720314388440012201344413095152439164023169184201304982023288673726486183163748079455916387890684121796872444246382713131952963720186928871206754824751921448001829342482480109373988671651940566066433407118344098625056149971005071418266739958811671990612463673912178549508048690767023257476883174290517185104348159971742696909683337671803638661132940958592626109821107708888745056013113936031404735928825530777061732927471606610038065856455703822697730989475368159993442423344786327259533064585497812458638958001900475809545576779010852894824688761294376375012672086799951625427036667825648127452505995424689198773932203371167129929881819290984999617014332017684161142567981127926154538686123729450891013756560185926532840420093974562237221287959501257138783567312713092746448144736825205079602918735948345339825901456316943513831746071027755449605455682478270060783282590631044743914932744201120931412289979288218107936830972488449511437608913050798543040111093646117217714940133916747577167832899595987814812392302816653704342446779176010104838101404094860653763719588209834484845424408164265617290872439243201068288503700873604900171938343247878760833529488240145571241498965336417106042716980603485317541806491570879005190129705794441844903821902918013948239950620418436177835314668985427368484929538013202156533210538889291732879468478967338535018264163706347956193613546302479076549278516590620326755346102491017662261155133101612208323584909190155138963329130447412579044227725536149733507777612510704430703275645254994838074056446009338932689876932872547293856142300945697849130910951765611849874283518734438954096764746497645007260637666195131844910358578816681659233828595871124973213771653885637821554314851572997078592543303497217022801312691393791436782277153792064283789715034425977643261543107426487879321707786330573689629690564095941405852250919389184905315773861834972605175217016368263421237517012561693941865564060556962267905562209951955792287561483114637525906430085876485731861486903157587016414620168007876408881060522144251740875270457275545534459305736445490235616024129878329464890103295494057461243966601289035164521696475553002557258627662688845570046632549079537127950005261710496935338314353644326929294064760284428364489221278650028504835156784697132780701417008027647482583023205629386608223547990672167509669686696251396061927865819175038448898131669466923170715322739836960106759026603672381657066132283940421904904423947499556942466429685438113487317756042864269292649407216384962808309420513166943031183992878228035546537674331356841079372045096925583518356195739713164634103149381628304067313335380722776413000114319134697191825575440388617124033503321260096396550319918129440669308408436946949903486995184027434231481012872977825978902844310282869296357442358217422312567004364486851197047407475004982597429604957365888411405436846844628812136280737128383761983587088766651673568721470128095471413987456827781080460574348659433198837687427815405181396647875351634518064569398142543645260067487506758263873638900694292366505339499316507906240067127673267548646533260805547072535416680502073952191007678668653985726487581522368226099889980505089763205429111035071683794165302317500619452286341046971773380395359178425484698857591807508905123931347524802735497932951823425866770523764997691262995559970978007419560726869504732452519840016980248000405181003557142773929046767274177037373295507401014380179293695881519219434039316239118750771237433579732089645073329918106900842985034905679020425977424180805934518711924579877754092594911896231474558675068862005631757676953059533371731670083823308919772815586201552432030163452214889938147170009092079028037099605422047440133611637975022640413711470828043097249264567550982347367614010227535439026558067096240319982154467403815942930548268589538888900329434829928831075157285723023101438250354710229623380363487942111146294617229214034922345173799131816763034882828063159652288241359590571794767055320186837196023450441645023979316942638919654706337149610952433770107240113215111803656125934299039883264314461751565677903745515720867603422998514820869186559946486539567266967425470056366262330508421954036397937878032856735207252279529520255875165683871819743502211898845088477951734196468275402288264273797016950331598785896331892936052784619268612440101719857152181295774130170604681515325258764940957192716909379258747107077565853728243357051882958538486561657464768604137447428006716428810900547521252539799621398346431231008624033783619148825448179979390093827811131517456959456192260564376948364029502402777765506647314915193451284933488815079519742988052959532478938411107512762586576247139611412706568783085322497128010241548794244685887127295956667890820198397972780975683532359529699402613068645822736937897713017850158256190728775983415888512829879165156410165628079795119664191940507675636228307256657551995327791511031096518858701328489311233140787442064065638319051599231695593849335486543859478593059382091228060009914886080426814881818047894500306310570465256115283890829929319237171657324091244994365192008843244551955155365727457301945273121092920513725339700028561656071935502089860623629448695974600013292980888407788755778124274136502365641211627030972245071455525892715460253338215781750977865089812691272462087220952974206295844352380655111698161679487118886979279610304875993827228351774248499062386577765763115400650704411763665331468533381782196507991140174234907122076596530656846735270035462529560244642597727796738831711901804004551716802867190892810194749817601371018591317320106173881877228111369213470007135113929126972355451112419312482705423040627170597505998175154100800915228578574562520125981632412710946817582241939220140503019588291766754061709062731056069738942488691993186067540270361274323924343131420314731411339658136527105738314096784856049236282696720099857528013330840269955285998776213989166887194437785632162055381240088050328976107182660368424118962159151623518616430733920040945782748680582124915759662217115156154976858343129232173978895055159561940879539260127003382983949922992063445846382113041353802776664625944174812001845894441661648022063121766670882800635321163059319206968736938230339245385677932679674177792182140106696342782408383536836615926447239328962399811054385877765139649308587922829561793969003437088314417777540914490357308609481275207983382581697822446147722573570533488926936829456389965286857853012822162652990208933993037205683717795541763373948454133213185605057061102535247866502167460837139426859266784779292525990601854717171438052598333782092771765674423327360888929492520786340881162207723616108700988112056399708452704590067807034881043361832129871021880832235241186726185326981403200414936471966859991524767462852540540563310715560280729638383707637732656156418431901771811025590526791992863989580238138171317543273442237422824233379957756373928542274935424932505929202669745995010547251387600442066979192180815377533350869872589501882680506526444436953391502431837534655513907723655624952802249849713578833863528381877431527399162248758225419240107952116063873049761379406438297624669342718200703661409961770914001345297576583654592971793852361553143568011845104383495902316726709287699196131230448399566582944377527541091706361462831099297949535455701973239028070006192427431189294997054068046789088073242202240945003586472058373687822239498110699504614580774076756311558562723293882520687531569858625607756360621270584415610077692293625944741070222194117818401162986930935295044632532819969859023249893495112036680968434197381324446549966342968422340064267230939858284855712431355234915958592182280244325640888710740351525214824510388165131048442066583412480450858727684234742453334420129205637296308077358635554476689415672236377144996472822616970490092173750399101302050905552572351542117778468190967704128974345978947151469879415566764738569911755498290126261118499937669284709197352444244429493263255274558116282777625390922888805247862534542039971981563034823897381788306228230191274385306415018630893491979537750499494251883086971355880113353877738631944682479208066403282636468249027922867465162885268642263358032215110157129631895720901797040716055538024805682670503843701239823248287877227548532659767795665524214315032203408562847426059760140128504347705187133720945333294444237351612787571738229544832653969952126781028080899801394430601966344970514723259174317864925153831664577394219059623477822614695934479241467708000714289540389323597486997288540937474157305595436109319923260909386062122012652273439945109453071478193125356872085358255669941399731084120891497168247004428889510618028300549622242926328997699000723943940785961715318844968097987233290187068809813837441221778616136125284341397306839329080331209197905917882257551210577839793361525597118424572882253292181813728924261958217571924609379330998096193061704084904442223164063143305728196787088442812447945183857772877235707178479512272260295663130078094709726525097499449544977931188420383276317911194081544008147036502031067127175196638031972390009156257432550004325592841131333101458089925294397583225156546996284738694976978822228062580762803640312355140911956601514525852062828909847261616899800711926142715403872394830110394076145458917073622304759449732213893349643474338171158108204917663765660912359404729140181931443222913482991748418467045067832436426357185400244482589008821176076326333435911302096239905372197228341165646321127186365813672405340309881309312959286095469798845364087278581108484991738550522891141973988930195715965131939930113914000093867149559422327208976056935501979556220487108913427038417609777017708358154613606576224405356058763089191641611619501982803772870366246005769658697620245345459855520814896469103046745969854261164327497301219094999686331393503034281288210450133535282575397520653113711859064533362687524499924538180376461636581829618963876219403632326007129676360123850429434256203485129427585763622462160029563595206015667930889073056278893262340243727396890402946394762016065564955744100584507307282086731882166634633811151696945661574440392396715331087847308471150346888375588362583272276194192548274583328374450188220142836690664844319268625976284918978285839042430331972162567726230405492663915050014103672931481597506926708024574087591774369516201175965399612267473951024892947576960878205517484128485030343904587725277008444092027747892900247881607981446109495441401253317167175835921980332862728374749059094041901967309864831990362561205280298357933925113207860261350494239489221662941236491073675900651952254273483014228129039899048848490871875121408809799449374273455594067795371471845345591179510284288773300034543047774864577728159038493174040487942889763182743592364581943817496780690413237437596188286558288675019201954547946898603792633658321365900015121374079042465440931641127780834694177973327512335940910858012715704024953534600291730067725659000383943865075768159327316044762246525115233678770224455470540718325590561058879782160520280532004349065798999693920287452514723010220643730124284274548141563018420422379616553339688706689629145772145702503412289946491751741220150750552958038399559671089719858353592665452811972446869224020749547874158501026181439742432501575786249192083640524374201338390385471609071537276939225048615522024970119728121755882240822083721380468714228648263235459689531371373301506226129813064987268205681408147769708993950077275662864098669987571917745174032996908536426111075139616241195596477563379459107338153576040085358151289076868718439293839424916128175593699478818557711193897934857518077934029836806278779518104728516726648246634351718409232340371700563161803272091214857769196969531358752252566790426738368199661100480979249002452420229143660817256894363659667409324128716998181866754325454225552475701538851304898077520949603235896254135030180722740014698246096254269682698676142998696245342201261066790399782364366513867981459891207882997468973292975002370632025570203429226734532846829852072893883010531668925816271658397799199478722526506464947260921395992279295060593818114118629180547306766436942794226065705335177122611940597999916650145148821405414406947585432051099084461765404098905774712218365503457664298061834900069386751296294421494859766586132836182839825742173604160853462480598011871634168438802148361656801868519117573074221536055152682880151692234808119105472187302942953061839914549839564078941894221952749381887872386498690397772913596101704665106037087736156077107349382831978089407346569960169270112886992969629939534236743206684425517425521614560630646987915512852520537868636381836751701329649766640359745801457346125536970299743512287578207997883667542848481013658361061471487224208072496301640475141409363185929524588035383470027564527499578812750467409249933128447099792241811042110157664551702184980529262596967927479763626109993919875296884207764775975600673100519736970729525202325720416808219880947922465903297056644017412433191399648199021002173756868154830948220408447594396781168349534912281160761285790311443716086462785638534909098305375089852920830584287646516131426245978113781443208735395356041193174071966286885143871567698316331247832610243660158824835468455890834243956047223075363276931150674005440247085957173337006747060771030531050269560861448494176004469613165849494579112170774018980108495831220065670562973612545833850647587721729003974685278145841190834024298923916333724574787821945384040050827478948855601168719869651561722747794905322918394577817335975917337570413133276773093946264970588919635564263942294475820252797264715789859272246188038596378615182608943204977028665463285010485682591948204397045041724371546988230547969939124309575991787232028339054053146579961737661995871739074201233343557034121531333238656445416674160835931460610889063585465856316781785952597024881996997159724767579593603671828162518552856996033774919924864509660607845810188448371653055189821475209534586487011984049533649633628710561829776285047103651877524284784524586013182857653496595334719050342881457052427868567380117853622988689751244235930222513368585708092407766749914318659433458217156268199679069174957552133918208326523841126676648312933885261912934123637667960837369808456835519990764557766269070886393272336393919434526730743368522955965972071290156626908023809612622756180638947453366232136186593365068947240477975916549143979910329864091551903284138656660473380846705922042625673714532647304006669354567551981687540345531310482794793368307830528882957449499784893652186688219605688951141493810342300414088260392649832059556296126471369855344200863435059219044550493811818466707757354088069186099033721095906995880909025298173084852994987389778560105315568490839139047739890464677080831929577870959855855966607163959168996310986456970665265405435458782708232545068413404741398726561374109253815425175348207525524315368518078507514096678921584209426226345840409284550020250230744643775024857838177907274787966449873855840465809760811141902734833196273710688660845890520509502543947545213751308917458528815039641529037361291760113772095724366064946145759335934149167914507534715991812341197475485018114849565767064652707192394795941456879026104873730029820372693126442336756433669045871915568052116329842105139842642822035600690778903756458413906142489537734585386518414739413851805227219816679576591548743652897993248544972235439587135786526616286289026406141735098235992387350379824755363846683542528713873752000129721854814111559933216274321972305305479476353511995000346981595075401152056662835351968814479901609526319676273267318598250836608940447168126988233548098122100471962407664756342375047707364231710738513683202122520216640543223937223681134786407682733997100131922062903407938644743759909359105205081448254809736169184385394151621535164533434929768520664304618762489087331454641119520630603043200348137377990069705437189383786115396603383305441222680629241094206312973661040467239275449130156955479790805943369228960193808927365721010840140607535619798362346179590536164377037725087069022743890431689483437678515742798905568966409769261131534465409856368433352721038965468351638022872080473562740460296815473640917593940800943792681960073751722726605825368607972639063486893780836796444818755385882440909471991137643948269388015248754660533255521254878849272463257002845229421858194263349177227342925511063422947688967950417342328519288265554682582473896425915614340486754522795713545305994098473103439997429975801296889866483964098557196212867712123099986867958033381646466645184473932314802570308578017212401220328072443650658338289720365762327289825633257234100354740834161838542081545544207611297736356356822471549224709056079165774553696935502363100913931538526272785805322347029141050693262366047747209811108468462878110783749086791183320704567773751358781727560209640839502670323993191840741771019754722983035197619325597727938432963568523188723307643158392315283005294074709539594671234461996115612254118837775418924351395347264702455922409960258993345953264769486051879069364989422405357920620755002530718120428744434211238709690434766507715500221000275157700083710427755688624149957802873483976740398056272760688558931698556854820437365101267225956903729234238573723721309546723676041535909332483775523980186908942753599364238124353482309346983930902354773248379841726292133045157352308172073553640121057111757939947804724856087730425351969611544377985667805896004570311904389321826091306885130670764806004317076325645952642318812674959455095047338268735973208509943400965417918219007100516603016336304666152082534406171443201534557574913311367637668414355008133321888651353244846754045351596225723771748419913411742239062038163606503087442949592036101509267264151343812052590722341237343320276298779930022968873458971933819251683582986227868986953395588433376060917806547519350302793821625631887213999699487918859809215693976217240786873133480854064556653099806829943753329095179499164463232576752158032006572151043942468729784714334182050591797448959420972118441389588213442548471263761619436702141056414215793810278990548740629680239686988889797245814511462862035555082215816789753965224937286207448718976787974681357352596991489909604061937068887680856147413782175275960296555529245413141245389101082241951465724773440644935580362335565725910123728050991195414170196805206344190358579984935775832547670608543687546088654774317017888182082956510380410240997879419563691976392310965476145254356568618535896874013690635393940187292894996731617955942738823514879722118679176758815558756987190511198086114653111959368139043828780923387420509492863915011664418753290743655497975540127002512687713678586024818323118190323851960478843093094350448688136768662256709130724844994039044785984478430355551271844201755357605369528918924413361456127700142143212632011829432390313703786507799844443905914527623880190678367204047972393670175496437342909095452637873943220488940156175330689524244176749150115581197907171524313580125389353310846985569241003877042059791308419069073102194309227225823824383531357513564134100547327986595595973759974775968999061005678082310822856460178811693231910506613845711265118989755497266499520055737792072158611708770596858038614711246751314230249717178557371060750795298407274107602285743695070354573627912859255475544466294663381611751051665813707973339495824803715315028199414123457841955861703690615704012744614661527551240284930391373289336315001148769596366862342364451798089272538622561267584900881359475506155978067362265666156468356089533224942342072224878329452503133238697386864863242982929886898307866170115495648715959740077046945278623504150255403231811979889556487239016053972431213928720743986882371377013904570015965452629922159770608670516802918229471178458645673650243544999020647626041712105981995073519921252953042160112837939394969282790691552616795065503477265597367266813829654328394743477809268552951460842436664702907640772274913767551919960269951778473994154754956229124930058631140431933054769937530625740568055832266505159191987096987074367706548403350494937105657385038197561644504164061029527463375068264008643678913866659544363009432183202480314440762493370824615783750290025509324242735007685269136271581937091314233438348017275130953427913294366630078315916557421849354773073383790385961872979814753640054064364724915242446090695225406155394985254481163981852701013398928706146949371137328201966728520878594983717540719407170683960875154822541710893410266677725733672742584652870597608393659538784986789512867425985662572939119558150632525753933030278485078729129548797204928118340321266569262865788134509817573926048584863029395532211141856937808771452818730672939285540792675370288031559657082576208014805218437782978940167590863391216089899274219966642774117629561319596932110500272775088185712070973425864788736564036080968989798668384688766127130020411185113340971978574313632103021531569092785936823603781575303204619502377961027600647377224357164998322693683381519121680305372847765270104036284536063760934422392606724645304582520063155194846417401106658679960213355178198074744024567932738423656351951749926477501687609138306753693627268609415180466168377957895664475330474124313847818804325898176136064294218941411331013876291093577472586804467893088653060804702604500006075436316219445096582786034732712209393655050385934446513009751913463765110001751476767373074397569984591138775126502147539650907344930087902305329671519712656267564103861275633528923787638300356836426332988851928054075198381074248095979886747181549948800603521380520644146474800264349117335204622963980043768334914512554752947042362042057528213400315979178775205521130951723765523593390177416637621774305161389359002069138193662195048094300837797431690390429829461791422094868489572650442560377049359084748859549454186061857116785442367918292716984607964312259137656810769035434211770102069642121810130859836719761142213448718945246672026688344668988459360842714800356554606870211178819349903661867409849138014935803826980679104650729652168427232660998693088024440840300067744275917704688321079093571510766206183863340013417796820625505606148430914372684791989548049240141777278862769242462148400458499574485226232657076006286358441806290389244807978137027417852222202566241002784305564837607342028373882588205776120186938099026662320631822780305771593909276774720744974159502060685071433277362607119767861725621645011425107741276156046012515136956393386919221189621968541343389564140947214963424898969047217804532680507036654578830187759837272596800354487222700230060330838794269127380658982269403330358171937629626850021439371639446475345658582306002686731818782172940191245454781571631549655177060805416435896204111154332640334201794191862271783833408547639756967510689933088692576950327216972848954968672663505339815523390229960695403079273301266725948254449521446147465846950124725950626826453890904208315255032849057376166764717472978512283159580540927674265405117176553285746580709921171915258350872423300770463430605785632938367709388603410854697657340607908219585757464339723325875076717856294440770469845198188706050845459665689437189406172322801532852088116376562290260660268894201223634828422857454383987698675431451367910433814911290246110318076779164049797671663324822369899480414122026794194146987687830989507592759818055859311256943134645974052140325203581571851336106448522894575815644082040176300394932088810504386084637278469540383924771203999658780237980405218482662024138590585210335455894977777265070145701531561921397588984181612039225086832166680491070807933569247684637080730646742080614550259539799403572150979742052442561572683399516017835468755437657822498384157149718849976766109735078236317867765897364770765393343069969958766311392143653930297844146462963716537125286464849701058099288553883268836002023179388903057015045080942344948865774550430575756369349961915281107526170608296064947556677111749613841395526600164018573106798095865603107950314089323532308226709966543232117875721502280630728396221732819766324127359768846656835929178483987115745227563479324557583802041421373360874999822400320588916106257791297216611816071413385036003114622053548593633623326825843841342215529938229346829007961084905467218107654254796290732332869440469033339565201616645166255277931899801377437365344463114678561301178544861498447195477071347159342546716633787762918379655851481162887016610452162376021071022174755917949905125151601030512527055515877719333624178146056375175802566284064849255839614348645047989484945716422354424136126120367964355074143406754695395359018662209526242456432715941910411106393022525361170424523277160843107226321353886508168169235298897854667051176427563836605539822798827056333232061123133785980456560044255135699669589718725746292422302987629812281374909121321703603493599271924989320855913905998702897177029191044585737500303532602097917005389171564144566593955570161826675337366870782267908266847088540748519271447062557903268929087315125174195199337361004725178964644344218851551578583468921118143237846258612536690962075520982700603270850751692664815873364729012026405474114390950037720777396020658856957119533008312118248843215360721175704868859236972035485767586438691915178490815038461031589929612588826310879754565001975137738258809777027279189571454554735456698844223476376508261753986837904921134353158356750200654981353696454162173143651780245431110692524730820399810019443753970693352240310208836158176040777168880426622684225225584250590450971187700075363265162469496947897992697389617378883803140855609208412407813864693633631248707859272212147042197203245825243773453983408765502128871216268716974039208556991715336348138932902188751297537102187808926559544687059779511334888371845472254823713995721386669104960340642587985045460419916249424183774151996313219136744026727655527816982719170668357478801337247069634321607057269572496794668077443609231097451733912359947284106353038443760130552009898452088934164354937866439014895589406531340815182297571824305621628372473537072572070529377042950143850338319029925128841742153902719894368638820974898039884073024260952923193243517984235403358937895138963490687682075201958041103932050826125762938882181772015611763276855234456800880103406650389152696368800196546015304233381514323880411995130917599844627591521017548644812643752576199619223014662174298182380960319214532832164763923879101968666296808147830494180144687840180588228842245291106337226117833848472284988626436647127105127777739521381550016900949376754764751611422469694667643084219073326419249798959170887998309405878548547368492394629408594705646552181355177040524865512762705501062865490038752560530544161423054971896711946071170326875078839287658953647794991278692149287912390193104731555321968425892725039327847374890087549116726508758596754603821525429227384590594690527343212087414467636547462887064335628723443133956247931200294193528783989530414500211198410233220673187489236982629351983232749736879251713048435375540030710325841109533492599352906048358059380346101286610713246402608327202477620484338790422805019546019023127599027680012437169245001784541594586056155465452247281630698892735999805198729121374307568164653443657742922549358369105582070979500228455531707239393683857331393450510722490691326118798285335638136796530535675645669477629392395746629958595383781668380130437567611926941546682064807354663686883175116905679388573814592801614441814693508687633212444644953184822297583499613127437574790466503584240294825043607520427413511169507582776698869765270382057514122800655849236788761226966853240236926663560296061077760816469865846956628762715355062895266306003925963457379349809782372051614175100055605518703860971593604376517712407640770721830578269608129422049962893664629672328103655621058721295310860950091354470840329026713011343071610546730841665643649784825468869866140405930058275248959514414795948114723923583170817658571821732235982857020154349691512192244887630471765446483740498653837736942745852028913558733143537071580657964227029335133067365039623588495657175114420331944965305631709789118535962144543362325751873798664103879307483900073573860559871735523465799848927935402381219305235878963465800040425682047519586314901836660625709505851701991336095290619711026599133732904985169915129124303705083854490483280457356308414138539488248021597355313198743947598675516848343716818392033962275670505356731094880408291447896436896728332479420042893273457854280867324148556832122526914000158830453186438884138398484116241914363929125059739600562350240352345274320210861715014753513670957023610724163371358941976872735921497615993678207520099688955652417905563396144377099080833887674249763572817692958343470138711220462397225088177928293116012777077041178734917010441590161601652976234251901477739172466257130789389898411256269438113760648411534952011597170633140565441725309093976383179666381615359112680457042891570521355540986875329978279223822791880383649675407489091052351353791045883132018893825528496207661640916199137884574676872661847444021500939962071904917826772353335907907514071301252033854556152780341714425539309843378622136294538509098002767386483666788632930435579751062056569278779607015483997513933065842523943364474963230792457066356246424781876232349186956654938622871802977952361293168225865363614656725890676610009116144980184686882130781430875330238551085608337535744827711358085945322827395224522357934671156991034884422354674631042373460623746117185905626726130668794925496817354534742702710522578122699966687758099383863549168211805470080815377096204831335536416996843509034891478989479938435703830873846250313663166095097046000847324019808480006853410573450345172354340457234482748924954571148698954298058517834164451447441705838742043909106981781915012111815978843239958084921745693784444144264813808310939258167754077459014794279289420365788957769884869043628403083868796529893501364000229065745290071194983170775398781256647000211971422175734628715889461306058706166212254482561504056268790378278036610027396659703750931932018293402596025371230981537672337539747610750481489182239729712048901470167921136430514650113386377128639767175613882385670250964384445733224172183576115038303335423986375245892867144567808409975927270667635152642075170189544249875601772716161594944200566903680775337828661700026188659780942627078778119925179795062966730016937617430127582366961818605566252083388834710387289311401209676041106088950019058719158784472166703681854686960626880549517188016966797534191977269299214575925527770535568841596488833570185683500064743469522081699388324121654869396860185193327834603236775947668469608506244207901174582747217581979248831912665597425162386962038127395054293952236925725178988544201911345108556820905763647382864027094007759594498436069146392258785750621570355251969690639896451956726223737479926437661511167351123322235288029284660029929894713654116646360004390522027590719462451733902858533299244734584667951326878297057464760007736731516266755856900542984769144491923888021012058518994130119749327633713648233480087664288795746495111688690447177138374949334102496298092952781122601223694707593899137119221565576950005400021174685715986709853432810836291317031429079994669802044819106460750218873648982983206727510717253225322243487312764439103265967912739782827566725482669694549976196308113732491020247624897241244407098326964166574593149044553225980699759463353608364715958300898541039582348263535009639502801145117837442633708471402324365980702616563523939576542593515086131393609054330049832946951182854229623474155216201768976142117459850253957117965371273270048001638634658203754484528800142949295605005783009510536735713904133003223192575467990768924167410575722954153718706830967584796140932930230122210765052990208217528865843989224310020803241467752783389115367713415546143731017011911804042507292166516322720170856558580584241888656847404646707334125709419124203178460609687940303568785688422086975310609732326171434048264088745016741884303690440369950119265970619361694828307330353308711284179648806788564832927224584835953976586905740199381851622497818909349475005146543104139365795118002047163504988418541689113956958703888704172059370305565295799066560153425334301680099498697585900459265344327399596097880487418750971081113961423793220023146169818041131918489392467091574128970647348120460522801417281057667271110419253120999786443632487393254798893095712968104752846484848208352322828754714657809533547670880361407917737007351573894833094135177749077870427307881667397912823877676127492193130478754030641318372075154999368968167851446605776237988782950433997155055889787074147930366065133008739635566511821693393624246040077438716599236478617347409105827671773361884581912483849152915201369634763834556149085408220274658280191152775572850721449895948203893471097294352474429052739391041800727294109807554416975799915750449587093305455197536208199415814640600098060420159392632784219457171030166738662103792716009048971517942314980771994989602004331027337702759448927882992510164642024315266027432386262123330429183235920884093691551424445021416629526054933087772804479775483387428514381346732129742406758528039520018212051868454363619971251793697405289747276331619864628196163955300610765958867096284449362327025037971491810306432834403702666545718850551126149010782049868271760534860000862534810285084920067025575530348196454427302524834159674083537194943550944456793566277534868172262915624159985818688786525218517124019259812832644698162208853049773202740532363847144680187460650654008119640938916057988991582494405490002643207896736039840619654103563354347380692768822812622050421774399880736231440937584285061018574473350563189813259637010737092763969032691774200292071045813801543955695325014706262734257264134637600150753621568716271688293529885099812858798450125723126637449377823146143796808490214694768410616563196691907849793058477983862345169632537294698616765471526847752199806958149968490884359234178132129357727628928777757861409147807414370672861979829422725046706574279360168497477068247576181073102159372230768434354679066181393402089021445368186017266950578531074429587772127865064966924384349365325857138956799758959159730494395936750344165800667220637042200270219792405486990241461765543634833848976468564061535718472845629642142918108527853228083338012515876916624674393204214301771807842979307313052091518312953372799167870126951792069702301918027656044775443064079538311857594386382364347817714308087238385137612509425607385903241487809404386643994496748768912953955183274422888502117969426283066818842088136964783264332116013858080018725103418860218878624230110924551882964672580916548005954343622661672993373202493119648250059293199408579052821935661554198625179409797798413463089359339252881511171972880688564598731680419238318012016284415960064578620829363402883885121491655964497874868958202391918042999580134337577285197930315609292062337614659917242458568105626480242248697204292747341302400632506498997938210655892203486624955694215027164633285768201071314715282913112224767773845333737429720120213424375169645876639641133629450632962466106351670312272083049433158346050070179640137163170066111691265326975237141136316800615967250773960892162621141267771920786072958044816319517663280638085354056271535728465301014066504583553068103547091531306537229884695129557277051042396859362867861264163344149507453672161710322044543327715814361539585292710072135569473342376175972005760627296200367377090243736911467406979486221997983896580338856288599130439033505306193698577645864376680201934381834127213096388139435687407393436731707827331769741057569971258524739351388205410980479567912424715946915689080751459356512960262418884064254391084104068488203984070010675311200834780990080056076682618704484610363735335379482827298707336688729077501163155864385329511043541444528088817420034749983172611326496254063431143976006992821586846059034338318481569513680993456635816558123618967386482945013653628601916183894293293560114106127981015283260500037041422544261283036066068338594875949327955258175572614334932885803190750108861206551189123062279692876137137152748965784324603246268287302966500339812194665471759092937549307223874394005105657698936964385806427753176001095151172514730052991947283764508275612067276808560403071994453621229104797188183395889987349562032554866815950142957791739144658552626148113097775744180026255466044234499349523924055686883739272390460700392677752492419120103649230649876373617084074018422551205761523782930587488271459685043375904914804385096628257253740552308734197364927893453852007553500261700354292785572441254466239219692347240722028653493047012863187501710331709124875061845909700455348400134960333150201628260235999607834024788879437123676182912391051523909271785296167152979600695622623291813507444036507896021098254265696866216032945498538677738759750316197338370782943666819345588935593643423127199813472710492833306461102060936531851807210667380310861866396582757780364942082356299746006176128215034200365574686609640743838137860510176156709642258346551061033272263036114051151431487893392632506779944897686046353117400917340674828501102801058721930954931148273875623997434685932580439890565855088332978980331076643045348352995652965521904596206822227754456639938196240648586928352334396436776892693888868993435921202353808487323346216875136835084596990011254387284950960851930361960994481332048655851089299571699634897603433743130035600637138704731605944226117586122796771812309918141905571024684126459547734005415462629785027920124073981873169368526842286884961436103975389009783933334928265720973831092726940247486907024856651974840086290863040751367938294625255136554222302784632737905403934475842952385316212380685335782207499485079815318908186841249684142551145747174480801100997706050672407721662758319036555799014041304232280591657476343538353928061559993397175869471680428293817448106486271050198193258631008126804356429594892153742331677024823134322522559506204249280542167087104068351977748751433225773756069451524087934715223983813415244930780520913983727313203050626930828418433784567475763768038216247595389594390544606022356241480979446914521749567770574936562584945989069541407988084363351571955840717795591487810359641721261422020725991633936071255197485871187451824723234414707353975916298101721405782856883610029772900361532499916139054532443011068984058160024074789207068171997011769921643162755053312360205892364885537478190020888782875554766374782070926164150644756454914270127538169559549581241804109070379406673311199174689756476617913655779328234299028307650386502763967046857291548203261347331509583955335021586574538951978642687049647845522426905040313156585059810165992584178554271368205480502563241269201818889179592625456274026060075817344705807975072140654256656720294913250657702962239217785842655953967466621007755963959088457030586107945127096959200588734011098129975219462603355287514812286022529165118279971086424943487198738213809258369037564785181681551864181299000947524337739931844043829783230914955686199610730704172029165182610675825877065818855964055625169166334163765885307692498529074275055282865906970401108736731183343153582671091871352499006301412104585797486783302241660433569109255345316034774327959457817052014332616659421912783829251162332721214608464871999803593502645924670530895848190686066437075156173253183249875391822980175658079371068375375605908805043872004743112832420012523992266244908611213132466741803565808353871458067646862582441422578517295066201382666428110647557927092410881253333824811013190583156621032713369956568031966414289250248695274194328090081713191306966126640116244986464322371027948151657300266356354054443880511989452472582907086377486079031055365198123343401962832384314976953126876415082959799848208403964931098182155585651781012773691622111317663295128328099522034536313961482745592853165566217455181369713842201071110157673379483264196773510823620925426145282589887572762301746091369202427116975110371098641693640346346315577898559467909939436072740652606650471656945463062806260741675529130664189292498538339611070266627787637952266694439112795691563971298706437776017261643405507926599184243163848149597749364443477424732226060240467366910107899381851977726912214219016035729628293005228685761861664145502438027443864040721442052022154686869552502500846761857466702138522727900754750782367025547761933152540251541268544228420609411054652256946010011104173196629734227763374096867349506186007532042722636241430733192151719017730620322331515512011661836268890745817407986623249626423919332488905726655303017676885363442540571270625603180282551894877809824800191447731158058460195736883470697533136065592758623917984220911263121471385017236091349420468391084856062822498565907590182820330625421812771604418290580481657182344256733056967013508403029776211689243825431301441052426480245635697246579684432982697126350735261843823562918384049242876916653782152741158645730498571571514998881816933932208964883761218111898182131928585869396240228903087625995936000942674107513698191463954533073762074610310746033535974766811704904259973603788495027938058837106636459673563762103298889508840642629404108597227216147585050224251795913980018302169085525983461734369899167354116110397784495715110284732686204335666539522649492194313476033509212163645544134427376208585809152870329016613199224475771763605985598478408406862746702729350834588298649132923733908658307440923356672320639984756543738445005083913601691331455665149212908021754406272470696938626291754559371031591652870534781149638418321663297728516774121582751470822814476818833138183256793558091307306639499520191078098873266392979802572913657388291494348964865127281183136343793186454736512988842853147327818322396441437592704967725334808504890037191445981285683930409092536644509595596128966397193207119628332682538296813654374252113719560931785174607663914500439895881214795342271821662795570801526513273957345046736012210874542472846740976003596087124766882864116678520333741789015943086830014283045219161739521096843561183922434362863478019557787173927479806010817073084714863828755188412359924181126796262708446462429806437646587791471577664320242369862068610911181637884993658945865174893306432590434911083933425268448975352912917872080983590579579211277252062882316429556159785707356740870945163086480907120785868364810011491954218495003960547001351153139395071026024141189717511415472210556742066452080906173527647353678391802986263723034682747357064766581570287425512068619691148666784519342511969594480587981443038974804471685362314728496837650129601516936906543679770561546821942515439594892635354500520408920141337677284502939138144307165855496719373609244381304252956794140193562839168742452882859875265491318616424752654472229094117627504708566482627272222787621672932628899162579839886200909874077554700573204948519016320666971018137246371766774009163345501176304480015540257715799211403978050962378034275399966051757516692676406125187813252297959148706874171186832598112025088694415432688146289823181722088354710627725679970345218232309843125456005843735738622564470892244762024564958122541236832805253146428999656057371164606285142464036658555722508153879057186391938110202424963566088789344778528867943125700928139178411091842738618605766079975691633163084210691576497927839389815511646339641080927319158486943377343283894667051288548576855957932582943559412823072754070947806306965375926059518315924559721609122973122423334118028286328876381886401757619761191219803847674123122042191560309030719662168448132917379800270008299351486960661063773808425513778461673037809589398341078940849721659443599645939875394881048711927528091188850347150909524347150433877815618254959573697067806702290871355758655240517689936956640762425052351925804023903003297298143747442841980100771221375782653653490895651135574314345402975943508572364312617695278973483960775461929514500624757627739442472165630312602004969333041499719972054640451000273694936250268597268942056690946592625940163861878120962072022389850054748147357822742318487897219261262406864521499653740473599847792021059968643018875676177198804085582380811741750425930899650304530535723743193316409688603867363851098619741546413547454529287445929907921604648639325664679875329220367661186466705613607271077945522856612943824507109363371494545425570571190236537094887699390739416212404075341852943850273160343782324825736238339856762673491538403486273772228489377716814677259010147645091536600006737763110089053985841536720117624876859157403781970154428752810521114697663271381881374376115191221995784721121095263386563340120346688900320081991168940936159975971287866749966406210034067004603583128889194887814000806477131051324442266814672596860663123311192412475643922783553255902956281096560099007354081349707369433344538727606228732636486091523713191483002775441585683481462354938712959502260423707324120066327156645091956879076245841127292856088404775393572832956260966672917492424845817343947060086353664972665836703094766817383998603856992391502714913360535576795927073479019614217833786870256651765138099059872651078377954216704470431140880106577586675015670914303498306981662644241069868858864373697694934644183867675622755931928066063340692451610294971619513612851741173468969129039696415694516999229723255053086064791092799186465210737434322144295873978806544139861161597418045745091914072920890527027424038284872393266991193029260312884047341121316331895878000956534724653203834574220878803923406522106838515824014438327047479049009349803006242003009639217497866426354616777100394046179238877298300797713468944034924063002615745954501114220096347493560745242808267250995456950697097711459156605106157908595849084372557329853825507337526955827746138988548867100208172447629428506901037737081424090899248720889324435154166483692703772865163875418083855593016254892768414011789721239843220672016215028408181827803044922243617788212442563332589092053145533285240795930862361551497434648496072932200729469819724897365501413193839278045172494957474262391629511480843838483184569077567451864929507622975563210900058609444344028601223683943425388376491208349175867161041415896477876250385312060576826921090452557620637341670599928613057874238085953618251920170083315228103657558384349496746292681564661974667584780961330935308467303763034264935821805002321188067842211942455164071631062887351752827142619230155517385183974690818351951642896243971357302234823819364022054873950205216543785027571871183498377634564828012279432103208059126096559920269789859763019680735599262488517431682211446804170578560317131265225336095969941484438406637092808912434792245980616949613445565912194824136914778310585394358968189756934119503195870197894138238774512633472112712491504982726988294809761065692160045198491975841425022680004620427919001194215123354030492969407064902293402024286131114338452522291996003530181877812595930361705663294224811691505747942574491076803589878188405652016517820575745246161416919826520711279294056504469201028278612663488437740190157842113710872921736401809003828033312985687467987847337074086511059085045190517135463681619234187429788180340538317566722612964168045471158318325183138189137411213391089048130579596921701847886356272514953498286163077991135696889963932633338254643366721454054475956134571147848924168041778748706622316477850210726051324737173187623727793676270458706861205152955294233491874203581125384185966083002171224695009012299172929967569724300564525984222050291623845301388379102788474783891130758697676324679769774427119924181432540104268421154834720858743943860866229324594115506700395277878011530708528293777135514232603960391911981168222762424611899103793472797096648192163655006726022550785990585677386435040738719752227553674307443260096107869174274171672133765280159435450544261961045504365850011507077484815602723659886305193477781493794456694524806843336763420305630229842833309539951802596299618426569510128140283836478978824971102247950508976230981831677504673576546075798750089526343396218048916948669840423405713504597362859575634100536203516651229916262232317528899711718521650920789668879995682170525868256888621250318885736574511608005856666055690556626489083580338550615426343849420810825351057830064908555866880876744844837513843065527696032815880274998580121702823337036233417103721825651925710493437826778010905331400267584210650678060655801340649972963786120038552614068841877076569850110744414192995476477678005006590015733819277573315852817165476385855499639307523568496132699358481304574246104346499381476856982668781025121983614190139223322630609184278257024354421568627772832919305356487112561800907252657241216111189399491649605695762177496677479209627040830224537809061197622042235941748798235182591064785972800960113260054715486746130811982236189648881230766210816797473921057044501453139966184594596061277440614322621029211007865883351644750535380691546266389006162741579907759570592527841185449669170237462823332584695252124709249027543451700854069012939320821897402886530089423841724554626533449140669090788188870748720846097417171092912283338671130177462365227633609557761292739637630199171561425040228187483599969909034452749100620059535135560827877485196585974811202057278970934436271202169059954746148801267236257296079972739486371733474748847906879364184892674343686400765844126320408596900496900346970432456859719695438396024274113411474479079098137766081826804350751192701237172933704411508753382450265239514922750581713797317887016008894771412380290903355332637291118230870980717474880692978289109609260619877193392836687532387676209507662150863309934645388432099712495753258223718696711625439963059555949898481034253665970384722138374287816987755120963698642691142353203507467943887920956251450078344586609438222703922023378311092597020823574342898045559807457990823188943061741522286866464608168860719564916706697361260110674063849469314493052383204859759472917717109783313479697035451095138167239718339168341415438478058389049616389442255433271238192137955694644137632652290332869860571483400433975466084893355583923963850786232566229487809010341686717651376293599312433757955051024559688314089249042912321756843212182373794152551833760189421090734217935607664902310365493092928684429165204674129343569886809874550194430235795438022219142583631333909924236362053673736785134932672800204178485571977284227751154254688942795768092754804414033442179051545280410336985310620355300644634010463760350906128640963656730004822648092643285903251326642727749175909317236067129419764627986198925035768977650477993286411583949214989961252473847774937650356115869105863505422951866800760007396072716845830845488598386569300824016343309018755384401488394940562053501077448397614869423220935845583642311011512724062205395277003604989747267215781141471080347232669662003019052579137252198832026911941244889215405144569013166011399560638022874918588215565131353298264416101519876632674307291307063357128831248527370439207285167627389254391790071917035169899797727205994215317236082039279093132778708267911089096726690313554181271397209408197476299848270274944046132930937461834599079143109917408257560952678649739038868087204137500944604005842008975927744582091172390303193249529692576278913859456497556820412023603045465933040531172467553618409909552573315975511822576880725086678187218728841394479066571955647908977911877503893215271742952880432131918975690756302887308341042490493287440064743554500064176237514447331999700328345191086694665174536170641067751711979782787326406814130433239712728761367865201408028112278128539218075239589069421214310232350147521911715070892643089050499555315142730872941118903948406635961924420232240333171084096169035150526733982311209252532723469125300889299256528427645313117488082885920514621104257383138497313056127557129717570602616157320844857912615628395967138592882719678588154706246051184455085174727823685085015344462699033470233939842112325424316536525103947551438340669617822140474197703284768799135488904354621015439309231120893388499954525955407750995763851420737450016385638308083033493847595048305129321860097594249787536004504502284730291663443896468559367568850163571183864104062051658892055705317751997206358051571533115755653791372136543930119882947417435227748072098908745315316899635544057962390323139982360295296873003018656016599560402792732638051837015863187961417415409788038233436075668589083842953944443600606636434918427889076800337187120517209980565883840861730529568458965633236109840804879257249236191796743514146280030195350537490126191846138589093110282039903943158004427661586408734448836725186758681598371905695759092921911511820818912196897006055226417356179334282090616960716426940677612250212453514106523563549058074514505238699810139693778311160747841545892582144720087075773378658650673484977510555985440432812034115829365335922581078541690433269970695274386999091608977428759953961582027148738174512116494405795416999363834541616457975594907766565288500338494921266087603564080855641480652651951885540275110826673266023798903926496825770024908840925384254395842989990681557832990402440932623346893537380628218287335479271206366335629258319082116677900302104040449303308356740918372057369351908740675706973739949925263414494200206158833179851541666713035714841399605850907770894012890793546860805489914838820319050272442217947448977353859718777600405589988790653003617675988538500091328840546936836507264886742871355731145718033638358937516693461840344981547812690894071071426431417715238697908017034328990491837711128794106383461067996340647533835260569947017186483461757828620815511878246393018097174826311037912237613755627863149581292339905892381807126018139531849282279064217924202974243480049070853626882745482592623208272209909652972209620978226170419662754855367892802607692439301309420837126758097869121451165387676715196895864999938777663874096772895959566528854597338025384534919844867436652687384215614367123531598967957514292127950082864304754812533519941806987357995900865031619211642081856877063686524590739049143425624835557546198665974314379200367369035801214139777389512301539725777684407188784773289891367279308601685463749163528617930730807396009623131223704561566889094200127692485913101730376047355600617392703866248874760641648740571260774081382058493134380552828442766660252838967120051886022209597878645323061478710790124362036400476549415046369050327603583415317417913674984633062314771708937318920102822524772069529936962382995414726307076089484255017094565445013061185234326250827257994141569321364759714413172512688467609205956034509672347445917722604931913129602446763530024563389191169651096598052750143557949307125270719605360564547236899143282913233619965145818798690295370292790194712452118106598120176068885497925799306946957899450027215936674869521619391963787981203661528554604458043656654125527776895196339187283848507927158809804703060832228147645738782409273688736704699260997707614147600775667627640231392621510824129343142388939911348603767925433395613718989272076166483415099334526974732834010709591112636711841533574539894251042048924488261918010079185982914718645668477501689552944879928655073818585268998643804021677517040142171026560100475599475981968633465007958309526691959673950481741866027845491875179404527702725391610877096253633266351178454971903746147644648025648939778991148476389271245608600505148647659233801112108611482447901574978803566586219552180323859010897815942885941751106418928204765325768445788118420019804799325045974660672485501790779683529910097505527293892997862530459270301470375879056675720007601708943930737457150389930873770614483917725318183479804725604994345392408087444127847635357576481196431045598088343048426506374114965587888134334961921413828616091469305976910016944064277826927473528268447081818649475278249091027142675796754882084294948482990218350979294528745693182738166143682550979881622655430266207678919425547435938755242257349281686587917379476540086751666640799522017130939881283287040307629530134571665510610168458677031693324193435804876467991491329845140681550829384086592026749341849308203181172861190068235548009595285154316975719028224380013953668014828777128191435699639398694503515265184850958334416003695745033359720803785147765349835142645522618808484556184265286792166123705520101445965542096665714584051935442471698013454453903943332221670091903255571117779214551788570140802884627768363828464230539130330976420977405479100171001639820272388797354483604862623155622110457528400048264180007111654836368849785111455124767994787606322684594537401642468414486711213456408727528148063712103003783829767642168238516535580077333898543132861181933170665042481412380171950806020689684320359496978817177349987483483100387386736562489285596555679386432488897337540327921022193629140041026673225364677174998321831457215457173638577037866929576162161909619237215908821098902715899487232957905699952854179890267783099219155301669847790149952544127721451232184104531996674272052397331195682199771076689738039759366965193343146862027631101863735189224672087173729880972022125235951796890181855728601147048555537654976739903683542533824740347739617406331501329473258245182116698299328560622779997738721620147777187548778253697388815321791339618555311610324494132352496290547412588753700292986952249804414433208589172531836239145963330689461915133844237130123916923133891904921740594946271434602867858587351071068953638903278963518914800127342248666548480061589543551795948212599967625506595743930703582452426863181989848750665185643372097104976779585533316483165781206573487726876820030181156541207200970066700793435756660007018381172300503594505018586397233514365669994980425296193923052910006374199309731459738335912881770970900178423354277350135892204987328566240810546216071863095315486789531653890366072185220069833337227595616503122417986012678821517909918420036123640655683784455094900558559224406254260916838415209167084316227507586159749022182569920968428666113705599819471306518016948789836006558823413610338744653514605180457618898141686445006795854948985961200582679989080793253769123317030721814389489544286961972459350505324428188985531888001768395083206382882096610516577860073318265944117945867212753010221650213793851939016266941880962085306422777487037725369879732471326617799391057848198499907959689488846840499780313181007299761569611815380164610206420448459078670192675560219515097278036811851074049526614860238421867104972924495689173234486391093492782016577819676781629537947641136208255660761680100914298770548569456668588381785964747257885798558238058749661676097733186741228556103655151546234607322759097709710600235056926733963974557793800767509751935251123012471197040181422180891510116140872382610703893833529178589647287779757789977510238627240323724025513856408933607483708147703181752873895929558376913758116831083038745094604780922695921593223582556492258424563673031812462312767312206947474267254897004636281758838132554981843701048786015828750605797686269366998732853348401071004613355133625933723004571494084615112764465094941649664773635746874969510997516217796926280831318332223382592125965089305507145549302834033010543440631647970760683674147478958946538942421994233940770560568965178437880493787881122105853564269712048056913407317124257603725851618190501798317118369218977336388506245283870001486600850883532319231083733111555146980440834406843228393793718906783860535781364382483018518429796328500342213521796050333038497135918127042830960268329244328433942121105431214329256818496189320630964959149560517828235878136051263312005588130844641560955755062308277252836618178314803516980382048213115418259746094315196273369795495806942480421325028892173238065291936612178404823972661421703187702664512313856311036070112612063201015154518328107880803997431981772275857859279451007032790091445942652772338411872941770556533019832030295879577437779360185855977505466692222025074822879296132763189933905710119786040534358837593644119010245295802539428653165842550285287524877712625419007862928298776004584180433636869945901672931663354152816027030931883730345042075506602810508218878332660509587849271513224486151479441868503433099458050710987431505932043268384513500638603671786049303799071207326909804572746577950817697869543687266251400117647973493846465849232206085427319816082848943706199703708891380871288991648880188085794398601247911625545106168134664442720588749072000479928764982097749867654453560681754980168958987238512835748095363220545778165974158626045924671686675877919960894563585522639973694592717002570367840250847553533347757465522673382037579962818988643633074270833316351858966529228239444292556003723029126634342313858503308292171548013038816044733555905454786330191142043603494086770248842169549278045569429700948043004040020266617997917275647275205665635858851377558522218652834015661441439593294840000353448810782387345025078045968147327185771355512901663181065591303629612387209848591896062756610203169817327171308483493277159541096962015393240233353885590651498725169422989431495181373014454152005704891881786727647683147774932792011969216173076748290959463381008365090769220065622364181910672663708363669395521496369581495132064838500262928280760701237432559676161642441979879702300777009648867090184138310102733688341637716262083249348652817983638489742258910793224967099258761989812033456792520642748620300090359420521874895162793880440233207080937668528936394715634748404812577080134221157442401061837586790332822609039546913020656971175657675781564186385208608866061534544377726332293854539427954646677872460316869897536947061860970628501932481457724897788349359928759792064370668190664712419997285316069826933533133842656783192814221337437405128032327886159244113695899113045234867661160579159324311824878350349557874364199814661784211865935691669422660433136872201666585620899957856719767790042157278763094339881873893825376478050977144892947686905395145605544636419974358267599001199910303368678847808432401292729262997336298208791742850692566147230372399763822426617677861620103111103007986945606156440870199218834732904279708892224195232682968301886963111226242459046003808316018705390089153632309690511845756540018661915359792215795470369864609323931775209280465754461889553798474437101750368025150044845520765401490214169262542186567837602440010587213302654757859844199306238016797822991165799212960584405319697813302377802342306326252883101214407045158868943414077335403724033986134989495667205681954333117782546448320645296718319724026767469657158149093578416226674061878276611767268269602302359492301179900701712628192637750947420733185585044368479871532072349803560053631442818521567370301902900196487456907549766599681467169183038843365847020451226996930215597721835303157130921982970019439514934945978901710177338039959201979800405203305234719615769525698729086950406544168941870889733545274739539378455846973043078922826685033744800308167745760616522165174524114957639890505232150318410101079929769357574032065996811965862364466077696985818483324763392925370665526963501199903151351783094021149696370557386753119237862810025132628355973741230232566426114859443443262040319562720663898614057628703977427599104241841423187009719783640797148821420468576453541638909183293321923684971259801252864748275102616330749306742623516123625778825683887044353925864035450199767525226636559432981435426967669869676192549807686321765676074329740000210187906565637210653467201893110470334123286401782661531686642535842435339189639673125662322645912542043128545963746817110005734279052358673301940750570438800148460520917309321543199950736176602529177821526818995858421588189961720640980650502338810028407827942995927785464729958085511119618938357948855052725408575390317025406089123300616022720176408402234644505178813029013679128392493161780504173723606761862770028891395289819925971213921463232093205380100441969348022993760071739263050017503334522293737496341672964828840896528272312988391369078701924533179573989327007148767775771771623381595337222167194439180281530843903466658995786097411230346903205429635515012164857180701609202083419871657334426755943702421388527898177553333729754392697691455692202875576812225457386063830998528985473164474686983403985310830334228735442255633731854900622768446238372471620889548337206903963065649576814566930663104890622393604071193271164745783096535396492927371180212396945825444076953353302510326748213883919148878780281860616013855470893543976025108156965384740645881597459572495629628929007617046427914338236187307111359584807781682962886491604612266044911732909001465051734359814761065865535099302106510323607384652561698358400677945576224287121499174908787349685851930609167257568748594704656655822610221783808909220455366866068812794339093369406219260263228045693382936002065950305707452592720412258558385186182471201599254752484588916351073363916784729818469152182029376687596653761555565635635547349435623334992848368547411920149937090631625959519335052372015097773089929111443196547121175184773015877124700647430587270189839269341679586518014591386028603760870329956559987412927489384483747690835061877452394046322431374026479908856227362437328674642374334453779369721237950411693113541485129813476447219357152294272455419323766607033996811142365740916765561104535114495070826704856672034735303118130266810933911159494780587357002717774365380369504644325551857306880498376856181374071414522710453715970989147338737164118349572251727250491950438047521547759205938752380857601923767405103532934771850189762136344239531534326368789059457358879120539385231901931947902728276955979117400205035719252307497151783472819179000180680759273988090485534667135069503876943865024279823466888934269289768681604313616452830832299333010752443911443766882108315635553465876706896103946808918560658892963372247785012696923353973890230732957980590166667864780488530313243717035899845350627438828069448695851714091848922468905411935203276498786216958880616311777599586303993696462155331981053009965547522339793125940760484917690869842958364246412181747385425381331357233463435562620666396297848635754504319204211965169954101805777176370300850081651053104330236093344070422580928041824272243767456404535150668662800642893668413437563334366361698184864076767454530332191454558268651812792753807803902286151307843412613488091161789051903993338385777128575576629463975993677996977200081396613274994179626363519431644693078243374302847065239711161722241144056938586022346388690729062567890868210793011761252895739210786544272534408625471589436940248310158121891972544952299613147802298960998533707036210287331999015824484486118904532179120706927606354792138939243534291291044797959387569878093458192165903151373148248241832970814132978992039308628253070173658629598902527638099250960920698256487614088756651451234553760778679951137202551059495516374087503832280443707275173109284091638205868304493708490400472386507325260557014535310409725919035515175363584504218613203575806446575799855681199639436865881358813663205959157344451812569633356564306734918384414484060045758592951453991830366435987855743792182612012941400261772224110816043268633272782911886109382598851022733495476279654394594955038847604475741773319812585376474418579413204075875351602177589350188127148673538827856256503175381134790931236836279471585325146204142936029394529619608040315052432428760018945169687251203197008851072218202512760650883166505614550277913014840989384687740916294512321643181802998637282347699745466285929082935437603833048941680848207466571832199087785889187283425508359433485466366278366674335954460120119067918128382625323372867433043848160845200002110472497891357063973674372841657448457291547195188713581691049378254258102250758972932114085872464312246020592239322373524127970899117152160699621555585342029774599624977579076020346111611947550635005238203899757569425194869327080525670390476531373236744524503205493843346495475924455506971520472056300811848417041619714301555434242359023962616791498689342566773448790516946834845464849756200490440423438535631505136929246717269402658155852857217530853194042702730471588380635661862277136156191688128610592837232560914433667393761679443695507166878812270906399428514763420922266563060807207500277449277715031208230175688659825431911341688325892102178938986463504850010263748130009257702325455350506120543426436329649923454732435141261151650422224776203244189633636979669836303448691283653481860117280908312639258712676772766935575044688688019677739064094577663216542751344355568758146351858508297482014503622138489049976074566737718868500484876959350467886990057077375565475054312125444016092353120390354465886056954177362478742709818240939291523721810289304567468241094776124061299338322922380348868078047680802884384236963082945023458055507969334074192650469746634004806757773888190327745103617819174583696749530758384585520654896292945960594028493407506572147371308033816183135253002261225919745549759830728054728061841164558056907091269803583208644917413980383938020746297762638417471480665403184197826660398733902520528099520411682186390446546659722813774771609156271525569986364569882703830756395010314788987348034424836682229950664543250638181715601731911846267509667596382274735424736300516341705395693022712089090510005861623052369785286041933679339876745262962572162259016733976712262666587153387243261335813709981597802313804089171902454941608557862926067874839417002209982335041387965498211697297691482949527002022834051489835920762771052469883731762228240090140223661890207660168073650763822518585225170634771717752263472102453653160434749143375411381355786684356997940603089428736455905059601213363033791001857347434136050795868474079060470217476518457900696499789334211400476182605748642549281593324032778555346000600452354378113795532237431973811708616637091429340419257929887954983547687562138980904434286475110580837012918589857039227384178880973423915949901746619413173894384952791551922339080829839966705194902717837670138436303620280531791807382853229456748686238641216959142143148309473580468634642260800537481901937973346178413409647891399376679062389011050459419887823651198650273909285164235051659820363904890286363044865263566759052422473017391591396280678808124072935173913099467844213495503070763820580484215875513275360526016167864721384701782197978781735641965789078053090053444391018911295702796668743703506381804454643937138421064434067653865031232407692738554722239328488473858830251771686051453863118013692617999454498202927427870189991003672172210059969549430267326750401892330083629968923662827335065952748319227293549914683917791975817640796847369021801653279413538359699792159094790780578154320293696969774206070106445944854354265812328247006799385599322762313852851238561499020489803479670832247109866581748273679491235540405145182159776857120440791960239012125032403750788267009860599803821558389965952375680112443114590585305550613306977505709395556526083951903840526186690031712288663424156561485717547696127038959884010335735040542011561177201221452757571285097871520101588139861336954881822151402870372846911141226387409656174410032840113361573467702023500107830442014273615928040589181341084421027585523169664098235387495292352350819868948467163608448395126847859930885200628617494449689735815164749462787607480714494070931936464842298816070935519690761621839051416617416177354088349870848160526818798055668329409975095455507163610995794696541332842344340047945229268746419945016279456245477078961845210125540521469569802674228158649559749490206404800298031282581848484858691675526709172741066580238462101927944860828370010322143283967579678335855891263568382679209252310821691647593604888770437304602189895353898969555965042796174721400369958512846199859228425101879455142987989610195873992568106266978268587331576895928014953798575318050340707879464328531240436631242685187786663406141359025568618868532572921917863882627104826032882246213500041703363882419775421334695034497295564089235011788572554491414072793323589752177396264619546433531074672571122492018912325866296724107771860179805191041874156336162001038849737615833323034674724388530791989999267203412544451575685740073736651370796754259864920555752681921395953854677224113173039511287657694824395215864488680039297418433439097669861873070600486883495342787501872977463193683735193282589956777985127800312804076757391545837565728637565916846553142186208486748600490307035001380690487433982141791253342020629418695449284912120943546820466475640729864888606946086487573832591696149237326195622709194464991701219321987442435595264978540462200453091806833343088939736822211498081696078222673777031807450101946345986290388888369934747459038451089445339528913089932743691068597285804085451836018335265941299950556554147676336990107440554050570085871271957409303905434803402237202113865385257688312884628576163984935883852981791426809240969007467657582736020724974553231049353690897226793364119928416717183821073134430003116859739721763277496725981370920119857660580897770453390945389675695001265765836608062525646053016410054719927366598504542975841315963917171105251523327731219703485201586874344821613569754609705731540904069172575967500594041023998221057283469347640998256589611650799937144821762234438611063088924730396828832680036294117509174670512663685471722190976048466046798125412954342849180764868566548878852905594098877849585768303254760217177989534712453015035271817807460239855536700181642761070322870868832014331143966704327793734714721730849642271296573749838886406772846472170909144167914624537452736346551121321528290141867852249314209644238657779633381447405162925306537890185046280912208153233132339879924167794197334727617265632260488489916570629973076768930002853425957353119625298328310771578325380719423669354950831004415176371247925592782384774888465340632401012679019129441852166939743776756934618672631855714470246895326132034784672057319850829972373654501024283857784420774009008194838719010938511583760230550526970629249170140372620545744765969524030682498315601690184359496101906380055180579972402335740676463923725998259141005073059371202395894785851163282824959345401861534219694365627932338033524194197202856618307806611789069798206053420314260252245563018107715820239801760774923386501398011930992254728313874412158757490098239428533153222924443020277310283347689673937727280116609012749349297235657885452272274874125647614045733748155154956761834722031914933335726573284896941133733369647280263271724257278837809151526353811679522017758267234507167984787449353180051519887620388686653241130024833064903672300670391507643719595059088819106741982597753481356741644520943531970503254159792248528090151169589631835108221721006729712751004668769505388714421795142956676261360844072492467729398488367483219362324127355795760541733440140381381210590228206264544704717050782133181818262430331654315124757698620229083885469871346533297444891412636889190879746161168116762584553567554656198769625658910285766783001949729692312132697104366189508431323657031092887491160497798876222652711480929300931300029525625408812373586289220828540551495488219682003434112950872596429766583302670866025223385993071615756394488479370905731376869419827438338859474144902571945621129623049671251982807209868944069967605967050426245614214546054624252880809728133142718865151156675627933119657791460637547906772747552878761460910678522139504588381453079754629326200177364584224280373546935433079617199556224251417165432536919777015776504818159190559138898880226903925462475550248927787708071178404572122675778714019994122563136066605199218010791516477578783045760509095988262495179208310320197529577376797890481273805611728646953765785814932409365497609434243125445007684167055783554702531848757692006239980707072055162517593084655965102128685257969349796985588850020751007664758084855798872625962949067328041913732351276182748663917186896862724224808624252882636068204888549937497328351887149243401862097350294618069603836369993266534006989998658651444360517677545737885787358385950323538598557280073895645265977734507483799099792138465533623635856996270762190555072047754184690503457960863594271920028998649894452540351777059779213014090003160761120944941292280975116734124799460789072222727133861067649030199461695432900497355480738957940492103438044483971284495657219058724525883982086631973968911181309622432647976777238836672004861671787945583602844580476247462399051016859559947254788386990437751443032271181663792702964895209781249721741563593477639409595962666372689049086788445144353414492102275663255818445323829097796651392161824728637936392841913777829085609298678493299259455657978935014025804165126057566263989097303818933733924650730466893678089000061728086197461048993346502808094991817821235792455853613307135829140470986000296366076067993749796096633384678002436590851404699757300611615920822187912461604460228946243440229235701250098539945532412230806996620128400452827491188004207167369495309437314461474381596326819865363802565587029129742463101999673714271919737012250239607336000731429344032538156958271868758538379194095050875434481159935232335508833740805883687979221242184341362591735094167236945061387335868657089676772573742496268709463678623243825224852816007736672179906099748177628898872727936846929094115535692186600185704316893892980655329307457984655397467029838805819968564523141271911030591248794706585339879355601290619509116068107085197413887226716536754886048170903481408807579055484562274719913908589677694123067677393271950202176426000987073152927082038070165204822405603625274131569694735815502954061518757433832714978552823459008899598708293048168262197521354708579237854521583658228219221377423372787094087409762410687894095214133030992777530950208127948737073303894297118251629824593703066012198984729595104128004690735488463654826899359962962342715751263037094912284236981276845353347649136807659100031209655773012643838383005829803148578699321555522659634648734095302675377492806664125511740420834511280761204567132491167414272688551144080985146280459951178124615730511868476061083194820236500979548627230025338125068870006331988696031785088656638608513780834127378502181738578241825617767344282464806824294165506697934480691268414745533277552484218431793300127261382615944340341210068447887119456412376789006567440364914950079959371332895767908860032711137809944580055014290805054308595054286521187439240600588065926835970734991032999503175461455398452900814932422937625565292411883685412773077531953844021432417830163603660907889719391206587176670372706998546324470665782464168226813613804631950251418652800210952069527918687994152892887957468520226868308438458755394548724213567720679019209297793746517206439773618750890263953692525182438261906774371387604773444738887258641936834301445777263633898433151642768575647321156538383918301980599370725717147284586945708664077605273057438098426046330476792098231781955959958239092564972194131271808110417216486060741839727276687648757050527060484837210966363814835868679326385211623826563369085019783858018924028888611637115913489175653887389188969282742694150640566449360716350583525794322733716531407831451435412566968532872067025596828743746209765743227194695373738071490027924386189145484465142461086727802282164723839278076648956170180660290458807267620194047476312358773538401107274314626503383903928946202369831615191363918346602267996612383285802909585464087731956166945840323795837058435181039898675566674515050719160981391097282257832974240111342732542267190121385160590899482855592410416148069235680110451954518745398160396358130698540997556995467953786137095457203944282342082456943208567796687897944961552319898281696587489512989195334350897125070174317691994186346564021372401159429856857800905548210007034713289413065866511315967778210751942748240592764837584026065733309013728967963343577519292243869602540291738095940291813556894436925365373237745949036843443655509690534918649751562669495494818531495678919957890508365427525041597444057868539314767777402921936677790601753771456163308296819387723273868212310986032339401743714186573664676010065392607181102840554452032286598415093237554855867649657680638679076580998469781602512926220943853482134858905225788537845593877727712349757030506404778206451814862647859563593422562077410430297558265035188439077596227500645617449224266117907275526475860390883645715934165029119235980733245411571813034995122502580260780510010911237140434880069960028433813513219651466066837794983100479896704083556837721347988280950471607211626611516135338967291295148913806522742060340660910757258907084013692257138237853040659459064333758216884795656920483745975718433594746037223418022927181176303849848899839919828121055225347138026198900848766496903786182699038420868290667019218374261309436845257369305813891949276707874009017293893100555197980659906305181627198912554909169359425931883497458731341519028437505505696199870789013787185721509905445872275926690084598695715609823071440104496780590119390355605576244368751005121618816161485345063348544060301602368717060971215551275876208878513656410035630088227938633809739676133551126788060964649620333271216041129866895803489131746548327846369113142277620946363353846636610753932945343972308617461615188948004662851622995955867970593442904891767642917226929274345527099398217731769181215232936660033356671071321411295740169185465054313715831802726056180879746962259286181933218432662910067990151359279705669428930176605061900646692018039106489929706506192534967813663193598853895828411602931393201487937361526356775816787088451927071977037063784939908441151819723741797241492451150846930755608383421532456189763625362024450381358513997094012258054471475326012755827067396901513249547509070798742390623635085831433816279676250984002343741606345334036164596672372127337715558112078300260822852356032535033972324056500734452502923266744017778377870961108811839125371106759243454993003200596550768044291237005667522385527469898645106844423279406154903158425803523493906098929974555255966210433588910551062383155013540635524805350053653245925009872709342747590745771670298330495118867675807306619155100006911052901933336437472834171619146998968907139949160522760473007177868600543239384864454336201004486843985018392137021945290480929560870933970967122315674391447308807153505840079206848008461230396706717638543402426172277554394324643249791971365887003938542762018960184700472161624803636737489591924687442572964958707607424224317621146158238758816456267347247078027788580330686467298144501567458580797864931597262048913971620897358910616290390254532924200312836392403142638412264165422525517216485778125260844879222020166515668657081973582619861405965987901009903352807575956927802117781202507061071073459492708441739444819664856494977399429904864628487460996139904509694138553355089232260390622842917698199389772790070706177636797036729765923223001079945033152261244458261663224638730083566739376576515436962319061170487844531591881532838267724752874754326603515113591593059965734436659654025385237165549569426596481733604470898055044493659200237159944044900206765175674505202457309686752235005051672125943725400630122318099866837467038848422179837356771353932632453493232650324443035389308911317773403218616906894207285857702091872685447941972244578745085843022209285574663642930322953856327410513769752665400444687274828186292620846334683946811341906674841117175223490454180237657494176780239982417245516532419124951801267924975962517216629190019178408321346478999093089100546577717679269350734157062840433233736893512668030915854672314199194749204377904696085425736174008849706529565978072441380103141125515672758023558018308041745665539541604684479910768524763556412232893201908607493743236600139616624722644059639267370427391899038083009043955477472592856839805550256045337465608091865454704897313535721273489415695376046645871565191389825973272166173108584051275537036675685509721288689796500864768502364853075279590773583182524329411384854972630620658541588368202735805588715056701990069776467167190552261433170379408990216447217218823639240479722288310684447504286395067634783704755407774490818677153205699321383222328795182534373685986241922126146358607722406582422560120484088254356434755986883125499385334050893425844096038823166877991314748229457141814764401384889342721248197869493496722353009119169340498103110854381002096727099659136256844697169521657664012385245896359309769881480291993332539379357849431427684610979203986829616478858730305678886912495927219052341379299178581498574724602754191136203244381643268195965548009683940025799617849196316559324777862998797584128465189181031037989958668552110927633509750600867167632044576276821759109769522578377263143605429447893207639363475606068068319614698555813469405419921647393558903450071000522212275543230239418650217401927019455435204847402481533129330152632187630303422817871593721999468027949194456214950526582059561275895329450989302460174461063442663195840184066693424851138506796872166901735184715484843929261995017281030916790234698190539941700237119607797985280868944072105118964866928514288358800826931635392202830430480523874994045707736512927939303798679925973605525729100254396336310900888648509232905589146955222519666014793419638125003569958679482709953373991920869279268219647961680092896907038925899210314533709182627247218929864012961285202171478334612126783553095036064473114414678453981896469311559231497861844030154519278685073258211092782039725426904483711702919548666211289562246687289978317509052618836253186362134527883730368689526964711686904324484119923426722347344302304751749614638744442188560624716295619918720902192762174073691898490871486457596494986137283122636781171512262887218196332723940512624690824455099542031204882990266057290051772488860424291028032846277300443056286492078425900115156384702464564389232582458932128787044274225590547251322004703998611942059528741810698774955317195346760567120516578897664251737718415417947078715180643215889995562061014870804463571041565669544625633317499427000576792005716784534688539491426729388695564933187566586959445676792859999864479307516211295486558091640641683875117676764364123927993924645106425097628139351705627308113751506559920603966790527193593764730959827729668391273891212975768493888604703801404963215704824812454273554793150562028087388076116678634297840471464481826236708219517804942011448069229445857449947637969124658229298192112381787368730280296979744109825288786334921453558245946815886300799685629819549519538513964070665236162606536881115977466977953586957780777430041547849311467968812562571206440305435532226238466280775742985595532689451339590088897789531333482014852033143960282287960019251050154021163928473457983852634508100978265341256681744198447387624137617942926121456698073185379207293654511510287412606288949439479703291568731233604577661462587943674371176137519302771177340148084039076089260546311693811600650220959180981210438928331227348147189411075561794254222561345269247889089990309381626920560790504585769562590759342561547884058892363075386430203371615848007526374120151134279507335310889258443969998831330888087416722804813315991345877968647318366714921373696875177657969048741448304363453001223754786510865825188286245994578876971725012290831972774380510798439803562086670194639150832470247086794250612568682814818221290451128409591434475825302124666421791435943887881402970792136341610079549004072493696195126873569695922208167944125804138104160935888243764997704651376301855396493356693525243671231851325052163041872081187991855049134926003877771526899274043229138963896301488214153021640789542802018051748216064225190791337031667705902359808819404512860913778193048051534743513176673884162642613418447393418640807423370675521039655358371828999075166889903758259308344623797802290675211434649582960062022734308257378964524010530181227547541469894389062042486936437082550830786044004258276611256326772546708843927146524164390591306510376912002638164198862797044640942309078619129974125284705829925424451818548168891263315681850443970256716955211854858376628305221427913833042621659165799949037219976792399288637559765622067706526785034374303747068488230156302036428064141081669864464646598734817705607846710978116981564378878342443039216411758907142682790080126399756440648164511161253509372427477596348700006119553887620506642242765596985283062032672311992794582248581022065208224973761957865496886681991485681206144787544163102348901446111002646550200432292589011114907536975113413340192085853286835881491150563053186941651791348498199002863612392907294377840347700573643804975518922508607107141930892670236034546823840374824531638007186553590552903912424049973928657560013119324614785380350711888876344322174841957376595795771038368100941113061968291201413261863721335525746598449676169180933557053581762496765122333108183310597394432817741873041253547539497479837880034809028080811060143779009995024879347690845364886241674586398006008075668115865233436834443019077076397024636549396109225409158455643241073124326063238741541688705719060148388425108901473939085203696807301316332038865099501999903584253215776717961735391252727270229072123181683628391754596047158703162661420455588095620386436021583868015959356796557426012336137858855030924258083338646374694098142030626165856413368049400612807038814066638516102416153282078118070752929855861241381301019088015934336477891831085233147550714805560063163022747526347875117402773176271901152370785653629017918119746840452338933633697849651591473839755037830874921232773841361908695607346110988746314397543585310256290902864688193211592843950970056774942303296986023073374752323422372924875288150576742248446636548588414689529049558033069430494437625119031210614536746643669926034712756576646097816692732485697535808429324951836922702298394036014532565125062762352202226213702985619859524027446985161345602210290852915487616442487481681063305456068354768555764601138806367540520191822185793112740025305098426978958494130455970913624632850087740504556809936903617875497768904653583294911457794979608756050399912269145563373149136753823747381837286028993933748621243896817485411869411799277734736846809745583082636457982369479779321897667410350188836889842680742296308771088743119469310381239182674191908918091833128171459977574891372301549803753156313229905262721142059247900732309199244148119425810086962199638504666887387483512932887673748740386184461765799367250340952279717118309819077910614329425174720489970142444018783841177410266709950478704390749171761962338701219548981084636332219627717515003249787711565938167452539333137552703479364483058656908765019576117521829188655113871707927896089899380712684040747398011659557534759094047743397141823850187364872520642721786932471803416707823516563526513015169610616689828082074724238139023772923167465054791926118448748831455170321938088750356465518347396555527230603249213702052360320445420496590398368389263333549749225976379683366139676610273278955086886300267573237162765257063463869083861248478920058238530843417192973943444422493440904184013730890522378952857489930737503696367295209000703813144773895823120110640834278867219793627057829584197026693067926200779533808672799194744799831600511030921752504633457613865340507789167484181116228152979956473371279536293307683570532014656579880322878386590903586774241166909088294135196570444228125898679062678373605050150585517274992829732131519210057564179611210626320044777715747766257889854836173064191495445563987850729474650796688312972070580572877563504084035030913213118146561345071077842158742871400398339778433777091030437355987934102493926554761775018357530087298154090343125633476828678178277627200921405140238475705024989263135670271560551396296141086831257511861768393469919959738351537819522327073103827722767465027597299290737054281989710038894119522625225293368300910617873619000049565815006820331075281799777210856648427913354022710911271563038872247626954358993881608360640385792975531780454247974293204566495167470577995349723151313498250970375672613092224661969523470266860145263548761671943949837686652738860987247364290798591740904114329886686765755562246730268211597026055360383107087956859734531665907097713302720637141172657709107730965566548772972099725621496237269377140340716729636599503315888468022706322198017243546296074099546379484177526618272945276036706163244279510547786482622681947321591281358990802101833832164886707650686230779809615560628705654395286716212234381004522787918505766174233301833595445994022212581904272732329601217407321969905040023057708346547347804822324768485879777769633967594666243337597931391188833735872453732679616092763441964792078466627182929139354779017047471331504019700138178699265839574920554503559788357599840080949717422869674498728856802782126090935066610653023621832675689609059605224866812571118930635557914592913959397565617454866395773749138779902519984871804352947437214829489867904356129997106777144491950271385693749717457247891491301078363367634133131680189271283796422858389163750382734473244446460033392592072917389534496805299876510628664181619752098611462901125572764535331669118957010170784736295461993850752873652651915847728544209102652464086858672264607457195164765159605054961033480922496926752099439752465544196076321800022402858785620103898828568732682593199808921960233120698608281087137965812577785643674005765853270136396346911678353345946895287540168412007740608416170137701685444067213658172649505301276786902299147371039644868024889590131869624580727895231218454686684845607415379163488698543159583957862817517631184633513763262546410259810310981318098577039289461644788053121461608293445027486497206993118581246811326035780160179602423931517828484847339872141667021356412422243511964602876258592295451506943881791639970563026054361871215672922896085746572514275359902393944481257570570520316864190114299015755845883217223831930340618548807223411057634770718612906158191416016241434258883167737849212249552164872588219550811782383151423831477366286745310176081119829356860288975280074605688720024638477518405206622949628547090083142926704756418776254182048665713295633311606828275495654445532368797594871533036330456231502082103728397629980147568277804766368416111109120899666851824974485719422221802484047361534772661489135943131468417291173541890695037916018202356432546226540097725356992635443387017142953858092209713530967244046247907178650594373852780882286970563679881011649940305460803997592751544305677327020798830011454376058770437117467646293256582360732941143639343387001114043627335336197879811147157933997930939692741597170807869477470617690425882579484798099955373862523314518582975675720090570525587276320021203143012182688747365466582940864665074288568716169976187421456346804335435897453624481838946003984661891218983857866350554609285111208174660993794024307973114999241066479019141086574983434521106627353651945275330230316872841607851879658880878992760852520180362194479375747065993406875001714403418967843111078509707862713646984117131627080227700499984124150039746835437684506180733132562932696580057118235852648422377933478037410490306539186359140554712374489960505708749472210848422473867748740077288796299055251353175198656217475227365372308489625544573355217334986144760009940057956830137334761954047444234313757914338302802627381077528062254157514121870130990340365417974575051866166056379138267349625153491691535694600491169508895268873210606294136047333418562668375920937174781432095679001203579519878206612696461560870664948706959955826381697981258051921374369447628189526827052528038660043255470805832722560907633505746815911299023450632443704415476721243841569356050552312140581929934035642108106551226291764283840378079037041993763034875630815846647760160007945005451804949788287355209137303854998289264333226726882601475205616512853698611927833814239752625587115154500518999510555576436282857000754389319503408844415008857908614172728508024831239737253206371863011165663980022259597704295560637689832101355496468688721735340260588331312677109119894878204348144447924974408122601563421864431222685176069427598766520146275168935337862593823555974667235356443413362937600777430697439487340867848921158644506582276734350825439845979732162447634782961420540156636202218749858525029163312887335278853749524334251492549369302379969177495306560327717835461122966127131187294656447294004500681266610702843671563086127912039244011003547961051833948782628639898302192632541953355384719254940272325340682469494762463890393527151385183709721460097279723517583009683664566593175169883733060109638287673798621103446873993780811861501775460563650844329495928059031436263258332155279211124679138069749562254853102072587693957402664675301724567393571194215222460329917050153870797181098833737086051789928281521265363628283781227529264410859030784646858043013386886874021716651351360890068956253170373179713237216597098995049239428130202029623218891562258888633280832855270035392056271498447511782574805024170593383577141863066616159185754819052481404210437920752734314413680954248512155079896844853519224628672218735797200207374057753207531108238508885276406198297856093023899992740504824139114268446827505578396564557260777631801376585310646670487360107734385965358959836286526580221109298423891991997407517294598699872321711212872120512480023829397029034685371709436260741569511681712463562142813720930485156287035731555199822393014824141142345897976042381542667216091442283125735205613743802342078516499412653609774052271111029527370696863685864665992871280382494577868499013661267417079588407472578737588451953639519303865867257933267091009217960638492804324326370925102716342690644564113210767460320021702972585151670945922879665497849870607585760062301384034802449592040158023197473971500812638284960051633800259091515683423201114085789484088384462352358472478194844143271394617244705142618424485847922836632327372544484976581032144309266394891758834951440342709636258809039144465993263139771600943795023536602837126803788028617030135398526591626901173220167802803157684428214124705947032548778694216743167055350042957205910519099304526724769813391265041303469460650529812431341193695859572369785721217594618094958506261060169168697503093357050458428437138651872618629080010542876159200610682055612040097201968393126671732119032768428153580878146807275089777188399474742341205344656842085906927302831432264416179066273828815643439574473013527714606768328270245448305423312834753088295589330826137041907936426050324845878750036005295121236666008622212572194760293568360409925605626414490443198668016216207581488790739553073131639161686741437691222460510412277896456873227470699736701436784734074012883119854830482425105052687565145395937274784817536044863143221711370164858378923996812568906191959415345320521695597034506851101324860471338106440506000980968622936030334636772290738383123772020674059916544250278721463433140391595354134747303819108601138800267876012092031580311046363687746821835428216220961565999875347192298177780542251460242463570676221189363657480743624053177166645464736316551605530950135759951017923859824400830623101286085834937601230390066659366845238728931682141072791286808715066638683550352745937239821046861128715027647599747965487851838755816611610060527629431851021571024394703603158677290221297472455651347625317920127103642634405063720571990154602373296068300891417272487531589451549503111882370685123754611746232989960834674185950644262372360917640205898944384464279291252234529886582299120185833708520896138414220031379877925991623433044684210905964493427311397061523739029390735265332568059305360107944803112155671669090851972556442409819104366473627748085194512545883674021508936362989715272540407041465558278480031931409805810449959508578060200756590274029220889172606779376728831538232075807119449091703780603919681271178745176378741973204162873949800010644079988060855659044288178970764374707528725741009217042683941237653435449815700167318354726711389402416015682246314598112770571177692948286553951549459176400618256643741856237492571101837478577456269279556686217482011962818692838145952929181207697848210850785586363115509801216373726946161854158050205283450330217766532003782695308480362686225579558056638882831787870531724479211637925951750448528755252346825980597039453596342770852358665365347770385386903433560450353989345155975116688990215299070486617916135159316589028813050522249648458340104177563238253014766452183805831410921234517098771504403290298766809008996577771850835877536483245100816615170478733606632602569190922814474706248244108770419409164152447022104940627078336208201181638469228667058338560588217776814118885833564848494337619224245255396082117950425887007617945126230143254341732182466152648959590375721823826722691472313264578820074320840541991165378138903091815464560873378933930177709915745017691108876438618924416574638226264903120195852441256621522216390885108023899168245772320120190151432294706905172142481003014123091309366907658536170551416139601545588206885226250349629699108660088599721363410923874022402996509327577683858330939356103508120501232209072675590885246898365391260098510270581788045319166717755195965764335787647737497035524667776773678696827699903779128919204825449578509630370374691527931990367645747103430830542181145721083915614538945033730955910643347351469303789756689395592921047191191958596072653273306050569276052815779568138480616517025015199562613838431926981178323794179764510123759730801124863810781867108656861617056508534201210452512863835076189397253444053226807083223787219479474091343117161750115948282605639606015734199280616005597581008049275405203267576286820488250868914927739625000416622937314487965499669786260328529891143529553995241697072313008463456436990628737462859463358870485915791482276084491140368540170450150782199389736511839435915207827586324237180282331623381169992634682080349966287117387493282608557078897380803777592553882062507855887745193880451611768910189534041611314785126870977006677289031471208422097389413475120853040281941086491506391150106584243647049651155837563341951230788762471431192816129619157030244030747593485905292642198548609366321644327128194750757603108621695009988528715799760231553815947720912372954728401049801491813806464884520117610332890877781609991044254944057876402032668412064707370191835929679340486771454639401998192206622285875587924896838272454336268657567358969817341839789156243224347089078138535241943492781219653326148069968050795678377297873552645763366663029857463046664304209668616065207869697899191775221534291120964376841254450260309036175258320087010032677138404243835336601888755901864317169718330925244072364120389617161400243666461772035902026567754632676231163785023420385581649787038450238911966951547273024486700679744298087255399788626503021449550697314222182010417248985757276631743196252768666374050686826409162613642768164409800599721268152888013235221101579825114641362902508229146135957563648034055789092553032154085816034993787574949490810591168789776613199976564079259820693037458050380982808664035707056965073067174747249187865170669410308226934395911858357468007883938738484159648406846628824482844906395294038854382607950200187990629928551917254970164144256145820738532515605096899751008236280816809299576752162159344897287624709143594275296604087949630135701370216266574369530744316697737170049281418618557718662222598841082261778321035137855756269474454322012151823312147589874210983904499141870619388297325065509071063865877123452042889568327381874171632530689111230343928792136875772433292906779690526033919806598592596300454088975483206087908496387474484659416752284329150790570282779728638878995712632758387908433272901028160826706494486246261611151789314127807162895497643814454861203237049699119330109465737493570397195661661894520862615628192151263780744201117131283488510611563793598815139391487901967956079845895436244617996528574593191338038939256415270749953315792546026195826680204944208157130351900319785832238498020753937043496537501257196565402259660871208955004364192523144635251249668218046265901103007777028421760823201876564555740095263943408344045994433871196323778230449655023298442468871846273299516866713703842971417622830225911525434744512537764614463015412903563052012106428556260033309744485459770001374149478423719235231702438571817086844470519232305231293976743298705327772671244001453245648208504291080257540061710456132004285096926488409970819444696300814205200539342798597674995582346682280221652840471495061773988466860346251048923665669248761202999856506894881609970650175529752067769637074386900605734133632917528372044404631247073435513592043980024800440982346572368955594141081422627639293708131140704214353454525776654520144835779012435403431775645956730531582511076936008588789916018701673027074291838120336617987498526977105456482683333702143953004246076811659302265017441722308234965028047127532657744794290150155731550143114901962615238634134837654374839660007121808331368094680598850318930629935233908352841437128372119107697832461493631598455923606378023810630821660615572714392102833240913524412896387036529422423806611965261098489323873564401367040047236625265361523769372018024892932704379878746400940304226169615441825384112774145605940195955281596924345049512006256505378074912771748691444176322543376072913653996168629333578597463595938912914064031899709512878981210166053292393053362644987726474626603036472427837936356870743126044496765414501888174284178217520357639421787996011135810581203561386746155698177321086324249450309181301367446649760382445468471136625583765940013580030807561043733858633129493183753637055415743071913808086859062481545693607163019506491295770011633880221477356737253785212655114182038448333684267098234916392123812165537301074743810238800450773463920561030091419356186178835884398650948793619097018633425224907754975879413023669784197418395757114300916986753845318214988855647841885585998573070786211833554323311992153666015198968489165291990934987354771230936172863354932194070745865483513899817810015475510616899144982214525108810227516016995302442144447615040566533348630746550207083261589254334081714360971439379922931254981895243783977213535281327717374010897944773853583379709743174405068305575403615690023853243894746717107621726164350381905051785569283182848870221058989723743590700753422986885296014610277398973036094475861049951948999070019182568862266248767010317981101476690059083794347538887938959447717639825203992759028904669203868513283113042737235232125745498704293266912043648022602574628847576487899316152551162661072181212175950117081121936796135960937718027152319633499403289869566561574333905173593688992983353022369686650298636260121798993167147274997587016939196095586162194927669650449835540813943781641734109232934660264568987141799004234274686765347800469398430988905425985843362034053815609405906119134346948887984946969916933825348412569955125293345306730113590363665995457530944259281174366291016435349177771431988948557437497526642167889179581164251861897064136646202903521615897198624914425425291352301019787150047768023486119402237025090545057574223774853855598327512365722127145251089549273343398426131253400314327532641896497600625318465896236377406135169518921166278099828444316323036362972846277761484170810602757048502252206678485698361713550447614723021379616435595447448327502780807035714964328292568661609713321070162060540597009977096210015892069274572140135868637089902612858518965168485353768714106537993351575927630470014309558679429780699458021757583225957965724275307567539551267594741293837954917100370956776797843938617525290100377913615668218386082800101512854285504921641596573093237724772128419315153589085029332277901010218630007425406143833424905557056438261309142987277388327386539977873133670647595504880201223045628017502135429562497902066175059328276530106233923462146233574367371033754259536189173584870991349075524379494576250053729213960296720900687187791904616709343478994911690348736275356391511445298513977072339102134263761410291918959693159614322734074709367114522152904268817906570439568835638443233463326111683077250637223878139128987054752047895944918039177070031314433865339510933568040717695640834299175233749199693492466600521024222080819562893102442128018617127042493870275899487523011412203740214141469542116620341794043279757949028922684367128073113019024912927856043519228325609245026083222266843773483189795421880096962753896585207686855038801168238186837534389980311728593225815727664232978512793922677743394128955779662121660893224752937710713955405387198269102155352344415115538796283789323979508927635746112249603380146388565358545494906094869452223193901570358447220965504987038078541237230635203545219468360639754209539999123114303643976373300172478642752104332952286860970272422153883608704192474307690010074881100147471766027845766884460953469247499714743406753492495275616564397700375258249356772459115939790811702143365223961555885869639209057964431402127799914118948344612136436663873554926269307190389933589072154660656260742935202592734924302274739515352482978511785736396710379728239856447445338441098628105878945297252186212654132723935057372541729704733651855197889473338483687145920556907576532784720505364865848792527742903012949473175070485589036188570614829791576513412632093915263450486495476807938833099575916795835470192279107436989019863548221640774893490535944173518010642903564170527038052951500740873735555327676333612299673264412589752383218346699855671631851436674908713038313758374858485422415663070595695045975015809907246614875685203781934715646406472266732073634407568149868992832782259687900999298874733301326103465868566040499627754635587662792895636925892262698045569990573543792553336067990662908024580576778817519214852163840968286003977506002707128351807115142125589138677744700486713868061621690396460244433132405709757418499704542122869556712519388360351915452650066661110560638805339173894558142178827887634053392878474531698260126574725080345325053185466731063775985133361820364950707188201098065496506158969863010797772112221722293189908877346504208617179813342388735938403783258571418874432499187539831682757911830816789232410078407912586310211586999691797933598465384241926326908710459971457625133954092834187997677791961004724720666786581169413280926759963458669751089630848090273752340919423527435987625088642209698425667182792816133644978948425009602164010228726659888603623709170936211206693057870364240198961856730913831973669033824679571010965812761021022110125534977168160206731247459953049080494199967930443625644437859448307915822195276254810867601595597722505551419910953509148636765371469886913514551462193311450096187403296708157613328209087477512478728524378795087196899953930357159402291765228188874609587414972212944374621687339509226136177965559843097390723146994619691922303787360593228566991280351012498696993875097224696237683573668048405451214930169110633176162540315380482669305522280223205392524463044444720438526664948916023111094988325449453700117820139554810278195796000621598958721569621125280253373314554541068732924892632292669607197122987479145971652139752131107488602200149151310881790075566523193946479571034932810463017689156354586243907319195117106247123306808025079890409333747161084114700556462573225394901827985321144744577335465866406251130048262781274658778823805170198650755860501960940005755965688562011348971212051875843326888846052692960344711924909244256115113936538763065521921531878024783261832027822757689931604709669832220372005601563161925874557331828380060543910563090931587278357789631426577467148944954937260018908430893619007228801561188885657773608286189793368862330274704824621576493059639413138676257065088770292857995851254878937181892290181209887017363268857005558406741637649569303702966960020030692845288581991878421915142032574485036919477890983017566977421846195008174293967465524878900574442286909032929834303935088376969959725837393837375213181187825237726349480202261182342375373676901992162922081773712970992152726278811527887051925075398620862090626165170928288189992216738707206934875879092268625199057108135202732136596299590247060566180092091233574377610941876614123343232785789425022316778933546359577616936674601221806456965595197550887883384873065231064445854987405132237988681014441889085508580856092582825571835125335733535242260144908356884615268362213595767678281322179552446186306165437466331429256062758745556207495427184894056110471717698226157699533857468086723114985007694681150810664247604649497673665498456028491464655344370908976574537753573982924716762721441470246934577238654983991314973158503557025985416684758872103600335601069973760579194839104433234821202948699678821718745813992786693812087152583442434394852791325376258716258626092194995722622671739924167848510047420609121482187071089540896020015193053921779395786406144731673378960537276071234805278661660283708998623631023283032246017065640205713303366794226964856547455515719035314717141409680441826675357718503410116967674695716345189452565284616464340782329676011780879145012563943767639101518535906705460363425375335057385012364397290098557245215666166998262647372230641343659181562598519250220300084248265789126227324868499320886749721734604950915126393926292000923460806028663197976508967145844278112718793230713815608662459760957363833242275458098167886269749425466490128471822449907893708760878536436211127843828174659511237687236886679284863868879344564543724262482537409155707891351137074489792798928093092386045933280238456393132890436248475074575764997276136591474065613646754894950901387126215034150831926316070518464955336744878751928608475714370937722558815177282487554888075736335016659164567349607105906972323989853832431438531617844541318958582305896321216000899107754145476202338547702316868245747611925429873155465536719657445950585026906912986436502669566698695425206668006975211868777002695692023245615052376323099427787944958234533591672472542323053165015577794361751661651165935991270084873435122810117975809407963369550141278474917906141576135776668598883666398349701237736767630913560690742753394464404813570861779409890442059433059284252152680477997111580404060181574689917026112923390345906212359781537512177172772262680844327424755114210722181516356071531717522290493623196854980884648319607176816196997256266214594341180726636122556909051143819772639764619227041373045284467714329303417021863875190658986670045611933290326753423938946607988371711785970192523106072567809089968836451675574103771079218998288395791954689102612590055872731391326616834538774206662444482280016156283554955806024609401545685206166803552639066891955961334055311497099425103746556937776682553060657864092324421269620320684440054547538774851132012819995477371123264977362597454539726437987028344168602179474718931729715609100373908152648150342256475804084513969222890222519683164767628676936795921066033211602122132117345833613471223479745677435240559986572887448551720557594468065519183690011372165858888727324896630233461592662074576255406599647438889119764555144967999907336200390990698533242295445301622798507293820278823078417904998262136831180466280155050678414186108601909571464059624482946440068781599896740061350368316650862039192089874063619472171520078705171853830407642402938785364991518663693941217088317206566957335809397025465300626562395129968943468884172014843083138315491214966693445883350570029493005730925150562002963965631912576951896268465118253718427578826130211160241863048380796354086485017297192772814302669169212827176620880136131625809380139038982834799195864568837321042512137518580100610290316311777492442537024074909378307924293126158911673691567998061279255365487976552584424525861921572841745846509230771923519209034601885705310206522945193132774511524912519157991555759379220925477199315039467361079722752869902533450546295291498040596718061394935759931133071722623791979104188468412578920115050026904809075643621491646181684475421701242158955939187443734513147348135085133386085766733446099980989585101293651287454053745944193555901725368615965629101242583300309195444172018211689172509744296611310800381952643981024458334603061471286709987130062933439886956328238911038883969189673756004157764149689041467442719288806811460956549337364366319861840642083759021340759169588017936205339394115872614957110637072245836172113006606849711871237318740161232418756132049974188668629282999349747778744146110160573137199416733623215279522022477709480660303739868864869075153971164969465854659540874930322729513781532564790035257884405504423412355054072170622923350459721744522349054568975848087260615243191096143473393348087976333966587581190925581002476940806876434298680799357864430180386614188033737205477169119339529306723810342703135726935705243578843346568761315270736935583635694165158367443143624119116156716956790222671741764086169535356926015717184984255035505976741270366845809496824151687478840038221423086804765342991297062333516175544264860741441510629842585532603549944310422334652428666743549338381646769894562223664847845827194952421133351573092858984396587224398213079717310139014132232472784478968241531863127800114892752694660285755469748104587049432574767181722162220212122063463419530405717732601509360155051160010832509215954856224989346796468234030785652544603495921807110249672528625491149997588382146535275326936097897041525265136826589520539500542494529959525031280505533383574277893301984582891223043883297721049882075817291637385894923004249483270023825437808727797466460184601432117551760930843944888001601055639369020007444688898538249651606072379017768720929992366592818512149199708066454079349385616810620926084853227621841193920544969042151842220248864463339389257708682242426989439069066826168487874205840895837144383704254341851442882449643488778494834496081738985606437283655756187498930112009931148022327565923374871597117380851691657681850833056216734511724900575502013188155630373631962945020537561011399979003341061553309109971066486619566545986406223274778006115671459220629703228457681758463610750624946318420345183806552232682881282714651270844930065139156995072714569505082555237142795099231711059233066472853909288286626119121674507449654239479880056190916026300603768658215708754326890732664918521728143811813516340349178786427365566852295947067277981138384985438137290489050837315169151911953656640181530448316802942232915528616054018284874128670062237646892020385832306562124364638684147035157768481924040205345010794966735285348210718723066797436469567043373795104644784200425309770286997662697172795600376369119548951737114995816685437530018578253971989853583045274846104116251389072012190501205178917820713123494118945422261915213651727566127784628562198598715969300676850762575692743597067220637687087018344556275442986829952343691660574568012610392760335513856056676517221538419207313350203012777427045197081509815989410738234811355577163310331593755288147235170148120313119846373550593036939361151532050891148956652296637865366765383288044670448419292183934436487922765586072748075289816169772217916046370989392061837669461916335135356707527655447987026105059453269465963647713107915558821683130819092620935941623109050084976057156826570898180228304867586415376753327091308267236516926587594443228044089737598770950152496334334249504331725005411522946720484470346161911487383374333804645762403478059813903364021378667793147743842662187055441695341178232313426759068517768824868874681982805096450334050624715891143196703928907051535691980148485543068881063634593658433592520076368725051936995583086357684638157850651444578226826081818431491612585605906081894056724025366352873563920461971030754396234761853624349474978336532269795922679093909017953674258511417992936121075547251906516828762747846916430470477294524225251410483885844051677294723831968394474836278077000192426709192086725981701380353312762666184231164649226866011045927988985862629436599937270709882762810295643948014434762915209210121948930407174105573792260392382925528516447086814345515209485655702800571745546059245456664278689261326886203894156519377115508796993133689612847490875667194113478356576176623472509345924587311489812678687255241981627856955369791387308766490867094915917207933443834611603834570915258091111588985147445836245470491832451770768728142803455008940387829922042601942560157184849320628652963635801700527253638044157568102090995425890441127419951321131541820263952076133235045722032108420640847865092415210773092130676647359695526848519152584508801497514116099266927009394489080895680645912000564613856844878729182607168489409792664902680370335850916780346831829480767290343405964056891887764533541690589746527806472906356184394917497378918164707342720976209787520804494358653186489372106378231181914951113798361987348901050431421445427217373728338945017299485843353924200470850245211433024067117978066902596377387873582844660740493819540465374759023061608486738512340595328869421623263715352405567729495590522636689433445007336463625822161023773779962388678491392144085726302334542454086853577163544611106003913699121801930126458517330338681058030863060550359302774014021370495519032996434152702006953328839189201774232396328786360946432037108695774309242839789473199264971078396365981589325032490434449125524614667727670071850794919620868079398556060547978924743751547894325555925535145346627150747352441115433195391148547201046456632462555077948153412355509423503997887504926727136575191635283643500687519133829863985714292311549684105849424158549597915144899774983120465437171248100972523006116700975035672585781412908549015862405706966081998731934507576226497161805304983417743097775727631209473265012513546266054246481245372767362541692619547819922006950258916897446465213782169640368308070653923102903169289372401925436639883569097471199433090331757675708717272028481643215001678934262550187616456854002580784779647824199336372905719256672739395744239529460889128167927701488592838303006602927324988285592408202886955347696622499721676515445627715061102518404006539772275886268030343701711313914644397008443056978256495825989694104420574801745928400748579717304995139216855343550520758493528488514206345024629692853787446242021218312891759284942414154206815758948115255885772703118521158346833969656377215676162446668718236548158394046590502694609365710602894855313831518565847098693906992728227727497803383102694311225543406734516627392282159406902330567941290164197026275823091407320038495841930589755545739558057739168707837622635591307629853708240759095742806790205506244573303822374068077456864226670681135031255806217731863182466161843764430924294469716905704140437425832667101026441979388767840604266250749634785995480057684757663975296344249339889678801892488018920923636145100703830787587994037352148106355800553255795140757715569171453206823198947712335966291651654054531132123643576457711462307244302016972157175052089815984079785370999426166697739727724697638379674934915282872302286582111125433118713110530803277078970066013871848412548577689518438109553706306965827484639265604802291599755376182760581717654739880260651565648352443391173361901293087729339960389508978615783680650017797250268522991689130519661558368739625858941110607180656984420056088102841141048925460429734219525399225410897307175795720391948201811580199340175674422742832417221765056569524551562811205898426774730806270861686512638408261714121279926840241465112678764394239137888697797714284844433821779916078591476373130737636197687088136417038809757563233501909812048751261419211079264427226909787321981583229370206737902795535291929043621737811444516640223941089437276839629931986463537275331280088442224506380609969838585729780962657941682112684512046623449331310263761024752242417842616774413596270774337515177272726887192280553304840356039687711478922067365105035985694905806187307706507708886499667832009755549027787951960138651973126754187024786305420137935597529265655220436838635827522646635423449371893736805039315827376218034872974487601082722089108457989074536202776618145400102222235484327030895081189144156626011849444287348080505978945651930478315081414862806784585721079530766301117406674515399738157220440626444856254028621305383976620336274916075774542711581120393902436905070422637681697065763244951363814155788916961604175173624123476997038322535265369850146019271148647176056402650483269732649365300525049177961407462101902815616180628856525225206415556186781761636563804362411857877935697142010257740468899179321716727582549263879915179893289751359424698352821787741388987157828099993423366783167238186976346960577863943867809045892052859995896925758644996261241743896501672562276546698145073843012083311902559292595177633637894242981974473407246096667029674720706800849676982313769539036480194732668988082150055482924865139978797696500768533784754825482978389977369619082786829333877067812484621573417961128949578668607614722576151856994978522217694063326769059696531399749836646698154319123584346023461159218698686703640654355015585881820123812633429702023991568866295114463928458829998805440941572644021776694452059293338804063993136411702089523100483661525223392288821639457709056036127707584936044921931930776248648885061836635536218719314843486918525040295684965389587862735005982288848535843297319680019807473206668060840944735377041466546812801111302266168429650292060748902232823700485267216486619644208752411463149543390641664478424781722375275233453343883750187948225768062351528852078423471707113752927859396069405516760138495614731487173572060409363741036224113524311841662713645617672317219892267392382574446355518912120811977863498083475920738338401578746035975108042943294794755692647927622396758038136831182333390128669566543825241631230033076835676052871133072713620219958323022200592666806294667290731010205912777494559731765611554977141050244803411445734406968306272277525623038741218366668271422566472418985193034891604114475490647847474504225852457249855077985620328971538593275897959853876907478661998797097534064431132334833384775700453743720435065917747495794309265974648513164770465005420014667267244977710004403444727380004170089589446177143144830939884824005008947058993664550978101927438091819024500959401974805852855524676137326134289954319703003573288261754049961210362062379474506489708907529215482392917795868091587171066028899901138829147257445490828199886553129127211401517132880057843490750608159284156337098440800252767168339823842689182726720606383872588297705551155964890388854674460241487902470422326899783483918172099676538442834303709479739551686551161382878273438721084388840192478258322545919563882802301628772590705910451323329964417848527580905287165589898166582967375061917492985753182514448206910827436215680320094640972383063476364929767481333140976439018618168935415605814396022429995035888139994291457515587982405346788443681895368300383224059508596615765438918562743369231683871282540751059835425896958051507856982170163901253833139967146984227872218126641352032413727131368191056002510855550703304571260849956224232701959510742473474057394198055916078665815692885723970754801090220885093859162951634410885823960775350914654569389598712232493411723095134957713661911919184814314847620166303388626795566841569119223816094492609732795115665411905188451940283377520081426975989802905911470633661490415159531677459773815362115222579980785870391962039627731730157844446351286570547167283852251768928997806659090128963239458410639158124417250465509255399358466408145616229724732012308622279806420871027480872443665513519387844153259728001801276280063532474097958229791324151951084043854764056772553302854272923741678886776234640005899463171991303433963890180639013793892680809468838362620954517924846177302423059408021269827190024036653455514978652696496045354664576983674723357206123003877586330444448460762875425957491028281468905239232388415502231790587085842450214556970843951107811918505087478668758134839757919110745542416913405647521789843082230367966613340139497596288305598159927038025144960799969024036420111832332597798736166392208235415558327544620191879638787857841254946252413584383811437646675304302801608708191235307685865192279696720062462615690484000076897042107443979985454572677856708493110742937377656803139200935628945049091777236510610555866104832820367794699805747445937045263220341190084900034072001382355257753648934472908339263384156078687329995309807364045716599880751780339114401777475682623469635317920477059429790092742512157669502819229660037310936945214623041519240612049987954004319594628422265378246248538361717815871475061129511547276015773605821061441143805995078632132222784513347263511266163330689898003308997245148209738000080095803192019426511378560143829413149736423985094604382230291869806238436875072891056570537201025566792285535763692904179432632573017478757186906030740966440395610233947834006282519391334620163490902691136558871363698520444146200306698179608814113016475466615331366253609849571902161741749071235893844130915525539201880228700354804863672955154940292155467843112266147526471767861767452899777743896009743558270217611288191655222233428715683525835884749891558383267510581867554138357531890047968650213893474701550635556777077470604215832071771463816350555660081020182573256041003541438490804006545941233300718843590795631840920534578130267743509380047812982746433610795439666089443070017795785530943820983440205074091123629435995625897722385887235119744471704065072951029793103010351257817687881781447871977343796831809158643436517478130331783044429432276663882420423976398629451486093880371897460056396640267377156469362822595467206226226277897014008384635143296713396004765870892784351159386173223854039378498446984154530902350626990636977439995654990648257141439611568107218585869976010972301702768733437468557329586177038033109408946175835293759106617964251797234613430670403746240507832097030973144482594802119602610980074910595532871229704225135173269016176868527424872558724396325631999276202753645835225095521949132392789781317437458942339343230714836357535902922838297599974651627267153694980284401366656926089428421863170745669756517192399710184718001142249756318858261435396876048182089785151966689835582496735939887736385024209010195055946758171326787435792559056309664611517412820334482650184532203210380859503372005223427677836021149589512656836725911696582689408363618770041103365473633374068232956652838719146696385688526481602652645551549588861923339798099783965103747785076919325252929412487090451504480211756182856864549934957168445676243135588506898105646430993154599493233047730507162827508977266473034453137328818284841442806468415188788420329315437920880908964559576237538607577532841267011577943659269442071992881527829236100959695827162398828656388317418474026584194262677691068355380597055650110279496241412422459550789263078777842627280495218199465543098108362029032136678074096990622033424118297029311425321413200025340969941836455305382750185223035588579943109082400379422001342655577004969321370021362414351912462545755702542481333436406559228111926378886227993724693296823531932307653808175272176865152468004886061855399713738585498562347334872784637733970141815482186363112460375070045137066825351703003428539872327423481843851757571752786816204124081760113002171480950540562964719596536409456067727975117685069464225628686296348413372241960492893103442626834703515270243701594886659396250603080941564721047647448813742526345748061779410210619406389912450735579313466977672878622373278527076926707395126198969841656196918670477387895737018977065879928795049692721587127338920996369934307536973261866235791082417491764204228239132200441779655874424243725619738441922929764526166839535146457289204115666338553279806086278420487387790538649164302995296997796436414376574085701763588667149983981587845977928061915395690125167640415198016781794346178467722623045067829723089382659551828673070435346017598667864981144162021512171998552792371356723048475607278832162567940241272294284143386169014468451373154284346006229842857744024288983161789940576871631003294116229091092251577785374184321105848351100969023649389954598062577693479901292677594797745858024084969422737931969106575972234087505257161610012347418933231502255961747244218240110725667491445921510137432746927620527319408530458423063840540816844454538640221890774051648481623990667880236142439839476570577323782824221610401730665938818933766467626617297619960123311870271462583711958349311389630829284050044212932134550699846944555449971302051196376114947731934731208175290618638387776003947135880002215797498828433314628707787123308796950208048881134680352596054915432315139204475565326454048377790159326680581126773565994177488525510405711683811931993332517291179931043402082020794285147343085925356421757056082912279164501173249396428365379569112048943873620578000569394937457865058686299571245784010005444706092130356815026580006126726263051185258124342628642733699147936418245626168201154048880322037912242954811014507372950126259084608110017778910569790821592150603161142753398857376511814992272147874687074687581934880431331539705251995068191330631730029879697701727487804417065487163666457065049674199770128277926151495096057446728107952747639250980433275715297630489150951513772619290561726998659982362027105806037241990170375488853961054397606372399413046861287677421065112495150922399639183593443504355883405666435350550403574472932833486622737734452239517897012010983413665163558851107118610064860280273711638303865657959806428871930386651877236202487717671186087153573650970942374045495168037476948358996989504898557738219249108485442796961724782704908989840246330845036805391786326480235861276475545549905021832900662814620031535656726479406784372990168939574498733676556250621173938843729934042149338764335554379160145239409977212354220811011732549559775904207060254931186743709138534682456035836775109282185852374264789411110459196228053549633189049163526760756129672859411483463999389027104787952907679404467771013194690387019448168540653442638511103567976802552159009384983453568193395728274036440408257109432961931471409730515389296618039389775199044600551965607861623322774751451119432634384017985607489398414910881032219743162092177856062856612337727106753596700602188681649643352218792334194002424929480884888758769725230703171128946669471467846616222636156340451519271269843115785828962021715302614488793826101876466561970989249413798821380399676251687016942652586334392279674095819236664991103714470027526894155415275542756998883496672683615161688100677996430890754306151508068514160359090577076311910913911882652414244526747667332463911352921751496433428339741351806376377385334104803494666911512696688714203234458328850850640771582815726230771202965500226311875318153464470073899009397878241846203795125792767302539905959088985852412337590273184925295347509870572840106964766711390138797904809207310056214527544061870003680920816458151958075679965647858539014429081746076624288315805879346507222596170413134902076311783896577220529799039048462214221130038638722836625607825091875203858444489921908801630678446692713813958151485956043430314671764840488237558279316516460516738545933460616447421149765523535773564232324177419728831180246665537906675034397159204892875456722682905005695383302170049319004226174119868980286371074054919712855181077206178999482438242587052816204670687740578145045082910404132824194259916252599600345583844137015138146687655547014746031907548571450965833881757562336622872521989458367386038807293577744989737046914705840098566461637313809346615832329921178144650698683407705747068035723029147383544220977615121243144120638396403490688529705887768488783460995874837780825846084085238273340622727442682934121028141127541403008641604857395244100146180532186719669707587672446034738797941276945813412755753351461933676255344091615669259638480430180684370153460759652445273032565286896013832432755346182999629363457343366169392433324330754738230121016646757802621686216399801872988413750044016044607455713249954692744238154895590773541294370216722972645339476970246222150615572750763741601616485897283161027589812644154123856738090880812576327039823515020710191819780719078403806558223395584718823902013163188678049495773253463391254446328596612836518360384749427959544806442552675047151678861421534806061373066190094766494605288508094350814107084373327852505178530605509617781554611917806136769782083895944120774942448828283628190502940696366834881625719121143259574417896898400999984106492063272834516178198355485867782068584697873158576785501771823729555084426119452581657252648546109939945695316939470641731056819054572251376759569602282539187490493973605768840202285815300022304367127463116500222579996774164406064814355275601760931212573227881364772325063197376626982440579044834953097195071627631869749854024088353785631539579144463733638699723987513648450008359078212548525575538863211665436859481321567181663919979336123004893585303773334790356880978779743756503677245897449880837081814438888056385517546391972192389947678268967281032286585971086515874698625555425698639509114085740373228601280249038993189467640222008105742196691958765778895441703039983529504582862983592251746381225509873169356615423319393136638901428197828843889425642615287744315227841339514223522746913910314082718604034172720678565681894281856078823999093834864603321952073868811195793734849960667538375504026850806779217422734531272237222625701325716404223737377345065313602688239288468701641570886420764638551710642142997452247094957198215820504802668462779635127953676042882594675495617372449537027676580216573007876108078223479981770430107467503346392118251103035716870338501028354246141923155890214238986038154810792557072504441179218840898341313228507231416620685169286391004910283752014058917710233181464118802269740535323630311044533280836393684889463126595748456383341687752326454068781433814718431965293193382732629490423736244189769923333848371091379715577198302614460528869045240337659541667398373631887019307609664245415245400022262504100389694457560265038758309871978494551457550480554044304459342064234720855377843929977899684779208729785606371585589563473679954657048410240194382529873102111123341348295425830263435007048658144653961270156348003921729638255915588239479069863883717282395104655437394920420056118794273209818201777261957878598359517678087564613710194879979815255656166217982148994263720538094085411674648401670127191208821069651123400332993781771570513391120993406924220893202877501734902486617317091225306722261928867202868967071261043944157978741063786116880766995646619290313480915593644223511759039359926007801044276969188900623126386901494535591997925697650737277289536620004056428688557854974917753837978835456715406267962563974195307670741740837892449937160783908366207387735753919637864705802785650571597975158369715770481706918202920093617984643019351433378814112363628657462828197188345053527932564413257721716925440898315278749326910669030479359922123363601054738382710412601022025877885631280345802740609909082086027720168594122024168272633660269315819879047637567614101137631292305875738004482393724547452077375814462369451787842332464575180408866959329055618236802161666300174509236069364130774512148461184129042366917553066813997179316146761832652073234757705180347713412426504382270575125337462127948100771744976274142666010624504312760238095130351280240790779131993808450671302946707725019045361838667545188062863926020346902866249829554416320790129095714674522091097464441899745687853072234193453349491849541070558093542224989501459108423315354823433019978650289615111339145706274466679713673026467143321239371723971408016838994273664297551232466723389164440303965263649014079309380440902698069052960358206571630804050574786048270358461802125571149642875289458829367220403242602867495551173914376501620514737256133638449640070221076093915259142958370135384211356478161503939755753806736777850695618830325121389526118695659936487855386218735607622041372415113499203107279667998038062548959302384091649507518188036557603978306855672314162115676312867857913520557273159567914546221305858504599830467000001869962443877982948142943933595717030434858355842417634641774307833318232334710097516130882918339152304620133602260814276317477386707347534061548263301502217597258308220522881527635923491916971712574076010432131346533564003912536788903367207180774304847351858089715234410749237630245473007203608741529839611934956517910891603160444528369741562227065250963342698469282293165286256844613249261394502771388756066855856826260954219334327096362312134051699206442884549210100173941408046562992059759569223854278614780925920191154765712402980073835438666292543140364855166480187914916877221149652209762698958137557885030416144460182092209839086077563153461748595033592636801726697888935440907765416244142583473073156309378383610009274476812256411853611033496879311857650195448924323727331162070864615533901417265682992338749294551584096579665958953245815088410327896590207667372748142583147482708828322993279873230972529261322880672769998346903981660823019034835106518169638041780335602950740732325829884430857262621182603363802497978170097807672979482176819754452614613297986732297849324373218648861527912746981572174628022046002688659049694253893395028956040412154672849143392463803711952823403782437398678815995474295256015145112394369399225198442525434599800939302874070644599255353433461486543488412360421448151410468010023049731634972861795778721331690843243795835246400611072277285354959689652120610112350851398550608356454039481904088276606233561576301691894859794524457108527863854825717514567693077244137365063212956821403005378712271930400185578280944171561344985741247945140814107367306156497542928705963083506784547916640500990481236052668161704597293984446253444650690469813207547862613153793703044036284965787067983427009242778898265062025404448407220710453245413759268683656951407470901675304329603782817041902627587660953786412295255153093055384812250828532753519998838031192490643023983143869601366288754352857120636307608930012276785337463486558633961264418141647112776933348716517711797595304452522043083682856583227712955008666250972230934063033834595761301450656280643453982624272769717516516669166336726853803608791693283561402084662334654025544692197425882890220326840206677097535142022593184580587586637170928121339723179936248816267395013016852396539133066059302741523241809113334145961662915215035814771236868963859575070276363846744568582493123355180026245183843398693497926826878586912699815071908577809444915621162888156512637326351732688195764804345498015841461652716413631323148767682016589466163007205982342378294755998831312782797816757341304518643552772613722650949963760982732879487971619187895722730865779593108081785563552696542084909197748654389596225256322763499071398411479218614221549879089780107010001944480723832900225098656610511494881836298219700377082284482106244971781643663296483141845552832571845607262829257350303785992978718033957952803418092059727927561083511561533504007536127219538650852811436707668596317448747354318282222511837363606632110427009377098393496577385215267880624636690906808805621882745581874632336007804108180597538175543315407868841116214426122146410237579399813358394549871956991525789128550449615956133022975789556586892351642402331590658641503484839662021755692179068343379678192645396864757964394371328219492725147304815396524576050005429518696135632972590000417828998909536221437470951113512722379983401366737534097039274731565499320915710356939042576528652845605346967998541030226279941645959615680883557305708656302741970643087635698906532081809096294057574254982523771621497252427979671309922739296032026124309691056801044139953504017706144990070988124675139549355961066152637864334274589412516954906937726679372708212286754119468921370417387200644448965114165220080419979190877698372277797595870152362970582973444082040599197532423301198431472425994659338262520798220093106118981523869591093387104943258630383187521620968480912980505892665534485085058424389083702126215226303670359947967070037949880419328016636261992139503294524925431474254132656177329554149995950332135741887807973851757583569083912883447524385283021053070210946920219330359604396884195461670800235285735484448833456069767471903759027304606664850941471231799961051225877167141822389865392112975082126585686850666927304936345999278023383199115207769089331107192328951766971196538994342171201723719603936892619353107552377369507709182483452577281631645809861321864884348659763208192906588576554254526028272234481413953486142708956611398601939620429658061379519484259014145328525087020918255501869475635287420630082486633624482417601580740564230480524410395582809190722369810273654183802417930947835944499016468883651780130732817836938322216387462668332092765507324002517110241068587348331769219603493802572704167423910336618440108169262811095118296231474843655636181162430222949920881262248367220614922666824238856047212546521249276468637984770651051796025674510910849169394944146315131967134461868394409614634048479459220564220194870778913233815504741464432287983998098129147903468881303606270369361789311371593966627050727787245510211105841219947765555472897590374084416262570160371376337965713618577822924671381150322761021373900718479294573190954836196045085299730505254938586231630023149452687886194350162536660128246834578945646492434687552030171503064643801774433128750214666913046409213825006987601008792403165990996978885196643303280066134047895941644751660872597075154610160966357303248265358379550786539382449515491986671214219301176382344603468080484532633758308820355335450314787682017825209062840703730777548139234229743723153697931249227627368877871177933749995746122655118688532476269446655300999807098101758743154301250659981855666826114876664109318535975607810613201586061988115056921958207042440191362670301625232461109214907834971340826167347542895845236583765449579062631692481188720688227699309351824643135345168375344401515373857163666867763045198646541419400713096996273282505315426300006623814535376045051525688576257249096323551959004449508517090214205911786211159466103988699106758858486115318497588492866374847113170329559951444040800401687837837243699418651239340055784624316047412314473771820969443324379582639301396845392205526333963132955395228024835080483156245057846233403891067137945671142836556623716054735166638807505512588965194556241569401737478582476725772180891643398669077094904319523900071120163456769082836216967204196157488669189597149409135540158224806680970355727764691888956611684417784484828811788286496630121496709784408298696244952082725583769502129249564212514701238868131278001940190664117075535977017491352951055159586336252130635563056429518314877439547975161658469466742855112195642170371937756570989340073113416263221230940577134778133572406500037696258408335648455089483993986447690146067816714236386645179101876579979800404918402463379709999013133615613507592286577561933672395153513758983993873566256605729967105699442129436377136603218479065598141769008772271158716365841464555798530980487886541817586331668123851557530157742608707785847969639435509077404725039684282495774361232729761644851887166566246563371095787603302144001684261585769969488725469702709215022634239482615392411733372270147998645350171171397225725289350622092212793315966366836720305476285630043686850205220895188031967431835465599571155505414235579664672994687377929678130902893487012879805030188927138533455351138919840497775010771405899329841569145491544054940873918803415304567285127860186472300795898054927218089513673294411778584813259065086784950088815149818262827813472868426650609394082177285540162844962410956820398346918230038163886889469328725264795099449253742367237370523901430364222498865327172872035581292545734984407689899974884834442763153763004590448058372439244593386604620451328408573360049288331832586473238004618548300454739601464864260415463001227633789661702324407579292334548812462746696488309504857704538518033995462071974152441663999113299035750564597287417329017343042040634226890140310526609332767114534395756268499051256499158572208056246769028691568609243726974471107230431495309052549526497952272149968923310042687307493596142385839984545002808372110225191228508946096651143157734903898583621155115723881175102317948721020741148463979759435303306712318355299546954638512691293682932179473823444311933201075602216264002968766559825249893331614759527272659018825683213773719715200844215846396849703129690580993819749475770928645915354983755177580467443251213702506437285803093260048084009308430550039442795634330542170885210158429232468426285866934488148836389503292296253528757784333813787299384223093267723735025628051806322063900793423517062374639996947173719337074557132401879153903280688279129097848499522858688135057488537816870793288571294432304417429893898633235303635303821134524877398197066765456019384785265052212866370791797803930971488885539778599163815725874329215774996944809700458040294078677376188721669923256694080544882082962633833103865757684472969185814531492613015778829701302706117011791858875480248598805365756996677497900990154414957354919815640239921017901199242122419919339063706924322031443132551664873222743265031383218154776369623668469559922494372335157781050580707599587009478463579905711479373067301855913220246599008391020043302562378254422807175964325071448822854924297812589458350505957088169881634527972404570019274020524857779175061674220340781021811669965694245017886377135194754478740974521694800418000842513924550013112944377443741743527673682598800554867188255133353214865969969614837068225459486219291721583753567351935472800378728353005251166886942467826444002800311562478520161776298877377737831107415185973915413993538513338977655914737237711389936460925661672979791990901493564929532173283504099453747766301443044914790195249194671077247007078639399471336893054966509623455620382189500212552325070361386062981322053254828502053981652819608621832480540444029783003401518870495101495956031438349470933930144876816358420145579518043644235477556231272328301325966374736391707623019620104122381703570224013234323967652497615881763374981077541797516418444013200875866135335489312753048386466789686034757517387841609326805809704935806602560893339514432407997799275918053627731179092311635781234804892528258929052910720203214219592963079561993799106535500826096532108598022416067224891465857317795183580742379529947259705953070313106542457392940316419459757784232570681042864221285923225535152565152160829202758201491140290448264815183615728183944877134923118218484113306393860970674987840694443328691599750692258540024466533534366938375447729100594346075040147242473316192115672312236404219568249235948391338248724946630556506343517836921370108883171064350514731962202515405768436716886940904310062389206149433350308883021811960561285297172287143694746840932071358755750238930504439272595972233486649196615716973322114777625387125735726105995756452632526053636867574722962158965193740101685057811305208966807851771371741457413642332531489673068633528698872151337361868604029788169471789933925137872262356395574084381941569062467725728642975264752003916713490621017161990962357212673181223843413050637832779493290110691973086411392144230243848459679496094896401783746585741174567575374039401563045447876178006943685074104387651564868117167279206031482145630343211372010764435262217694535422049321531373943268891530543368582267341304331385065224310971635698287637357553835128441398491727889628234443038017874345588307961070167244911228570445135300779981507406227465495023447841881114789159694168944331554064032407358667280471781014658649588854555566881417216671149891328837469684480137625019016350630091784874473827198956739876883225897836696542702546828082334134493956964501394901653001789215327948371876327907901853392126459197156287766534420682336171105317944490901132735282721541809385800033420688960993477174420730069242289815551579780316627366695501055655214289173966519776813411351905686099926186548929802291570599712105252267097497265617949174190226791408781030531264118960616832141069933918606590359320555408584417639087113082006755174455199769775765528940266114759451543967874571446911527455953659497648719879496936111616755581300095023444459231331874726314462009210548221229687598525225043854674230332479612698015401205900573861223445415073113745626104081582333408479194089446440644750571740025076864522103231454882903332106112951522170855570744445800076525615904714811391985651350720802276669823071864589189086791896202253530798467837306376354970062359316662268603687401855840917539180353299911426013425051432783681691739774249012776053457809538672598291403011418077198759349240526830356821199142453556417901691209941853581988404616386724111876361367601782613107225942720490409245705896256377573573581755470528307464128789125998886592015485135857888266030053892451487510904156290438070605320701847575233463760225324060353448758660328040332880938732062337735418554062949011590599904729473708387589080960190914015263446741925944711804593827798220386007870148234262612192645428113352336284929422728117129032478003845136282002038946901679853554553043894756705198855165089241348404091198439568648394297111421615922342710206867875048216181143494220811964634414104464013943095571862650294622377655290353175043156479098801540179314795119554952711853102523822227316183641855620938513196311174537048646604754534246663182656033877032791494622941435005902822574109671619510813157336277153663985261093397578614633805135673512502269950179142587235128003676635635140373939318114986552883922812466561767416071143334661377752809837222217071624374401064125238103297156915443846657122501321120993594513715842483028029481861291159033733062635801032789897186807660248375859246459282429104997943735968291429308618274607418873327291756804255264934446365018048691019620700775768373340120915317250147997718942078964819582847137606835385632617158459929158464168377776977673392278670534758430439026336690824436642603090665831303475605825320584909878562465448428992197887659710623169039935343962497026440255600004536007690669615628991049685580364734208809111043585145289481333742768886460243539926976069684164180933886485520430712202932712060616325398570278311734563895023610967605145356573030947170661701363628504280527365109717372310830479626870931476544931387126247627183244364536755716658448506382056380154781499720235276370102875431163256963013659032233729266879628060043688015984678702197363159672713108904318068999146283223686951626041540824220985149562315469979161040755716813862234549982732778938702851413343862621083495464445514494132080330035430933455846363315692312610149334491052833919096668355941589178060649734337863133799119376318577008256207810230133921913368394762462491899924255249639147756380430800042443752549373192600661699158286857021395368510063231211107121161149404188564752180005045904198268777208805331293788059348628768861808989015221922743971949461662675256766624462256604906340191376982166737504135708112654955724996862722617722480671746384619957975392706518517946442272357751233791706313757002382332658767861794441536280049758433412662706371449317640314150164572164780486898586707369548800874987846288666650981762310588996112588356654219133112121120095768660379792994866960555427993877834580724301435367721599176105706676158128498952030727972394582970300923881728552443454836412014216995597418872179995684804402670081692563386383103193699395193344894354207740699794539047558655299665858864514177271343480220552571867533847497407129424407552587630801018479738839409928769620494055923246140625452497729787669580408058379567331647764061857789725098703213824812837806645016304541588096411377607982929574191613102989802157827580132376159258257858234890220536271264294860253171309574841096322425618436193365565293189135817950344395028785538447376554648455333912136287584990947466963406240513833198320961301515171383332004960840704719914896634694789493102248168688473080489411470925730084567993300472598192767302375568981173021344755719764773906626470854379337004960237824144690976719645280593974392857732187012893465121237043837166875800806279522780939506445234160231468723016943029393441078286816724178608928044861567829431991011662210221238106550088476675841835785738433098387053955418347899798962585518745524043191548493606079417282751615468921382025209491192538268724478942917509610853158650804568515051564285953751542120356448554480835463065360840807389967605797171807274063622692995405202211723523235292444981463246422770851575718967345254520406933055084425803055883059334444906762984526561792857273110266449558664633143549304215222876773797951799797110659975093871968781094390823943852300256762330292031196863075631991547557807924102981427998169236329737041232345895035236906878472939457497452863129075282761932976371598718279383607445558344156898842431223994208133650915541130597616374883365769167047696738372546910661472014890086849544876145571324367097743122078975715625740785793197727236396708012122172286612343300948503236771785161362518804770602963095110824871444913753064466456949426213447993425073611166419203625530368801975122306920975569981943927418228368447889521401174514291670527337546406555226606849839722135801831098897282110503036531871654060828329038545782589758564678142731758645029818492937913460218071255111898638663331352083596391486083853796893383229788737757198069745032548969620588053182268689877604530966894404753770392727032277771687964000082112568161406226556672486944717717411033696541333570847445848842721584251797160622864738945719840268696805730371454287002163658907078708150201560372615324759807952035182757046209641109009097928817462808822767394557801212229454948754045479641148465174573514102958310863659695967599509084200006120624635066753736621256055597242224290399136387781388261916813885278828111957502215606132067803051639215780909850790648546593202101196763705044727753232420796381340239877856831569390989418271321720186435979988137344697733433895419786965343435339098356909067021778338938758077719945464752095157193484168375666247394997153940138388826748074900950382464767293095175057133421641351893027553369190855940242382176012266437665706496349651766630503185154598800592135648920504298602969135221227408959875761500138548579559631841760581487887756228626655884462894157348850796929224888108976086322088566166880618017084127163362583395537094798478069841632748696909850388583983651326106332352147889328713463476537675264678949252762699788792250532120428290605948188961451246592761342175944591869753781725770320325116111536944938150309901414795307655724658562630364312784657897500426547546087697091959727377375093618343954680362738200459091106260967802836761950045772793101133377372163081972529257634112486970130017669701368619143837006887783395904303430705107024784829442532201243309405524537122711704233817770288038505027994788965501383700796263056895964448869784506795171054265053329071651789989735349483168893353052575500579561577339418708888867897619544000119741264040664344021129544245874554348297479437508801695905289634084905142812431091667505066545338853673929559085744327240656326334294088231829915669738436597195718639310822616576966215055666951457568679360027615480052681930410161376251929473456203609590608827082025261057883266425777579163114423168129242465329125517733413503990746027365098039679791590082659646346179465719308826004345504524798644302593207330206917099132700097488651637422433145561055000691485285212057875010064289098449278707437865197759843553466625473967278094290062648462237258962827963547593775156701320567801430815227335846299219358314016693802422336115878824611006255976714130513048994937996117454156551198632893719796432979831892352894508533808022701572669538479068154520275482790312223655774478345443943451525468064580422369297655805233750814203350343503827646475560498202907843933290208554925829761758493530828226868797953067532589572747532518999966018970263535147712130090058668790008088848492313108903831241645578466669401424024352949560523032991195789228044975500693235642948659460796000094969867140237344616671265283669109939575434318952065042240181240874551569078309483825926623455093134368270923296863841800709460407740614669427555466057396187754297176291006468161499763801381718524479418822263852549841808182322164508856954873888695690532584265274416560533165418793988388686097296929760648900515103973002260117517457318641947218294558991927428811616049760619674805158056245605689356795895648564605766464628000147010712638489088303917122051397985628620304312660634113707290334813883587027205323155030659819342129164144735825614931802025097707953661130757693980188706078656144494102407738154219487914304780325740427791087199798374837445845607507567185602973015619955933600529936891475676954869306903390721576859044996394357702464386285907911669390200295397829768572679116477734360261623274908552779206021672609341002042013616165470418634736239507117590078965222152506949830509413757483008125740712556655358177424480943665879231197009291895745966313637873049964854474690169022477238603589180651795982507772365910384471708556894830563934119965943816003398721978869434030233271890354619701732667534643059054022098853009412459393336586016929561122857062233297974990872561169031841876518360779185038860955983193879492478487251194856000215908349001694889612723779576406866590579036696583126923818966086492793762010053510012679485750923475476582791276516006299920282372196593613913495111498975814185839198011529350056342992435733803293194517795230701134354618555550465322838363853166923235963399614238122091231190535014633739937387325131237073142139658551317137495569780535148923793377844067516039466594458840475604579663709087620300479322627349679826895268339934825628344743161462200936368470664308711737461225981636455424310908727968521838578019774238123913859259686689289303301757571099486838084860900943688043501701794217700109762870697579208942989243209117728341008528294714022926160772490096320255063498840054823207079930409655592684811615629075701346690213279169578796971463052103890658790923053647719447772049038282089275169405025613134129382071754236764539614246509432652172863406858867793670909097912456751026996517572294862672870609539024727463820048869448368866634317265735961966245776349804219714633499153512109585399205677167849491772970315470530643426774095750466229564142338397802412550710056506823903852118946366952360723016253517908979095594890234155055840510799781252629223936173226835800412226556103165842019024313526600440633572747713423675713300389808963045892849188962134174061277604167950038815897784842574065195249922550982203071116364584726444440040357527656745008405462863320167911262977639282819314060149536250600643534228298744058573919508206071522242506695206392602356066435177004527185720075188355607532944237752563076215193587097226056470181801773845403622969036841921182147214309063044447684061365127550835120263809967490555291997658315833971529818570192225949199615582037799653414052039874102851342705981912673488505702966893424816390680278705272557869734637771381568537058386072569067390677734824210706869480186222559738328231196723946265627055317510158368366546911518220499633700342772524895724606270646884913310909199272551819134167275152379814526045779229018441835863475682660325727632663659354780698203554936870669283826577481059632141058032584817664446701372465676876954374807015843966521671150305992188331622314278318821160440514296533255283242172776034009627183675455363108123420752210922748192312952056282309493290316103985137418594833763522634786626119213703538374771606026055035464746192692749222031079142072961358500437613900262627391497797305676458041044734141528860556161318039818814370502772474904400913263133143462442967750475074332524402763411775094889657200503941307238405061513655420482863896994189990665064271643977338202773973438278229608909433607119197889596563734169826996148256250302890617854133162021101230593274169285383355727516435046960167541828489362927219481080927540486515704293236047361878112470161099075587214037723004129489829825839402110357328738688031347262252524297097458337262979492223163077150741854017776880596371801778077828285075327672635491096186400246388216334258786165966688120575126975056282962961515673335319363178520479376687302053238489103977309480770495028254754591307514280376241419079351493080435532497095344363771938244131726814517511148698314508173935126150574567347381993215081925163710842444722535186624348413445198404940516812261800618677057509162233569651033663613348982261817269234106002057862568077139824636978083491469246503701678801521024143783954126790443829416992649108629519326783945186564279817637520438289074371073485405870841965364248172986175302512316301064823200800219419872687425962207342375341891959291690866389527065269074659825262650371851912784494380040488505167752960559550089510342852633458224377684220608135171765477375823915012766131156583559615341258105349334048306856506084865312611449791920226635695821218802371915864217583822641198848781610924793768190245891254657002582815419221675625169558668996556879292680340091771231160105013744360224668123202620091925260161514964429640883037605214846928319766726685821382198984723926790132157092188617992346193952566021365415461685058154489498792280263288444437428023587979396787963747753310611569292986854155442908782855898820593145030145455277376192062833329841065354922780551046072619419018465483293035885121788582037807722591018342992773839065298781414486727623618513062261741246184189614923779677705177848742107853658215946289013703510201203304261775783693329401224169633568980839828833088162759980387978602299082390468423945732659480537619896438349473081354003846906699658585870458184626795822602879830069046484208340479441910704691897572391228824505356199784340257014873548867547341387664006556263769555003161300238803832420344197485600766008417786017497469282494637850090837265823805216964038971037558762859552370328703164580998702257184363123354151105107965580037866801992114027837122574714441397428810988016922578428395001112573930201660912395711128292730898752421248472566422977571534118958545791510298058402306075783232397489188346160628911944113117265791155979633387045937282319012457839703606247758809594765502856659196705545187685218422255501924786938752715653272718051255897464564964602043628766250900333063929936109851629856487283441151829563202976528136990749095858696713982877714135787935493533037711753368278412351727627187252380370626031272616834880300500118467310373764549849049170279096722234656678097218156487065412445516992670410412914221281805655498515187009150665108432192739483192699524516865567260478161862411533282408707687428681422108976298047548701799796965132668059309665168454421436257201083982025914677652182276857591161925229946940842632129201082104224634855950100789271970652229027975838896974017804302722963880750805308953237563216495273741396101880462388862799806828697470348092917682000548901664626757578269736386427224773464724192964734857179560773825345203626876921146526547484427154720815180288896386043103512240345407462342502890704821266222746792555856758981776993486633335976774204871101324533342375036449395127585524321367531047695505126026821646229407987396896119903188455343983803270260665185932952021911659581114243968796860448883784424688051002913909663311019628232054152047054669574922705109238391446048330277167011231256792429082609813162569345528135242246799080058359884962332278058780277289172876329006748192123210657352004638395017093465178926309590013810637352808153016071729912600723447968983197359743012702120720046356091401883193722676880378185110566082157797270254693880137917352083229514921397797852049483313633457334920351143502323954797273409727342140513566630671909261361187380722205788892494339470801332260650141181198404397024436591310904213693782086669355139225840418695991606430666434750688130640018475782179992977697534428799294431194459551423127751995951390745621456381497707814890502853477793951784237545545811797924943428717525590340210792808276720920089290269621370152335283294425038886366238616616652285265109083713720983623989721079124555832076882833631524999816713308795178559351772065424826519706233275678359863220479292028004924422019642240902980152888317423410584068501655346551029441069582794262480500119361817777640970002131335062710190624387735588119734173332662985096752647571517232592599088656112722748962732024806269099231305938684760857786675668008985683543037861086545993920470319499067500370015048727931797550997122621516410181449342278774600774674596616710716471696007409239005961323124505797016964656144066708628529334576838834939729932861122013951626350097272743916036728683319459900073815951374721242307390778230191110915137439509115897167728514136943254214984941922332862336266272162966230921817387632087470604369338072422233162409821731688113554821543463938235413514365902184134641988594785198729780917713092566096078463231422085951432836102842972534124278439250393035916083343167452454191760056235689945442272165706463007701483627117503481562891313514011949577451541131803273618864690293203833161859252935670355272923224250417400464540468454647739112481214320918363861770032617023721900061587976257089762437280606239353547910790914080802442040091206022270545050976220963193992498154959195573376034116925967104403105500653560031822969918799105477247499048881525168418042703991749808567096864664723259982925339653840662849427993758718236551103675317234268100571802522100288315115259461681821557937473899110625451438701096671996775698483852083641424418005929731638961615163626282549630768850264017130639295962660098344152763064514387705914264305809386838672996619127118918218240217280909323124907028244636766032033350264549749767442069819873425930472128344196216401169662056860641893529831432779009905319246596055066547825303010957304280729772181978628414041860249163169652673859108250555256420481913968395728892807204851837913768375313048365151033741221057514079114512757142982468230526608454963631308108797244619818501450624549713066225769891404088081643748683723450557086160398007833570218721500615687373753788905434567355564203756267571437987005821512470896868485613213458334446882761670028900813813857797820455225458749510919009312352272233852348168301026040774421648898823607106982918719680637234964087712309773871576395049790765167241968067208473513419569166859401382745412112979469680294618606736697346771778754859125912140999943596191328585938568486080073799576743353565279111693850520540664016823198488491787348747098797909163215235495685388255594125221649994518143895111621760475321101163641228198212943391450675405364160875930846015596259089436057942990333304291593215459256545873097992802997863248713702283810516759724848941805718686714648890349647165423953725309582653648631575030384219659328566779983189803414581377003540656876153626234790667869668030347512555988767256408270905847579619082125629847990473021809402820608329976845699658146288511553730657515905080349679555490803529599764276902978343418090634696509606649904110958580734340239783798339431334129370269578058098996609008145642040162478808751947514592823737771959091742276512134915006618494678057254156023489611614799130832909460765395232815150967178237906426001265384324299731361405045580146154378678223832644626342896007893142481321315778636964069161764438014779957780743498825130025076040273792012421552543968463191182027023055759310638580377819142133593290486990827062542614763044217871749688714144073370687368234609899740208676819530878160923070834122680625875256432857102791658807277743346444592251727455738473351938994824481243386374435519823213807563944111941607475165607108875702092382166196258036302351020484806267864970454843191936617963679716523206951968661495198584823448917791845292011491339468530969341303219699392106378195291851283721717053779725595938092503756001513391175143791168509248209166385989916015826201127951288787067934763578059449225372457742178042602756909522236577437065825786758911723098159791564455885553316921330997307460017850541648930629874698849619041779990438928734059845461944573382679101726599006991723357037779231923373806034597663215760103351032116724737567395043451562284759737371712067497850477438959696143296121274743722254325382896431510231321943120318993622574936731997561468643466662428991149396792865483897470681803177780541243203404363712396918475297948447560413955347310198198587031582897463327424650352360008779489605894164159041721553894891692589014335297784271985504471185609348158243723791055042205796653899073035298507848289706857126368918524662981514958711787647374239107287314115968536219198555462235107524094517752598492872360719547759791810665988016991413532891151962594336297605621727284390874606025647820739658995034117499027283418144962455828395083370513794959251161341389828082447828785255856664765911928264563855372029502616598688672031891435459191788058093123534255436981767330951282193728162365680508185762680708213355232734084070552008904862343713599018065496285585373499528079971830657627932353076785470642003232582475620300777928639989821084737778534127212273872204961383052298754021772934409136173815309499631488095691826600131962937809681628063435725223553049071143988615446635741749301131134674874101299421307420994199027868928193882613834047525445741588549416547939265548042245072557228700666523910315962137500484323796379198732530045510816394521319313824993311104704741570209514566700679607281538327204196266407145787820303006483551399905576539969370700606475201215765588966229469860735772577910411968413247994238580715682791644063937159663664809782897548830298795426535564623903336888431547532871676873630475564436621277112383605932202799419817930710152612936623038390850999945145054570919878545032896738864827548914303998116596154094871507544119565529075958880403713823215389292178126211883548107626311890119874768144231841189369798889910107458397023374986622091218572062054933730449324523199016201459810576815865221565777632983527245033781386868435867439405969529773489372697049166885743643972756365175461838501931269322375141237152665609986018173765712215863236029061013876207206699085658479681310732218586450552197870029001817703144136648178518739274606780548348046883902020224605771888607294899673493844128114394814660829729733440144446868162244296431845164585738888066038185215692821474029757074707081255713971346606302764289251986423425926365279489293673209234852435681853428131478123203142799103043295755231669885570005509718790742599881104464950945235838078095545111594941884357993288479251715090270409191096243890948550439910090509077474207530473065441103219356878617728776422592892690017529616030331337863362680864133968473204786523919563563288706313604036174714169202942003131269104481306300520841900744655688027567148567088412109967196863089631427708902114241260035987546571203846823597994171340417386697666831102076595365233141807813433424873911721132225131273938795539175999722908550310309966985253887938779012536820628468613660409712191447302805834701512365255762438048139503350136244354834071071735687799090544933900428467713840481805196670322547951715508042133417464290022364176424515332184315522602913234275345896482434668779108266614381698304323036485216665314598199697548668050395027033424216290896094409998454124911037908117410771921654530052049129304673819841188697698978866853656271806279077467200907626912120241792264708041670246548680995547562243341500182517737116734513019077811451321157970259860046018230988772606509806889122534734839263133916234260808963637375610704982753980494142363140087970587921931393429100378076800943006124587961834325030108437067292123140609449862441643135635664484342958552829129529679719596438432599179337367301557457590504482726836008500688015091512263316245831193963649952832081608840691532065401523006439047227891551776455121301741953257676604610606811525840794232617258071042675595553033694636235553516429912531304296964927985330279729093757193332185841512262366171554193068509022204432816190605883280994922398299996483693522509647288695654917043573670117919708949529311229739498596704405766427341839347978824304119561158378392902702542423280186747398288790377463897263069867228750098154338266697918142070414784862529048237946107938157681230776679485416056080129701849272343109466997379463045455847227065093963597146582349618565578839013859707726921960722056898591052319714990230168387552017435553412883582126509283758407262261136127714462299204022903496264415885243039144254261949468042530566609392871384882258349507928782822351572674213993614411950102898083163113064148197107255818985846977559414279852817471812159559840043457511113172512505379520756299822175114904580948417406052426715319280945592485776814526468195722463504370218742611503017149713439926985514387685673964807418470834999855552736554716415981680985639762695489188357890179835345681955409738521433332479757012332098977496939354951886028400077259796152791769471506238159257253611122108602099470926415552244340276148224324833509444819587297679398232541166436622695878649762841618582313490284943478123192878321766078080193435154264098091812762320950760533634822209931710099839196140699577103246934552623388100973031910874237779331817767445446592426029479323947354427654612081633752774958411621833465874092267796296534054333974347012855596986551079070291858875087165277299134819358680550303865502368649925631569899900420757613984443931483984745067609790116477220737902087560184661969146675539846263333279807515778223033835959094027740527836121451758300877944153173872963815212097353854840232541856163424210730295123048923824351440010617111076252859801255440743141317375453543150227950451442002961631630937204192408981759463057474849326050576385551013669113512031582770711202802099429676187492404419982531868891404087687547170986217245655697543341524725934425977267624643630800199576317275082903758940744892301557967405861425945398362783254634359745629473019693576402070256130103382919123032473743439299774343787744299363988764478753180170858583149690534447948245330059445070637674617663265750256204480444614673134375789295757525859843564262664944058919872135410412076713358626848552124402118819291383011217843775046836955236177236310863232751928042123443442016202068020873056544815704899466587514850900150744941594103487248730864926772914448384235602178501596788772888795968460729793651337012262450132674646863565843745495958561046301126193699060579633487959812390369820356126828574830938923289690891001461326865172663989827934794214490174677337462192843444575306832579502475685620261062925961120035769947311341469102704255438636911758650726345872639634562521120141096031637216739547765578925286823976871152884060782752954617311821290341903453149782870507391570788272578011867630355179915256376469155105182992659800932388820109049062836263368675876557159842407181977862319005081964094940784507483155760577330824750043425418361345398622395111152318364656625226758970777944347597069390212152320866629070419316280007403640599207288275418737791127706033293478801588072681102760150776428139774754920563799476499360013393415348752507011921475369968243208994437653637617968907153030573327563802148117466944679513418757243288862533357795979368839401583598879150664839145338523048341374061370009691094868315015114348780681139983522134252732040747921451719188671760943084250037244644291668728915423528075237184778867590971556984121194184591975129304796633090345277549497566689650932128567145353132615930606950683685245046779256959933863750207670053887848077561841050870334878644117125406196537922025647559753769878422893141217382527073741067489822543076730218708259437738858206491924753244500379289228184030877006891067003316689295829869374566083264676866914491341047266542409625955589255876184260399874381261322403952687578577140725082946259016869579987606727987301264682245825443883196140565839633629117863953628833734617319252608936694127899081301389278550974848229347998670825965509266495864407699393256741037835969551550569300080311550566911590601221728562755761745722951195317404618474697802663568789589738621606391214980764769674133050930153644090226433661877835469994207714069077567362126454001002367897400482814336698346307216030604708531295773764759359364718644824208211545906090047263205169191286822038487641321708611571266213558826705264067113341656102144218585500535278754378796816020149167695968468974971885045513501066776499379264938342804849623216980442239914109149960560303836662986221156383299319115806799607615809561005546469977649577115491785630545729390695351002148626642197519422748147544388305115087865077851281580515101595584624433557302073847983217585026463934266465239794216526461778543593698457912990227047144759791777713077124330997248835489324419731109559873856495529571868932726382079972243906100455377382236656600453209864281251060444258901235395656398132535420914505218792829761074305858572960587961515518452997477902276721741594239273057709999645688106022040632020586644620652168316851825081991923313499289733737293207660027462904715656517986926105222361146705160615168237697012935647237557104553574168679147976964445093546362375859035463505749836719504975758327125300030197883002665988002488439018876088197989747246382149056962482118981001682031023245089781392980907601881151347600070896058615123743776500064147166874485268272094584297289523335031142338947562169113651818704472534562763449911543267082319850614126041627759278786161527375289170644667371938045966883243427000502645756039725089010591842965511524873577638863437495077075385566420059124570431044590296787512784197909988526959604525167881817484366401883902962507439969679268202779027344531225586216455277282289306450158175407243024941768967663521622870361320654464042023248724418212025707599366783959113831461223222901462716017201198075594778428260672268305727171397852465328593208901894803973769392122636484628654731883751223293949290428178753948775604285435312326518211712918116025369479696360926625673967877789992097005316318907873032230196044262133811676496478872885576665910276328650122091756556886463566253611568544788864106547416196958662018588292143403876753564915699126784850864419582268013854836072832803435102225311848777898277432372277194756853261273380135812193761864330810272476009310000684035607774062998414186706103961338192924888451512158090192889759160671420769851864061872108770260718232869890385093264634328970246999293579768102381021579621017757233189581686335145348600297795280285689180642145798736547908273226015500409994679702343963766682412614156694544137904650641106313363961087478703614500468033653415586156906373914894049108416769630353562534593273272265128964224464931616345317471853608969123637382725872160675221291686528834016674735963695070320734419673430191128505801505598480220924832018844846575519339640282936250772976466684722951531759243981381809630655024474628934305116415592279919597109467697287488923606909669057367664684666106745411037313585327828174012508237282682713806573115938761809627363311865809260611567980850346113566658641135084399118361200640729736674472461325834616889392801270140894170280026590118923125427043609691301611496493375126024922960428006159269712653049213559031985145966880482688454191772542296473253811606352818247029494244095001171060847324544774425907002773016469043567258532510510150371286524054409916288766918398492121296810462393877252552335857003120872707005418934135697620680429279624814662392314787896445771775805654354309378758991266967066444316680746482477101359486304984593272427363597875690365120725282016236203133806884372922017843079845374885392031476943643625227065040438350395297634335075671549143989440168976366169459497545485845312297538171215320133419426425727836962781001152086005831422390832269149796968545343792741441897843508665205649112572639206749545603631968362709570058058386378433820513270910265421460273184073743198916996498934395719009085506773165454782716861505601688353547136557210781389597063954843132321475636248405673791306853149578305597950681750604751288456450222726246688571759657762132876682412986685731908873394012911929176747912462383534543916328980396431240042193061119564567737033950039086791225622223581514520756817316909185652834306090089278087951679972220388368141730948906663437824785132337372450795041558382659784920313206543426591184602685744637439555375673997446038682650912975598850276786769135392436552699657070607445728228376543005688170869122103072492582244065943254970047605006393933001905676263936114830873074312015374721259781050727999752080545609320044587261138687790607840052821157344056028941817366514233354975609754023207789864802989285439026417700941903968563943478380492340178150843922583340525304702510198519069510550992511828120008127026764307729972607547242987883606733453166468777908235701027141060313972965180964276270353226087279078957760262255963586057516588553701258782359560371076207304001379336431712200538785248123842219447911526935791993050456352278359835046430153085664720024172259059272839601725906295529132112556409848223490445894136444889970152988427768391242803252339172584565743244449063058422344006664080816929178990166602623642386588022480415019604335424788507412528780074984752251563613756748883821937416630503067836305244578326245190866647090142790587331145448144573741299112832802455409793099018433702214063060384375550959548492258843782754082387108873722639801488706422914199778439447041769679234762442159521665096754249357492650830740196390925045892787506895118092591503434662110240756109884678957273567672018383547947875306050814143747914775766704045201856528010514783757671009977237166490406540835643440695395787993558812698349481456359403696925879321431374647987111912988992070274397763232353157309441841306016709837551549438732688020711510020526988563535375841737977362890838742497094494188550168561397112016956645507986717569856055196622837382047984693435419074304257823940917038162201894960429178466676093942626317889794719724585890943536308443983758708405854972256797402765915085718178221885686557298432187481185771450615625259310818852050736592702731467327518536823662368112170998716857259008474008454164899129629406996135430089688334058592162948316360941057300725048566156087146876209115715729642797272939160630723318991212864765136325929449726431844153003430819864727493586346929515737299517053888432215335353814182707659072264049246035251252350504039649828923207810898355128099553249043960637850311659139725896049999963570299268817696302345556373605788933139563171596545868542323150829477352909683801470465247259105873672478056518082765867438753622080081466947606913308776422581412169161253097912539699270973500948022339066627241546690704171888012961941740822157127955699558512809853669224318247887807399953271280466394455508831719644574482204014634228776890577226158823425590888025737504001584606325951039755393731172027971301962837707136131865696435007346142745502009358414118126973859539731478659395371742224071526343098146683001374255641841562309100927220782875157193207076613925117565872583165018339913336510094508503679276252399123124744937926433710211243650126925786851998970686551284878658615168333675148917605868281372474933212061045885614724948489738344309551232990261645265903137199261759041837616014225085947340745047912802803937085270129873792395328826476820830056886024725185212701602514975310305064557150808750946468836482798255891815042077709091921902098900394773094799341549276947692895076453740797214555832759492780330291457176908717733795913500493399446683922937114150479493988615846986278543879512367193230507101099140497079615277798416639532459745965736061494570894004805872130825431902630512130443381880558964537783733266806940094927532195987421905997968444593510719741834553688699407288029627690631616021342452474990416608177244847083763130572494169393313379804521990496214842244317397409569775679776890782074439574763962617045248976096060982572716267818602152202890959711363309775540760945144561014282592297784490350141102044916317164244222877669820013467001487402049611357065264728942012066744887697024950502231251465618518117228920135940419045657032558880303903466219829867668172495935696731367086599185831571384439647767660596137686544577091977843703387905215203321157923665520322115633392389146874948288754512970919132878042593834636549080157962889581581007460788306923948279843723246678376239718306146951192899215576558674111955046476737047080452504762864643361635634068410605568458925827982175750483138583566157702858360605798502323146746699138286039980799376625373209008159961104617307004636113815932655643010621940667014601113103349509092440412091466103909848084475483273088939510789505849169114622352630288053917631109608092006967116015433025798903745775759309046462793077877364614136201244588030849503631424281891926199710021856990846898624625419443842576030562970618534760927739606180762493036449003850017376923552469874030850856587716369003010516695545356949883334645606458197495948338392850573588993206447399722042440092307566889003352729345206107864796632227396752043489359832609001869814938767073063629384568585171023828071219472587466050416729592724024347258661276244353903172848258293510860561232610917052339197191371186186885906038179061226258858134874368041315887017107239367887479056167526378193590346280743381464589723037540381514480577906601816758113645930064633178935956824373580098646009251901224878569017883063475405809984632620115370819704099968229004769508137154347538927170080027070563512483605838820979806301676403480098594494392045267794515051050850414522622548873671760610204567350372822063337276771448782520422561003967350085707583731011783945526513927913519457328517977503028659105234814638221863970515685620008599217348230425366842985100972544587591278038548948720403698656125522313198309179633261198756576090054114608966789276254936406649673347647809492660941518186218838914045171935006853761744230317042989356149668205570768148285805547484472677538446588126261059231225548287910410552892854094912292392945966127768344970462831748203768449343646928103439110610438137235110485775782662746037082415117644672845478539832841019727783216665338360493363127870504309147208332915961015360056496505248898755301511815781204252093354691346666097083616263364851643973914547125460048546153063343956815776061067290791808602615398981883950450149493672611066921030026096793916990902840583320440364424642631695781361599423161687996338281643093670866959442094270538794663671567824964890148398425538283852138536781053312173500989769229485299102682481448448415546378600756180841954186364339415157205436582198668367090087419930838595281550537763845845654134526357221868214928013784029561917549796584391878446950249523750883943679323774206227502103795412822359291926958617185075773080591476800860021969072059361308538632816519142742391922948020364196658364731718739542759240904144456943421304512035189577745818426154577611790373560058583913282945894333421257064975572434261071762355051181452339722757676410370200722016178222764323951457604469058872387138522714462019382976198758110074876587063496966963372629623687137886248005171172327494222614145486463887584774945825127694524105928844566684680333828407185476406379515410396127307509046830782967377618144008096070527906844952463045221522788452048296162025593910216442997566767590962912282788113108881809961783910922929553101494423804806549543103850648353774030027977544989880939777839253455548374223380796315017196456123225352222706012947817807295602544425412642075860522269243275246163950253430504967541459343224210939245349814879985900256904204605970287125239682894366179932891354429139905714485280352527546433109519224440107049852550336239801680317078782272174147383599446405775073392883970008549528384086216014001808066299151154772085103671066613845466704583962447736552788210389527897313086012871306726517547633397208589395313134433803250370785133696398411833748095211596794335948599382582128730790629948909311437778396312613112079890430044241784406189287691706440321228838139124144757571035849105578673435495264317540218673587486271365367562320410707721223346639858833816626440240161397061428998733048005535929392636086724491747307863419103281036624971681432354116216123406467348105167894326914839036414477026985566694757453732178072736223037935656274185825505895280408330884888899410701507652209205317708025361886279942765344025188010735974115720176262027441848630592321972003952216259553590355595525992194524830534573141065310146163116655380156444866400663116163169797103344175356219912771308360738785183625685676253799114306511828669243739789220100677983170616230134368904927913102749828652754958360012593265140289979538701593890376394129080930402246905137999902102543736388040635273567591470017800660277989438028145103206984895973354508195402213164814619529652013593326952374327747686479041924762123386537760752273299927308506445069691640349549774361904087023625968787683501772578886149247311245637132043503687768374443765420359161857027747480644474051218133213633663896550907974900146539304376524477078133514410341333401463213202328878241115684222550371417673451014007762357400135093072428809210733994018527182794573168241182695294082352643230392720631212421354082934434176907435659525015864550306647284379984096116345289971243426443765423503236121559936038827830474735709811193554083120106864229630358377364111499178097547839902546069981454755569524139802170717694925673713838437785400698753659375440898151775114657431130610674132673877421761626766526123823951061696133815905545843081870780151930408021337347769933437337036415469039324013264227484662431691407213664073342833748870119770731668680755628909445375439013191030929839063053287623331085296857052774676734269253752631009908939875486303557680234133736751661034318814176252877710587488249052477288558753266929849467021817872058551273029021671584931352014359938354686477704532754054692724126685017629350263183450036558096840504358197114203682968049542541845214692102849893688329488118574931612685012977682220898036769673717274943799323467349257698395929503573909020857368035143240672629865216883580770244529712367490749394759090939155871472004085060710674820149694802785876790036473170381922464761700134356084643149165748332508726513875745893338906788797668667234380390267844088939372801429041096231814610857149755798817752885231931910509208955362998633438527986515706019564808618605462905143127025079973983089187763961236806103086660588865538894519434351032022830458161184317366585667121628649469326676672326450080105117342421402842839918422482121541278028895601870698294091870918060514082601585085510831126096039882730004506698534459398070506612529182147042676087432147422990754009500761907855938406332954634344584366857944906286225194111927028736676768912346863781157127594260296845857250372840749029397174648089288032006980673077455065146002809944541016937611677254348270053116147352569590515921632263497944239958380456306314628485937962981850800031540252503607368071127173158758561354429348205210207868844524565347517388687248148720286229089398028880706847172789715235205528336422576373339564177116879146160757068435979968733431830287024309245177665896790412981193800416307953139023462842782909896819828752133995086106034617040259655308979593534499357760136067828297626927183914620307460475162465378450389992850069311884486703613202996683099569357045479706072887829575487528415126768535857780495146097917697334016180671374044748418419989770810933632882092045039649327024138187388643128342887611476009885233752908965566325860467765608890311588816706475244454777416058726962775653057174041980162106960301057537073629439574389719753301008986767577179881092423242138662444741286717232189139140455129670124067019661734172059444567907709859697659382062614347675877053562963074443230573970776152254429643974680151705348827216547573439145737097702526141625280575458474638015196698500956472626493730596840224796353360740892890173903825638533593647349663340428885345589065767277564112127104405596860383185959067268448207225508095002780715675723748760585681652546226559826847229313662460261589553772042444819527682186452328263605979184473430927048809654431491943880899473923303309906342900311662024540912720992551950636351299990862655599821768818553547535815024165486426003972442176688377106479762299543164237864264271437566113020344749251633069282795590965422585235982686821672934853572175025047455392897812189465602574095276691134009597860502155540355680842917272038107467545013984941760432063487146119237272402981997994290464718650508036613816569526760130442633544846441740000363790640722351976842795790871520933492186325457512217884415255874714222785035398508895919537684397697839339737550327293508460017656198838090864812492117815557214379764776886723449001394414755948089002357271776119688818570398237218017603700282604027942347153760077517636105498921985079351140172860804258085466063225024920678931125915355024922588888453097913565400121166044459836932624047184639577994800676217368180468958791635042439845066108722814447411360437622192404117833438761141490499681532036773834401169353001328338157115540084414683403761824622243417628416202100641192997598106825115993158383843681284538679143854619383172794414430319363229068209822854319020822228321253121458884050196220863746182563650775197202661357143712604010536588657835825133082371051140840836020096992169347341885748317698130136920413042289550333372544273989210828344202067788032912544968337348172022061220753923318553676691202357642450651628882777674129552573471196901888710060002381073610258412444192942709790673017714909783927890401103011458670297121787173093444628196813955331751360197313719681251050264255517899942494538635457171714245151218004400042723305076826068657878546788655652478283792324037889504814926084577623338306750964686753165466235688644886750870334500152434126176028202187961755150078960720042643355343076072118979770070614777522024261488231238095900877314221202240147803629523992985154736266309124068384954024578584147116396366079916435136264702168766512988492902626842223437370764505433361870847163795442569017961697089318617458104430349230834413588890574903883377370571796207773482183771582331749993183707318070120574456041289475637836134520068392207087584641205434775939858228512666092308877470920290740536770480626060073402672341390699848731779906840009205934181440125063814668692367454541461369547319968756147721775085458674165849194040191389224388565167495634248585124529137758660518975552849725806529387128698674900864312938059445333916530495526830374632759075606786554723042747201531316564247294008087662508273719578519940776165710976891050946249374918592889946379706962011557155962928422034689549198821330425791581454818714726703588754167767259869340861626306828084079513659576812482502940132572360941712303442623313334921604847029080839326848085236091291971986588387112101032006871293789678688798108699913823261950031959667698121079401967135757178624757094139100590585414954114480073542458901856019666878786293791821429363941344685594381634272209988191445607289529686466972760623018288986872532218998805115902152171533560996146691433315753971173142014953520582466795542727154716507432146765974035531575037183242241791807993624892849178628393859657788480437621888388348597954975036765697178016249666125184062604610646160140101638877598585555071376902431017861842201519647056987233239056302849712657047605116654204950504583451948067131138564079087523593766499039234972475019198908350082063150978122036539220741179446733719306921875396887722461511832205263151697468534748037834467168966300292370403084686853264675557587046398235022992927249073500588637243007207506539800061148255271213482687139612122483841099404641777164826053703023149255908162724575526634871245412624720739210865012666759350511742948387722286071879815386851177130132741877831703861108888200420129372172880690829415767616654447058152246589268214249698359913848878340507390907638616833011983052871921159159020424295290995531508525904524908960973099771062984616669053748341457033258932992752350305255268857056664307070237373436242417031951848408470077882095374937959335336529608770479164056281953403916215289868805335587469803268628161055132801052021027661926269973284445387342955288981079182813655548713211330300885128550105021697496086715121559416977135029753813999076845322185320841072781586542537002082032608978874457691303345593807225946638452690593965423451825064757569443349972014085731037885736342554600799559616360313630897909984954884979378751161881639624167393634431570866215821152134793328843310617938028749959828093692343807204310069912788527196225346039024783540508384285143959629994971940918632314204757036403674481405098092622430596725051563492437009312052107946016908185247796661835441353342603634420871774351914138406631828974131117880535147616971639381409070626191522352838953738163032902345894602049668875628393428296302470057493389958893053509435718161940671652021545175095860521126212256723435406520737717260454630020713119352871048163628456561779195515789518210435053132623795633238242661680909349291881292518157725007685891411369125479633747953829154879872148558519481166107094000813446290283439368481619859527948082344586706634423560917733627775051683733536872522707649738047325988202437914315307619074270926729291952467802740137656594716016455377677970409023728407920882186711308186726144504375061804481486380729161734194258515085335794190725790616844174799081786302148840068733024133057160040630334694535616310693888261836529639650481248674873292247200066786355710082927971272583555181903166067868418449538072356905477199162216095540867218195190904197852723811137353440685901253230526939327364049696016566653027368182052053533687075841752309583488656191084798432483875999075209176355820005394990980556657419125208564747279258660877990509449805686740178295378194207519000185543643154360289737596606562388426776010009977602023710786541418187760933565050552073415432170575240139560118207224346641349716301501570512404434539637603899552180615473103645960812299452083809458182756377863026630773378455431579545936449054526921527381592356869103847134786970653381668360599851281810149079556736997926757688418009333793925332360634077502668461397503676856919516140289752590888569185571506239757705705203696520353643918370811838329613648746251072692336759568645078362019795870625478131379156438151223428729333483287127692706980600891870370317040015092603040378914738155368765282974533958318074927184511607165739110517411820657695757098992364094310357032819256444328054020443374230179252109252586261694310621962435099392159452955414185430648218515633192707758806438721557592794717884773547436576447012654107258828579290791684596245722124159234246560204562828240759825888173273942554103723763508071457407074710993458220959308847605004535762179621244027473366104865174215124329708497564023266886495397167439059384683036294735795003004525969380658861205726281382753284741511067749296719559148597845110549522938126547423088833312327782792550141767629234167471304518752058214121263308354992672899904731614363465296455414584737248343933001321181119095119776736665157155812858439576915520354998544841226942201406881467664186259949136571163308826713457862201237886599523389694872220423605546326960587212080197882281302491799682316170548535696386814710420690925981646159591589264749043776405663984549596763661551104285161152538072819381196922426869801777830863428651066442359622347288537024886980853828324250492937735812693723944870751429155187925840805731288780363437999412773178425669866613792049153390530376947085982930947455217002535079287144396764640480181357736509572994514089650285892913425317418532788168148084909750247471787593507616374798888650133880147975325573275307443560155093507224842091290173091066005072260497858087909475336164488558055613694271171474622969841790819923162207264455229799019180227462404220353150422311145917168428285497597393235174461248630814920818108052400044133312683709331532938847692182279206823154729959748616768387924984122890695614803601954162191480494199381674968155363232730128201916101959404121341551980189235944485604727373327652214737183000263440029311832667308209238503819287636449456874669825449205101284226240974298027226222556830042462695456065266471217133031916294954692482387394538349541018309403147432863165812983881819971916524197964405497369471968945036575572152414689342502677199789526467236378498619285824976515486515251979916397021780424940288578786281106735252070333908414748368772699290914307147147205362033457398084018224261701960051025393170035701251758138126162996576256406872345886569152895037154771708182153950063628215796361994479555255755025776250046886024152445649743463268772296075443334141029506150883627016663894457410953231914351906709649255669750509706868453907304283208676823362553494765717359511789184455578980387782691511365536332839443129349515613629957063026223116180019685795031137544653048108485371064228606331007658485175047727962581743301298631820032930138051988204886687419073083269446203182617497418911295853438762689943357953779046671493357721695568187385902886037403798676584530637444530698759443619408201148808294980400394019202036082467785972837354820266934952202505290851173661389934805221385002033148823515017240570104973245580182667206323939212811702302479693563211992172783899028021819184600451543525129287719706179605270769425532164026486111877661183008313774371234621931738259102836173197617930923799224326595749896425179359566314521399343925499224984717809149420360020031210356855105334347356536580759673355854491623286908305936369206047931829878754624096157593565189214053772664027056228393732945699140879751552608619723430269301814617144336942391190253478654483100205029629262418305846601774164369465475812827364009443221300603516859415767780397375060369943984097823326558180411784733723198517278692600566897759612408144214987358429515092755264849651132818012940689812322484233571949359382391157095252235093645522207042901452375033965841483231005744447640239346880409497167486537844923475375265343609694082029758596774707783066643658144271232227294129392305904972404683184122075453090682527590024570404890104424954230020434316716630080333105861593238827008565396743958419638292314899952777916330345869277701346778520197275138937095273352051955701329713839822979753138518211242339587925140119395395827078541436182690238122519347196403960972842143092764276146466350706422425362114509111804868640592722794514071447760510237141867623949217039798486702649902636576915421530486407464101977173116508703603212053846980425356039408559377342383182044426286685488322611553066449677711292819356910567215181635282066346398477117313568634460252223369467197867005061748123603527097594443152659398183116086885388405737052823252099880389503719381618410152050604586479481577676289591722771768101920682928776462815047726856875039438236142276850570650943655619744246880328315058947827347169389073123151931446191166164040198722714493678714503136203302808558648110938625163282126704639737644554565116977678026629353101128303163260169143827250134870948961915805230853044946952378078277969434995194584241939359967780807830272385722599035835339694391051977455935171314000328740933104117894511094113572594397034358560946388876129283617031788267050239816610255037818442204354431870649289673167276841210819166308555461082157643158259599052152526980571966660453042969201427699841951096636872001508329179970043184990880980273276225266646605010260089940603082272339898487770671410837910571714332672194343515409525371330624689793278614106633025462997295415157548981882926652953481329613010775253920701621656053305787089644118896058704837254930082061820230335971016808139566608493324103416540483572815833041372973863342101240513979539701776163037773094570019725816451872596471220482830801076139633528379186487477469411325173083889187265067965606446072473112144608884692267520789136749508718518447791256923185601097475576278046485704807917595397681524921173013140999271701404240739325453636737458599682500054002977254482351303956705990128944222252340764472961629919380627577272750255854701365702363518489809164060822092083673010689546343927164303710899161591024395102513571523572046569273402392629030166806485100403816203089489887716878380977073524242046568974994717943719891172313924272571796596436489827675601115853551302390028741580855904967951071922882801909295777608879371634867482846337356028518994360567627969297102230252655762621350792217510461331650597553812890290788412806380447123997319289485325767733165307809192361475823175573342033863659171718257766462112271349696921854451568082617660876496145041148649122349095694999555626543749570047623187906652146805752448433749561418668908275804751119578796864627691083219616478245105666338781773842045893561047554679705796852304240226272155129715867638628491132162038232900692924024104706488938454221739909134119062976744012913591384717230059597436819910418209312563820202333575575631243457744575753832312983347104214155349216391582688614535837932175396442474359742023265962193258232676373179003822423474140304763396159023150403019567576055974293936094628542842938706282868556221854122463019212664421009613219979108242300390038186966271092233645455594183203101197682934876075529234324662230267931982386023118558058989417383171759519889445929936164035028780482574958995899828980512704461882383161196514487606611016280430173284232075625184826945449222246780879641280203715176011635558834710713457614749724611718990384503959896796810379657747496996804937999873112070182829952150836311326971104072556542512990639514642680370803542831687080188228805054302806736408995959465470216466430040594987404580199318391075802233141726135238254518982190969392470358967433206186134997971304349912497217235726949848634435692429606439251003960681772944747028996833343761787494663324404009452518183554694439950548367245251061067104605280329135233096634664527468949652415025590211742978489608260425640703011028449859857369065034453678691914932818105532835337667564094923227641766447179556197151866087855734178321233466923873353235769943843056504713469960516272757816288213177512609940309695120346073576606131729903979942025417457384939858111650820557443687194259733085487151790813568021334379398623965592152774271336462252529844741071863670984638369251058441621044573214676510315175404944712015491707442946411635630146525352797961331564897762592761605588590763650738967084825750467006679240545886697324260774788475602659848969774469264626852681921441137875504209878510332879725827250679668796373051013366794773963699146349004809789064639984397107928210913510527345234051044653601326763829088302418584679505844783498579856412941684061991505220623293402447616402389262137267458181010558519251374050051283336412195566719869960947494936368061965346073587590954000203210559490816514915289755424472958847439202248095700980151013503078083997482174048920226298307790038621909024605602979147642817447101799304608668298215462198915444064824968020948905852930187372314310144013173556157382798331458369905193912493128305202101755304659684227686438726610184176852944757827324297586887950203343153663751892955928537926922890764659647998906158809301302775684846644465206710725670380916788733654535325425770133193806830631844265311375910049390940021258218033283321928477541721398463234884186513814125554766354190028775840051882986710184110114531335232730081543260941367091452435140884289819904370575784669487347736076581032156704222547679661336155524162116648291760198580343604254914927462922483078946071980527842591204536194962242157020569784390743535889971531184767616865738952414676802648805535825817569019527960774060275901387942632647624099358103990640078999684966380261422910419798431857825824545360342699012342224778324243041564673236149819685167386805628612963993007682850847319969428901574405869389588004031743838565936470031281256684147346941849642597957885970053507950688409123463177474374419563501337926787310250566950009045032192355706165384990349990009039450398341312741787983339016599536278244490125118233067783241203221332229030513227370878151902209876148210384790947977141645994171770922005127005545909745266779340800610249591430302653558771646696639795470669372910643463166387722571343565986033129764985466962001623109605804818854382909591181107432558611270878575715455531294474296753721339202906906334785601841590181824363892870498299478966174373163906396360649211983880049390244151811621546156482172881966218193882277029278580852199244447442871196408508817246059615378957972142470852688314172649574421056044401020652705822408794588798651831587860139138123217623629224384282441476231584600248478887520111950022273162521650558864062099786664315908250450362877890120922747262576713247415941339619617085984628037320073378682003841562995918602371725089459449159714969444201556379009403395751375170123890053280041422340802523406167378632503133714850051111616478320659294526876890453279835808093020270368855902267301944511460266348378114740064907004749593896545640521561645513340972959933195353023329099837710340386495007300189347495894200024024953747881874839110033325877932406432515981686607236742033726207524710372059026732580354997938180598735938877638174879940817720899054749497456663592930305378137266108712964509392231415418194744822574347026327484922002296052251627802020882285586233240180660402172262172458926391897388619778264665604726509788764805441545134305319229552670255006448127015341896339459580788261065043941959036457723698338969637658653387952803318055492976992250797566210775652840943292089110241647464639691081735609793437747616907215862757195471120482536862088383237721054465996030134602305231531026285619473706604988445810610895869063665287519958617316746754521148901289049799325985210532262938602262339247767572749909485951738556151612956239777845409121601945017821939272808024608835081756010430470497935672886647945565959304831060548567526922271636300352754378280005893202916848126798548559300451460291698021861041788346820187610376957228517183388947185017621919728207524349224742212563016826948963888142202661158766124946683908098099385140728750633211869751970370566257175989854047521035064171171062801627538445184316942869711575569366976801627222909759773319753737614779756168196610637090955706668507251968456759194198098996629136050347587458355756916806883493395568010976994749560334397702167258742441645756484224776739774832210182467628978030352065411530758632035361991474613934136000449796629569627104028627393900961072672377608621347779140486584677793928370406698457695043892547798135356240795317235816240270142699964557569049003004493356969138188243194819138556924305981264624284616358851049415291300733726408190789091382872127552009144489977349196492843339339746745802423715910222262549810380465247489980436701392907326971235556105314093152539565832488771025808963718199165357132627812514886907405178137949382208516069248203284265804676089832104552191697498469580903713489577525900025894789953997237860096574798453891851806444358440183341434789650871049318887566370249659879088163720006036005455079494739869773190677715614272507065118576093078740528907395370736538652115819904496650701358943253709214340452071626512694528098779801418427178896138307390582624166132978330127332845304261936690794850905053176144128384856825079997004141166130005664367125049624362665751705719346166475086758861002682675358187254166130924755737253729624904307225125749882979886198911000488486088509995460821170567833932496258816804895194927566191851910791930652449827607869632325309969767307004115850930583758082151172100080569639177834793810360154134778768903701380145612754839229809174441685621228472291600249740721942780242136551479959891797507757853546931508702823702932710176326795666276683704891064339750820094762193068669694216454147346834002107924003284807627760565640001932509019442815655229114722806343924537841575138537182167225262307925876558759372645756704731737106970869463237382533964149800876282632053278818501513201797538276238978574614728592107264387585466464054077407245012235989994810981512679647799299088093943674883662990264701845838663378893455437644035091779072384950128350300357127572314737952601516719088055125829613206506149830237962719504801822586668298913786497787348680193855982704069745192457956727525265657492262994257820335818607563169955226591072096582955901691229341489943416625715211733895051250516873326119243571210830154627536837958131282758916154784577231970303635051843831558414274265722960493190039558615841184790904475219987351033995567466314653089688355299428773550955913066921777981928991301367472123974261462394393569680256607988322319973546053577034423854371916932017539463994339110209159389185906471864340023111420873578389560409726832936310784438641639712469733434877218754958233396098968918255192266184256931014061384150187221537878251341713181311759886367026124111303786014572284188087921730342885639102719045728110576167756951667559207532410920425915046061427930238340954629843656605486452289120729946475833832274422255951690225049656106210709652663700579666406218204258499800728465506375090869161664370379300945139484422966201326449122668660258848619921361588921647716728697000229404108463466936125260142138282820119988302001504987933380923760021391495515107693212807397504643021027074623580369381439716842994095231641559070698255712752324355256520986947849540448772487455599685853587322213998773774389282719820532798198073245542059309718868744960503135038747530952768019247350019992914393874071899823687826979187586177947323091747251668219783974550516276155569625652338713988663600300147325809823664625003539223100628823655958316307577135625330286928184690878452190205076498438654435379366260119331139279657985683604986555545640558969076305791482909340834618004704976777225488265403953026401294498182200929942071834027044914143376426003482394988240880084767187427639326147148929861420760624409818052606254732111046263189918358730889779785471604153364540287252543552401428435061997945507771533831410531116037488493402402117089103327338656713177601299563697139361302930846340972513167896081992167634190650929563338715839799033968780575283311280963967873751117311549220321276330520423188418447182977683230659202195905505996321248328980983809689675915329559412438689329890908953443997190173884963250464373747778091143096850975415773492996622032980395591897808080094997550493479945126418463812869174199781635648193831961813478272152967699069330239268714582496158054179428181316589511575650327469025325298839645146967852738762172611488877965165555557469212051265828801104594145901047503323723261750004321381020954901891182358508618551966370461005372073947972510209057781000840239990772704790286026853426018867857194749561644474328639424192552405082353961156227227450342348056038371173966848963056465659155611152444241986899816199839826243954050019831220807859766321906385968264371393872958152334619874254256404349276772762841647453766035635713937385281952949956891726347202184825724054270213843300644038844919175788734016250652400351158196047639235506177729867191651395660481548957279861627964155271940091785634223162535079897939858581296466149919302006541479084226764999208131112424594899417283270623249130665328445387831865887339175438027238224472709688305904718935483625271329907738341548125408595270282781399415446152867692189993528365265428191646658002356894144068540884942667356398949425631565217760635123537939495088690792054157100752327259067992275913602865011968441937925155878188469569655136780594821234729070373214071088419032913708217968006243427382067916287008177342496350534045989941203227356350039309002172313927736659341413525322331244275304185964576143493233324398816392819969275632572316429444470034114192145044510885733434190530464126110077830958624527569122303177327928471515883894665686623226290927206195420805699797521927868029542423927040118466086853433240120674620815563571295194557324803924363281393132974149362712690822976060449763794511749783360604052447914845923279767935633975380924201115163567253551867478549586318938369625160977949295252610303931830546003421243615378236535221649671110763666418915871108237443451823850538593739611148123699304649346587001136806494574824111923961552883210448178761937789607813502013748943217103460291612332200114293258959194677651083254263740882711138063353499914530701872224104342309189691723067794860120274476484932541406019695843837860769609504544084990446408735475922995790965760597608860160182340511484800428907054703392418195826745213728818156903923412773950770308662822462750566546262478152174424821318919184771339759905252343573227438580101545887487062163027544929656156297360323469022145638592501761650007901670099462586110941175867508215020987078067651105933831693555648561508580172764794589124077874093359812590935160248490847969534210118961148994170686728435759754118190701637219811484606454734051633806811728550043870550946802829953349008154476894648011886001932407803354680631364326504807495326764368276183667290012270768783997281112102181396804416603191298797526177355258797002691590398221809244285624235205293268212257018159334825787376743899129530283042091472415396218098426489339130958087026911752087357783401811587341408922867006605130145956620252604320018656392010737214585818517925746257338907696013519755025461842643780037077767709074447242563874345143789658857820650909997390755777185343404743957931962731623698648701086925252233968260132060315275897073386140703412177221147591269119513696315320412099937766924117514929411794159394530093102020072379772165461649924971971885420720372588533320595497068372436760071365764923797215389050484028506728716792598671510638439894546569195401130854417397913207859448890339032425385864099645314597557395336199629631847365479003388828296449567217102406509562778541160627741621643561679911592591187220001393271208605058114826809827128374595060752651137007003630675411658796078189241282036696699593149554016032616595520696837312223456034639561686094466565588280091365458314358526203830947387604021529838168938348445546843710792682011500511599916897124787581414270913490575345071858261521766756149634712170991276298232101992392771832159850155585243189662435466162531070565913078852427103971640415326096222633598081147911440225670686682423284456613472880709507670487610435380459438263770383204766272878523073469468173086029015083267224804723293597162389050953037247888655142284518212521442352981617550850712537515223306438453146618939717815705930401558821661914565890036040683807972470146184663538380073033982142573374975891583534530188821775276374577126264497036779080786246806929215429272359506141152425669696687657087070170606275708857229404788734818763032817458449508452633697219895226235308435759790962472461437474206485623067852657406903024853840074043775897887182703594968160455019946519269955184401427506470479299000338272716222197696542689649133983593151582656282969129331061128197895775639188388834739479384718587347298836806458072444871585647000515715749333026976656510312696000512915132939786395225833692918279044903233550395490915465305585161929125285485541014115670289060490424123998952731577030584169386200576714806602154497774874268582626678107947292116635096829813405540471239957944923519031110164321948878045281213357049470622757994742644201869845412707983088874103934302577185421890314124474292369381402347509852326879182768985388937068529943392741846676753527832755795001856215169565137917690177592153565279183702528291657025089108553333186392790355728758518567136463408011525631841356697635885438674871439824199089026732919198998139962902141867665855077782663124164083496118640453575237035587349553849851312140537097826170636656208555438676074507313698339606779095260776772544063901836637842461659627850500886829938435217803362322411978599364472876691954044954925238615430642734555566266476703061833463150714518756634340349930818468696701797219648065466292455481574532295430072401418596672088565610190637422539116674475116949066431861161857337662606218717667464663633789540761631516024499743671222744692713473933067102642220340668431685310031283654139309525749252013928637452586336335200066788433341045329247095907796520737207758663376933777668861130027201936713458716598996267113735118675741447257744575562331796670520810737178317205173441013908226250396580623186104169525899440457476621841335802953073103900062845070002829444137662077110556554944091908433592401060624835213222122708619959929975123579371976826494124245165097899455689442700084769918495328852603515697622438817399991814156192053813420088998693523083048110603637686198163740615424939425036419667896656154103143753718512208724506186570166190595571555070040912166719994193679032983241317624638189197418837331121576605222173125644315602004183049638661998133240486501677841052695037087792658629608473089724483219020201055452405845944285559025004484314451121042244981880124568691052488158787024607929506696155555521775300106284153014340772730949889010765583033272162560157780813280127870109791425107641376857852603635113103100072251190293168907922277673019301160955182161269059570234434208914095498781451810766392977934028194718241338055174071028124715695145363039344773632147282180871561861367968883433660499428714244463202232754657860095755281821384476872274073465907586317953514357604684395650056048599802676040807720272945877989526882141587553977923132437000308583256661882843836445576149316620395320652903432575916989500577651129546154733833888795377467043642468993232620283969993981954650460023750713920109600210937274633328996359000448074069198720064124594600490278919678535266424445598045390937587425562863732094127688474137599199590064752078782356455340347405817938218125363332715196487011285395859684818175942390899906630041058877589484217065400512835891314048964242151571751126459608052066995391506104460737254438174488929085478102207699952072092802112314509721102031981457926776261318435066464879514537856013478218317521048656199795677210480853050488269169927803437662133138518296077383064060448797847069142526977723418719471558152338277218786460803727947655709859161280183229270860365626737468665169717532997432565055832745411060511613786709559792279989993343794122159179694993887699248206380015019914502173135793591455903616614173852280554734198725510276048010148246351588609664378534187647648499400150107952236365098040764044715789031275378036722368428164650461081486069320571671468397430450667183624306858457611369183605384267256175681312987823353493513939701113875439960182147622080341704488946961952376189601049319122966896389050935728700600603893680448386630638664360546427777959700867968636588066059054539933927214195605248042657693312712145149176514796764896396664927873259186434894587382287941787420881469869499752280085230498489013444742523452371905205072247667382434594232187269428750083235276306881931567241799880239520268464022572440715969605913623812782272471119043899856161687972374616571752509057359259676036640697617581432611966424437787609183819288924009939323931786851562053120159710786409665021275866855322649849157645572006811651643211421120008410057665982031719491769771487249065694124302106711062715433252896601441548123874147875131922826522540776281247861519798012650412932022169139589418346013961881367775583617902481037590745115891173837178669405428150626208475701495686193028774044240979017048609330140807586874366993619746326566271168845598355414229210626282045481664146405753246549025052194183003766282076111024151495833054846460304006680215893305001987482884429736531813253725532201318741951852048737114111173588528897434487350369153987648745959416196784403649939391893752152243726393415417983555799326016684574982385051650188642730315899651183174125063634634692496242909410618186155212778151655432866175600491835428882640124440458792148066868437990882099837159247202586432836598546769647299035097917679772831422408533308097583073573947267416875178404599329348153931317699590161704258014239428194786856129107272616638430152935676620537460281478067529576467202646479119592266121541918535053124712835025475629599550024927938043261036162072828626780425782526573549949176041339118052960901724715931495334409055757827685598765586982228076117928436049603378061579092954646876071141599578980419392885219839289816442993939143883775119661392157309026132163533625197862580340745378521037908989404616950317200562003790599615371936077877981720711395763457247005316938257483122820265988443348583243660037631372340198309814714621926794325601700454852950864414009685059190302184928180037774200853115155859497087155362258354853768332203524572224181127194621876906668872267370488154252794147531486268384539338025815273065386462870569091314267860700854547987289331279522167154100029239799435910554151186247849960064168737118623170864720910081264244413588811449247211384759874721212890581778892385355386651280939922796159950086948159168810129518416007174925349066414596033535129423408336439826548483392820848199815450018242801809475171921102057807908196922920780779614770768918101688386977964258064392931109151696669697529546436437637097973242235779469010080958529337761547232179543026077455207956704874763031677418713064387874527593868434174129792849937355108249484534288401301356202706921176560369863812904628588680624663314563963188911649134407893860100583425466113987123506243549954545110855072843149454466707078404851214257044538361590497666991290340441730028612102112059962725070999257718140961782505630977983703468560973677656707168189548299733325751462803251753973309401739761037284619540930482602615100383700874933156680809480137454144572376912456092682387910290622942280239752911068815812071912053908307274181861976406609014375969558311982932496540074724495934225771321902372139599470664459965179429398803999431014453045116745756319671465140938033481498144085113079543290552916674025000408446327538491562269291217837618461915884054579848485907462751171428560108127157366205045711421929039692875208918105854242885475127970004028420193579504991238639902866771321501102094153403218085275172807422354744753038058787649493582828647059952274431937890453552953014983968738675943648136426868117728046280620972407977453215544994198819130317356769624219648307324035104688716902666118749381452868436566646343769097718173492211492123723827013275670672472240954965545550896560498724766104241323129140213538478332355521895371862490598221989640107942095347822728664405589176066688716705414056852114404505129962057551646168699889405658141051163227271277264786443301665592799556514331674776065162861065861843690937389220023515033406484656850975645874597592651004164654808557442953143411593145427955149101639840278571692569409395103361040187111075665074977786957759834418132084316009101178814495492467914559773650115798805732874834248232971638162822380728604340232590134181975408930899580674812759061050867377681320696412316200156368840856010587266336587445130152606204755710211845690706312533161044564862660741013859075600402979532227525582779947074845967350944537558253426839007950084640944258681350499370112008029227083999400673432972020073683072113297258978162066211361407295783518594481452268772942570914942461519510239931280862512066295846080598121357085597585428979925098156200321828518713299324498385208160224257314049603767274121111379356190424171410785594926495487313257956565297260748638189624534459871273013165012707306397321809750073163851932439928059386788695218552633618576234624112205153269226569120357232185669077223137161617758122125884758364484229263693353278157835869586578174948887588426937514187000738500240404544161405093863886050103400038172451962601476867043440701217349597889309725997726388608732596647958358819293681125046076214680415013347914575177141754632305882537887513766877520884824677859416435872030217293631264115331276920499468639142053884208181098491771665261316103317956060923527689436863137172075816324248734221431593652642107368822821102494658015746416484610364133471450283714835328283370782886167327435094326808918705160668442867627254306519121020742037875420306942257872871890207318654037157339856540658152677800205064340573561974669665511223784785041937702951557669729921871707710535456111885373007040667129473706106953459989801707780977477286336630246193338396310228833508247193035181926172149054923278048214063998853222099203592078709076577131222009551943695908856962711528404916404627648079148019451436404030648294119659986994044108707291595130653570462310396008977026321714826698544737878736171697740099183119111042955641896001089478620247456012795492644623905211622151525434316367444784424048748463107937714183222868474378898025792692127709908108118254658887242800743508930538148956950269101016915930888595189016567813470132928729168145463273561756255104732070643788479966758922962965226833232335154747917878978769873619314805060889213839335052905731960402990293802759741017258751663632574583597211515337114816552958049677734426914374186141839390228705293159356656021907750523922060245123470763024811718395086591412221510560484304996851431141934895905622887188186982730048933684315372440568047031588783424464191752092410494298053563495900853577695030375645375961884426908158339325714855374300366780695902028317734809824553890580810418772354407625569203574350072619804295551276185328168205851883994380950482637564470192327537785641840002065718323807023511920280922044618123547389956196109516871519344271315619994324246227225737123421754690490312412693218769139730252973109860081408979023111434870099024955305388147818020106018864570872089431520225183521252231266882082489450373610281862347541870719295099561252509856761723700683265940669128905580161561338069967424886740539992943674532652518853387777240002818145585595759320751537749326012387475172542377719293041864495441699321721203022346286471988426126591377984146514716503044104247216863046520495305610230450299241545472744337900306962683058274646255917763502752309610487965925367796599418202869237590018079713397096364043734036946805957892439994615656646690227617531633054443736414857839209859639358022486340942077352294252292348460545287062228889232124721267721262008072904548515960770287414205412642951152343183663867605513276625442476234555415143665916459551631748747245714103819072941840755789183439093331927725447059845790443116378243555069522592545258619878487261977196975101909627212926805533653305513566569951730184616787462521492961117495444958017747608843866124386110925755831554666523950708486297562570476464561118965347957635227772199381214705776676833840093597523506364934443652940135189602336966210462627384328130763436753635585733069210576591654113837354331485549032639070806701541608165952790715812969051816335812350115373223224927992483010603627217272435135636881384295180078694810107727313474767066773712504605917159522172747207574959367835781390648393149134771672360957362715948767645858756429196199478545803372715929360658574597591127351288119402966997197668894679985352875940848376549315694105150878333174099023003340665626424977140936313385362445981213140361907310765452741298411182366885768302029349329519041468673288865779537292494904842551620542807610885776672079708674604715088727190198183187893397655977324711928147832126382388038559108247192675560049024377860344196754845255683405170583417186602388958979103727602439807428298033252527406866601296584197060131253448863426439213870773197151060902272484939945032039934578811428479279813107981323025958247452372761342156864619899980650287804295670579500768352079975513205526379562420371939559226177593886206779486204979120295331690102611790263998408787592582367291931580458650903879193754097948429433147824270540323485119040033973800643589595945339257902665690432816444653456468841403298231463833829493192097713223351497884802644373298986904633729432271149190802922638829014937912480047734438984994256411857987354554195837024022928727106828458925163424796737847524338685589941167406772320754198104577662212098680608217878725879053004651088850952109428163821712367865638372601127363235006169470270840485217433783588062746324029108908618924172951221611211055085163004489177366075784191610444563129580070238962241118075291670398446426273781764078095496393707891633418146408762031933317967288120967055875569876093770549011976238160567153861537327199794427019793987604855499388891700473183309959087573918855205536359068292421326318671320026260077591055448334587577317306954058627596853430198852055847560292237936936978297997552907392868256015447658714816442351173078094004659925418141728879055482560946117446705146716586378462075693818012494501018104015015826064989015197593355056292791433710718869090756557979964238110193781204390731081569060218189455565932871078590666000391070902565973306707549979130934952039513049884662508413273599614371217451788558141252512269441328146821615157641164046872030425231635522497576041207329055343318902309211679197520314135957974427692847535674579711009691806500630039699812039587881161556419387143999260850340830543490174522386087851334525905081780550552798426853391459959713961420611789299736338239859210915233113689601618144569159471762388525725706049528001349518288002302782951287125750448832849903980363293396471406731245542501570604392110702151923612239239962644201598912612860994170959102276160451171583264778888240557272406674014781647822015030781503547461313833935848041885613801288357649825742332058181626603906236058603658076770940772670439525526509357161639099386308887624531331450894212232675682837013255961400439820622232747104465376093269208099771204400509053835977080350151489577921342371365423655941613749841032218412452787291055003468816971456670019595855557139849576571406473903130811717137058052256596081088856840296432160079937535157455262010267312235406209181257194618670279875907225990331463136682532358942932341808981454980349198596284249531207302501526218543682144688452553155859976519460814913484742117422314728773815100206433400940352899454891116743753972344109163775845647240765581552143832355996617504597859453251848947341047690999700852044778435690311945683522796316124764444336015896801045259714055583351548269479293500330843272961562771343855872790994137985000290085019840716275738177784256432345530910073721659122122589881346121903400497443236041626267351032240098682406734901570729721968252681243518427393750549348223093613902656193282561653706070257524792211482214207160842243293440295577228790773479088266137398252920418430484587220009526836670427372290861270137477284311507220872548436149680868381070871379027470189232923788669008928446542096732640392923104657025201222601819312821967417348551583497288265576847145038765832534079572736729874963214619324154029737558263161641483489529866605713890071932964488974456784714728297039529807060478145052632339512317726837838484749395587292330019332743148143983581787006545026269830791807391357304015694942046239938665963114607692872672338666884850870606992209526704782597661316933486725383026786930029515862285063018493550550977272322406477601759965852041158729389986223969409876295284421088974992453490681882127959354315307247362885020354634170425486660248045382802292355727621431239779414542295699071220591315732108157824763725142489946177705062044900492976407078600199511549659459552634815766688146162996823424038372052667477993725230520334436980387961905376275982274088373929557535569000616594991569471624556297870935118392328361478389480163922124890749979274616609689967126874265231183025075093130099487064502186171900559216530518202060437095453103918872174296283377981420297888585978710500637411592819830598908776900395171779232149113679217033031911576015887926848374741421391959015365768452849742460084449172880494496958193079675272421175034361404741865789324944017084840732831246595295527155312518361929135615206817283878280471322168227937811608547391289004902193055992084156380298505052559169255015413054303122354469516073720297027478291520427627054506404497122420636830567922617553695747625815925906991529272282306012244324092438999272389428589662348541870672971406250110967113340555326847803932513181759466755374284864907510860352006441893152172655448985491435259159137838782818993740836714275628009955417829908423914380759570349491499696710289411139531815238213449529350567154724166918650638480754931589177903342069569646641970528928514788581607339547324507982126085879017573635816962326025524776534196100143711737270480862586162214244531356908396231498507002834448049759849987879162997171031539955915392589502828970841858819485849625836184060766363051034569199703401214585774322035933575879183568648925259264796354506524632052084109057682315653541115253494154410949877679697730838989595120271670771520463025257190881003372890692579594868110988204016833818869775424752307977528282488649759933993157512916633081206903669794821716567421089452602807182963626632916968985762002489499242297932784445813440155607519924217977848762292131687020447256783497155016798154849366704587032750610022572347306831765329024591269758923649334824422055763600499619835715511770963699472763682511656316207722458843870576084765614457927417244606337532525340061496680491740573439501916408850659729345819505519219399472646160832015174767421696656137349698411379434782156220866934539826829356933720758026212444023645178938066194173861797244011762660440459589840423468424972318490208795995930022227379885132447473153955092665737411547308932728644497891026015140223547917254579243419652230179337422586714325891116477334940176895038385966971250858132610779149617341574459871244686405405833731726002757601426517869288604369783740550948107970450111725360493338706773898320334722861770761782693134582944039578968799077378845897905483661266396240607919185902075595313769683598664037605444893391340842877070165982797587708687737384479196109270738105351370125060786423894346805312837093964767839815512050704087672325915594754080927203416313601199194384920375734790871164004168708025029249961505868861278241215752695268673348696772469919812008044565161138264809888439017251137483832424858795540015144450378372043667813686267200829640321943514455965266550088265525872815306293903799859834218447779500133074150754180663462656440712721480129422237854563402841870287325570818216096296045367622690928660659219842795666333831106202749695423387336375589842333580357650293431421435559379258831723443790437026454970679129304301614449632464141117663895871403418768966609867041986744068509269388940359369403991657579260258451902736664731349515659856884411035326933533819735814609867014834348715453588059042203198031623001779028118661085733460501330105698338519711544036071627076734124173820637288545206543258228090896025858934575836851301763563434622161131924968994763344072626992015094584668349154963600372640724601789460453474783696418283560995642475073727841907212701263862187852928177061137256399770112390575487377597780130414507302776051004126763852726654280163222328499451613831047189781100659346015681810559026482623608175877479213465595497597115362199406939941496502156189669556419625240706780131291667766287641352338456866829029792862181741333055795652297114821638795349234021947288800024794251643816154281874927622257175616988348713588584049362476000109784720426519595632614289011235260756737522960571238652966542898677154679445806869191608656293343841304508172812059596180596071520303993421940113032016397545352910700204684842548482369774954145469578858894535558496703392107492522333431522356441221736199828279693738738443690754492718511149969317240996564441891792369840520707469698764045821416002415395098810451930489199057328482138658899393127059131065955250851897081932928631950795322286563217452061297695084992412954703452221964238852276139935418902667024998774397242767201519594365260605874055732418132219306144230785603354380788177496552024307619261854118999574184253402291444117469252575711782036054723161787219382098734061331501338620781488730043815549359828755770892794324096086852665760320361487427514658037863913466962417518240983503058319618085516895515786024603507632020360425454514660681204996731879471352235433179507177154708000884241186459917995457100998150374205867032292189289438415393371808390179950021857525809673709004360140218621797849035808971375027050699641744961212827560873486134843888890675628416741237036715769320285844067006639898853403575534338325499720506933934460457590375819117732047330837501967058846481255189510215908977716060670322717661697638926131547196814770019584915283046682253349723927829303587759894862246473849720352651164134871855651452986944353637547292043668161855807873301171636706071705296434538200938805158402838166587330939509899187960962608237710432608486718188838638574202645352035115801412866174904645839336993314144386444479175673381509730643783366340588781465424998325165575117191491136942276471557394494929732638328119385123268217675303196267039255672174712248683544076861124984650904353692761643857409042535964382397193438259600910888629673162649874506074601737175041602804311750001611066377386819435385505977885450994764320727370883646968154001945844466768199481031662234469601937163231901140186975837828708836591542944377320950643530982401312687068658352523165612463754788369496342097390747064738186943910306380067654083727397985893831776084067214568729694981078184512234208120342879613230484839780931116065651184308627882134510465101432206328777309071374971835165219940357985582678644850886521242003940461124625906056884095073857015706016184461965230499447273564836748548656046781321302064087643286867960296858262672034981586725055576683835262330823020264855356172644413173869218977929268190983055392148437707106515342943668864125248407135049728157464271010512966842213646531415746026051334999354672005544591270292659611669881576128060327107566896107471723931306658878245027673686640753327555262064564078327236248263033671116589931468376710903146503484472645588595094978724631713876247321651556598150524517967207538714539385905344533530774878908844335791526380446724344871513110531036679514453426401128244618697111399794143158180612712799582719913150740030572410179029924207180342153346647282409174223741998305625922531957251480329147375421568298826821682972945101055574173875495051578155614975693428207890740359987337348339481487062247723103419770790322745550865868741445937521644443982674764943069078913335813968053228590257668161617606313208331297845395002589395155086465523868181962307945138523246939224564770114555279306859713574001987604017567776337704009184253571656845384796227961602306956441011993759131552554603428602346744901153483653071987977783006849526514481921483112576005683114364506786655219956361058470639285361214444462894514332737346306061121856057183323068083049671326926755540559946783088573466375007253556770653708857532428186562173106548315684012849034898944695955610133004965746543062482285878312567687414013259005870424186064506585739975317019039469215066670770732838276282309998211229658890121381188387532399377926021460912452042398369634240213343951947975923909611086046310699994461026393487556402527663035443693657754154070283735252369049001316058606872059505808335005638817169542108120512221832997004955374722057675693009620753687197408324500389580207424285765579367647659248644081171671902069075378246228508144368055601071754303266645615158008262192359261861177980816562700011770240244716515734058383815088909524411488548759374762842432194603045601371820870349537880509822269551182133043869189825601344742031692574219977843515489271513455701885626569672704731836730386525357159747201188676692444929228843907366406924298321361867821782746905211880254363100388307405993142178479233888126479787647569762056332600058732001783387977123375907869835642974249233821016694709716858266094265303684478257464142005534154169247394370558530325540362011835037162735110169089699326580520767387292617169791599145611263602770200409744540559791057590589597947378801066455724313486006632602418895593465054026712598424977474928482565485711230734243661181479365702644774151068594891961508615109130079489744943212768222665538103981312477294054021499650847704142943139118656739963801527143069493045360180449528416896639001161031002323564312893522113802076248757800106056925140397277611347674827815793240401326108252199138863365655757854824976513253414564704973769633150383626715337974195349843240846910450376188025600304475884823442847330025186320235618135318609561347204939426806364777007277571723037977659860655831247852054496860441310488003247228377445197787442307311299637863599930698854279057700073518847256319319635010941250882900161714098572022842424012729907904261191116080651547886729910637958076435189509208262445099720311365504391476665101084194678308114407602816654693576617309190485383143038864439553693377775328331021313127183972328172922636654492188833251536891256460428831698359075970027482849362645326925281557083344647681554317500347422063350071561269712203197447311508143955722095451068430434735500502311426470539257488332693709851318240862224405584994984305598648612946414441910703336126461547483914200772953211818380702053783265681849025174819078237314824741062512074448123112595588490474728956428500065405304190331396901246013401049198944814968582438771711905406186639429552264767777036506302851593882045528472679165071198048830103827644069374643419696229622636762398729469711542652516292835727639185654794821250298385064803652525484789663149974903007285615656219699367695233405185267251613056340956424173523544962907577931662056687991762495500280144228558059399987245570045412981909027207003361979218158144205206146634441742898262598884353520841365672794465670496078180018175635815932240071581793424959055849340264024024609678319282014735769853906603636443705686081414162302714411724621398806947945556455581052346950077019754421830956913896508013023322241296175099296553360075906952243198322473600501516140206693457116554537510266542021584517865250278640903563334192197105318183043973622167459134711319393842631760069653570986456880283853401115361075608551113625722452459754815532078658078930723821919640322426745972499261892782701298802969163569223941922616057303221642305288604595573554714479128797432366971473882998772740292500712070511421217489712646074598682910937193193599680572388447935415312533109103703113423712650284526923873457920443369711614224633708618165663775508471925078232752155644274902006951563078395448220391448771688786322576141382264592192176055079987060232519768558509097293370212302539005585414262641577585636584291480333825515509730280341014583596039727144299173770342903566605437198854216490352607041508094697696685993138300544981119546379564776911661266400925027162187073030636842927769854716832478627122796715029010138714328830166116728504428061423939594953697015097505316091000686070420362604244631134353358851160181656233591396401003379365700732966610568547062021041619843349628154444212346646227445291745639210918787751739059932559773002586611636995028643374716190105322197594693165058903955162405836778982052242721783272747622535402018407367921734038624190723420313238593631546559698480740243972556159481595370449856420381683853310786366645371980045060480011898916674593596841323084795595723258551745874219716856463893119760298056876408916905457625237395027433978967389352390520329272312343759585681618495910598899946199408116444157390700329206183658523206880535816834514956006085794990439004677354807750874277558303487321830772355984802857591279218463799718542394123481725845116831917515471015441252771493661430135512685731801001703913631047047807677213906582552675731765533471266431431768242101822777160868697224416596722785266795724324694346947755887698661077579992113141517827216479537021506471106828126107552721636196583052008451985279752692807653288406822832633893600991489166705492933646775452026360626402027246399954125982668806342262838082773155402733522442902725251320969362607713014930267805229003086311991015758920048887836514517863561541068864949483574418045003638457359740747232807858495563549698481951622877194881448227483700206443605675009357738218183125240944600337716515058920834049103787344530774441296488550540479786860743410262425926421359832739356010997506938748992243655873053523243885420876089068380745990332785792081655340362096342766747817255681698634149698186765527092310613168701012462032058156351819046115005410336213149936015628494128236522834543237241678626934200335193558581430926901271453320110785084621037515861867232650332344578096758503581858875735792467248598517775726987214823749938488707221142442042136922183011787335600860283623731803512889665126552143210590323312383861456282558239033526292611111321064819672968932205913492305251533729238166589380571195639710596407959889466198890608142350570186346624406487840762670260213834003521851442267553756326782857119728579600162664541031318282692914788482912904650284684852609289427768491068866015927070492824504119583148905288947119330944134926413244774881406958133247125359747348891133944794105460978066353803139939404289191251845241259982841282688279967133826323355148594485691873744619568972613235669164735210050693872238523587688108849076107753964465286509043579408548073395166240369775692196782890539088255628335786584262682353827964912292488600665857827041038976319106897974417359009659599409102829285943960568049593065015116997890997978395049982668770974856782596788877716517559836735610689216133668431405721531993522955462357287800330916429460499579705867136773412192101597060044620432174139635604835348415944986464957988824874822333062552400989195101532761893842336023452036858386656480231249993198976914382503113224772516611726822048263856736996327267699533378425574285013659644151257822787063157648546875145041849655619240159212874662462394262265917210074890578683132608292268421157627750855223550697446063106233631531627718994867596604709645302523963846437961046777747519924983412269272982816547165847766312683329862215981868082934322310413431349630559460139116762381950182078076281858545445755276486359221748942596696795679482152712839677003309063183831510608259998562545910274602329663022359349209392185421261829844102566547882918770012415746025129191431710187272358380899568364436050796532715872746659040006464541264574119605802901032432656068049601561873181863070822368290458405598788673014610730633658371395504489109046590519516155545239712517690984099251514332991592537340132092162768189463559500386097339406625670219051238221443080034195114579833426823712691042808970034907342653169797501832362866383020128307707278273636120192881248809008447172949870514244820118160257549828098892677074424832721828027023958729228337449751451032888331739523235365311119115307899613398058920627974393385408899314439863212157586969815695389343970044379848758298391260523289052646328589887245108240496952941085020811442201773347321535533904203668964424408639565219043765082948557685719907595009956666605982469019990677062491483842891798711007373939425849611102653441047729467644425405079081486068765658238158616095860915223403622524911376264307428793937092494090622803853650257329522854899417097259675442855269096664468960868699394580776223309236969915660647805524667482302949175688985960840305190031652435027404795164856237203956983609280028290742195925653221634622685066631541342046964887238624380169325794719476838486672238545623344737013862998726940141353838605388122087750029043341628594580384525640172508706603669825898889304274829468947722250395752038781727805175290980424563568241636805282707845935163016900609730797630426209705991026575830682773398356913562821293093893333953091379211597115543393804818074271157508879050829717165657996705482444819730945252420471848356397172982480883729741648811871952165958204440872760524776502072051519828203820027842663574638244378981205831825511727103467722908511911522910015943735135461193940754882725410563215776465996745928909040821107945325223371641411573951697727372817051246632326741114977999173465056659854338097840602530905965910430351642410341807004534000431190841820249033993114282651719368310499411796148018725236517875685463537432300367857658156206390658151622432222589798806665109933004557871989380515956093840109843723713045241422997661634393364460951715244201410611891450896416515598905545864463249634570503861139100070130066047058366691344812633053462443092295400980624870508165167177210364099051828533832587245392266877705554575474191894131986651853392831956984369528066449704540065956595133759101723789747786608036916167204936523276195253715132672344434744392459616705089601953297903213934272906101958368166114209383215360730064880295672968162757111279364155029357826390366895600826387930215202549937998335773723289955047618425400561327128605205452210232957739253983581629964678117114256506411296764180562238483186243098049195664120156177557126062947711776306829201816718400973577805017494043777727192741886543040538615150215867212944116131815973499781884893459747344591505249530887453038613500220928959871427074891448600043244030062963268876983201331161987778049956950685984229068921288580023296049553882590304120730645432771735718311033870344285713506625232401438278598771489227181902629911458944362455017165552632143531286135536545113858053965813822203246656569292651060142203564025918056143027485057529250796389855109698140300861957746694102636892810996416426186133469263356686016821049498412514728686407921411885092499045362864274457342293862346203583388836957339091669796865745729838155037882361363396496342987903303789083745833263490282271386280139882251723140372695333386643479946945092016392665454790845691966507846351440991613541141267245797808355412613379937581241882448431276912590392949295446879024312480893234737409617536027174644757454622547435872162609812804255292561244858693824798076299842139842713149244680158751654509621595959493671281530324309100305076056233573042627809994178165125620078834120369847284130663139977830599619488886684217853491267471444573582024136476135465651591836153469381373514718131174921245003726403647870106493543722926065543250867234348785673980081375959431907282677473791795694979187091441565049879430086841011163758596317009349494767364903491382971814731649861934866737360275349409789911614739460731408861079556513850010281920987950108370453133303651744293281935381618218376632681476436682287057295578489088175691302153672255889030037221546063055059418225984604039098828201718975194295930595102998871656647948431439663583937482906769934498466965624915066655568678450179037755564605803236591701583151927682485200565626022223043971340517579216345656742214644387700407570762831768616153493121928240144945567537774568135511432231507199905968959171469694671741530458630501948856560083764536761711770574522073072814121901277207375888841442476283130962170793276386475148586973538020014716933762609441753981216845999611117390161573582003689205145315676024318157183421393399894542183113681365739700776185133797796184825207728417108737837294502822996639108812025166905007784548299391823965367822347063387147725014433417447298980348405734881276405741655930255314136445278044285653565348606999602343955364680876318130916515135461968130697446862612332287142667158127770930824241128501484509536599855985580848041588829288560500159265319389929737086341120276218650914054698146636462543087633759841375401326538266696553952298595017180729217981457436550434701322996330059455102236985234607862673581773380256420677448314770488380607178181554000886425375757845340634169200435906031788638064546821155078687023789654393504698329435348779947264686315350764872893624084285686858844216876708921808804331621460011589602706821552571078039871583737808070837482628967370337342748657841071838682846407726357718825544863698318534938900610900324857534282936942231286083191857554215871825062532609631354521673745779672102879915656804689626396813107789354530628946554189674568089478432794231823034966906539438398966780943338739726864516069346792781272226198433556520261449616597276274651244600884001937394770098539295554913340688017347674640246786142398190028100154912537606795741213178695803719976919587799019502817761149702053865892964041034538049179766729417463799538624977783348395471008553466044844926198296043553220943410567821352157992153796645791870732087827026666126994360407673082834069539963426525052644088258933964740279007019130178964130556400853354877250779461640743134100080575927904969349300096901807813839312750307041576696668350252541451776527669430558026559455754898620997830366114206681340401758077970560156600322054616209410735934870040838336457454218627137766209682178915614581662229359093922591580541777725457735514817354474061048142759647319295202088478388373017564262863046340792967324527095135767756441090308854909462783552457864629041207855384350764786225900349774083023126771050520512438849449832915534938835349818805052991827595681335333894051399122357400791711836863070555951662196324619007792614118117790179438293805610419676918196567475837110830022281220424934642241120554290921842308554105912552626409339291464575600434990591957871408769983158441674003625864471079796067435768558545593359705262400621630278727288587546719437951769050512171085793884713627749027488031693748515642005678320981635362433707688566341640455616486169364690112691045385168721735302054926304212574624700988874027445393553413338121974314944574163947008232806527657358833172426977503504801475235333955037882939043052219546974838971406740628368615934874578626504940339116404138595691300593168730586961197119134107713679307623643736462257174075167861523536881212125851858435402764213361633648182984851711517985985122100400194606089715476776986060559627932152365359140653967789299886537437927532781556621504672423934850200329915067549490868503259272602412517077983893514406624001805023753291705068587187186910579679134853107592268961222223030845958185369476194943929882295378168069628434278995855289429911791034600559142844955307720246096050075687847746048168413748468450112113201120981563765825168435655980564741353436162012643976300525923086236990178761263728506045772518926053417326029322760393087127438996450676865173488458308143883913717715083687321805593200558976183124022207062315710415267627572555369287811032006238987727303206994030285560955650728353346693335197987387110374633880464488749487624254776838060957063904856065659161032113957636895669924528533919200711860913831247505244252127066518152881227392054270595615827560226877251809354469406943356463830742467302535803051802470722467164436312485423269277111377739101705278662778488959271985094853453347602599271446630046284511848859984277164408464665519901477663985282935299691792651260076558067349938824972597328942631394051273499093805289654316357338419221327270210418861967526140751243920956846682497930444173507182527820645343441089195533985172798564047718510757611481548616773945501204245423163898061096368429831068222807289353404805469913801576108688646561180046342793191930402023136023732576134123806195673440859333399105428400701355706643114526759175483842774633057682886468426295841645109581206683740462180736762333568402862779158731249331002487001898217869621844710084373750806529252306977269249458395549218451624462278676340454719082540779275995885635200732718224215517012676042413838391164530987340768665576027228868958269216995206005412071284344886830544683374576359583318762788825097367283952899949422327061387333106287337644167681592071051223379227703816158623279630354163986880892281132498571298915856110471538360103994731812402651364055210989081530012311688063144649191087272784680444840023500910578775053385162641111938008867767616305813195701500474026097856507073624447337834580631892222014001378777629121702802394028380408217575463773342128601098524438130794264536541914312768197536141390839776385217636907490455677310442491057436370346313125739668377863002657564207901439337214477194846806377060788248051469849508551979424820476947773580978051097748962770423877501034604217633979892267664002674194606180813951723399570715209263267110771171600760802718446340026160130259325311612455529656337477280388334704754576967067645213777995579380400360248579600885871589671406498372870862597786778207888432918565446529084343240077249412531638370145751331646304438819540168861951220743012657074991660984272924318898488405289110687753608353843082795006891609643817190713458959936311529261086921210847663169446871196965566063136900972106766258151557034958135544601316215256390407270924533937419312504210460512000255659713432725677382098432915501196391079451617398157156990883695361952628234756924864619045003021984051203603756031443698754791905148673305274326506417123850259382618349751484987375247399631659097438273380112158224939818604767751484693555885457429758378541799363851914420084805846206328585050548998555872644355208014444502158452737763613232834025680464202339149404338371562080119768500473962324913941437419859132122275792661837046169428347833190485718472030381442164599209984266144202944756279144494029400966683213246837205232023035578396995060364840204480965769439058723052685777479149033266227891807226782534864493418416944568474909081695121613762532856364962286773322613385731229294408818551532856854994256109320321728694465792706687495801046044200242071634996304498534718464954523821209012138217076577162649614046650511952698631595952093241783852595304530501499964937814511849810677710240041663311956008328272712992553426110268867433573962848490742606563218888304552360138762821494179583172858229469471928031442469170838165958714502529147810804494186478876685774277578156454265696146402290326128966902389214893246219173769439049419094001334866665104009606228517607130535418703788668202734362752292868704526935014307138995789380249524962774396597840003412611558551122932927597257682825035620735446301912531274792296166473789749281441602827058643122516482474025383413570576532143241470299131637026980070370490525054421881995920372996002160519494229181316575971681131612876653029059903460625949405202913718033172068064873028387573681781846028914804565283349834472663313138014867746319832211318199943848679208820812817537015164682163661893696413654905743646469835589760582285766161054689754519740723563104563178456203692648921501806407070789040706461180622141345358681422166711205833266804540135529083470983208193500461044367022517184252401356232969684270207151395234425049845943155754847361172480425479966492725728468752699028170083569281321530948973501023274572987633061288077665992193020086789051299257883327263332705875167822349392568663481882734770392278859682250667839647851858971659416682082481768569864394796377611784174785574124223502271767551573457619607180967465015583009224565413888810523608946709647154448179658563377764284657046424417708992712158290436714291487135225007720214254069487893154305816289719494394056976674450082822641729159605917326335081676367566156014118197140114676668568986878030282906141465950420092645344766957102745102895358240526683317752423445958691953066074114294609534297093100844641952124215182368797451039001420910498750002933162979395790354712997448088278365626522103018791102383537955393759333096623240550105088227938068171167706023453482007962442898768268400627404511667923213694529371489180200537661450903605034751998530007396235416386618117125454416575316529347793721386631918673612187359798471109298151244708147730151463430861319384375247908037543952701161037200286141726742533705002205044847412855218692520002211570796335727079577163015835394157402126282711324802181833907297702499100481033848865360092292753714388195313056440101713406181349725988225833992934196383378396170803108156946386994061999681839292531977447942882051367198059598993315216809182742110381472351284848608735872156595984595799203306842778725067246646085327762540910254555800402304898819847970823567921376588562777241122134933322665689075798663837693283032955173297634270936150436792136270588082898713022581818683230084196792949851616371908453229187693501128074257028725513894671296354166205040377469879215564750116869058235358229848069368844470758996921213741415014659361689621517568734742764748652257035626100763380476661784831495373915652559197293985030303209684903423482186176773309533760144855727809820186012342450994118403223626326193511251409653500871827370394486785934722957497565575720352562393926429864372924095210515555665595303198063558735391667611918550132044142357758821216594042665201050608342704790630996547817896116805399491333880043057375945248317627829496087483848874304895761953245231862928070285010069833418603693717522534704310354748904456902497817550039368938982998985985557372732061860250699048900261655643642579110563709768784511289259700028609456353424904333402287813193708251999143903790940639717115339870288770459301640233316197956751096327296391887591395206345963196375765002018728055284535280460343158472052318464741152537486213940258186600126720480506651797129801199457577660921083488854406053709089794767601425833762628765955983359482865309091533873298170586048583977860267386663012591900209281510200345067592802530893053355179027376621653669184850976871650253739943540930787443543255901390164907980660911583852391341166503116088904787834624845092845008180942789967920197940611646345152797665566657566335001088560087353294680070436440461563723514649311757567477830148738165859374411116796365672900968755530067036269127223263803303350618257997863396920644550897279608508232229907018545037048354094048975767566199864744792693042616981868029100321216617609447988700289467906125470908914651364157623886346647458872270954337803474445270143671261227247646516099447854706561022495432830899520828777340201293687372402796202112722786080570362765082837147907098938856460080823028073676049695062908861662755016953059547138443130095478770180465568426187171464443051338727814388572273056251502120741097583783102699274341576359180091001535146565855971182463073073551714790324999158328992772872822496845874179527880996711998757321143354266533694207864133206054342788112672803164918033678811973553327899415020353901950440349739565875664350934257639216472865034077287414544652779469505773437469972417931931102727899573030171661481313146520118830036174610533836604230701237544513019546597364425188013182051657234215156955324150249227821046238529235203816515513783223914894159240205771991162450648810205996474682478911416797381607114349935108199505047497622180251466927821859689182615445036370271851086411006162282856381351150080912213189789472150482009526960261698604011613810512322842354245321974293140544302537240875239034258457444786348709779003143329129466751454106171092022679477594897477187084252907065564346086611124548834255271690965604718762567588954630175224489672462932367176941749119687815038349664685379914283306512361835981746095183245860873799409165675605890067192865945622784724968300437772375806164270329481084954681049800512462460685763423869204313912692730599818179777416194391397507998957975778071506268289957370217830354724580744347099962558777709752371985361812433628600244067197333845124319733899384391506485681957113982891971923442733564957404861770566228551945745659714071456611620485444641526310513009307233417613781618524750310745635735781145522447572862646463819088070542090007896641574498795729780287933000709754384977430555348733024727888660882953560071015490699783439136202166303151825756202250511118389493096643295894538808776744647071776571049549797260675879885904049893033345343669197255967023481295610547148557668964386338593755335549403820016724637858780050319031554196435331384275605574329102572476541579215556950511898424038666669065867348524147425376657280458847665135182977288632390875823338257747121534705187394000962214263388741957226897083547381469866154089828558458529059027224736077925058314918125024657715048317935766705110427165598873521057832038044556252226756088768760039884596446587461821874557116634409078515437987210311635917397069954574592758206397702107414262654024641149836879299563383213259261766987847557939721450643445546304901907926985612097933710529049819754827765860472415258867652047858487290706418958932693868561864776896726844844537200046205639648302670902192772712305703712891098259291596578898759135287491355363077956146447656417842715064375314364368781430694967649863551448006717724340245303870396225723917593480648227353282887460340749960993672899125279473707251207605092811641785166662853568915576399202826185967662349018762938054165480219818977711206745915488970584879714839868859597727480751244848707575624125786975519311151881464612919941007683299005044903007876469118700836680964400645060434165008889597009954114797563637293027616274919117506294794188695417660908475484089252264393598056781393014829584593322004231147499595126958475585772961606904230320085701325068205779620937778893793732440200447728920130270147305689364422188202802028613905273558594268785246975680936589451517059014705602158813386119334258314316207903382777470246504867926528569641050294510834100408546688129560714420424348161251791594054966742781920685960020926773941420591356594398238106702725571359296302956904816227052342456468221147671824424518859497614534801943749587692212357565109397676019699498858983596552327123603842404329404274054412254375924179096969295376242223604282022936187182942634320453755973536934630760618625491618745391127370641216403451695038552087128796831771206077958355109503741302680315477875039931545389264260425603773534839735963823665553096084888743498555060445139103507170710271227818234407593254057073359063758391572260016715322017318112005844512964474345468596523008203972536101262258177445218099445563502181997021365347060639987495107855063795760842731477465289082411355267768345260904403599379530148747329698685806401174928644583252603859069732021278278632648560496460647698648649173309073023287756756511480462259841042481507551439186931969527461361788599625802099856932716179034852863775296899796133089291397701055741725751733558881012494446721385684513275408390422126512351890942814406766697054712808760086914369100079359887029317650123266888150499658567779991574417582449178789069518800546150714017509326483524151101894997762391825256602137085109467689895714668920589098474925074084652149819062598308259522128934673709683882538163820718557274400120556007260591267231963564218514618668884805506920626214552695992723918554901697163927492774500054663795902562110965654657520257110134055718279629612469638661021298176375041979440784457580696714544537745800716716474836292413975146537245314611098176069420163719395755626342278353425040785495764693292700439267543557091073453019366164215734272906720086887405577182187573268171390631384212808987567219022486238154617011327782804161296840444390836613698977155733867806549277718395777919595942828875404024039573654603408137515541058706195653240158457642792617619362353998724529563904120510198572772603714993114800169313244956191525354190774907419045052916954750350643198502398718786894641067996447406991242396648171634155513556521743103263378149631408119384412448924848975545564060685274470192260070859123978669765280795212142682071057277030828852816445986099215729602600483096630844966554237677685643147821041094334859438000854682690967676189336556124624853828491357141501567112887021765953928134378982064853097657885800099652132348851369163871429589774031170239864559325568987963234435767565603990387685674719137185966941744158635452299714951988761187271214951192173163107581005604848176248541060893569093289532839361967318055965408147134128816130266114905386755239213921578160408471458607654766895447312515862283414627813840527190955007630869815276662055075891693401628509789585675817864741962604735832038916072867192655750671851619437700000393240595048533770322889739533001168756965443676789195736540355402014297434441081418494822189457889996391174060524452300913128408353598537801375669203973896693432106059503471174288923307871025356313018461831034360728391164223394923560059124285100787172917851359483758961393518811828168678828741799788780333012189768064209851651519438844029769166295993731223754700486269575654634729726999938649029207873197928725316409434716712262864429081300474907206724480710930875844170425270723273217282183690489377217036150915992986675822473377729474600700107200893479720068147875241955303650556472080957953254011730524695479676839075903097190386990137396779816655759949032800257751413068805560613081306491664898921273774946824023818320454892324684189348921532903380485841287609423176456805225352752764696529115044424316436585717117289275990668518462329372099854351328029265841941714743976709847927055228797299641233107249285971228849362623798903324345217127861545985037957440967079631010940125014026596707834013178272716987102012209156161105589699170117771867474956136333153132002673028800109827831552814549958192321503848210166197941946129337037112554257856290283264552826227889505044775375412636935225855152834328997381368153597322793671564060677592428107790273780354709145961874861723062125723054377039585503902578156573118172701561358915120584321984021710208632059936850460394426968409283439959732766291521944604782730428607662654803884493807829598364253097838864138157060296461207494335968623348305951886661388692817225153127380645731730024336611724749855180568592421117320143878589502886136921891950919540580012404497551435943537198829357715979529309500787895316856366559358137233715805716224974276830887259994783498917975086685071271016489937832372119135936108053899936719771815364321765218170833520627003475937634175843196826651351271973740429468589743580104719086732969880245985163742069856857641420663490560040370414522917681621327314153751408157328421869847398446741740971869948480591553861624123509214767385117181396975259618511524648979730172313097553623102459413171060926887637309356913229509604462685503268927164037717987721453383925410918627008137551579969004470863242138514890131601695852816564430091393204180075286102502734099195542762510278895810566351892288576314886902763451884918453067713371041568261779746455081280369502642292443107835347492082741711757321786821571734241596099197492478879438718250818802039932422422142345591230249099894841527129901659780055808297902382581796293851028032897094368215606786980450433952316934714111433251467157903386291666071721240177831494379725392044731744054058389054624844502812423044345520854134439750749254899435389028975749444173086702482492696400626112388583040127815227379900066240780973094813426680201066318194546200639653118423550608086381438373825358250570276378125857746879900163850327465561277612432366513485286867729830255757274760503132055201328517064051763903573760255051556144286270763093246603529944775572063338761719796602340418212221340073016800668195621363288686593660512342057954673424487026666481796794638417976659164589530922305431095967209835189522301903236236650474231642347500450654296496554535059648896873488988590578700573873764477409334807923583907026109065383593226965584853838946822333405083354343581213239976006075007958013989510780655037532791358243054501726522183086813949619895996602720659870122705309980956611843791526048762940251360474487295846641381710862268413348585913243034323937794372277819574501114738776292425176351315768597089401928237745063702414946815317093755510949496813716424044055227081198638693276312447929637470296495620736110126252871442503383917606459198405765460557869844301365768123789805568587828310970351967186123561206957299892600688961601667927339468565477971611322569961619590551432217264720302882752413798300016478525422926664266874065107817047650848043700333964783713938727050704417858716951133272962730292132753641483073832477380404499070803593704139289793640322715979652711131658317449766100961759482311379881497103117431864688350256514473808374838373159078237814448026128448082262119765838786382127620564266027320526686184645627137560492961624703363718356388896949728508669222786015276948130915694133616567781367917488415637071978601583888990366334657029226044083563039180814690188269467447306985794306711027629647763032371348530302090247423118808868325303634770649270978105652481788411651326135023952314351061004759179757859641203406427358285619612321760672698455545364304621972326477994472993117046903631766919018739752603232642037808800995234729743796354604082358728892193508245654338772531462931380483654109424407653507065680254893448969947832921727097030532343152361659729967317645443198227933884548687502768510062544014763339463201510477107688655900925433227938311022257423819790055353614454549239304901519728602698013015438086348201844352809587438678420034864742587842000645114516294744821442164714498075186945790779899925248848354475725780313971992239668240697474978107052032712970356966476814445502537673353922766776769931140503763593503654437530221916998970223669638113700056054907117778225778725342593416618737148380243192460913847302057556479589005480234981883539763014397524394838490949453579679024876728207802687041788636495379654397079868455052145438781449919430596322540504427523930624081729906929550883537307026317883192092274691854752406599898449522656378068955213225849649212114133801883091726035455981221707213853832799108673210903252448399836273494790270559023644940662069580851994205949021361355083836402405979141697577758385491236814062797312271990117894169165311096582499818722267226892279169149660568834735145014334737197938536710687747966565802500931272830566412671228186984503468412317188143738454260330166074459610779198308518303024547945800896958730729392332722422317964010925469560241529443571285378846326433390215566246590907709317321090820714608332381756199347948094044094643594658430072124881914038057979108920241111509559073031189705580958240187527139495935261082778302807333741121092989910646729950848150042916697196942423375826744591705280462996965487680979853299037719947161123719584134163621245097746484385761235880724420740601619198238848761044558551952533833774147650435410122612197929086479306062908408864696946864040500748835188267056449506420247628803479234723795067267168780308215505220787674025584661911497686385460631433950756861202271847772737130517903537700072360933901797582303020149674756493978972455834003475321080282461431986471823107199895930568481048542552806309780286939827120098566572601903134012042902391802749336169995937771411097944182128487174509965302520057999054875370411775390889789298990860020201351959319093676204393944166850189353475546456285763396329468282838848445062816588666680980643133776757758633986298808297186347686650215674491072890005496022992963464988313268069554966521764267826267888043705487090504509239328057982191325325288154633353039375548352160422990427436340752760767072594110399704267833460885536523628540011792812918213532279460384650822264289053398089399878715340234413239129505710510109015187614817531728557611593221642626779694205923902747097534899737178072331983206369849505360381491429090529800010883840104342188404924480197292415278930585343338893190242387583808847815766754299481194678853723242998684807391958281390187543813835125364541660938224570155503094139620905886224552078720835616342674624780642677858436146645455692667175376475583490670834587132573381590549494600316421901559185820316503754715993908699651206836654799052846437388180236389649400637422145984691015890289876700503544920556265788122584077729524398031882577490981954164189943202993776733559606593593559200318067148372171445066079459344995967737968848950522016541882738015375149652189299946288962630583679984938556950408196560209853064424727475878117367139057394892781448885521345208406723729623543775231544589502198000506940673243556200731327091886401680218880301812548913702162107771362011900200217718146408919930791810647893357744441511617476513121090410537084690543363086708870071492704725275157320345521374742293742398428280834591280075746037466741466816640249550615364071808114662344050935918555654424165615025874102364373083574302067117178318485603049464694767833947688508986699163550666297692509411895791759119796403527409796887635531960898154865743497449516756599006025003031465045991471353049422437266054388352950817267667453873236205462058632507315588507112840755013100314087479620274578478851609823708949700188985292406746427910272886864317781504671482099300717376895735846014502836668308086857440757840900464295803995198849869057644017808440288144818009512826077234604239304042578002508838219661637317240437429217204979385490686569111038324918147236518356089725051860109044089450609185125748440354012899567718255273976521879311321383595957242835551256221949981733551317385531114456903734144265810162790002138606895125775139297560966941023216560133003691149074759519673860851059460354266286276961800463155822428992411933847933044780419966396433069393342639870877856740548111310064415914931621360441334258039438683816275434187619917758618081513054009259935634013697113445328478979445432731547158581857385879065567781477939202034590706718716902758463531294520819105129254557251921827070074667236330833577561179547418217235039024174567375334755633251263505094872641003174796173151367437508589514860177052600288050497093863843841895134678104088535549646745723972175146314246901431966605282169533399931828367537682098048966809874151394259730119557919131835544498845391690081816573253518228219583967805013591345169736469630318992008734000187629437082080319280666842782853459538054287744460702833364446365424983145618080775541092065061658732632841555918266095244494667093318423051954250277299959469867130977775407306244863276297097871275866255648766794879095943242723276267903029145881178006457680876188223055020330787888149306865596383686914289544505463336342574657633832812985668793468294467400360992034322456527456825200076175870741316812439028220281398959137406717531785505948114472037305497561091010591296004054684076970639258013468098143666228400052976141872121103069929801202532054658433852963145383869930580288071892627087405577804887562339881374941651204782385999371077531184735798441920888498739736366823424884452593705058025196571655161302328636043725408659289065415622839185086564627210625424721504107172792468968817149992314654273319359922171165134330131866817428865534737157496043144892231072812556188300050318000574672328915577943666249180054662287227428068596828156925674396698503290140080712996061863440860584840411030440667463228117222844138777857781668263383926779026894874047424207590200074787431077457394102045543087443210128489588944925074662911639331761107345899628340278977537957760902750556549580520422848026032200332460192347280417726646279311001318407680654922178372040775332783742484233663188860878286997470044790718777208422338961615814066279616129772384147164765160605948816483340498370698437120828233744120362056638803339616582094639062148956025642719350432602730469950369344637432021512803240646021259923572202319899850159889641614195790872776314728434744246253983205302830619192191760742425956790389268687022706435208521499535257823658275794056311133981681927442178365768445000280006669048693811946113248727498597398736069947922530367223467932120737550597040285764233785869192032533317704444708294997874670884497703481125678076770632485928009006845479171096123112552581444525713916905833988353343413871995757604906671164080041755605504936042441400010635600746673921316846496698987767273896839192095560882074453969707290891233767140342627719156258556708927117746883445669685882051433682600923719563566366478941279126748448282267801692805679954476528679184662174283193211014601899999153575832314669231314332076612938761930924271030043319530792768875630097697053399090953363467223861347641196958227694344242823498761484518412290178533627602507502843141276193989335818774121053739074039817841345648825889872527454124066415505243344599132095058035582297780980734747657242389881984476822098865323954013481834993330194235749659149832563971277215355206984799183816392764401945436190795342136840399222122880805581249002961634235005151860813438171317409003831620017686997641091949876294494121346494477903443736593214149372812020528382679361836384459855661899494455724644680076159608413466276030365276142871593269410277762046206763578037412318545852597694807091335305306197842437385625586242405438401248297589099521669971020687541197602110127260626157457259464729295039262477585905453209173161215362025932303129729065615452989595528763337795835882123422269831980632529102824034541509146526142265477834357219414026949044537435117765576702097835624940556650317217914627117965404537703414953328159237615639936235620637882587042102089155954239392481779906905323222596482687009388645435304828566187044910904868664632470585092992355244011670187556878344694628457504872245333149395955550106121680238676684667579025899310248007642693856810215544127444566911890155522204358546916499329010992706213666077623409214894722863404366858730584229343793741632755693304288396472513641981789048799040941432243459894255570557070680465702772460930483753668397546145434932418489872379864286811850171115170345363115777048067442782517611966168004089568602081951970002929138324361556031294191222067068888436882075638719294245895339209426181866838310051433282030001237483225591466652433481518126780578524251117952221249410772044114077934310297862343817518944592259080731419128173488254621976043177757385327600024006935611074027447216582796579045039328251419087358666585433979953686259309481539918624135610525247662330376833544561019284607967866920028079234223605131897096031131564132861172162251552061793672882083635341808741243333489939698240226147440570659729706120255775177730172564540559556428652316522986061700126204728985441461505990819613306717964243911347704562650500605350414054421810608049419813483759644510473376590450487172641790954581734832861597829041150507604756461728172846270872743426928991096526293522838504951385785570016290074291618268388511903974799889473374009946944262424273878936144126209090518253358757235081864260361988951373477240658042544821242724657143602120952388658376627851890182593462457282631094005878451899604881846446597652640743881378406201843410695349764347761245963996155259668442992758942757892520668900408248408622923105849522519362057695531427995498670961661921811581010851963480446669102898279364530136471127149811170753410323411720206406840076254949302846206233806504093108473006756237597919200256703299518358136026821278676098581714320205233523681674743460319837077538373060423162011847669460067493848450085751897986470510945679205872471006474636621803708967219694927152852132454344399594467031173168695068652080674040614011086349044796890020407654508924717312387231508691029292237262245155878832964266774686791874785161515667213266768315442854578414513890767251545942369260925186396779877922361939270406871976468772526598707405618086130900005190341901869073460715407599105603359177061456676140611875609067088171562860404205414929581367157696646843154032077752411824057496400646328497331687124219149020234113600757726232942028045346903151771613724288748332232365483263648432843854988870151004018612264682703544431254003436497719520017169474669114557753998263584398633450714471878274552132041396610530917272649641786760158599964227556388428766843004229257979168860218360947614934868202753621607331875829649556614554191046016750343150346298636257850429533302686260114998269674310988647353815834525056718280897498722937080557522066902735501180913056742943689161923873064944831757947463613826510143585444233569696165127415844859695243991914585822441608005547370781323741245165754605775447214044368549601107379598185439039439455623280557780384596350473525244672508875256842407119225648862367335289229573871731882553112905004715612871520429753314465810809565748463362651031092468450704937098647049687233171426245204794167002902115161158870897612699858767258981989904867830893490157807588110284456742392470944079819466085825211520517734491788569046478774350869656344997572687522071460387378999925566277680598025849133278320271880744573559687849603898362443547913246378063166082258082422171090808143400065447655557510440357369034716262418412982809020776519431731483063053660730465472604673946829372028840368386113718261770822121301294111864255965064304111473318874888998573807854848788473462616892893376032985796168795440402056587031587829488587949769289081761050293229939627837915977996638370570064690317640039002178357639602969735449812733346474118829726893670564644098669807826805422631380414085851409520480870252974838841206504263366653875983359957595044762151012701253979709873133213861892951077541549116785220257880236119584162740469698085531102141809037241765787003803567987293799780454428786454172885071146952516872166053137200064842209711369266777245523651420942420486035509898759068057306515787338473728147012988154309225405625961554152561236201399906534932577310273888497345722105308281719538615579585946766047358721128150749878951731228544654418179915238366845060689902913782102400720718940221472842483717331858026319340106440241826645458755432233911839140917521860780197490959243982433794528923849577219533603659448280834954451585479324859927693030458563847445506921811296044861821169781595761460499536781452689059285853218043169700511806106120438330915231398125021674751942244257911698130645770428715180444400616513858166292064294189132846917305186862174489882028883975746427199637173728519584842489743084208103782686562125674722848104172488251097843122292768953155165503655194930568272606320746651914307397563384268878437112961877475821385717615602700682959041137376893329851342083459668653137164134693382888895561911344556986217829107629961589688922378028356163609989788309220040522088560944794040940524938901499397432593570577999295762521131391450363677736147573198790015860368591633882135843091858682173207443357017604671088147551651554243322767323168873687663505843747692252494106696474963224400413309197904234677987602402461317479995250794716653121647942420209835092157718701374490722114780388071284678389739578629514364630499956900095847590652157388860051426211617628342042474131763383842904234315688077419686739794440566796855187530203634208746991946725123993013804933072457066880492333923276394741936892771541386711121091271209061567996140431100981807808310094535986881708788942254690114307831337907829163162464072444537217908828786206303037796961045667691010526265419108380986269065300511054575551343679812068501426319623122082298824953957078649287091769556424615525989313365448709766074264711464327738750624802438215747507130407955237584341719171062369322734383790503835715079783907999716254228718441985018460236848718557409872395987737091698301850786411174764941687117344638483332166068491401674534377527790085851239175376137146330477412069705335543195188138310061557536206567521292663665735797056422517682224933845858829028360897913758072506791293414738113241077046612922722312297520682732310655524615708996847676508735124116280101255915443700363555202306015986702612843480777991175649450752330685075761001305583987025494009496312134537353139420954862108732415749574234373002796143328569414795448136526539263344336700579837431666063843626620444980038282416207600858557080507549986102400475693746366582959679087397714207157074222109937275398596475239572035043392102654441720182154453345964061328700659352836780055070944945278154670998619178403178825754719049569155666364200879042327540248861746062826876772113398763891771036929770828597423448564687331429805209420278349481097363492418875572068780866412958816242729492949748748049386220161429492149615986021651970157878715387352645228140032993035734428068900365212499709787081021282211570781065496679866913758160511296391221553088468489106924170081833900336747263010518973204938443359469016941740617572587632555120736593866343492922236035254601925199669506391822286727235661462804450208209870721364086012476388549941126081665158455549403503088022287926884367557479555491259107385329355017338422644772455990368375807721700990893242641330636460778492131421811949123954058944404531557219146530680711693010888421278675645384481017500659841245758850617936375092465289788961042447909637260834764731531765309393619627370309206169188219439401003449525741064848502030189193727899139795859265069472492754498166002223760964959832580811384576290584371415360925634312975678740612512571260215741376970914177067606903093995781174954154733627639163680803292396304828952153009901890364274208395383989644047407637346545665994556085930182436653386728076784375448924050677931241929836481851547818610850022197727142753669775564064880900723611226892475763702715908370287358720551239470167320462504591250062515160629160426798909855241181634967114235824237880356763606199955917798734204866163801046075426030643824062955375333385241208053616934982798133540156854847186095046322819304260668911148443830046448344652484974910117435189043162044134532119558569331926865637734064873348403858459717171119577970946366935570497860787831089893257163093904073226611010317194355725833677720404468781321553452312080265673106789551107538542101419527687032234180900932639176292076735262150134306299738491637428013817918089177129743515630471701504393916045992872425990499093187943544464675516772504347679087023131853636332950754650517562780164694466104950501561090804442380337665328368339008503547126533844515037672175755963064415407046472586130588930155891396285474607418286380813144141720379322700820577650760790355866599449964730813980829878030712320015956245328972595551297063132416574472461108568217336196301343419320095959620240603494248448691351925991250501470062944560448947771766953743293331477670777952197516951168530717617543654059504546103676257854467810448235382316962764759370494885473508799167737263877828611327755881678621081031888646931868673699370307138269400396892946982012508251384811822779981096381256026655689680582916042624595131643261927596382675282935037196326633094613142559630858272900460131506903501005809342204790386831294879579810705903250690839801787729794630097880934706235787338102119495149613221517441767504599854927993041515103935335075389552247251731045727613724526345243231625752813650795770842043584519062313354063500991415615867917412465426102021083217395571779819804929275399137892324301495733935900699760089726232104759627743759998641066544584276610327811977713525912614644847383073211887043833601939808581824050579458140064023731952110582388897737891046609572879322497093379498681614364238578219974223418782755174725784933224587613010239366085939565229624332342691841641939243021294839631328959576130248817291512023151298836640783620430208023072658890989372381664687313115273383352026251125882780059452537764887185433823210081779391383814477606994433440962124652557594990724017103634135566930897822573199508669038827122712951800453409888440719775446860767343234368575533603493385814434026858508673841809282909126630399058675520639836866349564155263374157232031822326863003339164110580576753849863546648293150846099076220733977329487001955706904945500474600932206997130403631915393251491923434802085250514708363180673447780505254552858950366166564911992957779135132124043048600203315469268623773529623192999849615118167393089649498699194038873233701509548153961451795520214666830093612417795317510302595420101545820314829032676871330054404624078108901295736491192507639647966987857613546794876272978383190158331283503622508256323225309978115344699065677680095654971798398872175907855697368080966081754545516455054004541864803988376445019067788643791560450992343922155006016689285119012942929701107645042916169689174355947824234474569045844186826709283893650456967659999407441449435324200645313269527489742998088538161239268430657756587157117193986137936569825913393030736999378943221374058500723012108201973668345409957238578279483866335203770360509318690894839044693866790057727253214771878465562199313896176768856692093438089157206262761919042338585265448952843916642126575121110418483390909061405138398093948834517649250657661179979397863309444619390397847156787326015472573635245887279300600496116801389352087673034013958733127079771923088071357312182157689818609235119755176952489360998355158734752834720004841227637663638231328549558098259398076477938608072025132277700185697292302957702608102208754148426395089513868245412489066075389852039943626073987106813127439670927409931831687321128367251162629615219375115138062357658399763246946415008312531370572563653755387969507238576672697940865966574871622435315956259617333097913800253768687184877059342400753316068116072571227319226536781793156109767183583525290906389145213338375028939701788113232064879988163037881154822520964828572276589169436068847781383163071436701040496772753708914943166416906955711878065337327396544938299653058574742783407568822853784656706831186846250319453398295729793766922457585344477465757676413605238494999210966346516923651231418047923526783094260715546744827667213741617367675868457233577622298497772042773591730260980762871899097909090339776728863795071354350793044154611626274900604362580512305204241876877117564573241920320979224025054890096895916279859255140227406244075213781876694231069683824460520024103172520946414458428010330719021231710608128993486976847879162530899960078513817938822881715483371787368777308172681828559961743757483127539143182661813229030860170138808484024860379704214444519071121667371907400838453955633187299781482894831718428819211756052651688008655959402975438834930056914051888215874532666549524523173098459234193656448243609076510166998185106919953870479161515058946184382162087856775177174339587422103302498485058626900004263685376837194348525564684718027389829228733527019915627409262877374560499026088986001660421317545683083766923825136492679882531947156992834986130915153012457889221996117740841752356227468560094765704690421395685553683836755688690655823448343473985321733119887927523877695241760303510071921697368836022843059117724598873498517839028887874864780447724914218641934463063242054683065104773793584807386313911463277458013993445724215673029429160923006155037564236650182111231390486305368809847373814721839289776555658960254468489029151854075193106814158364469351964028154101974652840961275106957673603605171899368812255729025817423530467522291149842588650069989216716282232886200318613819349999127873595404364654563994702520194760552515725436573011975852977551815535750570345824582593796242821982078475323854117055171087319671352404939014853362482179097886421372609014314219209940497249576041964797504861579894254390574778576231366930918937788851508090288615749006223005150826568511974425294736028231053933454701669710734709181330484933198608706914423806264058537460916835738730541339560645965348143437421934045079856367139838864084748278706689971726499363323919317066010137397011485899326772269857817737325846998774398445862422198775754095385240777456296337695311439013257432761395834089947469847447915470726222650649406102029648384479135016114747908493572528556932637393502300289552486437527770225899642253611442533748283929578007787060153113617018256707845535432721992968499128755866239095984857148581813508159940966922192677891066491910781684607836337635003765825546411420278771889944439604581683209450337999324465693580108676145101298169752949917171106338165748514597289076081194630297097793012449767250265826783495407511613242399795693617179377323959833841489314653342551980849150870531718439716813740294272668420716816856660081857418679331195865705764819636528202576285271077808816237438039017478638843114830956599551939536781361041539635180390498871876480425910807884222942475491744440389353474270201880629080992424974672249341856629295724453252241194547009526327602019889950780122761087759616551873228055186445967956142977387854926482637990856176610490888073542896717585225375193559422049525201604517652205677760166138225301016657644136187130225220565340136139041771758199443351159459918791332403513932781165815885440544447706902903297991205331258082368287352097825534153254758127261086347366063343942195532322087714851657561397998408253721786255305910901714799886058321382775850464279795226779106712421348494968528827806688512747419075303946345205537861312257653711702163741750024062369624014258733318401659598106691535832786383879366918526607380242523598751110665454455481990080258284367602326853935537724464604847526209874537989461867731232574033600354989951360537907081607856102927692751867755148083988690999443744424389786762619457380634528305337801282656790049009231001892898204279683080018174297571934944528616351664568746126923233852371346712929130921841414977986143988500486009184946279786274289044448422846994763445717576434012033439710066120921241032177120102938486943146192613896983677560320982536842850706158093579742827259962383478968220341162865942896444108804727873936864491429104091040111942162823014353254240693332968892872026267992237057280820165611379902049411922179665592017199198486419633690672327027139603792551749054685906583891439456029723146188749384886513258082024054874711468815851824401036935569628366849168897402863880383203009416318560321848689854074738727045331401388111359301477602297377603053932493561974673779634512096124085800188723384675524048893820127738689890661056936840867239799836926763352835133055611224300421504180340346662257078126548071316243794885995629475876942363876496694466418218848157792312015838955449927941427016518859715003292851923876799015163303331338371798030162916961632849833563285641529394178284547995536002450026058472171494062883072250434465662737343586537803247594484372562415499413335016728554755974228032906526245354745924789415052936743658392526011991201337937469979456858206676054586569552278715453223411319986373118872542839091619925512365534902775234741470438773432446912709727951836113828036028772962697492542874324271479012329054040573012336441572185539692750488485875428484359040444785537604579063371395035360206412995893613308514815468661305383220438654002667819018430650123235744991340413931001161843905131800954133987876013287778097282064408853546460755237405139898062912547693762848014181590573111624841346348208658878265435509531624458801817050813785802126834788692354709630215693233533507489475642653397542779029845873778468662335075298129224442103222859029905907639955226816167219434292177613219409614559469029243394347077526096452594597957755110114350283865400192118401550542858454007251965220322084151252042797396812032394797387686728792879071416862233434783846275157980762937507993792433317236804663048710337270292820728616116682535126003337147940494261651460285305727903566918384386986368209961133177841379293691117863639786120865157244609025376189145470516460246733610737103270740477702190605886987088846968020126924790047586971266964140764569422912123192024260683977949644144147924082803953173458031027164613576958250646752593258198532845741115758092743111300144412199159997436616658957221814644566908230109228092225134272376019837094996067916018312940457201317297306636212743278232675908935314303432073982235745518905556301118223828508378598798614694508046685622835519512759556700813299529648434685450454716352295411818433975858602700016017303025705066011626561423381279833338335984285443517730782383496055623076098404249569384887400514410431361618709996581820320674535572135793220283578377242782923259728288386477451331999076933227228016995545017677682893822172716596375410301375974040389950032783007340763778432028576247352154616937497494993979214825834328968172032361055866690271749348762634020036636183249676453197039203981019181363929112470644907134316995088852468465271624362186935538012324060214789276984750587665633897952445571676185116311608717524632432103800598347460203107898146708592812015274339264024871652899745098162502904103994122247150681073765568967925973525942961695524773541508443761573346781771192346733991250935810911101843125077947990161638427376406422690081935087935532176857728427150114214995651881297923095453016531579947224819395584017452907137282118874928393706754187362030847673768347061158653708924331783510581666293729627662890298769714612191236963595122231464978011737775834679310559185151302398117102618288940495620695390341212209866697678829608406272749405526943499943966995801905717169186367961158752128331134205146154549538249181702657712299636394044162851776525817536404425434836516930853007519043273854313864676850596446229014731918653318670751844153502268275118000469683688964465304881231376721831298114008591722527307600574716526011116294113210735924834883755144472239369353743339488139378661343016127635135345819741593953430276935231959695183012173073622574798953069021762894542180542373839817090901518902881393529675102583948234065000313862485278939794962586174739589371983243172964074652373573003771808948339406277959768365266289945031867072873360481165684976948196735852828966476926164544174901265422825929311148897483701354823601228390816318904506630610567199160850960568881808680079080640558527944854645915979281778142727698508901276862367717261587789096896667504076811868602932863142246202467571487421815505905913553702514643537739296348587046057142443090610527192186422214267312259600823244358617143171384487236430462611720476822493527077270636876538711905835979709374577486349404187218338233589664467742817200131805030191378939430221761615745690826016577855118497180262017932299666670071672946922431726490936749036565488504611886492732982206575520832925602982048033280674639064511473893386176551523697607073333670118916898630569711921101377915572038411771259175429263141647051687556641894943344558885111932699303118564024316739454728499766131548967674810957243837892245127403214870856811745159217111221382112660294422882560322125993897551672147098139455999834502549903028190636851787145154822915950160289347472126790186385000049306027853325743983798054484745694136384966482908017032375658834083231501711871448458428785392163566865688563575043312511896153923973320412992578907886496328333664464181880523182190721961753494287810316301512819307799509733289127322967291270146227625980826522864062624144789534355810336996804427678740510976990622245441714924740475044267035661171329544068931317561777736295999244074753137752292977519849659979045887031250516347588091295965878435806641059516831322615840831279896551023182147774383007769025100958642967554470090186689731994316825178961130825087288373630461364397477781613870512387610453200463361473026702389817837833070696643812989878048030616988019847770463070051676826443548492556272102669925905045038988677260227445617822876879976334383914612533486720350772337540026589229864115478148205574979365326907441995523951318086682525641995705802235666323673412944554590236558714404795047178841084498008766162642572748308882032351591474178826575217906132253812474074554591188060164380211810114380555860421626648633929891316720934846774574141044204328943195469984693485321377754133865305767282192243422754861743796158590418332417739657809523677208691186816759089085375780880236191423375182493423312056374112702153114605569340673038372265329900965880096904698037045633627238769637350646476952961067634868421231623115628899797795511268239970753180328167639289467371670780437498367249777767089742104525195179236183222950373968443691815812705740039050202091228947084761836483194185526272125340875154593680642485079864546769470336190687376193763694978325855977668703976754103259995283399457176802391261638078649140456296028663083019715200045296657065493347653919194630306568063765032272994416740612412850559210257117698950319275856987125406016598791699241984754076357190841032942028725936043200756069897932340762975783134816077042384034555244641540608266411775402786894667047282072561332651727675609087941205166944254214575131294747951386329559229811888474271743585359375572782392880099158908769067060463832599510694024085730027331318929072852556242358650644392233113977227501079125661131705767556238049377149453588347444410344270259700512393191000805273154829651147815346807539838751870001730441222057315644544462807240771655476156073466209545694719439423402883401141252818116266915353963030347003913858990318609862881187154653066218513572084193892448846250528358073140204204835942062871254428112143333337129113656575549041328556571824345942563458116551459416412306089197493461230312496787078427280682923419064683319847248968405261793349427034007955222951822105354491222261967983325676088528755705324765837594912053208979287133665635383972057787326800361606954059731028377303025224049363977062003063197131480446565523317531991552032855139453577342993211085558246729296569060750942351192525112727291909274963783564707842558799578939431953050401243000331496864339618030808336104624672551917136004574630867129064070095357134629645360339973017753841395065912217635782133081564290544876214657914401287469315894132795566147437420089471393953961662616746723689933149485516825170094402118643690786005848760808298765953192136606549527272352080553010587211851938801933275276856001128515322938962210719251757637989818285416274930009638234339342432695300743557577502537925558832999619106788428502441119515579290669079982904999637648012781695409550517092199097770826007479522063067179318563294737608388471511371315153640765857785131920375448234776711419263482083107819783032120410789421910857260972103008739043958088945876310503678318391180291158919426569259495119766570948650359782576690245826687788216448910477554380727834730396993509653843399831081814145760151068700819210885825271219387188691080921750164917871205040580288140738292743087183862950067654245150131881757127301786758912807861142222922801777581629790327725659925010886997595392224388779804273041297227860358631919633991070482905229099596298760038232745544694540137559890872240985954314937784146012073104013260373017240480352336964282005141009219352307866921964377554946903523655794938909607201929256660780355528660589735834253696739656636928788760819273407564050488808421314020972692700984259123181874985303060486259787905395540687085725049656832321797168158621377558738616379634399771527234566806815745953297223145715577269700947478498703179932224172204191538515694027989586706632078670608964685491587583919713748293483578334109801155274803604208533462277206257924571460141940530432740255096820072402802728108183757928528157474541776942007968062585557626363953462062036136680156183230899409499360406384415341156147420522378562019598744052657017562783385878334888335418705067965114760558242401958599499499912708327265562942002651256414963950869876949461108717007535927493853116937663792325259269942443384579791838261198026546817871228711601623729543122631030744195260784172895265924811550529521229723494549344895403572502305388213080642401641355537166814987669475857008994967221654574655141155773651833372055518065686110206357961453690278645853263102479510325060624156024251534941594240015342188784116487319360000240260541381810490136906142219068667071949609630620625785861345505558172518457099738925647704059798085386781915075628037995371260943485330515312062238538320312493579762778567033700127415712372526975472911929441750375472141687416667130457656452690065717726245461905244900229951561923342825755602283231014397993707595842546186393906687414885568918018982361872877821335529331831080310214006925808491701386178137096724284650087959332887520270047814019048295558976491005247919436048534553646681798758123004503271096554683544160472934438805156514349564714962240199323439357819693027080288721628368140933728182179557607989102880781827130078661291706608821288105792136046024821114557460647881169947107204185038040142926379223342397501858084549646833284031253161985058221845192776953508377634358741447957448214177441230161816645159430034847347614410959417498901943966385555218351324956128903154074437179202698992311675737949606484314279537055681694791455158166040792066480224735141785008503495387923601438638672679124965413085653314256235067719249862788090127912675144835608469303371349442247616104896527589331526749308187695006068954200372515328128593030745774643997154337975325952508214143125654739348952092280509044775374479643975669837257466889697197334362133627280483161718234795484747119642162346297616606325147197765990756833939362634471365141047999335867250480585610745034010870117410541555051117955156559996047034266184716188493025075662817711605896676137183226005166500390085899631351833557490697416072484027623817955735559100015421141166763514442001125502253371921660077788637447206981880004890995747422185961535184548728575487473258009057698135763964411647393562587632353571947521541722172629836001607502242290327920021238540725709078368341903789212822302649740769172559666383067263574268131384947310859071705326337147766483723298978306110917256158647088203890806532151486653339487957423536497779352762680288072063392691988601809136028263397763420329124214606155216096292047686274083767206832825618809652827402053051419427466518029674685576426296986253796765122892938497114083045535544499308922441566034228712728959974166931197301989926368969827269842214245628241359601026992301666845472899995630679950600446253802445494200229007074942351101884298220835724010567402092188949608360085472897794797695117483677635505164875765615077459175665317348012455736432702288543458216761640874254080468638991049041553670998690033462059328084366268127902973544863621248843960257312998536348544860755608026689455346936938948534705384187209534488021403724576184531278250541519329965993997277752232132173009552469542572119748120873993002821093102143334091341162893305314902693471323009551554513225811180489878473057099079934096092958764843946557228637080759747764602990466258159136622105042900598779173549226628231990156659504846309085447123226326667611404596575579449207538663857117227069548067142181845432782972526483567286124915342072774737660942956619748843857017509742210399268053440112899301010639172541376084460664236798959219181824968482888759137763110354791691486024992162918634284829414376442264753248515060154980856706227599352724574416761496657328025756275617127974534626746736714190663777363598001495459306953404030833720455835503291402379778461452401811189896032796818952534210630199818626539847655966532003318383835483245193100391354348469404799430765810572259012714133223499042986037520852838963599053406140381874485798897358372639788802450656159414934587467392291757295963202077434270587912670362397676842013128061829264653264861328388084185976040858912887749589658166481914858198937486910713121048212125338749843720637889083844464786370487567163870586034615590268101119962384626447648972545052720500726620504755559764997840618250669584994756407488690385628666990239653435445994862365956520729338823329690723776740853374271067245702534854800710889834615089833754802304031419141275995005631521208435399302537042281413437404091773467185452597441929442926065996166270548976439650985136123829195806741644865641599428879497500354809307926179255403325124448871738287103599340413324293552189028813069261404102652189878654008065908749921107670437587972394699749040136530364356141655288651859550284884036189538511880048977715353324433881521973051843359033807942519551682483907158142469149890162795939239304220067251761113220802842129418772389079316767518228724456783548506304064034276166821771474495117522562135393597752279991120585855944575381449972497701581290336015116264170909178316350958861892038848084894314136407395113317375621109950162260955899774063053994727928602751710347475082728612519736372601745908010494834878000132413882131628347606014551020459470208424732198548606077346545794390988483452039745556311448425884533589697816479498627826407379808217784983413627074306308002000164467197656256108122337331119587084480738499809812419043327781465667040457944047582369444789261920014901846099295005634532704520249629055319046771244424750653782180905273878140079247592945795624299018591104897377622262320531159530339610330926953120973287472106726912396298727631213572460363720414107046895165186934147046015482134160756652145941187264986407180746379944168335876223016784109970120153517295062334491837951988623873071449215243842259383958802357224495246291364997908918607953474845537528302129236235514645151658378749905386341406542446387457436740142660964076062371969236522069610661944022125741450422658626894449873021752440004709458377314117675306960952355684858979556216027956637234469942709214005217793297788847296642570736872265791359470160772967142344078803241728207638879874667192790407701792628245444934885504640845246461259270347708004127862171934092008770167128197935381583589009842084112717052291272802928494070206912449638102061744925498095394181372618839545008263280130205795080274881434790958473625359069855130627424557547502762761733017341141304968911293724372587387945870699245032378605776476353769263894414625251926317593760788101161596793373537382896220370988552526203398106981508407582561921412101210790575510818704189178403024157565813894745470670316458851733878718880311648903248833251807073947112720781404042735627958791187777877552730619697044113672191814067335356431161029855834455973472060468049712156086202968414608634825286210889967440483865479487513019185291973250087497567500578011258404567328625972287889761882523462399632268918713189600040856448261535852477396147748520329061064497435498883655665609479316190707583625835997141791082263942436405989148664378683867493942905599538054109167120230844459552062494724893951900695342803451817447195085255264878539982528834494651921710126269735540803089168053027108666317196900601820083619993131550040050450292501430322231194977701048289303685002390695897953437757577476754146445203610538279920635925547182484472592856898876166065839932877916701471878907877618803501161338921310058700649840755971112882431840298087982912575768048611279292058814913835161871657193304467171555183468535379587521554284358249205379466190311373372768904942945959358016533021301046830666773764043313261966457285536250545855381015578149561190217457944004984006996254365465135443701898883825905279413416007314254961486553780331840698187641301144996951439583532445325585619252374774955680450183711006214645565078519939242705837970812163253804291937657632950870721560946919184063561013463401139099192863588667559152270979270420719028023948542112515353584094021179918177970849384757550731153814901772257123566416170341647747633057945872636930495267924486436510591776177752783662923402172129188185375618614027444195470620255182540724206770279997287946728056366160630640300452619450849671176370101051866455190360940058516117493854907322299963080460844023032851054498596750951778125965121362521702745377820809413362635216153511669967412869433422126938958130084218301001410715396944033832377889812318534365842330676748764170927124805782599585413733200372083463930800525290679773738929476111525155913227672360803630883923685053932380245482565019502443469122069762813082338339701424372646610662387403637971788861113085266740766844770244838542278700674039429592672150220859220060537713903838039103082036490994940802355788816063001781651044463655816305406781096035467143144214548075785084278927696446481719423232429144962882867184422150881776092669750526485244425193701575623155580064185075027739236101798390962394585456180913326476585783924262501706348603944691961782779403256864094157892045757826852122961555290728415945836446737529464948600360509039259352130788257437459549349715675265815178727927933488262829845641749724137812871239787821000840985021147443860488427110569628932983500257570563453942983716963691756695895601995471844884169925045787188532938984127030979975098960096818596364124837898563891411168544181348821564928503642430503853181873344608609212337176175505388192913010646697273605636110016224110737767394890117526006262417643431438852801973318718492576094035328325926190314338112547429126217143140055362058235719103449026117075787748996457092770733771640837176521102413351971558328701515955285526996064943500092093193939166013824755537910287991664050519317507335873516388232780799935727076870691796921742989761039980631361205964969100907359564629022374438084990434606345207495712079009506940242485202456494836969665589409952565483941537436375135894267587979776866537564658319933725939125945357536913094186806786917533080597431884723273949492987245763163106874997795299713839933479277130611692870065690954082331388381401235780980407271975955560689178665402717746236154556864932265254811901804978075057093427749449703942109598379592512847301233497829258709454912090991352240061094177469589425955408169490229800210207082774237614604958320525064510856353864876028422777061766213155437690231117226316229983925761058473961872863635200251252187901514352364172153912773515955156422531729348540944178005209213700792178569023213336191698120242556811110433293160974211973050198581438743384617465369096063805655398493846803808031654234289791457416208347180420895229433044444770650723914114827554247980924709899588970348829418582154032144589030547507007776592488495186734181695291694546564470886191646168559071885361294357958746453093425212358991196550313573981922631719800856353712637381985266518997170322803546471787428164775390634617923292139753844011297744729962649033947658979056764463751385024580898177623074735287789767200932352348558102133064106148767437544667494132846743475561546912759365650145147219280547195810088698866107470446321564768282233860753716408920966069343931637765413901395147090147841159671678066213614702495783441363173027387754006233979975455736238587365573915257847472058228944182925859036929973155647757323167034667929312581583841317937742638677490315120324554561492108500051441944326910444630859902310041302050162478568315176894370956759375199460371049804739097550513713670175640298557772304899530877883388807109926529286450097901767723184652933504648655972364186207397452219828640450249013502703004769981767525130861723967638239041647553411878233843445916705493505985021874867556052004872663114727664120320007125304180518375532790657182645517734120517692974759792122922564622712373484502328418839248115341639504496266308663098174358145517283380618423170137885724805125789290345270032180993155752870584588055489511083730889801242299746419165357509415932299306746155959058497122555020231048858435069232281540157675300236894561652203614283386655219362374550170683786988923281952467027487471612990177381591927143921738841950106971907257345856425523407705940262077800372807945807516008252874028346448265532349373681073017682028199970976543258818944888691837126041438331431994789622540082812735579624970658860670175903443397721745182747154567761842598215322548435953080442591186767300755434507486063959529661668041139419376640169774964265249302670301419322137051164608106997638633553026515713525424182449267620107489787561664217537212552161260282768379483119421911147613430720159457407608979665250056662014083703010925903282263882048866946216410148671202902669402015972434782307953361324487962507242746477794089168330926717220026183927875326291803650886595205902445097675574408164976917077259571981571247099528045929498371531938582072079384291593079826217254630015061281081778313612568974223325140556036508638939693392202371307145764747392217626264347164025968012566948204300451025834702753502393310281765471007863669017208026860205896178837813016149083342748514803934735153847921833328475443258435570055003568763120479662196082267621544779466302107886927942161973040551072822221105217565702052532066009660077524386685274171223541229751647676763401379289859645983457247539547250571829761156705604902713499324623061248102842851321628106943660028798826700316948110166799810153647106237596133343709940498187273710422708477690083685952097698944557228063432058419489570346466508526157989927299075203342922431143802027217613667019087740390131770789370090166615486878748185234712232567696013993401600969751676939295948622521439690967378970663793151908563363040562663526834328827000912174751728057017298989229101629463120654520495221172713418077002107363114978611643336519051585271760062362784797715464873242991771352230349996529503952520551841721997852667707183932137229657061514873662487520780240509694982354996862003610371225507562160486857353509804491014208726068364637714453125634171951815773698681816247789166964386208260728463006832839178164743430583555418284198266844535901646502608514980998466332367530900473965913947795434287549800722258148811156608640297919402556097063940552373887317037863255240773269435861616497690715709949511928174716634238010662571594848349925352297608441110513100686790131753387774398007862296675095396279926907789627588183481782752481138776251311233745211677877469990139398488339933009879389339337503422836559862360145188104715097258921627397068106360365225977248529841045016216744079216821102395299678018352912586466042806276985247731904868227590612148372715894708514097568331129822610716011974922921184511875272579726292756915211475252340686961479662593485627305933395393406631601632635869841427262417885905277625916790673264610036845386196457033166494934257361229468556795747617009645094124984656853729564765172211190748237681307249550299618576213304128295188305560331084369252932607758988421442652574775353724923431415449624298159807987982212690867404180833337977097108802043953075503747498963925128326672123600742120324428764375294898439236829555618181853120714319182962129828005642991089664989998578370516086722564247344243565797102371257620693109934469082750737433311742975391600951941707499442069909282217888345276375925989130449800171158237200477971825815623622469277722430523524742616843367130642168543660299628438228350973025442400779137347691719788479984948642112538376535556147855275361655867469863384278104550419655630493305696737899190393592722720868432480843473563618960628424691347536179846026202286122482247012014711591253590614633368847877880986669747649433219402912476846385716015923702001410327625907144027174937314116311774639494224953804867903832190002852957157758290661673967265578040043304811257269936249590621773153644454375514364662360595649259943455369289711238733709343882455794784788947093933492701421697951613042599572511431305363847466494625607394861288038044151894250787801206330698704686329850103083470219275362551863917966306505238718313801322890673334177064713740850331708606646236934838150882491439491845623141450654675749089787503816635935482409158371188476530968353708339638521437989550951783726223299697246284837294382495592870205501738119533750945358094792714581367915011612796372997595378133208077877512673197748331372179611988144053001452441480115955468390587956862022643615616959551708755716038299462057595849657322862204479110028390293996408086980326150568194918168423583373296486130987386369225840321863111310229473174042690401176878949312734939650900973277027364299818561268906864580228068047422488150386357523220894674124415027216750631139075338321965494028303338186806851847879081242425860177882624542518725662233997292729815815375843273516970284269100225582947980548759874244238445120351742156393754554628536886803169746668099195510435575735231730087935831218235219957993230654677690202684652862653145963351093448162444960752311646035131633677384164740824049816398951246536990905994161810478210946068999211661389874488466479213749261357373556314131283895828502356290412521754637724299710776676770418068258323623439805317942107288186095772143995970802781794723916816533233226682699705106420076065406891735654193308172365854405125661402357579853120243460678710058361755658701826406560056620923827733812445768330039533891009602599548376121300481946843612068678806240117101416197789760206091096256140582277323833208444544334483592104615714479174002113255240698944603670579720421712737609573502091912844396439851548908824315005991938209658041708692408731767422851263376067369770019526357343144778604675744783206793278838968524984795566107661412855626121264201337776414324631272498224293640669485228336204032358988352256716000215153824808351478625765967334200111414574209812023737582352963028025697680399614808751191062678444145334520996311135196626747533371242199688760877951423178601996458658243314166401579666289076175343513073534928580496235263281463567587637891235194602099650992816614983199120174180733115829167061473524025343648761813475342912459172722108736664793284298079174459257298593891048748547706640422902478694477775482651674650161002503273106818106603654084976182356939032970262829072785183792796753389334676777824602023106591952023589537813329936648168503118516111803224017282141506320505046713636134795240504781594848488715807208742283649878460488222483177761529158447366889823256755754832746602756558401744447891829941362464225274966736525421202092088952050803807090125491132034036889059964404167095349703315221222996618207495903109325551919450500370718827067310784692226464028784940400943354660907767084705359569411306544510866430721308434227587654188995155138638625091597662948981278917938476985076281614382184476200323616206806166315323771886645113321307312275005681492460371816865019681726918801371972927977960163891823927413282569763223120081070531927045160937142042879102874617017703697561115699060572874937986180697810017453174491877735239501889960050718107883332764615390597527568292984397108677827418827817006495623619436169197854389484591527580587035120315419924131301551358839625247912035447986000112472400283720440783231887770069192247275705601380053676531913432552540555902732305672458494929693243710958698234839306631275024567527746997964548218458320712299205805555669024504706403404283208432799281340442599323234174110175085027291138896635266294462256562939349400947867409452534982635349302172515638910179345597622169345848379343130020556052964284957658488372933079700495344123288641681445028688855700920608744314564434310209730700017450414166694898956386339434552761502862545793004307551157253872726070189374620557528026143554951122812242969387440246484445169742869130083345477782236686983955958314948096472766816990297962619823766872435836042641919577942629019918468072382325111780115942653251150413632546245862599045800485654419537878892817174670961179636376964619911980797540194121586538325276832878992850924973478014552434587176006425231160986653904567295360216168518279738402905914390796610850310729540672756630006590094808894030645157456917062396887542438964910617517310096866410899902868793706874977405464230741172529411935380668693539720112647229103935364626932225532506666264373924073478892192331062903176643904841288148671714133805867731293050184237535096205585001411782038219662964270941071611893769994555056305404179124343308209027470779367997476155527592978682562483106949047840157888880461033893084235359785840166930502605496157760704576292780152954603882105900282241438073279921986390958671753668696130578659200754228798539373229053152298905171257134799156230466948674732213767077551564239978560735715131407322596850666020880998315298257724576197995929700161899117812416264666206449695570282585630758273567694957624492089524278188256780773004487091693551014273868699170065207494949715962046561171164846239921710262282469533306583886139790815855082556163531433161937708407414300698581965615253669213567852255934958606907859693542649062995384574502757557745478983556958470794751788488427486188632432824695706116817935379148162293056265508905996772338670645840382987950818095720272738135150301623307568757778888105557523713655382234498153033804659897736438412911938069328296501331064346758886301578374043397197882870559988441241617552077075142090370908759516749962888018564674899553862604980197647726409101454373406327068153528477841964377265645770995844995901795112890500426298420671050774664034409222583071622269899362659354675468723321136220380000450053081452231175708694474080977047807151064279548788577093506833554144506978336098162906224607313706086702397139273216989741671351638688470913284221104745824953473386368839328612323687737396421851505769513448645894631466984771491952421740127654678505075378609855893952728566189009241740412826826473580085753709978646679179545603475062557838683350826141783940838656292073480826323542404549076038108720207875706858992632997877802391921697761535047822127101102122764197351408948103650877446099798430189716776491683159092050254807052267124503421056277579843439200443708468376790451165003104644392108344410470239649466067722518839921111167910484576382046990067569547574945302127275165563150649815406603932854552699909811441466105386964952587712927205710011264219596752531815360998923099255073530552633051224939010267455082701912162128368290208222832884269328032049146951272542215913743201290903493919958404581458829559869303542439579873499812661177870969123645627939200059748386519890802096594614986888258884295858692642012382224483091897860206321160091332655131075724160014414949312586905320794686711378790472623929354161125536360331393649838102645029079026825638303825281928262854669019689828786814166691936721695102842097593651312033786516033420249958236658142202776799191570622443296740532268719646544796999799283799135924720412827024597873540612712222925462087530608956253893062359214506376845077804690103759417603320429309821376319494956019972264680592359313418061289208118567996712906419137121960761601015997717102084928517777055926416419035379423524351216710223485066756625762189247642504857349692736767425106792118741527558899765062443749348729260075519769040386296470037470591628696380518897212034650339669087044224530517007683155052587541626293907683029622348533785142021243301960902210377939122675309238182054980957866728338385899406557787600947629106752306515097645569224182391104885622673973132878999433529703300351277729837375509886785139323265164705969031580608810863588423101868303579638106514477582257370545199685332761399356746714695424774650543347694867748830417862126253597512468647351549313941331495593988230170403320223705951712983180502885698651135434959274599621466346238363508745304960697982562469583281932014478369229682533527908358561361643710658158905638589517701498684097972438530215528370577830947795120905718800267930414582896136994903082600312911436335552674641501522667327159296062188763718135865570529326664849570888753829046019625223354167931681548520768235203775792330351773856303171453575611755667576704352421324961765640078229413940991156540397869695590331807011896326766215365734526923783515464502014151984412612297073741809509848382115047059792958606327307457283380011647552664082435209321193588059521437828498955312038527080797614290833514586173013525869746983656093853471019584514714691099986685986078032331832481367880104114243053885387827513684617941251061708382786901148373261946366636696293092263959651157109234637058644944572675129223031298987438429236392503720908082342607596558340888217369223057047704042551182971977158965496678549923368854310773757343508969909667297398394075634175595213256767802834868780682500572786609659587388790188417336680865344033798063377711705792531935304556115202101952052103782683977997527986548595891903986371026301780904000786780967385907492986138425780828932866476733026585276945390094440403390797431077921725115452242788325727739893980884178104659415510221765766327651278483046216371558373177760292207795136148880814756919127188555199157849009829057939752517763553508669867607228374795070256224674365949408517450492456738274124539185523346897637322286530733253888733587134981690232404009140304336090713384089525112611162687208488390712547648795159098900792467903389651726925779135304345427560172519030507461698629890584507398562559599114668646084116206543448399751352160954150771173351192127230918815119080529592043122981457967390892180428536330254268427659198862811946574229974228236315579304754475336129236196923838868620888984624792225805592329983567999531969234891510373319042656822438541929617530160719695849462531186695411851289944498773525778352573485885328230235803845563265343057857456533113192775151496985174636356610051898382630278520613386996979525875174243448542104771238741264580708120107392052418654345766786102935319046067285972358058444854767264704895757335699279491048561648867808444643798896355087612840648240187335544562484022315282947111156500929555133104990803993875431438462683007755243352256319729607056440306899150958485331739682973884254503608800431518025126715132159395649257162865318229527483744997456885550006952110371750942034293641082379700548596506714533666093604777274656109200055094682333241175142951278710718883543543402866217948066263280365733085280056385993844536058977338099910581085337776870388635029855670788028831195568961503482450131569528199151645608950361203711968916242421700784810960327336050987959790115408235031008200628055368432316071579184965690438284545783676857628214031078305191972423254582383102672851309594840562700016734290791479743464884976209733505836312720299148444900802157940536736659002953985471189446132964648749726613021903613545578795088201685073026770536598729027009938370828513667264974700171222053353175887475030741039853528100801511704889399627231862470061024875073656405574195467779232804153310792983046390754184096184613971995275176683122075336531108524847274206961763849013688579132225153274447941053277971125108602779116680524361427476576747163035692126085357164861755489600675929715729413090214670683132158073061483521056554400244984207308523341577945811344805174296634567332519129728697703637893280287120770089646602663636215168950029213090528410703478104945084629591746410132933299685249579972496147054370291346520328758931792911042774655474595944234234454479700376335671452592675081963691543138660995235691513103032108014094260738929330794664156379083511192243282900412711727810375472510953938890172066346213686754891214593537587549630292863018143107242730319793299187120646133664357251566448437405486238565827919873445504283323506875429995114957588797610225515302068359745091762139575822579121294659517624698775384500411163441702356459064803332631140386408123842730188869612118245571960546489390161351099180009475647980742615516433294458853162047952497389425960927604935915242081428343952897391224850023379059269389047699447255243938314082961190171255633204452188932665765522023453051059952527340076899718664412962862195456332704762671257036125326303185026385760933458405937769291787768201329370631367116447361095995041300554373731725726630283789391544692454104135072374292074314796264746423623936317166053156120090049805667553368084194478199615932418576511678530343856867513412162949260023343237525011671975145163234478610460682965565573605411582911039533797772053240680859755126071913242540700434670671964405483053202847914925024579537605750081551635879199620836316438107771503971276651622268583111714356499126640667367806389702436076261648590977274461451100747279122592722985646843092387488054605933646664427984602318582971298984755802474800031789789073686502232408840930465555906683852060369746732034995495294325195241027664289780009857030291697806614985684657981602237559386932393583230840277449336274634222965331363183203042427789705285259745048394214460779621703878077259795684745477854079504971697933148471827159901394901199768252280837649795782227791244701279378224373359532680057217524474941002049049066272896089045097459284725162969082342241022324522659896234569965543656953429049054306378380883054978111126531306851011306283101574213127682871584584753617475708418535970785613776946771241226926222067102167086073018589745297401656049804320731891259216836626526051576890752695984344056455514890041156055506295656911459528965487273332278323781642541832372786844892769245541734992114253580125646194359962136695260582102894579012388324120220997668803630902351999606544884341964487714688658136749843631244016149031770498400609204282126753129446626122176417659531376051697569869767340130189663093606364621406653515244760763881718603822346993141536120278965422115492882116028456216888119328658459035243375861172100458899536027453630638395211197914974982426927843303680422857543869684865462117288714927188648278816549077575755975718088316629052468774700505126824395398344103784356780856844699986915318410995387398286748363265533241863040074698627371971803198679744436068627334187224684707711024253297406042102506865958737884267932676838676462683704844469955859199565992035061903541373591348836777913561055601703844446756042932064169651095881495826066352652063055434071332777598622556500600313074779632978451501985080684163169237720174780833586117778888169729479008859597788227166184165159731254752600645627244506138691217662318836206026892282992624470512696324613560305901713081613281155681440298630034902994026218730136669719703464193331374670607509919391229610186983559434076730317554713336666482236290113806845607037280264885470731399245761613653689627173070038267667179394223129836818651181495490684271980872291836450225118842161946679528999677426512105540252087031065858020882718662858348583618356489451883411893358437414445179560975752430509181157428149501404069742178126161562301404284610137092902690617532953347026696827784683616611945120064487963102312628955347113757854493285117393900047613896714672324198502936214241148859147354972187995519082132476070788874010851884342952906044731819443155927386367045714431776212389729743831232486216296417251384209568967084863079711229270924847212184579061476447887281534568635263458279180866736021524055101573187693692319529484623340464515772903310832596717939784262667141333969859985257564455562697217464856990431520084473940606625204273674624059505290293203767371772353206120819011559965427280220697532790126947252871889759915665282891605506650296315202482072227927719654091160896186696769553566810811862758526016588143413170168616231141772880243565716196984122166284221554374229236339127678739365203779307140106382047601215614516803056045572825037845078541433720265182783187105440724844489785726130207970648222092574364676559379357304315608229436707274292638563304474335272899855572138473749282493588459283608068072662950301312510775934856204914908932299817869340510919502875745070621524485755177253832584840526634987705443019592198600727141270584123100535662392540991585315820706852700970521803752544605068736192407126822229962526240423491215468324879110099019159843708894685843855304530299985263286528905160177576874088909693398332302187315542474386272201635296564752456883785055662612839351789920443781518649527532361258576647851986067727549875895415678682543912999041199211967986346084435537526616430573586152170656172819676917658798669468182255246726419145109986604792189335702621805429890425402994737631062359675393591930780772756977248203632898027734310738954670087660148307633480664510737277679786308481909936478057076476150724284684481998766315887953307105883493289612945490339939685798567529715527275647680895499854532349645281589657277366876920330955830675822476769814008570022547753756344653491093854279901979310350747699096814558659192277751748805562057446991043030204889126198643635477871216270392559817333344637173815959162272199954434222887651362145183297995778183425067181717432582962785321910598461814402031412948701803707877951045560854171587856805324999927932315095069144274939831972057752666600216810583969692874725352380260650952564684545421476930253850747461998537138415672411300608528744607781001036668384730247465454418081420986884839269887383618871361939668052152514317107746502364511338041619570715957101207159694275511108567839466929518097907410268602780368502215439885988014261102746841170216238599973369797585896250679093641008455728636709879109806252770718513625685550818988242135967090600815276387428849792048593152326773892123095426816766614137984803449009114385347830144609427637934948092542124880706618065157563039845896135512563879567116921327609629720618506433032433509274948498702095909914092469652640872347093514129376747401072587242399741337992002105394782586302745924881236897120583509910790165503437195219319809242305010215933928837366319160951042134738807374387402449332331928419104826195211210769999772583492588064963634948699545595214273331790060968558028095693632612222229028021671429383080190893225231597395351278893807006059507440343553084925226099789754044572174351631005989098503783256231112871701718898859683646820932553131768410468242001016528603915621171548719236514483271233728142809966005664518883713521698672403124971275369569261481762973757404297443747256976382235979723651316383158192393716674076905696753889405646148491529976347826781315624352942357095450490800053194267440964063867609641724614139651666299814507336916330743925945832841665935313603963510331945679804339263034560420654116578479067615125389722512614578073489783352150695905484941904746650497567161978007225051825179511218817450195621917394943060961972537994337131179762718455230431384714011981754735037993522000411871799175022090917391773894950519603181811630167966206668387388997760411327038128287133335142106535720926908524724384896389210455461904708244098742316872528450265551498078828351166809498029427154482424991472686154050351575145211905003252246315777053630092551114976063119811025102318829468928190776904581327499853567063616748284124117679163685689785650967406684592718585148098195800081533389708055293157429436920031046812228569919034371965848081051330016288919797685525824299718139437285766018234889713314990680318659995904778842136510025438925300105133006765805085020175366458597496094408748076955974936734286720670044387267428420974136548825511992256045800259411797615292027562527618936188447543926934525684453861879008920557966636933008233775454301082863445058831657115613463084149829425086958633698761402735944432900621839587581810932070159778121508627848264580045408624214598710137449172908393885118785000870014914269839132552780197941057043553121589723119539382251732634602470177409952209254642422352762198946306844378307092865850637565052429761642340842879121659009026995299867774521843400148569303943823330695726693026803851209764844070873161052042429211367178929258348997971783326103906990487738957877609178556201882815423049556186000698607236310914825248275270895592567233203929829208565414952666201602829034759107692224716957138204521791172143249580410428151943316006599251010585178492733972621429980440396692354596735808826101993213510498402468335255588168203803202914204684014545293815516303422613775334183668245061055906368697292002492478020899056039910711678110424047885034103901761505794314772001032256732702950352355876584646250224242835476482559073110838162961477907769563595975246545011867499564312362985876208874742209616494810013290272029317310107883109584420884567252838124521795382455181487022916488822073794790790322563344626927515932531439568959493865892267559515519130071259206544486361864545565379562194260503199979461129745724995791592105913214907598356546117284523782047924225885326627278652640516652449536092001938108938491609220007443983984943093949482334280721838098837731381269136356622587084550354869775278663059674709680001189555679332396426064177670716022058227424513906690819897601251483961465929518648886378392677957726406695450193648783015761468173834487330906211461203502939169496134281599815478544504475857937049871148172828574565398495716740438084511140126789630461640859075090899061950109349204776477991217778099417563737518856000339030851851581250633606558255989560887733689213609210588679818575218153280466123808002640066458237096439015863855497447110923826012599441636401625172358773984821395938158274202676032750106590155857548131702434755509365470436809241923458278238112436097085490468320691222284237900663974851272702424833607213586738817647669591578452344072266874700350284017561426837813253354520231678021407157627710822313261998933593542879925852414301574846045980948382671955148570877936391119500427537927644812527701778348279692914744438236580662266349501326584402134482375773004870471311650911500295068173672749429875600634623661844911157479254803688890937039847413279334661757992808588442180868596252657353641952763359767147522935103710860987996060081816111144056065636898673013151251672571884638399124508900874176139152139271819521530583071852240194204950991868159899330232671103937086060264458535686079614903194784741707712471244913982256144736984203283278939709197718985815198794475452249687329844854414906488273170013065279119584662407035985504603206825879172622638827264719396643290364022712248528949580641616732757443892395220792752516598532222283369488101228594718883734727895578514354192770130301827502077002545529374477582966273712106453385062052901825014223106102885475601072404919155734707242043159532537101387340348413738881405640628432785296762417862229252434318125696176806007496913070046033642510599200113614736443801937988778727945370168394529734060368016814680693619740151809230763514017833837780577949913061676370324667100118229260834370884302972989999275882655182274553731266943481433327036416233724823294416215993212671235641738715446746992457275212921922840421353574170454410326188900066663538290017212134766169069751588405060928312859454397353682631905341161165557606392050191333442310012584442327165000400629456057911994235639143683149003965737481718531117667438824259253031423834401967223753778824323132181135106712866672708056876390087692711716197830881643331323723451633709368542767947643709794908788076107055067612405250200142261115727799850986160147743961845827823326571391281611686920822592512209788444563259410576308786244464075870253825220133186143783813544222204040381833571753524145694219622966665505021043291911814740009470573716579654459528542749567405563893121128729760809430800411260761271543477380459352595533210077078203045893748740174659150058436221841912724953973343257899009402028598453390682255209000958207689047576960322339515574056491269203096454202053457090276343889496017749414072602971928825575158528133909224910522222090353999653679983779792221329556643332659920878394515585854376551049908668247836356651899462383752938329732642672992354810797905465691347807355503135230864740446908708423291701028682647774580526156234036732782551554126230885220465366569535720359848395487679665275737988694924427816115959654803069212587294701442120421163226001551553599495283337539189662990465009117747649374100152672353007113040906706105987494746317023607564114862224128666130000160488620583502686115080544212828750069249989740412841490811332119885931423287623684416781634209067620787337240665702684853901702768490927064894300375179529894778935805328740759407216616602261818961492304065829156232361266325747859366194086665306746521729640754262146628830282163777763714626325346924557540194374733894923432646789265819734348902947197420539657379888275784593168938483821278061711769941411884862932395485382201568777003465331657252881532144805369454760881235056656265407922610788512016966477727345555588919228869052643975366433722939947882609435345039741740202494555457860620540843170837887386810668039715414375897912246972011211301951214934674467504698867438102668025685581760892294563582113378591398981508632981904364477430537249744134411243297571471955972710730615303787215343835533898048500861631564000187741186946881698894726512148741785417943508115854405311690502410620931248193958339444448349246833224081859391352312781928053182257188912169956018404398485072176584708711875295379794476764380305301076078346200854700459802342369770982805972753129978888298309217772850793396286369516060501167718995940605186554204116793445162355124173608571991743505531690957482191200803350726855663126044438068123258810385337867394620801625570926044214896834534600060019612947196218117730782720819973434612627184147102928721922218579055368728369032517460634317447119797397126354277620681622846034543342479691869283191583573791878934441747981607464532492501774639992072935294018650927709528183187552514761560995671250833837170849381307628807056089795073898994781986977223485886177949345978543633536717980136502122745648119237441822319819644817712316494015849217449427534459332695139527384146977116498655725512868204849927980171506034523890346611920286412241767109708657317100969439574744627673761264859506044772535980878835818290352224031328845547440504447464047885584245374967086296652059718109253995094758486126226367083294491605132125281855340087414886994987180864177430406374347795553709593594385876494164788162036844263402002157450822406400365633535600699811973184530076356880501040759330376542575225220507160919625695928547267653930448019466591086137382121581134317799963318724175151067894934311016286776486734269080876370652472228031811911069265298551196071046453676960799120075098178860201595178620441019452897083790924440941718737456656774007091457516217963976068306904310554930574104161710414032646550962997464055562198767793649516661684044238828104298085518889378155095086763965796597236546185449081989778800972120152997508691085076567058924392200929147301247012807498696101534977385619857149316475782061923299588023616565608854253601587404521740194933595282093896773373584371487999757535213618578400558777792102695658823729989514057252111447196845976772895588196390334960151928058917254707293920476847626878865133076365534343957452445227860774928743404739693897210847299504510643514647841272579845029229396436188873412761803205225064252792198920840743760276374835094329084898758188268425932431553849277092802606012279646147963272351185110959934291961911940771106735409949345854721707457111717698956311938930505289615805237418163918948382278965322158007600199144232490652220248377493839880013710992212473948497687662746491627701908070330681740785086762352169234253223744193772118108796446735170134121915389644166933329927436321581869992050058984023842472417475065243071551997558968885961370231743631676867093748589832898965000676840316970528692376060945305792026458583487621443615394848590566168737843990856121874010573203647712908334807763190326214210278782650340869809006442630399696219224413853358864970953527887601511222953149723677449686345119956669598929573326514092623656883698163726798026446820372739232019513421611110068272300201021287204914496090380917616871663932740014103581595585616556849106994925011459171542469446918911745077335236768694485863358374500391279177678697912298731068764022754549904260914370573949291530686798363923049308113138064168888509289793787981782295252283808607910092992017180306092331847611589065861789585491652976491629079131750957792095507569517167212963600933548004855744544409440966379857450392226045727169524966640403453756330350259707073567265097198192622073998396903000565528000698009767697403484487104043063937679590047913428723182952511748823729608218517794201906792131800349338209685335166446997415709108682784019407900277768157529367625117497388576509397954003112884721554593099272925721140574532430003472845783092654998897146421663669513789813566590400633071575077560521723297428834508179464270280451940830123527881313171600049699403972923762813820821727526496148926583132614404731637355335675077965896178834576457889172159473418873112159431904640293085112670597780549876715711655485294602113043929231372348506533543081445344700731485032079073098005188590495242449937363243037893350246081132254263318853622645982614760219904372759268925506532128956658038373397782744655924450495068944892717462357428272598068924222008189961295678002687626677703253567752725895840150693586846016409736710860590642362110894585120558528068802793433111866046497998715941194770720309310114104835610810815558903741898783612340870400407275718066522614998718545090286782604335410227327851753076523452654785534847219092005797931517388944727989872765579532140242343736500089962690068428986207658937788202542799608165328418430243338323025452254947931694115255319704780069493237134042285750259019385620884993709730526780264207953888989978120799506714660783259495165290250717266932725082204431889891529364695127705239716029286391252700995242597259743973518684910961091828199328369593013658459452848289853379777480737367122322671960854570641674202075033794583750597339920861643020552352368697232050720384822153280051145574745909744620932643262025644716599351685176679747236178498790565891407746929924205568157978059595544616192192138859352158358281925759644143669621952368440786365745481390809829909372491034522620341473969412279486073589697066965507838770202253606131987043164532458789218316326619930353027625358657832886881045550923566439324690824232257292462990657079276503968498969782066596325360367728189233268056011280064259601992638136768460498430785194599443653090589656882368586213514085530973329657452512171567081216024227290215830522832541195762074484598974822651841772108922570913931204695685580867150232367164814604961601601659974887699404437581273593544281875520188585045569591388882822875921498379078917634582940642802471019080350350394665784999427276834855913121578253632811969756094860023243816648874748179690998336484159939494823088253977607575805766863253568586614496686307668526832942879820860105691754301627026555840332438526839676920749830443977480134324465782318770314221724710042721199638774285642673111213037171248602726842552802492460210230361337228834923611308254297821018500363135591666473807683689662348287852712420456544337649973665910747315798857399658527551721291486525321359687650890332085720721214226569648538634266604251873269651246643790052988688601403443167331791635967382439632202999469752719310319902349716803379854858551044100315048158353684754656184931612595287009131451205873862515581980599969301313812445028827018251149245251508560600723584557738681247327071952046442524541627839470734659588254122084734274680088820086319490234129663021800667509303885480697185083479530353096337395880652204023839281968240181613067619807829168362764303891248023082864927429730012776434535084886050727983023343012196186143111595235067951808516780985742417563218984912981893194350769942288382085459143691945523752791570207636703830162139313459004673917232229560198688698992219177036127465802436040050861652943011376672960560038782530103134348334490875905381064640352084692292189427642575001003234033913229014271774538623014687318924765409079668613860924015702004451207188980633455782592842097833859044367044347080882948451375220548024521800392403881548274918870686587458388464468366548354667893621758897929083907091563833483359643657587322839392784513868457317435909240223244616189331579188397325917818373805748579516203036557597967571210802660474393351674507866732680239966944624865454777843575719121698608381536547682044893057731513751278246007543547027148688862504106088526460555497139682547020788304540601250766721567889228012323560595432942894446849102074784704466118545872004871390250452197543841888147854562176747242441668798272005875574691373445258039718639881004710685001752879099370915069277110376432144307432585978945595669888181739077625756395306126980066099098150797333901874298686593645676791664148938176979811862278380131801214730401820694949498239410014967910364825609979639116672183005285082176710729389601047999485045570813109448831097172014648737257162650320624895248697626491263342809443844250215811376420533426571874345547479445482263689383178438877085449167594008308367134409982508339068900140362909312198144608597704134122577956468013121504533811065539085146640404895645012044217433029997236019868146969268240456341276927986078990782636896865159266771611056437428155009059943906287813055108115168956384961436473819715391176532248569918911637924698982259566757878963299542536534763202775315852815498806732021758257237821603660003527856683530104940099427657955881135332962326683413037484467747890853447529705451396559580714704420024736028645179373196556573827218776609036866474073051649606348761267201800411208111392527065625618680971879197166683738563005352870246903085361683189999011786833947252355332814898861597717739860826382996220473908672848907857794500413211770587368826626300311988186845496579489887269469477534754208092176380834826292061145371186548167849649833854811820822360126587009312052796402031947416927728034910873490814642403298351019320166058489524051824767005490919540292982423547394342157750466558659478832736765416557374550966992532767418632034278873276803167877458110810336421757256000264851991015791533809677535642905662494803705928013551314919185052517774165418776054438532851264131864147236083506301769068566174221877773330875175436927933270513792314511821535936448311090570144534740510884729241437070518744014669842872549306595741189484383452035528994109017652738873356712800103370938672569440966458199077812335127215148185593553410990795627848589407826071152065137509577916982118528481259448718917316656490087536359130842353607983858976204703319775548061014704642826082246544971640735727545820683200755227270461926303888384354585995153635908058646231146115746953222914213558989585437539223357907205088069580348224668266921921238888567073318707705396903283682623803221019720632522286957341675526246230903922098012441751231882877651603082294834183424210121734668704334286208166595205549399539345468249402338367665494511100788019311897854091840827555287854753537711542379774245816650536571230818657699358564750283995711731156288770315182831056188299933207558450698392279273719283537359682452797819861994254782245498739786574456460989678320543636170737180526214452121218260204603907757922736767692135204657055644679371304730726053183437587372814685263041318851434323874128093398899125723854275609147915151306636017328967790522364351967275040567354235464199443188873560604712707681554661985535684841886064045211359842119131999783642896495760658130875825084148579773177162395138039588545698022540302471313470291926246582270076165451076438338417659514117271563822216063017527932215190910698647884624081187841042161555938137133683645293244471570618911655583543318988923396429810567636745970371708546525402158148227242747655128249695568750391152643081028736483868112104677381212373052505438120952066192323984346109332970422815627450957058409317305612506836835534361297293705145558715404950828936888374978194869542856029576992210034837056090223922705845583841087039692475604260439438413336836229612132298036137100256112567213404446021385827178114303910900842622322662358993785355529052929057360365379995854312201254279261868594260148577422898213429884312344867789976530223466596808691259956929245498744185549492349740240028903383682270496933494030541774681866585420136473970749059990292022421233812095272335395104063723942905279624921155847259445132014331927151319088653530335611305448303836765322402594430068492671317329772977604945331102773421760687829337670406236202868791983851009627960017794653820524525919340681245398049330653393113981493710176560660833924549769199334647337433371175322345766203751031259819392564307462333380058668038445580862366800714211542572122549355053194853223536937127712875369234554196119957271026534764245999391639327978691196336589741157987217130632770196238734707378128808894109042067310685055026391974860780482093344857792692156751507894929186883507128258747082102828713724672272540163954022143931854565188254342699400735905730655628731112361590428515023866912979108630233877820246279659196612038400628992836132035526076015201050243268469298068175512067191843378566181695605745309082267192689477642046792715101910297908433875153360820706215273737013556380073675159856691934015788867787143895624426854040722161207210209718182083732813399451784085302274991327674736570920546401816293349458469108881097553320871331906862473931691296476680181548469356136729789517316384310890854423051995752624132806211932495053643716375556605292324180694906748875063584181699022859095325276964182703597476082083670714084451863927645325050969122946660143723106538650572878246918674754456737998059838239846871576809794081434999240721384675859291895587291685449434911132533682259668573693849571728757162581784250272659607100964106368548645444611121449263171163225617838846375677015972779618846709967430578136772941550878212815667126449709741408253804855005509494432895737443956330201591596535966244875057887796277800876512531499673037673254939622263491166679085908624082494261811185210087664945413908541692173514839696556425620108557403349490417835886958432946118374090016238586659371804879204625772565530646251284942778932434706157883297517249289998938444219796574281875752826784935421846354195675071840551002844185732501064968268723296058608688984722901336440093464286557180555981449898166646994113216771070180825147695558163660505542523599281869123931551848299428369021335425930306491807052670850523292392858262171275933796648989660447842886792587654687719269019032276946280913008833008102499755115938607373367216340072692996427410314423492871297937106314463029428796894201531551039624088384604140769021284814765642531967556556885287460383625982351053880207863983738902678687807944455438751638130291857823511153849907779480405467892809633775584124003028487509873507685737252569706773483855788673139032978329414977423045186902910697486985299500794086616013341348994155285996111381346538572101821602556103516552162825229686690818329309348912583512407537166425328328133740891099449590525983848947904082390617473003333145317232182819665070648396586570056087787901780457581183694147360707083974842869845471334501558629055626458690406081763331396984766325484768948288820365053395874581600731750649900389884643096975600320196639111005129604031088684307931090307969991670055702019840224279917739112000668809746282684231392553162288649525229408329672286124229892663160831209122133868234722153742577272350355723134940349940484891362334142443882383060850834267484011693615954353635965834272444405397240215417551671250353367139101138417783303706692492330632392944350368454957527535527774088046331613995283209707748001197773099826573538772045509987393525629041299649290984054894047385074489883659838634657013685048180752936303013882596899745948212149442205747869323954668438830578392726140086340310577556795180420036322067287216734285944905839967838847590775612447074237242192850126206010315756577134479997133050214613080698691708870141412644723155915483153780875759806572402099120506695300250865810152865334476174983043571926197544565706962698558929059334108013047923639496415070019101952770919167432879308182012476429156213872181486223277524855456176120918437599160617857731213549434492143440369759071330973421391838208767158927313698792467158524443500227376498332223580996721431131100679785056786446773308778976675877886969729442354221875181323040761028387164999936991577212249824225466452059779590026886127873401291213219503014063919325939828412594296282326476269966585422992684690873301245613175837449645428038677089445459161076881616126262738394817958583198959148308563702734802576402806952519222177438157170140440639634600563715955412114994214102685250921325993696884226915502675643812228357209007536425348184384737015114138654763515353373513273336451655519528888234843771134252394786938103289869585549356420841375685526098746394477130145872874931508124559843264037396236521754985099216146297386146769653684904497082546642837357846149025702659999498466634442879017112826676021192072994166472391172224043305446216966965080343886651022458005986863822302622845366289419832558234711596759920959879104368155940509418291886120621497274044583920036493726371364301229637786949738821445156096066720264253932243559776287762671585555641864105423829505057001245555393022089301352845672199756847010041471448757864629900228642478624716870386859229926477051588009424705882633067046674479021062012595281532907555224939384706881392760385907945187987398665865578979784485624938632884711823394225738502160244351209016518108283511622249788303519443633068643038272039301430929947320102114180727220373959205022076247289988899785180197161272458319489314113752880940368663129849561245617571327767284227450995874966901162160861634351698349583972989069000956046934673141788681929889665396450626888288892294524038455610773506052875403159033721191127317588747892918894832730225406034793862715839741831057353474928551660549648366490984937788384129732463640923926035280256226413402393235299825027529635780135406610667369257346789537345646819458013133848302581428626546377264203595547816543577140221222387600240659275430317533832950090661998142185789409436628896464567454070351127123897687668072607241251713602513415916136013244554398452103166870747686724946724957097683101252722446005115559962452186638701183887930235354107796218380306526684416496847477261909532356456898115226973987564800576055079670538877878174853429886364806242410599433881836148678783947719064334459496486149584177736126300233533973001044624672611541129479744265574552723173423284043799300234216731742783629774507233429777160165117872848812956073911296861010303142350583976375009589131777819264496666082947198018090816098279424064779661670102634091434465408802803401086671717460732180854125959320382833170363144216788591002024743064992073264421919491847041614652004624723097965228049278976549494716453721803068145340485788705468377985627742642150449953546369974128579365572119127841505945592539024822887344499020288661163808873549181745640155827429891212361180396714067627266762635495781072935697824032412012798917395018552922905045920223917615636088455437945926361968613910998483806748447276514709914847577216466608965058228503110980084553162423476199341694549134606141828062215085188313306883293702307604314362606631498564448798514269569575465078714210114785973121701910470415482725809098314221561364452888002722609850244757705333923813779676506810054276396365500317180385004258908800712013424519297738223129488762238871603498127311140909115292204471912259507765190443679319364142628210895915391365208778849969362257528057205612882097736582324237941034444100069999777044247312107422150032622413861944965300324260823930528134535364557138302091705848347939492701422875945661887982545942992677240893473037522809385582575083717070059977724963640823225954865461164894720313291371260331156543994930644057189873174568024839243147672301586450367944085605355447555968891905707259688010389854902225726370099504729795606304729842990862315498667142653085637990691248303030151735797984576932246314375120881496873453776245242004789821418272350391042457546223332323814057167062201125774610374945052588779608247823330121533342941948134671990601985561439124214391579946013344536140156894803180425607672620740683803458319604547615608691853402597963546903973710029528879926821750333040544656369858333024260060657289818143193682914151954335357009874001819962063677159013487332720476467156359246539832219350577799881479115933080925376403022090996768574120613197016713874401177393332265343684491330133893782707127673232223211369603759860440018691936682169474076908416840961378333164399577489527044257972134978177375083008650566512293648209895633677588079002935933265929996401154497786200004390708435136554739602276432588195863043619480745516791830787746493334171306858981041385913105418560140965081800707666174094590835996002741201542979686632138510968502840135348834262407533598690957682355518046552458324698170066605173858326852474769320550439647976791365061115918818200805393862866587614934961428227482032717235176735830639770292148402118719502014315067032810470284760425772480807590240631917420052875406055840947230670649849328366290548638506242139058161229613226746957143729117187858506905142850682300165570271614699040318816191082716181733651345618414349167865794180315976762883274167725537722874890737155956409185360891500389557274569709004627671144910538064458619067589585442876792948035852731290011057704196261055308167401069532860747352290367150029663084015197227299851592219758046406761451000350047910539890170354084497561288287223142877192267997451210180394671175762354621734234657814364579386646247883083757329448568543029011248765508676933696430466124899504562501070997698739102081250910619510456749048049266559865165622735845411044357629622960817942305443251205949482611774309922255261560870445585518376821599587753322989200544090757452827742344032747742073148694586922490898647360645482674876872832269642992377116534009586031591557085577615423268203471169124999454904737682873874285807833812388804804505612265426186307559128946600061310924368211417291109746177673830640485061198170274287935993621794136705240165486751023178220189678858044229559315441315558749416906211792308224448016571086225288248927463536484323282734593222262794587133926031697777029258163806887723706923761633988067178786579051926024644986733051232339938934565590481871293617515873330366726855781978394945084311970128560773402765554529370812527303835176330075749615563923142359483195791806119466635497937463484057338034226277403564909973238276023533402895943209631263951705183983158277007948903057711317831655035597099069648362521182636813575045389476885182172515957619270934936497339562970266925232153013485586695574743877228696019551743888059253990768749676848900795397559511239153004553504135268106075219488211388879821765129004282850663507407606542429456577839994646870680036936509820187935063065482039690599096095555914679814369696765492278546734711616264819016299327185594583222442665902779196527198077122593747562402965952593446293599472234805496238077046851126047233637795544332604730885900136528278763466383950592869492423242179067704072137622699104956906715120761224223317836154683474037606942444243518266055393457312241548361204816275082253204832520667631283843725909434414330185057984292398933142504810751370864531973330732223958093962954802621249008771163888194769154467596649883719851759816766686263891186540896990816594688865070869636617616311913761470991301180954373573125690688978352998926744988095333654739452451140978191293994019405732173551503410802065267816502798619954013138153493919741120308797883168975973971298705852092789765897546527028091095049561382023401581399591923069956349261559754651915071506674894730327400294019102431935976489893073850686157695777682148184421113470508616460091581795716547428266414344353949721667220789656333829043859983797946650864625450444567606414310499488255533060870975839069787878393121930514785924773420313005097773504878383531949337153078558802973258081078212746086557386774813523949080477915548760476166278895361795928244942580632249717410025408953222834696699908334502292478793302476999153138138214692035596176665772773569815209473730225902679462540005069539522412315211571487448743901763040876139506605208711803580222278947844465798518671656357838509962661302693075532394542970968012343043891308062331793160151268750272205888751366140236888227908282534153693319264281137784156732941217205662260424094339728000484071805024871740549854674716566138119813804076947442305713918042698369837568294162494338441353063963766319506380512820667219322360710848852726992848374512289441938427959219498195566531017189587415906026624488183775671620208668800350845270505767322709635983120166442939122316949650308761571768150962613959530405559321716941461142424115663238641066269679374236040410958594635014923185412260145743306452814454363581214052183513034227510427752968535719254756530167865259061995354973044401772326508493526641076183790373435084680234373812159027244486965405649709742213734145437776398503652142954715434315222282206110466557100875367527012463787442121503159540017250007872551827170810066513994773025726115735564788360546789899535624420942869730551187619489204121674456305479416799761593728815957856084792467918527651694038675227065011499245246607402991487373377278448709273642369250209365894523564956180265042430868487276113031287127296191934710827730212695232911824984458835878647704435845398178736672878695898052819993305905974028947989339016245172255778879387794914462566053374756697709802660405589329864868726013757866787934065881269358254144118897895644479805269593914728086031833928282463805103195718686704266719623373009464613166807660372964449151731984882430335085431710046244930753750832496559700791165218570745758880642187989333774458441910579661498531811300463746278062225152971288714287316076636869113459202224400506621754351092899309803515299201085227232498565304616834631821354538683363072709594009732088041873575836041850393057008271137112301859868204764552151349525647997770587989006837860913930681653459122859475096419412790288636197530514017709302703124181325412205796204191458175315449179412359781351360800069499339943688888552406797466427962456255321105657067437320611610794417249218504591180542241218492369027975624147288926006732176642514026059232748567063803319905816480379655533472994088438968040839351681385880946582647190046693304451993869602689459226602484486409638683148944975059213860450525304389394114682439371298329894278270381747989937962267916263360644155702241026907987805607376638570637517060793775451209596785890985790563238844864442540587395322201803282129021666312044880254975796792393771224325795914235684092848305302320997709729698875113780723174107607352669236698348326016908449750805112714274791461899599467638229859003034926667377175012839422236561373985732157798523284022609890953461542842526066749696484381090859325893576865712210430386794274139626811883792220453676636300945425877995300974948550880085812878397278357455279942126033844189423565435685974131952431216418804484630349018768474343296300313244706786113218477263803925184522615350275640538590457683124790493436170725319037968186040618574427960390132566501812724841867065694177609451675215817295188518624761367460261451374996005931990608979482674466007451993346112314573225458878019110535483350363460201790112321521632397034384568401311636419335312746869879991180118602625722136961895090192018036174684765504337743802231933936505254996796641479537159016073230081461554145456541814963577042855428172038621711768378525109983136317306867540817317354096418908130701032772363722854453897089077975275051568853402390973434520614904088714234512042226601246281865136696417219474040288729837316242676348600645263096851315767942671624991582334965020140148734488891777094258798047962082509737871805678380846401011250367954287367986054032668259128599831398411503252907469583823152824434289673868018397123821476449690213849158812999897837084045606077625037250901603143689865657181651967380423435781789671310726902662277005648754379522681321444528430823215153579583278538872579235635651862732083488791423964166760866912008526052536057365794424769088475238168502554490876102789342639987237354324583317706818050317411671873229830425345540172266875781863453348719010688238254778706061028803880044910742074036395835519764866464752590713828734472112350299424671373426264544494855975161967586104288078849364388198221479378703741063083300767273278964966481091080589690645433020231779682454419222982079540566264156730005714937821917536103258039454450354579340917054910200063625098173572971282206351590936282617956850423835843103804355464091097157145993210590777775467793874456460579502116258226341613060218288077910604714123531283943674171517840570425717076763460318560014420405280598908081073338300294529307567000444047892528057262571220566056169980872724485760936458734953360691641666052410506151088490639981796423102687675427767490130907281020439046334288446830651279301762795622248410311687657471804987183344905658685992402829896507321411621588619844858729870399703479622146255882136357530022894243203150916101446999627674330527748592843047801414230629334096178255598024773045230175821031604885475940091150272130983078639054165690315152957080704869647530510864809006964157270011237584599403545094333344295580184131321449134304758728528605280423227282874713892887725036666594435586531001276727484569975189607892359574162177369057522079997687548876981791565754273991003722091576290350203770510815788996773017851977566063047294342646380283428964119077818410299288016328250483315893000266965154560402303268936166517290388665556945604728830478724640467017019182068611592859145049197856739965337079522001347594371095518382945428410238730434918802235812733332468545630562539971939794449656429177289146410294071603533898727694820386116805229212533267346039086314806302048553772025240532968190992558723245306359928811073977924580327535926810915396936359207979647051243301240246235673227115667088978267379239961907464811892519401838690187732667149698187637290587027102599035063750988999207834886815910270876666131537875698109566404119888127031473687505123898544737611720095504821200880555572144837044643802258461000533591778803245473498393738481729639336119510914921860490645550821776956854651071495095373882664982098237532058185865650015124048547989487870125158494072010145149713045693518701674258682574529455532154746243068640908796572911394045287940355959120031525831431751632657717033089726250264471166715629502364369455160430118156031372872229267492377837177896151750493136485728062526127463320138831729579251789200076947404206878770990698177392664864402713269190927529642979677740088679052222465254013936332765875473906556454782842647356695793283346554188341833083487098059328549343720018426460185617765826798279561875411347214798354872711851919331838204777809357972070204479977840579286175176048685891165399190030355543040633326856854647345460110847127360266550747544445674147039005653905342971640106945176492765309957652886028348888762483154282063846317158438186861091416684463598922821343516783592016887063636943471200326950423900775792878533425873428412908331802567097774494889387800350217816112457025933020080251675105705359468821804066006283051909137003194925813135806134223338162936985253014983633696835826423630547598388982533555838685518304946043940335483999567847830375017571643106784066240552349490093473327683231392495467547122797699724019483640748533710507304577756812689866599271532476113305978721311621214766935611918613436661780607344493283776800020361380761062531868585120512736734448969848327180132340903147257584111478484850825933446119303684645215282347240521220348610685168430823530869804444159172815518660204245784747822639907739722328488574672009445442379223342498174025134050563448511361187986483505383628067626141045746426694135624976474149235600966897985935168051790253748897657943730907175947292971955786095403825094180648732487418560856101905916131467820662787455764214998166442326535189226308239015567846583093551789350851162779136462485430340616868821638623115183421447118188754688898510208758386187583371221929586501706172505287702399177694938484526917436773063787184760293943721573660142387791443613363571283371405369266497658186431510422529924992406394368670941792887844322914656474923857889357913484014394978513347605860631813263893170410157040289739814611767881139415833248987549228552748815504111304668836464573897221324822003534479821176888574577245038952003823709228801926510749689650736788128163808595202074064549785705719250729357638012978954922424192182233324043691560493881800331199218785403227083949044313551014771321773098743049644175968173093456202804439208320662681449924835980063252344538050098530625183165430421047027916152813739809420174810161832005503403951344552071029787042960681459788711463966435420839720713598245475015396174631192620539519154229035659058311706393754855921113461188837227806897575174678735542841374625043411900419977738900615890055445926193399501541419890738622302856501230165469101783513845012045285133615650359301958665091630962753490828795500918406165635424580045747555189098652865144813972427619157428237050199219696363828723412338743131267475351230082864025046434400450344768057132742533398159943685800849601042468076293211201586443280299186866182425106368198747941207427962900069234713023275426287707472537353354069066603626099410366626630698016108862513522775784956828597976727643205347334538877446839030108855614622410526860811044096733719149211817206139909469671124473445263690224793368407122800527162655394012361280683382610317832498351006887092477060133613029830464936321874832039058104117401662711518704493241720455905804971069219737188116820375947494781737983974657794397313835498108519442903106903030482073785810579525049535263599655437474175026431758166682565660769723005834516298682295739611607861926258171155847899458306102785945817700196950931296434596062617682350520415753037154757252506171990394206284879901394380870292446357689976387211298717976475127823882298035189031393441644079167707223779474749461480177735552162523167077788842268536890648300032901330781708486197183897567375257920817733977408494862498261273523276038526099852618772305549747053544383286367442299186186715206284798572204580425599119173188553126501161063616340608593044127778738808160270785584272728239821747601701284414784698290777177454789296064928367445674282841294948710908595456103495911227847693225665081433276100431677972506110312540554931572306583974033357739197437568481623778084788402381076258469404565647052198081300219720696739608970063447316900595915677688451098025100772798933668924166352189532504072729809703446602354462667916222362697614702972938167060190553862126446840549772994654917420275312116715530431042669564534930973212150424247662755752997961549626744975196386966133418686429987565333265150641597837645747772238832195078952306317344217106331877956334425006676212247388588290244695618591825964617611083586228095037018427480273834880870826269785797795003751179292881505266857271370421497872521692210067067717929445444063587673485637685932726755334341844246452310367264658965541842951778599772354840068942304425421286122748349214811973900167103902809945933214507162456922364964660000014190203125405345995737102621933422158705806470547907838287885988485527959841316010983749896459538378158051188629450506560991910726728211238775004483402371625927002513086599726723197720435549186293627642503205538940051296753511394411904907556007400443371923761711093159810416680037016563481240938305222292690028208018555293906607921592963890233061429134167624235838723819603915376447013425055264652813254268339501825300413189027138834236782761732807036906102353423544357876267850036883744560001535555194721036460192922858052048245086309115524995582345499765701137937111852957374384180383150715564055173177965101159015059977227622214079415472244053087349891214277462746146675605298367029179237622088270096267658037782101825412597498419851356854635897825830548144321751549012599986059612289526755020287790306980411785787521926460053988039878868606988375246501204779660539259282266247930355166042951415013602214686282827194059906739972672156472080247922891544747001059028147958061547750957575133197429222574622103780029553672983130773204492879800298195206018992825962211197857393780993417147994034162219925708569649013460019709065068640452934625104196127131564616089902234439087890626330953164444833445760616043487530117882257944822119055301219768315628185172268476910042099345396486822295442660961609398046317291323624420776212075208228714547930458035136022535802709253292758357294627175104354630656756236414491358667694577435248128967280427013134235537127665447913982048769136423771119954335286525312469228237841750795157278787583463084790685847940514067589574152995598925090446115923049694303596090858347896554999410128754032722702054846871649895090768394866839723411417129019355782658197098020582783780639257307591875472771306729859111468366058119630653635268345522273708067435909265323547524211548066164542915091980976513649249640870410629033086640246034300045942390476536955127699592105999313657510507785006726017356768355521469796366168575714717399324262494284124254089599719785464009077485415776848529269709522429299868260772940904726221122985036495435693171243646546822781394179816766446568623009517954786007627563807719334746097825840454353963426242695671000725833568158380754236955823719669542248859417930194358096145571772673368526403231789214329627685724672877615369350768301428882389795564983340444837803332378046251455031092900640810378451141594544680854516529035224671211229324831087955976558802842079991266147100325660812775116689913242336574746206271653457322025814160279716858004067764779053328921727558069211116036951062296493857426749985354926761715280087158107412939887133904659999587538430295345115013488776095700993754596112124230092176304116427358043558101389918426045980039383983853983982694281493450587872205323769551214056169847000511619043060806066562241746579719532388130925356001139467007885523385349323945353454324267080633918363189440581851452102075858642556859525052762332860353580349285974113856362469399340573335822458830524376541027667209837466738501710222772210725412685133558869301294245369503368929073612791906759091697072500615389749643116380024216418269936790251634722507322198226391156008374574797703474599495951557502324520421444442016571147065707144877459882073242376162636708482434294756078623408471732422718642069589340335584485661391640709052895052563090453310140331538605395665901957281719464714495943572454260901950371342635065135852198233201814953076597912129453295180865004966966720917149795364266018413267942339089569773646810026622329466225392804192978329508986310779256319316739303746344654409656541092674106062217257432832448344598344092357618167328648404077634004530354819012492069386476262118274201765587011909833781240614563947810040166668373039712091280758477489439429824141022535028377395734036320371661517465838189882988564344526393341191074488882674812801362244553082225832541210564977008201629327415128049083124871653890893231266421896409874096703087390332969669020314822235164485742640363468918549044136971405157128320576781911991304650982047288843335789676224548493130887763705295630957643777065885159792215640870405119323456229521881892557649663248222187282429836299973149975941651140847602128545866224291621711407878839109967789659200489997715117054343930372804984370270769714380050921752988351376651077638353252082995113418625073585226351546620348496926882806183070516575120585297518911203353043746230897353149471423932098118116464325771415795684379040164744893839445577398292342762351185608172853823942791272089639374873864959591659088381708105285143130024703784841369988489215473521293167352249812444599043989356032074298992260151602843954574072144080154677302019197455504998388406162781477471803018816488297326296655964031969087223584806612964412623487312088520020102942853504932756846697286978437420865331515895095655292876705190368007232693165786413506587028587283575245748963091165576213047248005648642894391694155237115836038198271951214613148184690546740510208674734022194695305930445218939301185453441359236281898518701639007906585387347494853817612641270482082385667768738715690651071276219704099458043377360593074916558611017062728012447798191700060043660264439934543834539014805755392117664081521642310020382964155151499430250810458082095007662443950681314753836610040351544950120061832291277519574851054721497515242931379828474261928568203216142382636810242919889601874013999842512500870663991019867392763192728963828755527651253107624555383256506581923115912909351933894965709590703907221670376074584718502476521539901032009044269153187033983819666510774992517965270510606675337761544097055819254348985629488213822438669730828419784981232656967710901169318773326764853664297908753192715858389381849627004286707204579062458450469651613859659264329725993143215915387357486562645999997307077048913953992621089916846159530368284199731640535841385002736807356729551992913092718165436439712660178965576419760625992362406069215751309222406433877481448615562457343092606865359486474425485742413910034381660716390637540442938622449726656673233247627306140019791704524435628169582634223650331652124892571807030719079014226630029446639121202304297441789618185555383643394801796788496461539892322296047034825068565997558557245718852699843670217856012848102468737900362490260204299939163022213741743347666763744360358005830961960449184498726576025270177627713777701999017210250491035169661484806652268663918844377740385083578424490068700445122452493320825702389671790236579471325600299640903366670296207551625258250651203831296295976946912079637218644446604342484466186879119398166868202655719238024510015123052108112132258269722087202286901793208183401448341129503553454831760631039611742573907733884997876931270930099547021756879136710460815205920876877350774932293018032535346782105899914125637599164225420252034665529787196056720735093417976876391680364264569630564595838541022190686059103271024080060285214015985998063134322996130157660504516472782339200351275408361735745443166007345132208851928051094996392670104782301322260296555446036005046314404846902435593024574133304332101103818789601617576163158119716930265222044975305384927488422655726240960058358019529713782936087274916263257129566440565927373970888187487110099057265027660080477005962089057082977332811653967168656223696806830545210836708273222553095874670409480313513552958280160546934858975105356953052708584280231746402278355319904652073032261115330496272531404176896566528485547385877533350076055725874281482475961704442576206993605352111934626286185247007118039900408539496290513546985953089691635807058447432220632960927627396386004817319597645103616437322510910576527555297344340238191821575437906845800219509443641802898056377271654899473205020524870327978574802992646597693045478059466088479014142600404123243783916904298341610248445928174679241973870906700531345298400367440362433653017070497721738218064550880632972012385897976244534895059149974885374045921932885711132389813849947972797330480703724632938003079181246343917702819900501818431269000675891615298837067295260644087367716662776242684664420550402567683784167796207264844678481493593302366417869581443113420680875480731021292023739091206032895621476770040707280725854025650421177811373431928050886411693856052165004445454987202647599854743254124278844681229100763206782813166542803808631002926385866210156114791836469296909665399000328893734829405789229632371610150855333071303529209897059044668957479411916623491864101890661596631568116869126454111565010972477896401828261928862612184831659977093718360224641045164600695488518850308363264295076893492447511819718308696692907279432455689062143092312248447975410927175860393377398932700349401568404575698112788732396219170479419281793135548246502707919604377765340688307555592270326530667936363545498358497307870242269061289435794179035609387801569205529568794907610393127818293070999903114904299900548493803516549467588461640183892758777790861396022913342164096641938208204566501074720445592422101285143866571292739498306902625954138226163779807891508012104975865417120518848920404940729374613208290486758513769349310343869902722169294616238021036693396121641079824067459347703036660970237084428151101350782025325189197115489879265562027099292990165577098234072434037573502559540817586176554718806675331320642227365427424700674203874770703166886286473634938427515494957378365224804563067594814063874198669174526270575532620711295097672038776466073583991333007497327201729943689716568907845821796061771365541593849828158640040491512238374113607194777437313414405912670061906146939787743542603301036379172733279029166135078295965641897284029445616684434185866702205163826395925909453920569247857927486795238810598363424551106270553609950719988866189626032009378946983037795812421072865242287584256623362296638639723462814202984079104533959728859271350084354363116390162861532472652550881703674232450092676537401402946663737318059771285972949315022785930963833561675267019302496563664231657771008346940795451527802012839641367913482726264264585235663774059305379461267468621779095883319534016308783761516755789562382910381278336381518700485060151057525760190439175546411139261422455497076120309128554379356759861354168315512357810048572509356987532939505236714512970565106495167505879386709928618670433021681767217683586102612844517804865374783119193751735314992194543049115386825949907312766973479881158658116377981542357509939979182111144236014378371144121675886239853166850797335271862191024185229834320172064415604628238543230180252718428526831563153599477717230899977100540979310725996006971519936619844819624234564128801871090829222995261392358278687216514191745793928469702213083395366013750939924872102675414350954301155314630130373015541872613058909803980661531900580926205376036975597911815722724987137372526806056213720231039749776446346294641897120683334870280454673622984614933997796990910363787097421493125989411670874737888968497135760966372284792556545672475579422076893227610554579401578912741794120765530361911946602730150606661484227564153907033940375562374830759723791018393116144151943456342545272982571666477264647200683351598244769322215338469533157382167118858419850951965032098627936091117352509596622651777149727212918536088959039157481744764590584620126188775871776233471638468537082617037799657428118455607649718956670541311625445268340634746964474524059172165990331115291112173992030534740794662464806900108618373158314297793410358535496589250236342171772788516532794036138354230722478272791133880044732039145769526717356646517188259533021253231530243872514362950397445791841049163973744846407416000825206012631100577242163470689294463472306197465948759873472089164427104232460884880735893753008989552127089219595358495160934032982777121949048484295733206686370994186257015261135703836037350951390004397578505469625713537304527966792881054833928661783317770148694542191195771470423115308788646791577835808005160077527362158541028697281186010451878666598140315648237627650160522671972175468120052699591230528558712310023189481857194786179355616386066594480227624312940685373899331526221328437775914594348468662830933054584792193605898975892971292350131688746596584904027402335471405781918761521968929100627891564406731123365782637765079892257998780781170678698597719065902317584714287158165747615000515172092031457035649660778060550190021520623630785647095283555864445305180440045821232311912055163800645549991014770874450434871252635597653759805336913370990895713390371362826718032372697283642496453256206930098711906428657707654268758628549799354119163671096180283384351901120861971321430722399435067250038230409753992132866222715308957102726488559423797820670741531599114742695829690809627445598700354593321496983294527644666902845193389539393006088648417010586730778012918882330619854235155332705480141289275742934090531609054732307183117794872642093710789995411682361886755812245266473916971605388757688898877805457891435122103391508726464427845981184042607306531932802057263846459221621493240510225076985610482228074325894700383437842494603583435600579214504775730524320815111773918664832059085714836021159537041881901666842246210628002098991474948631162251339482590011535665139135532672866628143696070564855191924581795562184240289774118059979269123531288443331742280838331781670936585208371007959931722238086833961266400853126331093044756702663315093847958258854950064888692513465381949513421547183181828695568997826468366089172346637329979639862223977795064454504766277632091987926165820532469494792867797497526319309227244592818627569350378425545841306152934826118457452396689301110441061178549584387282636475377407636534835409048822459385262149984066208978592630443461797567304669574523692672760953420867626676672172396721291796519117127467044213212348919883798567127742827593123217465673851658912608675796717656030640558416759676321622463566684702672677492293723418151660951016710633141612327900965709982124780609081368555796801893550763462315959356473404255213330841246364412242438137575957689286753598442355893124720720053013174970324098338057067668463804840280180047718881914334269857470477810864624678171242224509083838455992459842389364245489925666695285573966616387984804436564114189427351345351857858839201849203174059443871781697101774106080816860175023924280733682353161343082459149237287104074759179588999456507286322999324221451046180235022069570187003194034851758247593182931412866982080910169208311177348408453078295493533517916323356883157218638172986819777928769471050376469150354926954836171777297251557096941764138356988095659031637430634226455977443110055120778435054772937171247370672002098646865683631191710963171538065248335971288934118318158948989964183080814654012759311786166272519269261921729145376408276186413720449965095775654947680711441988156550436038547502423272878024472726151711086391897598648054642427658511862745696994118443339340441924640490218430070197266197469230462530446859056440304974970456514184908042048397675335637580605144485544156326251406116682820698012441530908710893681135652099677242115116902643702090264697959139375244960486858437168897044813056825708227630865589558959713718875971442907047429034963071325339972918376768925340114309090620766329504527085351831638526864483727830547230045747749385378133087412943574212164016219699164327390152046772811568684833869266983712141674629037682433024422146208126431291329277569407658137403031112519657835370119396558614074700052431760298089942477180654524493870322375082011572486498816884849181124590193757139505252718578275839480301324886089476646638032596805989083440382710074031075613371346603573454236713309868510693656478064237969530677279994428678757120904468124758707715804373029054553766671338862291015381701470858920198461409499735309495234980455651817034170864976379859346346471523275264129286865245266129433132635061078720327586150746402885328982808866663861326691553377449092626207044339597487890476114391723958323468028374140761175174912752815689788382375020649205184607966746417557088087997460078217766104320477150218813198134137620435254898356478629088571917862450652741226748440127237977294277933586378622049953254362478314119759478607315684899890620794011789245066881887099002963039020741186029134672663620855274547493239135340603994083657208263785977687824426319488816056669315650606235240110373174441997159945825123154039894842337958120387792389505972438413139225249634807381017269462682563885816223682275679966349131791447452937703889850955519414549177781557486223642486747307487653564508281236978776762181446802105264123971886421176029630805465047089999664991729686212295339798796058785394378382539022932614508177215601336039720936154987866766524561890880047078044780384782309241935434039244065910927459779880988022536906475272815744275637803071709700498445555321958016898705666425666358768453142563591757170278978115453091761725479471656223917262226970198638496765490605959900064393955596683303507872331285556140113905317428471421882413150169174739249523980291599908386337388353663984639909271275277280180208254537904988435509473174523626900981344125523235398663280221222555897142828062657194426052200420280626080827237515735716971903996322026923438664966199551118308925073472877570348488950960751194926719561337282637542952304647097028256102244062638190771346961175932088237350084924684901064772724948431993247512698559657741813805992050988790674054088224511741368450431699498605680813489916013951239999815185136933837811022236566014990977856995409898314597266801956994462709246537839967031042579186351287623298328017453819625755434217955867656998405243664734037406037435064248240633573260123744134032360492684549312639850175688612910203402792799723233761179653687869681723964803369873406247202094268489481026348695657200467776930812994333321138774826370678844566069368729318329876533976127206016553494358484597923701380604326676199757341129061223398626972843926679493513786485192355620343976588065653895920621294073405492773656579185006428370542312849486141635143259352130111674609511341392331440107179321489009791792337879692909974903381916524461522563346054865313714381543003284668891813895073094328547583730291228775201873752381647315071101401724515845872866041561358172923318643759763815485691241907399802365442754123336786667012036605879085148553625036921213991017074924596507427753434840713686638979799859968504884182160508439797731570351162770805460355520919983293462105187362686703753266628264527804752155361992152733850333993808838292164799442541634228106806794965517906018203747844262151432816080883601701823845579290264973119402487098321543669052251002982363847302295024813100982324564068047111882621341858946524647436377460527954597860131944301371461300840951399455239939690147247559256024177065828825945398425954027945589350187965757822089114009914084248179730939146417829328004325203452208628940734967517896560106600631200751189550871406918329774570609681956890383940252834515091391423145427993764473304541381749597380984293345742876413996059979491712457344142567999224449947122666324069233350006016473090958077564788378369401879669643010711819868210044559761230183549684862021670837803914665343982848688822697474947774483692624845316067351166850036486588138670730750484073795785849202768109037349561310270647353573975038341928667240505373272735671977698100828346651797593656445434552121998922597240158178247484437882793432531073605986183439394196380439850150291684402425587545579817177252045078516761199422720320739383494050773929680725197850361176871505118045042613762348743009311649158001295437809824093877507273015890267676972102340789375785170957597810012585072282442934466974676633019931802334834850223955533403360560510039431676687559696900929056434384329934959604922185318151265992756961741367117507300637013220701773397342513126054054629934534036995208113025535229020892568011274583963940758024797348926840578474664707351853222673387683744096569118668896429847289166538177376336521221440921579647174181587364855854112926866654249837553995844287584182243133136125937744773234916615167900909311900218744693361310823123594833060886819407029953722929080266939248283332040691654984694629180502320942916172486814383676883194540106771954891451848148909683649528625910681500951326124834844027142436348021538254933289940985359172653027008464999498938768251478825044412860832302082209682797647013453425993710458464591769534852135800458870494686875368018396663109506074414719505882858136033851589533896591177957989442618373504675260295351155734975010067803370615302095424067320694094588898873427597455968896627460747709912534925983705404947036268519831687628424295226011535321100761354827131741704213925472812017946886819221255151319616010188133623037857336958367372601281721493363405596343354984896814035166343279963917308507825449207226207264358486871829324739400990346301601775742466752794175848061002275485086351248400351148388119930189156914074522940504944665420953709166241564330532912674438419441990263878006835326340533552991616275306469961769854741542895397885538170074280611649428441420113070052512008547337084280845399306250672433823571894196129291065961360996347967634415547903517938766741563893709214909842505403858593195800791629008461871158406950932022496663715050135508996651925180491712997688994666893419499271889241475544482660986386997597923204161278211697450669486248017809292630388310084256214276780429113806911620747997116846128417499637274532163964431163493459898181737853712454578834410773762791701274010464684017540982735695617659234505243025441894369184305957724425876359773090646607411024970055218940939852947888896112416148302685325076354809272226065796550891421072728904483018716876733105037890727274562830142558365221966896010729020343815036608462141749442592006099446590016150430262631225315810824248421716995001571024419393884269672389640557344883834641018970529245063842563750665123192707729109375618523789422289150937035971234355472273229913027256588007284127581868421674325347148092435542330967275921509172417754646378571431910053143044884500645069145720549152248827779870973536181290609989216969773324741004013378098678819379824202908240464975142433347166053437770445793981650396704441641203081677351009850696407577971953410736100492371367550387498634958508282533946020889963240120681892664991729171747137526663831159801974522953787631277936318842394259496146378784734918753863305290431085928842051552663643221224973196130020325515721285615893543242614871579855844577425473214742709153667607666954051076805906013661052313322634563363020790242288924060830315344418324299350250796032385763446971159289057914398692521658946275483290988488341868043133438761935051329436720425183127353123376514718504095282918693244168633200833634236164975217745434264939915874733457343243156523139330017542173781474378750970901212366767875377285698493818531065346388156840588571512731756708492774733289879410104358699291917029921945201298169888406219117352136253465239674179825304135700517937533311019621555642417350801544398936165253541927062283478053157847497218157562716474065861875932268057549433986607752905133275058169296285182589388040951991418793758335094112416119687777479116385906150338913167068219640369881150037084218100303295715284827729553365933792560174436484046441855949026900570230581251283164539335800914954639604442213696613161098003699104999167582665032671440878901706949670734729401435490754905460221569881636804614873340150415259903215711085117312478900945621909067340740152903238312435135027062687870065515353328073074523711789118484018197741152172423786002510570775913234880724049896547893412938235582448683542582697604653875600985402965697236800232003086611183689320579488218240206533131623616630548497071012296637039136079596033311887676720712876283367351559244511700297039488662701938578516917180305232119105881856465581173027848356772961269015158546594054261738014853192077988387964268266404768355754895458009542003646421226778016017167173102574570512486301173711228859296677409554914701778991335753112068847217179461899206340913871352893715939897396689099610819061736013599468499034036419265211557790340364889006615278765375086435523165930546452348347006617032525359959686300451037425933626126747092021770509504193111145926124136782146913532493542748356770065918898415242494142265764259587236009048228459403334677567240294065158094297843106762894399895746373270450399936081522658432175257648500793585802871372362657555322792622101898250719136292923009426574939220849146911479401408338027435385160076762602508658068568071169311035524650200874386257391242181954474146427236959887058908628611096428558519218640082953654354371613550178291516342005132230076636730361764014118293174837263409825306883231436770641556726199030258899246665446953917448956825963638505134229141495507504093825620954697976942582188363950439635383067165961051110404374818431090841727751318732416654728609063714451188554087568145463775464399866729665978317050751452738863877341380471442832060180003412164983998320613743511743472934189710468531962324344343934095274797171896276372774967295606266838609920034543280527828971997517728191880257414223452608703006862715939191689717766583135754346292092455938721433998442369968047813289287185292382711337946749722838066930987318872978117649494787071257004053625711347866269714308194457503771126095451529601290083104700949735239198548610941252993535451528878924450186284500650603973168530310011963151259441815195915418201112693602552580511620744937679876024096012165983393167757101492568424222079659574196302052031744546749152232759828289140736940963865751023913847379530981242894923238134246753518180639678347005803169987580032906517989364802443794500278060518538363426843332037767139125707825713150230017075578958580802967132535885701425822554313301757758775235455931121442756724982132981385854746879227988294201893559545468957443687495489620556849744318210415080306775835212382245553512615276078025665335430967179697302273901856480795626086375586177092600996953932069104386213899223799839149634137669264024017131631075225846265760310202535656409381626540386663939622441398841850756210700364646585872433986384164533923554423297735128849951100537049828447464962486110412974946256458256972814456200974681920471689188395632027171572356423418579488237960792480686572774317197802925417781532103956792856903369373433268801857272383037667551767299742286873519622170283237320028714996702698694129165379242350095474613430950875417576493667054949975923306126786226157694696611689053972615980875914663846933387102378306031886109674747089076251413892325346119245200158297160019888801742107841732694636864323894233768648307728043779614679965594892401337635074719610899299757039228071062918508391705839070336805295917666312882910200801331896938406870904595025165304808073912025444130670859611402770103705294881409463909157354700697247652151809753879811205030427081190736856236887603611748146944867222308520670661657243602346982844095778253012489188503531353803983992036514383108235166553380631441340360836402078633002562948931611866888207513923019638302642965326409226400363776087410663960551596375402169560060542915903792215526536097174376976133281708381018059138220320477260562027430809135676638015327414745673683077456228698627475272664676118944470513736690403286985096770315506121513677985640896318041405724745084298082043342831386335663389106747722757803093997268113182036064100622994186625383143670744924718559226643578975999286277074079192669776726829789267345011646138469976091029828055501213188013629033740836187340406777071165545333947581985204964738640678610234201712440334827254962906662608237903044045085501371104943410550669064204978343764019376912430025099169713712214482620114645362768578490017181908558992878702090635827822605268334258482172255919413154447410074658037799196239104873636782863382856465743195953661246769232848897485520293566460249229460480044339901147602932008009710697467104870322464080420603001220094554200086410988968795916771432913183202855260428223616626691205829287849979779061799900020372765809069883291100128818039661994008317761696909224028874353372145619300570828232457960194328146121306890565951618154072548498825010082184962943885285202797829204730189934045558460313341298660803048721015974053975331644285616688055826217296909467024769364948515809961296442540261302196315896015622768409032728841725143991211120396111834501250063358172647815170100756635997045153521355891366698943552417789384441540493863128732273563008483082594653257888080518027913549058141419059076336789024155353315040276429310496082276137740504260792565964653256285739606468501590377781197971399224996868116859277777990173703905578258239667147816407376460658443381565335306419779389661359124380758890701293100570959557071449863923025468987748027617800727610905378213017819126076200842231448355968809160390752738136960471698077065022114473588591972620917511685119053041933566499158327120699374250529567089470183472218680032450739397070079704593200975568894260596370480570196378031563832197213686146587381664421086446011315701274090376961091061601690125568074123997078716425314763708036333871311084594407190126300808209004321718316470643231190660625284971713479522858185464531573148396078795522890205930159687021631618144720475776526322661561223874247607523784493754104956614952238677274161875218081921376158749151857060001674055316716501368648574727892906166778427916528735922861872788211099772606872317141283644813731801515659273154191549199539335046577740261264418256595028558407059207049152240657102752027355180378631183732986008292843638124510437915054293402228813813023396727477134028533332369893035827731414616879975845655740098460256711779372862828926963493081934163557698158416806980716590206900022659536016370607512472719303592423503276068063755480542380343451582730776758155820161480199415004500318424195986627566982932900806914381150994941181438370170487638571151975242960401735427492471482338058712749662829251879146514493125930235039121399767818243935520939377619602362099844227081841652713178190211451932698197330173841732891777179390122771679215673133596619797183244752302087231341543752233422169952842340325240921025955677387849681511274204976944896313869652755717086994596491828534971944018957369726740742530788204811878561555278489406930638922403577785052445399679627430907781511607118321458246056116267811018631575664465038899027285674655427086730975904072482943949293651363387876694732492110786044787771039783583815722923559220227048147048745375505300048663629546180944690065390016242458272372546261778739196545068131851142852621737141875619339637023190770725773763870979442406764519644289237057601570198550813729531741065917947744348857880150480388318741727611817977326564613214321448022897483605001923314686392262375766275680947371956666761550008409935728915148555984447904284774928855143993557776814590586564276513432278280901686192895822228729355523367120120040527776513597824136854789680449841361475833062110347824431268482279722024191465870187550348383078140861744227174072876403835060925792433505388664620120844928465567656688088666067688974544564025690090242273860722695934507941486366710537142516605674862609482129071055637018728468121059018201721673129564884695127996260992521948648553458255657594316354783079829269725284133516238243487078808976644441854708855598868290262250670377278872083585410285991303500180747717648205832410300407821068315498301680958724593323365681998951725865804936897423446141852802882873158419550218963421299076045627828920601977028664408909731251503355411777400996436136885314723886516579054126128234976253456246450377846817346845580111332480127432654165967454060629874949748920837376564367578814300047241762766235397620373896615243701649840710315033616629516455573797624687191520126630673827280414272206822002994677384866741138728497971311676375347674296959497267603094351886076348207242793196962234185765140954039318297965559174427756999829974045464858138380761719126314056013855855329461451051882481436507738815163574471241901201314382628768676397754387966089926332934832359633480021104150424402000067910710238577435837599723898286693079005319005077429561111816311096073642411423270844239041304153204679945830485477224826183609941200895304458261494853647725190324553524401420249888826971878058860449903567410562276069488804559613284954496548685488028185839665437854023512350689558245485719576227796430474313399328952673678182140328246412975129168908616962620564316083398337015942957763454694713515615671016057133985249450975610111830586244670205450043976030754268406067992801746846174675795664777125576782250286375825194615381680565197725314296039080849758643578554762387336031258378386259198616160187756063671486844339846137674078866545665351186829834793207999310834152972944494129818643684632939892393359968663098055004162831590919527929581308922396082010237191189551571266339002401342372975881592802060116019104179217156496098965438564151202951469308221470243584525081608112723299358669524804470605349740920794501416627528087522395655986531860710107796160760327679993821264026831815155995511516305399023017490976793402533499572475600315947523443380518022820546966656025681646001188458733859638236976503671629772610144242095763397465318823791563102660314705334254559420846649996326488895549626106764379110974125605665468545102804261309244352262030526570122482755193634255977422507675922105906017765122071898281824055712409104013893948099194771713139080107017109742010930367879042856363596639613275173658864684937038999789303080280130074538687046071681313541954747409079023375842018938355938027822508619152506722355969659899408688083312962117327705261861775631679239937298986350706229555470981997338758932169013508580266680422753712523916126556330824940283817689109484633790011406471089225871292913004601174921043157608509246856062328332448725487787160685237996696003757977179464947764321352613512215648972133968831792404618370952006966837732051654572786952074095016756716247449271154776752365930271560003635700906896176197705455527697793245550576939631809535491446926948963938738868493996296238032497283057120391603518205367171523768258553758264524094937594078434217932198603346234127246729179583894948158285178578976331945120885241308335070801134389732123057070280767344453149481416632346451209196190878078165986635364132475804446529354793511026141835672797539666586556862849826128545845189314274749871070183959991819436910511844343859759771305078999281998789569035536658002732758504184992709986193810080204905484182995775123480769158381012037416360722874868257632394443141643360770056413585691957540505067108219108572831915136081731853155946530715908653484002785772400448980425487614896239753608546661548551738156071005652152848872879118331870326706322803006539336481473957052453804016241114294248972798788132907009118533914722005113853721987270729331232009807611506889139738841889459107678490221729534156000773863797460134650790148568715121566833833653211332822248721029516939354665205773057491548463671393362615445954644063135251424323793950251045667169856925661183130038437007413881079837079557299540452885104893277496404607793213903915975120714756293229154527620869229887507229993597365760332874248318786444832286539547061362586268940879265001341018607628528537808630464511921136408582691168091307204240649988753144265333326598995845722821783683169748215535858260932879013955189527074861242920691419211112308794447140251646623414978134504566216947976658955783493492275740960998930293863057338444081808619018366211809696764928367915326236794563155759650011255509091804798880126732719209083334979630115227711301190132222214560610371197619313879558332514208143553834597386274229756146826983574660756667162039943447383290944941926252485858421451850332380431342498999293665742656771120223876469625381292224991289848609039398202582953010990182559495395005591052204683911689660008590612394283620076665128735948119627478854922299403408361807433792759932629448351890685224414194039774453096978232221363625757165027012313444080170243104882016165590444732242063792522725566232037597808869839761470627090431694619256736602575149732025173024508197145528749880830142894090029180022800427914946973126616433948881250373223859646045401304259689128470042244522817530193033308045611522224621163046264782163018988440083992041531230590108667733952730544756767645929831193929628501190297870055140540639547438788137138384039493910268852824103341554958325870769315491498421643323210752327460366903685862014204613249607635419934347037227504882694288830415861879823354922906218555489725919709536145323442749928910657566405073451364552324030169092398552152254809985496922647184702789408703337583514637647880856908930785107764983861371639847816695077650276672920323866490480481022363655751801299122139838998335722625220467412961442734289927784186529124735982709717703102538308040546821567466654688154446456625624881388603166455656426984932002152352830339947813480967405082679477991543314355877470692196835222258682349527057513583037680822448718193467442522924040860123883405053976922956188017812529406761180640802687346153789392199994253698337111534982903253011530449934015199513066033037570556412641122884455829027451369226610794219301999953762824956081778000520434983799074506626585113447989224457046854953816973628302897778660247130829702536589387969425464342789717328056352285488157376614182262452228041716856144348167104790052824199918470375609016738646748799749032584754358140947534475494013113019241771776257559452570936111971121562289825415942285385118748993356105216711330875824287721562131330409119962992136147560279373956258925739749995423009047047339602170869436233129928956491073717445814649333760189175509565455038301001532374377168977940308278619465967334264649680010224815144832228064720144345531758538308430228362310414288128673007463338637034510733216199668377741440002022573763662970658508232488965831582230753503353988705845599935371900707699632021369220214397071762508128822325159137858034505153147449412904065421128153876809705678328544451095636735618510601817429261117257262987697813358877876570792680132529550662571625354187282656505832989408547172753904995019577079467447428133584046157240691176843458107001994889167716950763214706991540247063700096702441998635043713991611170134759705411259162904439508551263948785020810550961420625465503228964022534083097443391590371216507615071630242918223507476227259946816065205759894332003265348800319075103859674119898853869537853292897216539123455337265826650135944703531423593471165553119285646040481688786201674875786594260102556626773359328861258254367676921282580716521088752460383002353450625865470770147998534624617681898847589912646245676907923999113112563514539819700553344773800299018064521283224986523252476349976477108016550026275505826065358040018990442314650587573665240064616876267068830758782934439270703743380788407917644878198350989326697871269307816583986440557549015237516901363996991564781555071652506749237649046999316183446805376548633838543587789916846524879711378632965505149280369059324212869718959064058939966772104064202570220976695084959026037362852329444601965892401939623737204658342482935991880165032073627762691275778535876485366612780829912636534242267318620182314803115135449977818956876471946049484289577589922612583541919113080144615396485874918441706247022803119918811465071479662839218009691144432099357621959111353500764146610323691553897550832921516515566856958662603769838520543295976731589174887749688552169709578982772353647209757903217540569890405413878114817215342839575402841480802224980946692599881600153063163051424497194910005030130005749421028789672539010215697300948198912653889107218673204234054005538670245362675947941936589089394101486205207157210817426790153485191788988254344249507847861080216436699584521211959760750660025884769531746035526901371947452741941474489397325038224115976625247879949067297824648941352077024833564050788499463750053713175424302389688015122790474087622239129367804558609599006645484547757189423927457898533219522575957330242001407816241256693358114786169421090182139975700797943118608063306629991709688857712031552182061288207453929121107676687050085422228795525203768212517449377981737882671266071627525936889964847893777610792532023011125993570858326210232052881218559733139249294894161430409001573114141815440430699363526499482820475550758976293808294288835809982808756853904999988304013640929306526860829030419529918527604790306154470836897861144549427486818627687606644998804493546892479440280448663408981136919926312313496067098750387652526963265192169723186826934891099593505096051585903412363589051408721413563012826802694991184725109733161078274845894620086198203384891264062443397193852180582190636612401627015351769451241183510643651108846461772103904976563518335119745626597403184473123444821272149816244944688559955785085621186161906237941714437691479598544351011790430353934570659449020413726931490058833960596284159692737720872454966950287271611293545077054467032301300511786441945299572722156134485893144676840715983887113411438660525490967864896607816985593348040713261410706857819975266140946853226807706219547291500118890536417879791356730542288557397831362953818169830708863950772011192813340637580298759640580940431552165146046178706553680083545552787671780675638571787092784766368261166312920529153903345037830558864529849390232303961338164462553787057569834179115693326403710616420858666462053940056164551827803604534770512489383219387314702911132736493409058131107118923102689345490294468429157759763480755177258621446570570507453821144069250411016844829699033254687879414898679366092001663982196007010847684024115570123020118625270820818315911422000061160411357572999367898878368481412024653540456977909664233989112736396183840528772164110164187185324925438157527952727383384627772381623544025400038409277178114483717512490254402840530134864256604452650474052376169106815749731012939066557088633184347210427095990234016016624771562037446039605873545244297848309141089715354710310341467215084831323587715998326598226211261101813366778275902747845661961969231530667819310193250698276347133971281945876411903195556727370698389583251263982571928139021588420154018585600097255765542728071082665388436223388224319660611944540307054437500545675593013984160185583720518293789356616945195775534252901279725344230767390994931130616582735960497169804482362536820643511093975760530168652946110464769138373724554847304349721291561906462020284995530654918004030829246615533273795095520329187072508407132495052198427652758162552880381049766753908611006698757269866049289358351848072316327274537934893366645058165215342455865108900315567810936306830483625322708740999918662964309284587838705032510959799749140973888252389424285585860415729711258504140202541512731106793743029301711840745449771046449068581304108374595069152126091718145862778490074632605311175714775988089848968027540114166532559976662824409743085733166555986589036800387462898346068486998974127320892191315367089103412811104523546061261046398203312174016283463930464601475849465773854580145005730073851207576465936519860656696109148252141208526033291681150404281866456308632851221117094153454901687825692012352045445338162075444301182038033645876332017524698640713220719977885926330794740113226027575969706896266783128547438224782478966971191025681348403318468629849828025601865291515797878875352236077088438306881762939222515265063973311310450550575894534930167171053702779525622373310777207860576813591403692053934195319599715250141998704075219873135744410574897769113198488825060280378635138555833113331639557852481847765937358471428526506241312296967251088234130661460502451569821024457818009917043473819565325668804772786834767753898143724171044753948103312280768636746529021298924994886094738775847306038038570172577595941866120142752469240404375559916609030287621122230939398688717274356598014821255590499297063793667925260762430568411223667009589593441475191268358981634010834610127264029833716957165832086230898567614183770895918346356059872716512275830055956548394711368287163884187201543474438969996213035783921206812721503377921050545509387616719906368870687860943296857673367522707360264895849121886259708954530127424496748361654899177701981055296564245561564395319240871983082987940874771587771210512457925313646341216421112652177587608444497819635701327507993591462134703595740063420832865261699897721848123145207028565232909454978504541130212722693966951321224797970188290633381074390840281060640122785799088671944847152897168315285512529762245904931802503865531349260023064791255173967587389459836106435327120655217101147619884927132229748731950815207488863094072111861646549864550535815979760812975811952100229895633678061209669459744790348830217165624676262882840934696117299547595165803102744565549400106010023773572322328303038778018044221815769566401026881215176300298390555298553384043964043385675836700860536554150605595469735968038878356132315138960965320123016465927586333637092382380339218308337965916610662141801317590823503142514955565526278075364760992900998353559346495089000825047133104976425610045276863763398770765173963609738766070119769403934441947897703380731474152664280824687540963384373888280987384382546589540683536228604467574475021849868199970402700957498139779328216501347811008960516348223181204526013425178602550184822961724959679557500495493182422230645384875751442318738884280683420784852510362045027735333586034826419125245985649821337751032463089913597424275224855653445855122225900373099006186962849035467938519587242890403740317486988062924409499614279885830430334891400683271788716956543460991833530346876493015765687502929475257209601303505666691956938290287629412177820362649451075180474800058319795865900771949911638055572507503884319494478345471964725903821082880011100221998894294042088578505129100492944523578245203179329588840851641786836498826309392301430026200418332407121329972337066475016058197155575417422475318629021628279467617143765806203899756570273450163181823517646762578926298617203940419047889135160699716089010032533264691583086967444930595003515389773250950688995476906653307460870789191011685710293037907643412329093373694880920842193483536355670044526495783292990668740682639347810679662902560522270908986346713231963487413395553482658397991896787735506393877336380633937382606788609748789360610944176011882972751586478154068877820440333571046927575015719258734828035652768002048632308968847072459247532496789647631792459938914134023113733744992969567870446400140655869126879888149808607077317829702037290579364482215167704114569401872293638507801991438385932039860513716664886137930846643971711795750665027973238668794502938697338832121567770625529944979788487829192012134176460104186284397360371930465499931245691290261076732439776525657480326319275474896993981328235397258424032938451980462412633711676144958955924421596485544118743913655178233810523203604650557863264948874484799805675571572265248305043393131814159656656985193823064932480246310668409788055249369342963252933038733840722645501501169309290992342929737424205094323196600010283709072353473707638042282584829133893084948894350009726557222049388816268369875196909824455968999536717646621905828397327299974690001528554569206551019426190682362475458819228682855623122659809272130258287214528648993712739030500636880491630906570655642796249385123557114897453560712106732085200847762219195924447730303638480478998590585245406500610798228834819872767165196093154795558908220701362758650109415053340760723767013222809690340167153624605717888233047540404587750309650300683660383764574136846481674980858889530438921039141392459887703486819177925580203134180186923696864126483753384921523675192861926683131729966613063583871618469284197617310728142899180839256342515712296728890178068599713844372152870571715626792106171675023429966553927917304224119694541303784111271540543411926681677273561875500868251782111113060517468530457499538461453009879289594219218569842410026599382092157604306918835423806051709336951110710703412520988687372133490814710304126617159908752445083978207024678429566944555300695420098453537356376859681646526345287279472311598810537889432245220209149572826952527013294235229224619319236172466226958944006598459914828333893140537925943080705004614617753568867376217457735576552367087516989423096064632754079438516497899720250369397837452663249437886649447504590954715900916136085454031029459303325258996050009067888305569334778751189685569097124134839123907978484834970297880925915757149936249463487123333753296003767188986009867821530530945755968277711664824381953631504168998167534299894551913632840669836135029861375377982351153296518243718448804684506397598469932382306023536937939555135202856336018545109197783174232797985318538426191734931872288361350643315057713708093753329988786273308232326156507922140986944211785806157264988604320068659936944725165774488246803423411290317068686149266960019663930223663848542693163721450437001232964535885325124427577639543594841627101218018512013043251668813181319529415687352307003566487431931112774738109522114060907932507953177098361382868465442211830550121303285091716614782476153537976469809346196288146246358328378101916397494581130973261060418163031854677396493153723104458403875358771940549222362618236485939273102978321646920331258021342958672889391368369291219386870051236741662855884242162243274674478147168422933757230119663039223217655707088074581943232382897879606629882143506318347039946207433734180337438464653599572391552853424350878827138250236724999642617327756137797443153622666789294922069965372475754980441810844445785289694654973604672151664847060856562389194594497490891874356492974915615704966496015546034706858388142051160930676239085506077685644400854187106681008180708381320362453613652132269079720494613552016890365922119437075561965083416781455395882361841276743698070718081042704034331616013138713109213781343096113716466577957127959568662359768404220035698690197935720228646553507232536878575867163837388358781638351046051595017177106752402408259902832458872677867028305804429102839084601037749276343845480198450295858344805515967665307607477003041798437218207324290858151837926349558223668344001575600964483674714985632821167957428030208258807232779273891666885027984111414113663539198253566283466291676900160101791361994560841433960069803622333871325762296943203440367931976701897479385514462219927160139814764364693451224540410897091658486209516791343796912396872315155611243081534645287767536721397126226735991407812283637735126053336080209603049370740302312157876984910299632894387906921137827132398314877581582875486557542877919344417932764702480179703426077559581834218865412383889737782245408553976313657399375915870683582760928400495998605013908260409172328078218709022909626957705111406335956562731884679529957045020122145568617308382093486549403547232637049792517639882852853717940777143178060259478170325091247407894332434154656290799337839701949277792551759282780772611341261518416962289723237487710565622444782966455752740737260044091297075467841783582247780035499793262586098069847241654507454242732472799517028040467641295680063323567726883093620500811280927222252833183566603381520189351860177767477737466809529466143123312309783427456140866750444192710374094344869893407361635051892117946296800920315552147984861693862343844635521104633966564261574981743821230546014936890323125642742250176190929161945867072084548051296910241655711760304818564565444126199915493475384136194562470734392708463437429824639632080442278036130889913580462850875751959179392582864507091043618541685444110380405934662904619438487788155833319543044910461506745960268610382821423242384970006647490142469592349850017992059266287978762146504779049480220972015232290564796335380336359630178814980729477181278453794185930705143756137900726293806082109457533224967988810187684264682602448312576473135196828884003092602597884515566706863105042360158739140499296521188713005890304002654439803757649269222575232655445179287560650995373906484681383873429918918497529433517039244568670398532014202600686872438757135954201962673523901425299503123394339376483708314308929892344481198589594471884060289320823967456591516522290866883270103433538961948622803922350456701350641873479337259626882073711951172667282631452240022260335509399875809122723018690379931378753165862786036109209108226261040721187954525906246047224743638903659758750671443952491562993929872867745648637239927806351927846302106898078436181438221689821713515436585814929331855825417180897557136571215701792903104751704583405485841969361933475925466816208296085135423511765907283614097738823922701825564876690649654054052759646261984073857171455812671969642765391531280464193952956546816545311752648533118106721208995343843494862743969872399780696554944072444108041403433418435982976086686225794095184660982033108721791605062123306729772810863248846988624747815020618729296338730659841324053158264686969745335155226366548017388717499264713548360514460236297979874945171985379399635360569871007103902359540831021837614433897011018577235827445963742595515707971029319921521843254049464498388226071599782313523087582244263008175751987588765557305270875236928540977819968951834644345000858531170156625858421328683448147103136091218973798266831081155766648576154865485261659819277936879576768873411352812538367526201032288800709773727949914201067984453423639892094645787084723166737915425914240269854082366494325431349773217560097778214822422897046594647115583211270087506885342796291319105704632105509346612378164454036570260558520830830449411456803093567789835283035673108713210284836962566025280605724378125106562403172471448006315459639588278838189524739690924164911954660777185412726313157722854900512193181947960101597327380619582530711572983685121474381799742651194731885878287052210559322599305620586041477757673993123890398818976247947639884963929763745992611909312013536617875874961363628020428526964510897891601651138688594774655132638191315423692988032853503987120946476440344062319356411794880395166851576871392983348596546988664213628539288994703965065630886558391338958745706286130872033257358181740664550537010111315226824523140741831657592891806903768702167573617548445071253627815977731832015017563847470054880774292678725224769350360170889548988135829140509655894273337597680621470580422814262906488842301717169301113793985677931040850151883097663454824692690201162549711960284123269135377894509441169440072315234101982431427314039267009813670506193737552777506746627074439856550365734661652122076757311609181166172327788426487981965393988065999580086270768337771372727642491405755749804128505387460662402988510721676464163893245343461846142438886254768366590565141784392676399719931299135310811337624734289561007653495138730893716362520076439141040845519676414103847581004371465006902437133598028663289698224806798962363693034730089990643185290852412923179478660003887583037610881736043190162527865931231530176316743534399306150411510300264038126786320478906760062507202083145392739781537943371758015760918700810315337509791087726237717719332427473788267337690855251907754834341658185951136178520445967057378461586839187118736927447852190975780960757619146054864929368398338732988315109233034688850159732388342221351199467299636117405094487080555201778889074455154635555745590273058353080499823253129941101664564982605642534565304253476635661522259588386567050451384205337201692878433145444821608769048427768659618375503284118602418572209342013439152231009111012165270565096167358853622472824144750331798590296314413963891377904935175892289136044973720678333166572220227441534479527964242738975272029509777256301648516282169330605323137413999543752900169837299310147937372885906072443650956022745621645305395111332835134499045234201344875773221743783966156910730703740812743794043831544728222598626117501141254306364881090763360053181106707813612810482993837097022663472749214711462372333662223515587646630720844262387682474536598062262306288670997194553215378827428211995665535027262690833662894043044106424311473069226622549309450889903376958696444581134735008001228451677593937239999684350059439978066919415080528105397905154405196388281732362639049903274367746646566789860289968203801858532028038705818336152581218696624257007627439332561886541762437048955180145069339946141905400421468047741293666124678406964204936095698773967046535846335869706899289044923043941575219843652595957365732096705667927967574301735752748158304320306898534419184190181896511247729375788278375560878459181408629225348602910687181838462303758400910359866006892613029774105685275028054231818834128387589735669375133236430865878498032748578975997168021729325593978160750718032917198342366804897149401353443224234180207063157331765798772477405206623849672004459796148279589841683837355959979779757761791350298399901582119102245565649012373777583815100095107307000495830826384903723438901781195682201643734021777957298181383002324902490311359179876825139353301245380392028423521138413178579095542711539722811741009108918674141352163082375569259502820737050584582141876359014584713269947928447480447410615776040736637978822290998887565602485719564670769473485165504615362377900167595814071210689729520127124176775156841910525717302887370958852688400937868920075388503339181753418053810388943637764671995516775977158588310532015661641678136181529526932651753318439995675100419203382566540249123264769705739618552417407568233321286638660236576550979198262481366582090521824244148869827487503513540545277664208018374757512497014210027458071735973939418309557246566964445201962603116245638163810630028276563659576374626154225020634585247662252014649742750107342949711080340072296170056425813385171807973309834253024227023471268076422216145084509963989710767551623211934377715008643152132462845092928071270645534962795207906355488551080128949914246354912061220524893769473091762983782689580513389562031586732094712161011591465649446746984922238718400822048325991693503870146567986991116246314767046584874153322045827889163185628470172037236241008445797838297116377651797245439579229114381876923519448410978871794773210460157035656580326316362860591762015905154386713508374821102510544850378795065004746481441410590580448632894320797229480369245353053169330023354124611089777054380432698353046987312111095829826295594482773566174118866837855395216289221230571980694873667451588159493284124087964132861777388916147683360355259081614150895920001768922798596652077411311425014410915279825364193850303588902770603079606755316314975458864589784841983525524919045715523045348293094597072914244518836612038642232171780897307834879828674811554157239841800439544718210007256715161148620812217488585272078420867321441902772408427578749590216512539145193029783793972298128671060779304137053533289057285284096686789014460799912049716786195925445299572330887360565772872143875185094325232172321694736225844106097119920419434718937107803606036347317369586583345448008750718525702225467302624936455273209502376327033191351364017195114463972891139775319216203092553289910593471506792062348806528062549505560370585451969704126635084999302340602506046505398048964329613334404156887546572629526824452300323231402889989626960450538576511949769149415949475958953339833334399534140036835947915807281178866905050111240290627527455570902162596075504106938707984951284180344746854839955522160563372531360234356429530265282954272195538040748749140286939163922668080568222530321479798211174160602923908899753604230835410841579027573826744817310663365051271348300915040112269860405732010769678199046894055800113192810441466245634558725528519012344331723601008942780152665409056785106769779116915734211429917781800931463356602390081098567036717933759919533313583502191244269186838887834188139933426584211568965401217525125948884358130069771871329118395470301518891545082225934193639663745394388183009805614922901076685373400202295471630810836002456159346003928017346211238524462006124994305825703887998893389273023176939236096603637334813027341605370867646576112266273175361667600225351008577905942346202625353911561097513595686862184305994537119015418689345596595790699899987580098489742349483898938136631420681234646224783750197740436831508064884422184282083431111887139176693681270419219454860685698096148294672236474013635871830579799916435175174114928250302877726670109555151333767729358655383024418598227469162928975498667555725859046684048388298637461767018921311798541475957329593475532806593144955927326408681350913565754757509913962850437402136271232069274945980509495026538937305753766089734782098902907463469734210030492021789628373210890487480143595011764117562422389291967815187638933553551752517929256299588871522051280836043127015989047899423743538015627410456135288930295996726564519469880745910169837258791519516383810567061326659622411760238715217835291399220481916839275575739204537487203410246507539822456984994825539829761547776203268073507487820191646616354269365829885058145646767327828756931093109485489565777347227929685963400998822181428038402472108382430978836023987369388170529902077476026330063306487528228158035201379958739606421553867792655893494111933637249396643051856536744404226500801973710039747127262038224478315173869311692292536851895269925996009027611378635455099845330297342272602912474252349464616478742778707548243612970192909487096939918329549352414992675929924214221179270459306874721927491957486146196903152293541628521052647152713330828904965453078026302523913205296322347091451183549703110697233278078576772854269499098337030788229335284966711881330229969743504165339680507242157986245725145155561831871460125234101775198869832127104482990151225254110431592287790952891451269390261847761787902988239281413425758987112351055176016595570835978117601794191546926399634383991698306000449128943906421069162911633761142169230568917183043783147646693752028777373523522102074547277942199210528419067479571695961021269713790273638341402618643597308262727017318218937264742557518898689139153980449529244865856237766219336527024164614111844965349797529798726020655682676397917603373570750081487261211527186473317844205303854001876612225729096601087926249559358881459111144649419643830914703844599095495810173167245191730405180278918596685497171388666448436303330479918418748088449222874681795995518199757331434805655261587217570505918016167805428838838116472988491091429956552603421346343941955028365750564694043510301015514173789232359727580799437380348145102869859263302868550683791639615497586043743554181088038369874240765293236071154995786309741109487020120186050541492206485654266856213271029628123263218077748310058168789679004785684497799529685614287809597627289258304483923748473227108862738080108419282144158795519341942670581642835896783333428399024201121724839319102304111156680461906949878024921421222659019907450690558713396382881584831067537451337489939346263528262651777630604496127017157771044266181085209694088472737575383400713925871166260321721528728594062528561851366776636190653751771518930835629707214979294610699978808848553962199642867364434465347489334152212162346215786483035208932301651375824009762730503895121414633442880205925143333339796268356177590230373349357281014751080391439100172952858890306923177116542643400924214823015704042306884571160318941455440353594436188473553529531679845374188825968640944740732033363915929310898934272002721203580265796890514689881322644933745598676713132504537510395856655086368299113474751686720582935914430153208069308219944627152269698011787781747267222887131009135302656477244053912780234010910892431525592095040134891683021398488885938657990189451349759695858702434059106825159510030858876782570843713227517898948739709098471662159023082363883930055417417876910759390312140072075319860053370638020379910672352924619581543450266034786490241737848696860721026409218202818680801834355200510247276055400384520644818370032406264306233183092317032032217299947234361435723103797488635164660636736260777953999897852871969306127066063912475393844501443721055776462895969046419236349808595733615749248156432787044089958349921252271882676602357606875659801361457066670228847051807266440991084896178593282443944303000037824260446625503002708317352719882494360957811919574010994790131821889611757443728327466938696008468415084083423402007498911316328939142105959133427807979170887891880883035488896770575166867903725251728310706463001347588027299028562556721639044098142765661092084738837315475302392992494371477710737564061770614423324925446328057392486234322954270581430068361141725517326408393776652465173696724906983528912454573156476416994740379200556909607638433435758119655261431397196071522417886173387911432177465831330896168533346023902013438091687749833009782363127992689657608489821784997109210651920561450825248208020513423763427671542942791117653981567475256471376478082694639957851938292859420821466502155568985609787568053461311658103744560789632772243664479300996013433022798278363399913404142180946903492442834176601075892772163623589730723471256950902840578857144277035629242533232940230531553119969477793551250184305252460063209589998205859930264660974794755387707507863690414555258323942785837561575973762162972018375768020325242338228965336999489198279356941401910288725507977542259567499600795718838755658699670278264415222545536136415495855953576294142508881258049907366025566370642439138637733864367394686691792265338074476870484521794483711897470272221375474019315201881415332392174995928525401797046028794536329034812916298830961693088196626658634833599221057440418950566868775389520999967279529429381966023450949433330104818807227439566779551109081787183345824091572299879027861790003329762097469315842575520400910664175564318151565661198736516261839117425064399335127126751973874270471463704442880204551818365727744618526146623693181348465204782481303242335980880747872087290433856188017363136390993002291595336029552156374803417493117913152183809919357016403379422468802157776390273804745614405463888138364144220481620870619763247725592600515640833991917260349441146798544573293230389493987758611178202578704635019523461116633890673465462874408754358309034283279497536374438032601506933767958063513725046442879132542360003857710582755343767454374758754498003264242066491354306605240363308375785664680249464014909868686800050146076648804458321408849612215542577968110589338869018241926362733752424071514287278173837171987960662461633934233920550273195020897061703743043949546227634857749360174563002877141327655728104796142545497845031141427767847322956891632151908011575984051451156618985849729514402031557833106378550449216127379793592368280048474125919696952565742371906406460237039124368360204332517384943323390558324258621319986896518830458466920585815706774268808450538096360218204790281824048537682734956905644920309610583068520916933629829367800747864424554134120928118856944391813297505885808928901690428384672752217188572781602985688578983716413647357099120576511452389479754268697849727988400708011910136395006384067564403122819457467215218770436774897723847538921325021105360171544141682036217326620598809939697250929990713425952345343576399474950297269761432306457138186432257578438938174525695122006329324828951105939469073826837636928734917464256251120120548352187893285288072337009004283847154220268825597423405244191177985084582257548583826918474055073425007576134667443228097089525211410403999769967130104459248126658720937436538894074640570525194271884396063568506422577793460905400534119165463432952069355562017013765816433965912380147684809276873775144002558137806824226776240533353702236662504912096190227146609828369110181384549982183331723246809771264913505199119161389289080226298343944176360327670520897412060403210297940121029547720141381745716038551141381315127298695786710924318986759783053556318833359195282996246843628004021784658520335183568650021194446165588490360900540948355911562818564294814079933487387603709721069707373356929469489973171002911350128725121353931898621419779073867862386523166044170291350460749678102288893950272780232315655729636449748541476212109064900038862765324382724740224096189273614905525002742735057583315200785672537573602324660380714714401621629913975395226664475732388292613267004812863584118192892622569962977401974706812344093520755819115789617177810343528102459923103606517208348792772649477726760399793074811631474129156028033392586202839354175341861094612345383433939075354261914932967671886981609477031603113155075431080685085008708738782363119130462537042496276676667954994103654692342012159276940427015307035806143588291394208264347646043418552572239276041739148772344242294931792951858435726760599614960835108343626952894100031702147325794263777716352328790638091358680849692305881173990463763512147371332175620765179807922022894814057289112568377987226057965702946631470405404752346895831299650213091726178145078175007467832327728923930575914021872226019469194112311875457248005592468854707096662955949646014840180655632342550841064916830724083166557303315953098822068454335139910359786279956421404198967770344324314914210918432220141651989731753061206017879145108858909963168691572162767669070209786459149676407471671548062508142130551793456030949372507813853693860469231283802830907732011915034855324433860779946812478612224969387797511081999616549977107685087195847764500428580559236238869811059885980097942901921932889548411354575839220921686379855586526759149800392187706124904590188343743648820560120716551673397815859890636248767090453519774714734684157874709923704981116646403567140899177521256818572513960460409833459214915297167988120233005620409485264795757329682698805256311924239091820910240890742723443008930501887703871522716571025921360355214610481917915910105483706716664072990785638176959801518372137195534448809390034755067006452192988669447554156162683061821829123923923009888214961921764123809451083149911935636028962842487928139038241083346547764284263774487568335942053550513851527358603826320896001767663329333522987558193225155949862040990249684402610174931878123969759031822167914075802670121876490335198481722031881909878751562022648853362377617178589810569478624918032974617535113795033647370397004570671798887701721973837344999355199026241702887327982483101584324644363096729497885650191575732341913658479192415706803366825227985294399450902349969682715599285786359498875969403754480783033987340517451611579299923127845376901003327020390316181782513029695929945275261538470433318025408595610796543241141670746664445238749315280937241559555071941398773683807892804789391395824085783203505176338757141637754939967938888486933022550848624073558874692143593113080733227648697913626599868988499808590432331426508564380020957469385615802173280472723949407821513219231280487864471689301226132972541436935511430916235694493697405893981605629569818795150988802540789940199403528967953972196135951208754376423724954303975471393789635151653776082634281115842819925748603589868820112594586873840489553228172598860170510449070729524835050730755094037525536481586824296245062886716254555009898019186799422166511861706844832548697163962220091098255856643654532547490751165566264783095800383229961567015948521409914587849934902551280706020291393549246868469099378271688280773557370831182742569695525765110031289792739172254306700844733013230117894940719891807274068722406613856081731131756867590760507409471999912882763118762649743566145056390449859382871809851622970721221212077790580647728787137820719827329279270677699874887936370071302581431729840651820802112548184107773164996937060806434260113185354496515250581186004892577342434035518455958340465457354969253334583312050301902313848878494400706918581908947699474242570436884103494174127553047354399039993576868127623899632954821885794867184482843413876914276408243351214039573683030925096576846903086647257269783021912589781753690003613871853150653063816600142280724374993373869377962705639767186008154980958369658639888227571733085228930593990354249922135827757257003487571662486830147415743125098663570736061044461926611253015956961059263920909004516762215879497312710136697732131574168288272776086688895981964178576954920170246596565736793006921916772404499270525841698093615671572637386588364479830979701054677926874028266222984488164952380939408112007911443891294016086311042483531472570418303528481248460779040857895757121667114229040314135481761948521359424086239476900164058826462343863711417992037643593595748942157137338657672761009059700146322780504378342929413605848984259832180285355259042011121680501399819492103412982637826528650790743395812985695450180868591284149095992774236509704633173241395016498246828071884249203488035233131373457849867188275108243781039112285573349598843936361091466086484540135225675686324213900896120447132020225100717597265877070715985615877993143948453575104464932099454129298739651893264304342814418350525503972176644550883336116315627184373886816981151371337704048938309791891683322058827774088942555233681028944342025304298987844953672171664474326324794129395980395234942435155757855687424058301885941049640868731887256850670392643579006380451108185672791458512529041211494737920734661690564067751242202410827144883788035024653314080910961368783071344430050623832309870817782395351849052068583253196974747236467072827962297640748189152682616152005455209075676248414199293889544400773548112161019263702630818957226229406642349601929184999014816009005205126855195240674812944377833557156948136667056916467874494312400168529391735819477318285696797904118325252464727174362297931285315042438025526666069813267704835235913422294823802884907312834782764537239084029206217487045690843964229880926244600137870579335001176081639922135259521933219792708835452982495913404564569750474205143622350799719499937932424950385410418331872941483402998551183463627921650964678256503666058959875458767083421081724686906219104331560054077956794285447149128116677699970916001574666029424641293219128266697808069984461135052328757416927319944874814593874759922872167000431898822420437749333067648421364999819764361911898338684172479750401004340270739844641462957152014366866309770893116105362735370550849295868447921979670522923498713183147297892084736349551234846886938159663192880974856505040649871675913773780139777152596386170658268555711817585837959410766394610887686000603621471197559256555446181511095135018187939817765731020725091794666535214809778185516035669700800469182967489617405729511375334296538375128228018347639816835705362827359608956904839311675380807202897090819353342479563539656866431446103564242159352458156805260818436181019296710357317175441650555338238774420511788385098026514168500882374851272253928087962130915461926105429365570336045358099917701470067182288776697912290731905678717532721814593196268270293766971570036993657331958143767531458397337187375239475114556280591293095410361078235815126335890002649020698855003287681260700332071120254183323092185373708656327214320518021114255834365848383509150863163979611328154928702436695756272035555996536002866575220237640879261526155310820766920045667576378193365724412058422006797428435456127122117913404822024690885614643240671139957358709058054647305846232247010631973247479644647869474944592212438562886530921196558343491601263211261394571435834020386878522926579072523862385245990948259233156361624942828771727186695497736335884246213267259826372717604382745299510754982244790891536399069060840428515066866976370923500328810166278391226383635937406605692989000689349509713778556665023877241960008836374652871929524449175531773290707327322197598661624664281523968305497334763423860090713343276985946313197025898733128828410621005126367072473177824746120146267075292571912141766335953899118339907476434736012615090613071485833344374727529308707043879721207129722072407104415365330343328606484166287129153497309575725328478548761797641281897909046089260669067165450399344525671102884226308418047601089027332072214263565618938534404918166291151613388896802087381932702763061884833808403242326723174244882689433241922565823992979470443196253810795810937019206233092662547403061585159408917659519977469363614164601883459490026472894682660410067470504535313248636437613977614853660547471085073106532920090010745990900829302051358217683766156088833922542256828878681303962768571653781836605122008093621731097667574124583001015150094748878965425405419304308113775384412737437408195343952670119242528893539729563227823613345438186101824669129374094036333774085490017143402438219317081049570436933122977010337947704862148490763610090876088565110654173760012684189757335527643059303268625883785767551475241388912932363887244910004887852872395970594684434709083182294522183228455833924670035814647860976263407410837559020923618804717077322754036457717310537156278770421592726883068714677209235745631680522372475774960255508338375198977996835174034024296781268342766718538619942527339652877548582953676033486103313236941150118884117977064311026129537254445504685892743461098696140589512047139646398536469140541280329325057675593893471186399934212021514840438625474564814761895865613983717555674718330792208979029948547456642357343389330016484887015263914072045271582090119420447840769365046001471625181163068931897751008459067053478788957231735898465280242453252224877351042753644975378888323747343008084413605451602650989596938438857869281488208357001528906845305002698529327018533783714954470126693663766654539411182032945255289383523935365911729364569785808368387082193058821973578830142567569122944006640151749716674033487187889143322957090120754778857627222702164479595528560348343062216511819762089659346974183287941426109218090809620232924448772039979521904693856667680808709010412025115438971604146563256801172210402454753576406624120102152813575356129782146882721986716426696018747145479059643637386836452458363092301267447318890667859846790310287110031594024480474828493488994626665883417036891798908601398270358098693547725092690112299422755200483461575505116302534589826240447203114675468837705482512687331839988650885508138492772659564404532308632925238453458983990243696780589544510020960217478301114914342721959198908117318397048774209520569299207392543968427834107842973188058920320362853430808065732137954264521327730678309285746467260299578681332965797648714396693901551547369465863613566260819020712462835536740843443672189749618069994399599439385770336579479964249497799760234849860817187681457567416886252367035165422290856172520527906737824352755373451253531846728402549447422377903024118419311611642872177988646817809982235229749159823831110296359909445319081450176443951526503072926345445784790095531344283509076195754530088959388520076811409733272248866318497211617299138746166888373522302114549109927780121805573648752418845662513588062574020718005229029889911462841801700496814503831562757291566318201818260602257351730649026134889621891099179694761041723748453478130286382838513025678837988900194197627424435346928979926233017913045858183031907914214412531155235460145601997519148741428568760833725321606068638263552512635171744854066638956256797667061771575052541886886610024546622520400786116427033212118181759660582608726212422279841023695575434146837585572962141323835588031169288868647306040488885430090547643759545318489680629775307093024461083806958419060392833681591349799964051363334399311146838742379123585842275150364169517212538468915748646764435191498204452016910697991968064616507567765922540502193435612922390613840199834997359299379994195154774047600042666495778601940201990626172875964464251787904304418179838591093067304695576095632630137317116435503090314217350550124458071295498181331502421637125333036423401932828124111421984986019127055468960926168171269204844124126471782076921530874917978517656820882356886689525450916869659728137117326781015977638034535341544011597495370137198122762157312227976338591051434776750664039619846043689261025873621231431025998187872338735071001820958039507484729280086543689616075381329364574052537319991458467815017927874951138485157470866641560588216534076685931729527788103064848003134104071936333828164127130185812651035725361786637153682111909369956882240763632589380614083639477789335974918817034010280348368821924552387888056439652156157314596500148531636001981408519721220895556932383738731414015275174397230673287692352459905027769065856719525143447003794268822944996824320970123350709471707648212834161659450865326819417044656686733609999990084740635914289345639722532759237926146516856771617252347253531508763971204459928743401808789985610987266184937015850975291226911407851324473882882678063394816810121996302271418956996580989745567596283332339435932730220274930477295314295341461449815939871596772489357904328907176962205102182912898472928965618574599196798805785485584315506664183036864250705220195251404387492122149088989549959087357392836168260773030337562151145294199271023609279955414609975208826357613114629275558922059902917845004799537359384152276624063910894330767070806805874965562334825217022511033092712973701115085146280563951753803694583783512122621177833140221262481223349828844449779642403894515480759480869987263541740101302980856459933950349671415001258620160083876199071412263784187760635973257898374318399819238469817454505821966284751816075454885437825737512924777165727333888334210388420266940202909100281297667478908386569716812042174999202310205599790457851058445848955677534863607872066992620219568208070136627282276194438761086736954282087972837647307311990191009167132540000036382354691487106930771878870209946016884959502878750754977958225722393824471329121209870800157700637665720993316510320680741691390727596194882166833875516381589180510203614534768524747011234664668914459648269581384075909893452153167991870599220681781420594958402154894353034969108444703089266006933413984038402373018444404035088962887616038957959799672447484471295160382211123695621786734916648125955387609453983129210504538608095326977977876535863986315259916876054240037626797530055460953393013302203450668670041947517027237000234646578258099667115793681984058885488567452373988560952555231741797293088496719804724764223344612423346924392873159249796722033285828264721241078459001441173418411404722601286678534297674244970936306224101676059350882024050514189201674251068344736474395875586602533241481701711223770490662346660971771062249099662937217029163503905649342070611518769651012825818421555060357610078854220329336053270091656970573083721221954934068747693811475051503648371209810184628349657113179958416261750398031585893480453318865822238704331903111148555793433890067909465066788772514422875039619446093773294523484835554036453251380209730354312981752915623695507606960645854451201557927777350147375107165157041854592233960618579949813142576108510279037190263350788355434154592153876739514226669490332247954244650859377783203045861706406168863357305226091397187072152876708595850239727726879691081910602505174099451500511539710577346203821785120611520018266240934480348955012767309556993408605759667341304018929832586584791596064012788080300343116832715495802892665112588619297472911620389180374150598368874693090553349267146374995462451028344555839077796391776553117906441258242856807242103508593149248796651716857040026478987435672960695805358696869975597118044089469003696674350125949567421981767927765517717357461313823613731535001976803587523022986719351245246654307775824067134989282990659199141480866667115239027711280750406129570981141772144261604248192961516443950864352289080926144555747732298478640119469140133595336336867923259938455627340713422657632790323391261081809996096518949312098236241647600650095628609036479824979422044415753027451229296877853314636140591744273226488675039694218555764229456165507569867070717982608524891592616159374148670914343588597117847279093072294383927286385000497739836883334474444032853661678462947166984044270375719192106497614403538098853773442191788627052970511449109144824502450698747063451959872587012419719022749449017860591519228162463024985905589254481466107358472141939101035674803466866688745128758001420890182768324949395561705796260350716031006189121880675016702308445074047656906153211919942863847989516914226685888144193555276385338930751742921811091023958840212627029438752804231850834641185569733145093017279209450661583420891233607010032245394894640296547441991400116239356202192995817476503752068817691804998182205092710787156701469782757964331909462839915649932434219707690761214539099084429673627627537491155352544507772148059880183497331690063407370128451168336138860700296971258297592323756850560055258810919290339607285456575510545824040868998917449613864480835733191787825538195125962521839722663748337199397043882649443166829421890502064851977284720204072211604867331560957505990361860067947053394266655451839463118719525511176732601102286512086192442165591214227301780544665976318899465345150424347794461429265120737889276784771179510185304001039727627289588563784571507989176269620020671914910394678797449501258756548963314305369268684484332926447173720798898886051784122060974938500497971882005072065178506936098083229443859568215675544469254500951865688697025661171357399368214401546636074970906246452161421487476004034510722922417923921837637067096708650707168954389931823067510506876716622130577123499838608609893576845088241772082340073493890599792062248389000056971619975581384440816963308381900018345132283034995478123700910040213818743485699179968149642035133250115589251472984197948039129383764022135369777179361894103599542056784348500417089945528242959734495311264606638701312554825792826790871488930524530948379888311427890343187321711374667330148216909569840725212121292591259788070217432505848264648673168502364170560847134903418584994773046082340426556532200788684021578979676213884661940740285620746245802123298831822698302778916923588413857000089720882002603099566872703631966577338801544381639434955773454250483778625881071857732792758566935024142193224246191593148770779852678102348516955711107400285446058690261462501426245836378976038017067816404518766313512057440276049403422935595605252061839812755758865937359274079756928243888655614916556320241346414828490978580123256462808493212802806614845895767134037985858449991965674855604388450719253642837493547182381687350049541925859736871333382909907358879169014228232646803173422260317465094884717883358423085794927502360822217388996973352772238975345518106483295199661717860938349529797604779078985240290013777875040929598572051164441122802621154247937610476469956723349124976343024346070350228028927946652641952036794370654835260703097095680555615543779693712907801479207222898491434687342655459800493576073641980854823610732860531456025065507850234054094012548417410795905075539341518139740369724134666332431053894687468624718222844644068284786490538102793850962930362357960245970547573173055022211477011462008079596585150613364898848088610571756201755212522812035626574676118890358104577207373327000280429264895890514840037495539924460154620989749880734614281612247258587433821351785446362185378874627624617787395398533937071778771114564076544378471584180727081518701956212314484362842065186887135308317474301925623662504735805550915200009500833925365335719140036779104308882958592796639697852741301633334570873947963484722564568836510123213474000194561192454386768899040882988318803256399236947425493999672871359657553609442839222624166971325586284569106950072788295073370963131990446865777018225601302059809809134597579832641821840147900087840834496106528601858590214777791150906807289146765312701900976549215036251677281282752139963934410926889235450351867346967417668188802062347260621309227931354744658007926172126453635712883336491752903393039264466285026426154165896657677999105100863801666477406482001560722097077567762065095261651199762686631336780496073961218728991848808300358147892632110685177094251671490780070691174333973268633024101320598669350198315090300804520402133025865833628112889181652083235287356600410828842541459077799554308025039817480155233287015145700819419842062614058059979631665530405216030949296133212276817369019113745651611432696974341167839438950981861979252326748715258004812204509525314038818190266057170097350978956917381951673866048243969185045530271488139735903514979842281693396685943275318170173801602642348224510897315681499260194819588476247603504984424957790765909568166764204945888638293382986944720668980814453272893467561478760229433773071575684112252076873244699961312133895583059362846082121728203272978963156598166973427076745774164431882136329337433547919099845366855908330697220859945725431186458605126295060029081538241838315467565494219996852383117122638851793452962784400523569594966722029168980107186059257720187942388988249168894707298329031803815201176043772489071725382206731092401525514728513542251032849659441319823099311981365488087893971072779778595527791577859035448907007767266511275333200420047988391068622119062234161006274619788230100752074527633663558216424438158669090000026695248351557669488704482213269300394585962708688296910058997193636372493979179752071568089228384491022675350182791293570311028178454538512148390701302412971509280612050829203728602251148228773541484890084862514477885778305295193829654794460043154224484723838726179873769319099237739707385295453157054637175162037837975660991718544331923076370012287265427309839087658921650838009450709217809931286327185949388846907188222660914944601653289071473612831873295465157763211493239830451724488762965292927374479915546014600833412099118485197719692557267331382610952408254267464509845586222705451661013616054219279781653516835874442560508967613576527595243178567835720164352308762753866959747350205688367105920256020645893017795423609407246886538706781994753893148296732004940450416046551239625658331951515101159536670693331524909012335943382372408146313441147725292428592268972558725332410457960051707529012430525232828013913112519478310893320974362429172018968259899423841999576521605898750811453100433949817186037398102013911009239395365382124011833612927160069400664648196742673432795812965875545337177947587183988276975843682010544005768035320476545669339043314368673662217204637970278726651378639196898687139672732078888746599566578854237207670114704475813210369035919221521014964278204358181953649251551832575494065461719124488496712217424497195180806846836852669771297461872489298501026089071566253559996876997599366744768359327990720311080604898766118404983400670813517681030723508488375131042054813642499709197984135402539245977376850657882593618258399958810834118130307220555374222193029906963899422605264271394492134474543024734719178947722618805057058466116178486986165773784636729027574496963578097026588585529424901639809724443795021648967749537255492016563076218860568836009735737294601290766756386723902385004165506249329426559440065216618492181407162177750803488495797221394133259285072115486956139414745953758733063375928142864676038030742406075803870457122247115748702244615086275630401582846248006875125829088760049473108299458949653060105257623385519858969592084184979203199213506369079680985624904403597446033112437074594198316110998404605675219631452664996389100587030270397388900655604711621029723423293977365452275985144983398085826476866643369137129823346893920173804528938168296760218225874600133590633824417303246645207302040691235358062249881789845866630568870779952127911251080331410206676276144765491351629733419180347931218845601624663922374014482956935671741824371666466144117055643214902139345429554052954210778080514795292191001416589575109760736372080290671477042332076592556080610717796143244059067689369916474758874438498725944499106710804604941746955142761595061774908664362355086322325235037300242320263046420392345664190353787933043767260117727032718993261553299731539323931326128257590296732973140066191605646786142982894467658952677790099260337439480229961209786158979751274379855863311591149963497433372413965462648483045966379043385872537045049332391559533523019256181343350236719308430535629490002346930383967720874292995306026550783947393607834728803505335682807860034445706704119063507973393474734639456546663612838761436281835681737727915900348612847067530409662217033315546506411297930700735763440689275671930989275732991697542392939282280851601475291985280830586385329903059632628246859764295920646557264417927991469452803455747681614324557329110037038053458581215324397016058736086309488170812479058048334830844298814697710677239309882476023924529316501848128526049488450875535232880575764419925202804308773591920322719864541571188502383732692514901429345541172987854853843345781602617242819396868237273777680856044551028864576405975155036285263042468561162597520523045084193928249738477962559432631986109599710445361487752181714038690277764885064133423434285101287817312915903407618142938717376147919334422684919638966100378598878644625384175308069505509743063434843908514859046979753426766576402144502372647668691122318111362550941654088773120841210897517621300462165113890160610049435553059679885956388548457490077225808539268058470512348094797252436784082099072939009086004589619888242831401928657532427841044699639807653658019990970416341252475336244226992981734837699277688791971834757310533303607983841700987506830109242308243806486087464768411579073363349497663756266578088049203383576813269133480013621664352986867619788168561932915225976210843146597768453750418825175158170815071971515780088116341429877428981239380381656768364196768726983232493720843962148688368475127250655315505181711230117780710469533764855023736112251157706722184570458665403902435496824951445088282765838531962758632854139059873097070881719869492092391647092249854155061641755906658962103040941164510562279224534800212622824105245169628442258940202487804295192889476361755108523400289366783899665959871073007792379020580788987803825820139964543346165651716858827121139758532830883138711460987704855440411006336564172078933183081345450470445735916349283828547251283634217504312691146696456292480731967493346675013674538716081569771651904170057975908356623849612056406586269055596974474644319091038481878342666124597337498292997636596399799418564365571248502880765942276141610010014356079897994850699310299416209295198898516117610305871797081336763091316695696631380431584488203276970466868266538198035402123825128903029017941036525695871801281702022263757740124366936861401992239103401582516192802184524955798483217563509271377514324296406395598340959660721792710891347877357225314860277304704201628257956546054112034257697939212278766929799056308450308324638120799728890696686039555321346823097674024746196949703332116416799799278678929396451976819602099812698414888558839452389655344309375454815887787233421036510798519965315304230394855484803690728232001079015697796936997622592877769406163250505783156037148119081751602104681498864634319760646025642909863168989357317713413946098635020225709891102342424936079007279946101392303329465513057492937970884417300379296357808793222076103288811444701186754265306062346485089465000739458324222585841402180857171788593593530072760904593964453162157150466231503827434439410095498422132772710390819652457460139291069016459462146129372480597438843460787649488636594204445992846508617282816714530014609221532184185561245504236132656510710602615680499418690473405003757135514153812118969859273948833067804259819107071012528473068386561873664612387461399387358065339851818689770887502275726569604344888083448524828525748293208753776737329390613522472512295772448297306639821234041498257212315900745379854969743182846426532840033320044322127063115664971864692449104194247536369022381144315783583050677832273756265537096752275586478336572469270233348834229623583669970367251946497453581524326998731135258214787893272432825250539448084947275964635020932133079861501845647897516614598650449759635954701827607588776977609393016115001007672186685547729233275795860513103394389105729492360345197984876434012243357494356934108343705353192278351825418657576039365600321763692830558471893396301272074053542016712942537614755523189909910006231003298334224932302807625945422945546068349616413313699276721671176933070617547749318322693737683946693398642365207464444997099334611313213178516834093620504151725393965068897380352214227697875410974783587083539595610901256441834538009761613764823810127663893036003502593875778665370984677546491958665522762396347459340753758206389763389168985348722736509523722463482660446986918879754564380578418329310917602725447344796033149196281869391497032058931996402776878539489825293251933390224880194135737131508723289957450509444827209903534341331480710216629011213719438811684970663802559676700122733844529545935355865489650938548488639098697863578044414133527896262722536010987768045350374357243277509663624282761213740264875507490346000521436019659884408113259378652418671204246470425941840172371258574925210858370477404739553715472339927524486708888197677750296828403215516922838313883324419620604071855893016433214841891343914097479748633430552331611490373133907637103496246403924318087839056543445844226791886741197644426389607773880544721159642065478398209530657399519198585796560961732134903606381233356148168569440979347326238589585858752435798231943699685148156095927776083547163745631628451856242361158373181539143454231497294019452185670427153658076660986083028971210694868058120068885589199857492090474521559776854606369949553276107942898443069981984979441487577840784105351328661050314800641371648070504142546001335336535064390157009272612268607108397120594325083501047082919223889821629977231567394568043793156922322728131194576468036683531175150177772261781845751619133505971623874942293732948062837190615466759067230533831631863467814331866471210395507263997344750712044076162742261696536071505794246289588401340350508422678171269981048762393779173454285218050071358756299164953276530117010083757791632156386150319992091524849957030416330703443131178906984904293386373932093925277980685638190708971683503286315196101202112921624970968326925414390828058123277017495415718321749167344306120933317743735184554467108874294809849374240680720837662707148563432668586150501921038864467486337707816638053271986995672795152053949624669320062262259747539647120436351348385292742554998377622115288820330391632364942185136862590621714161906306877133138756623431860575751845930499535895582636340557760575834548879977452533011721022646412433710804122737845741816358385289805272989847486478472849623050678024939894894599434158025174580618682685968629299374600053878638511959539341432201691601996009241440492835119735171997379677690778249668018834593810414621469891340623849930899209698948560851204723939391184970887879108231854034350251087232702733308274945289894330797178427170080188558448032012140494233432903059997209142298479545306894407096347154086072094771272991564592536058650894230102517395935774882698394096107808876794129649785576530295586062307476565635075401794063222491878196052109792023717447307435160623623384869550598394761580767133181981864471693060577903194693709150221907473900841176703424342656646166248727139915827541309850248407410424727940224214229089340033458635174659561630578586526029048100169084602185465059483776802293449925067330995459031584001331718097967501284242639750668683348765319738856846761788093781221375918142420777104800781955887691770155546561522509261658431340092925855279202811214025639798544399301385153851951188237813856586512000188726768743566844334584951589106767611383376391462628171258111705046804138439034721302229304742819842526805250993467720443898305149945835033289081657065803583961370112950327961491412963943464870673923558165764497265535078830828587166453467539166305072153587258685530494591400675141999379066332636239911304196479691463444152158383816456494359488882307567912214533072427470513093467872587241135068963468241750635194018598125311690429717590877181820900063471047517755342802372973501131953022236855293340120209377799823499347968295511938903878196262942390200957258016313710090666238198311571343791297780018378944424550268782499984151351321281806366926992246578682893323957759521212050752860045732209002169115192819425816222261895938834155213938926379048955039345045930514620990487209960363976442838667983661335197671822508837351702094866331530711984799973953292053724087838335096442797436877728494625788693304643823444487301148488021480494419586158424505831885758840268660034729707080540925339365063920482811981443795411910715105311274685806784696841468533833233725955443876485438245633819715839437181222746801328902923324874271457021055249734684444862099388840230869733137005358210040798115263226082148407855095733344404632317115729173480366227926253168340861028860351011361811545065823646818861535706129214018785373834833424935236914052820325134960012867451565642783079609901090174876762542148638459090507314845199761798779419407733986688697260779621689610544805924410048269521370591315941363556944893603480652334630673836769673659961212439895658245337040700430486776129190303450302380426838269741278350313859005493043073089525513490306251690846303645857799914363163003244057829339765350308208998726686090471890923438061317001091028100196064204634158730460719695862354649252164401272248079793167008645396399048615451162454295336501633280037291933901822407076994369704499106764222880753566214869366018825636339684297461705049570576493681695379428212184855724988873416985878658872660609817789487195449818355190511959252881181468799454182743911096286247747307373890336963296984497176129458395576013674311447859485786938108187316552747513685165334952610962388480726403463664908315407902685243306360194989157561892518752081823871357948685796508118145823627770665796898449689394290889426703577313234260159490493901336521233107555288647217551440091794209067357825436447841080251575202951422531566848600514752837877206533293813302246358078505948567324119206140527404578671030540611378062213830128406004020406011348783978823616960835431228790081574514745868814449290131589233872277842234844712314990459677035743824551087542294933233684615613046605904801356327468808262556529356959994499713629130551835428896314745546553992723441583112056391887977717449017770927880795274739579166991765962714224269131097690529585850831291103800183087507621743937628737126100842967024685649664566881159748724943212741248244099767043676062866854896072700716201722137476230677277751869450025040547512635650487786856174872360101574958363023557374852555370712048526753059921384047548223063575905649243852069516437224756315113872322359052420445989954181214707555903684954978066630482709065006419305411026930277608175845558937917801618791653176761789783313244084249904061137684427127329647925342765184795734922254511170578499757704121698791090012490825973477262837543395733426220781879535047798202861049893116272236775423882239571175462134959533150318425610331126774993951652835678876716118662800939262239463851714426869145404446563483454518877026150720958314614122142648442367627225024063195429385181490999993061893225914375563005169211544949299627356953056672264156961990948493112825578798344974586804747460254237705412208326152324237315152480253675099336975899389421844076118184708932523887507117170918488041583957813467493318014279424759860241418784880423379003780839198758679820747271854149421470128455357533461747281696761003237672967012627236790188793469127600753839686567150501716007614124555995708118561334805667486137928273669791844792726196972959392490248726848899109869382283523409981881416655978719244121394017727547012187708973340064690135217004350098756534676054824692175702533059507247637545643280332943727596678847087729021507328993974612819582319538585525186277084652145798736580168051855898177061974583702315930413773950334411095822236095730826961004110949560166810900936823740860331017188476516662650182032078570436984752017348601410903017668034923342410117849521429907720670747819185357841112831952962071518427129914260308411698274408216706175580939038925809704873746503579894360861199078641476290637172823849771288839530176019056082783805713189598917086618656669948697067973842185365580956137222931652263619434333239084997527626709364983484361859014804334158524019344169036786158414843035516512145764402560516355216697460290895094006907388915645148209938641381513196969413683892831325674652286887653395721560821266140603263581829747495433556665094612718662781460036883866481308109231173921961933767128292846292611636461506686133000312302078941021342937766550945152897382645686703989488431312711117643516696975396581081269637185820592853300251530771162753192880075114714096732358012455404709761512083719325500583495840866079481815494785726687417782201736976527027844116919353070076523720351312718700885019349211628655018751900181235443430432610571243644634961203854412651054087040169603656723456516421731885918795109037983625342611929645975916903640886391360508663836702541145594852785458512033130282627605598374093736680340570311572916121946752035349999417260962782597728916371807249375464536704310170671733658445182241723450474322509913213749525033193254239330723357765372948102912908202535517153036918986848818398611068236640331985695459682365011054209149498337598391168549183610129779418481673173771451886787457674164881136312571994490393114316593566837823946689625165691343450916524877580371830104806418692487767657901672397695570966464590525175460491507473804749291678712007336483602726619759205689212824860352853532023886223280018126978502590079522565555627334582683118525862873184095554459929035346947657967329714589093687132977325441574756556801530547502347566693372345601821697689080976352406566661622740562208761534378311726953234601120597490296949179690439399522440386646143513258847528195217881755879368515087395060650039231696537120403418460388991821588161083106136835741353973881979469480673382157723431976723760311443470796880181723290369536161108390384070392709498297265444785325391590176827374558096207116640788328318656810440973727807562670126431292914452629336546068604970553116346050818123562415109828963524996317964503923222967541259898462946781230400851442862534335972644182679548771575699741293210188573129154059236522542974401098540114186954048712691274417551152472376373283954558058894248714424662739937738659235738172218115286256890760536208373286297002497485757174087412261269400834928043127450209358472987182964970767505842868332335125641558415244299326669241434761161602580908774424519421067685477178834939299141074529877736989660937319318541206770357362732258293860484536595596843425377018559584251899399392013541076096962240070153533599097502335373111235398708240349872276877552195771347227113491474259570575122639369829361501447528135081403040171499160543668863161017921601294949071192072746204820741179809805541352564002949070366757015645759450870581397102805928763643389916418533482156327163568979977386834010186148670575467371064438492721203031744503833223297270456761111057825379365066985470277505565565548610500295103682913786206566234024327543968503735429419036185129570223620386985482216178432256766854915582946904323380004900174364044889043011215128374761816165895096187467759928743032341205308855070494031656935940376117649868818786408911769543280709197551025996021780360889423107155473701173324774770989301463359410081533027737098076778335881055142680563952366954644676839919616411804577537158047642633661287770952556001389191000788488456582762346922413028286594405548139611720767967381469432592217494676409005044184075558329270112564774611897011421532099121243257491208179904769561321157153972009154179824790416874432875893039639818554717367153819536841848231010493898273027234164139870617977333633940928670369098856842123575147456826983602773964898676898440639632009565428910371276794875455466384019771852861587790295201282867228482144058633072776357260820562115370863634306836806740818902905513198533796191743363846912862757094935734887442479084972217741361890422014349863428956839462789733791611678201872951827959059272201562275506916072176839955637626635678093144934859746922881874735717042700005810241363293586255545285085889112374033177543724926177743993154122062320974284744311392975665004396226675762042294166216962018744826777053248471616293308957797982528505969989421000806375234969640458846999183165859543625090171645904110132803510088343691674184828293649132529234985178368452813869149639318751284315870704647838771095905107570759737616218730708124637672352688398036010589800683562623395200260435017170057473591238799859942060822634668833255797698791616087314232112630522065294861860554211439140585017616895127435645520320857906611419256706528162633244574527867124180557321408877534249272930278553880293866663852063979521425923927769539745093742488902656878915914111671988586311672783125677356211391156145433833037487703917743520097552728679577654347950206553793997970762975234889630194344161424553322626712089118345466233701267624746171700374632754336897357980889343856229996179705156795617523477534925217485777018703151747005808582842634332037942428408847460160924405568277443203437790237771182864251630661582781365107329367358602846621025740184410190718948143754783046398367946106523402442621560409938452471515231118538867826658644026636600515671707151736066949432575294780099885607400790033392955948637451799531924416824168904685593729430044158106319540238920607939430271117591399188112521584777698412496716536317954315061514261818299725445665642043207392044227269477898281027320156697830467390869417946715693762353093579757855243429149738849322186474614980828176725241165221389766885607229245397809909841297318339735377566900181544666182987126234629755997912745179428701509659896452675690170838380367617509834305039960365453905053205018100122937482927300128196113639887351133263022336115711166746803232344304940805610320685213538369814799466983307601125189040127705857850707243714526708975373704695390459334441892325350107769690894892565298525116755441319830071541419606645669218401339316584414457867195316011121762312202080423710887558642904292001797271730700406499727783977060881963327885278291503075141913189845455079678840703890073591066252187732575575619920816351678696278503097786600716778637330050480983009603343043127470609417919248653065952501248296808032372694742619896464966819853853371444163889902452995618815032489791967621458947878742466270533372690260925151880314050699094142765073912321007489243429993998268113688763016481777579602724058397562562137922156932009386165465597516052912228034363791280295814988509533748665387335660458010652633815754118682278614127122175893822610696908977044335904042260625034164388940504951592444323436009785805158460678745800346225555242954682189122377175110770096076420611855502216117630574799925165345449211182357077534982824502757846555504819999113951643979549587411490889509474997357326140769888251616172437236509340758447266425458923043498546538382146986136665759979992151187688054516492728307977136256909908133565470488805716804861643376005425615275835045127795262517144375613030283798374235462512389747032399744379098166769618050063096019586252601487276277787275548811421457690196953863471570813173941518001624862000924904777336870954646100296579833290764575913774223865194388233738043391083920407046642659597827323004723379082357179269654074211574945948378207795607972555688195794345778099125539513304720761445958223171875168144632115282788821808156703123027209910425763249098666489752257820548818902486543388848750709867127783713435164335215760982959723473366894409650130214813436519836946224791779082389395894431307763464692385597577257597466059618169517284649878037226536361587546641383847036659992663839229796580647114939016678745116545574204030470940514037246141280716393035137161575246431694731314381982365266819831335758147196873721729096172869007207612709238429732218195163580011900339771894126799072742457620334358479423128019328391262259414929379849436134125542632112168176564920611633559125454946219959355574347004805842410697126249266195928157851472231630395100520430764630562784409842714716618858857610311374375550147028673077656994559398989200866985843491349968429325856359047617858565314082411565612870863747507742111095154655857817187461809106476622358917033203116217711480362513046577315615539388208257227266589290595678934400437383024634713393207229134737128906576382631641953339174732517312290276585160309528024396928995258666346879769834382752893183525600976516328298654364007724461563670737662780688381284578518159851717492780468046073596496723089304812075015149618022751028366614591946259890378635799001717819410100052251979005250237535133395898382687393672825505845653793829999398298983224136805924578669317772093427763119747048682865704962740631123339264783395123188142798310166237604824803548250487889363512811248398203743225496325974881612855954148745137725581623871924181786112091540576997366547198627671804768830439224628605023840297925690071702576222743435880575892455384906243497422668525909983500975650205175633969629548126787048276829082987783221539759576804903313511155062762414536181945191780686323513027401288637093115238748327703075081374148702488642007589120075348532276463297753403442199736335630781128990415787466809780440432910919617209037996193215986268239332650879257911890732574730404316526793278483524950211118947670226033413096031451716839000789824931961371189756401089490720927196395559999289836381950359376423925746720612043143231025199830741477948332189906388795808339291743211994314355357254251149121632427238320790451263522386927522566664779622132886525507745472659401254908742535270183048740970091413786770755026036456961069125725963894036268386579665952707875404244110935706122621476171943730168173537261302332967245549530645273056909254935534732209301530834681250351703875162134664071663510824135209577233445875896734195320291776629312427663900351046851881391722271173877988734622985129480891291551668391571837698757839506864931437043194987611788385147593387904256749863742176249392000819080294249492509970267329430211320309906903851667208284962539025793955406325814131391832103100234000017005047747080092644379644853842233121910158918215141293924417030689802038651352893673918293325123081513390479454655164620729979186080440131595720146490517511875037877189326310035688477845985138588830597561699008914177940476790257182682850175319410263377748383918435822198442524024524369232505200737659956182657642350572444265852466065914598964643190215852125454285127755762359986897078194071180830943005849445411402249172696562695761966012834282527609521915988402617336892312886559002974833879627113471681564907980549098620066323342652796884864211127494095544354394364185437516095447099935022183092238763456854057918161284368086645031959742222956605291086069210414875802162201745535848688453019153881830881146947838815960440881191131443422048075498724812605479733389430395561780004907954569826451439680844129313764286235361618326591141783746834571710746073924561984875773256383781973555012730798816150806382351493455760114774842679592472246973362089120025861767956377193283091767258150882590583631889661101665046179633857725157348408650539352618471627283692266329525728024670146429212824248862099556166493456453955620813513273245138765049541137764693764778564581275682638834663516615395460598979597330329202427439260622257064146518491636682241723192691663092602870090874470638649309594961374273146408508571060745880051562463990756276251899349500623673666670388982222053350273302852038099084243517636048452792654847596154035438457909261852125799554479046580976216876811089224010177052324732087089821574998332538496769858807799770794898948381364399738800921054144498880180262373309847229429993596961243968416857098023462919941799301770134851307440963650964914483160732370383881025956086568054414474693937941034476623983114387974106582685713950504357709358919336468335175302354473225981141829354545629989677834548093597797042390909460329569598018260914580893643379634467822223283140837266560796421802710449674791422793141388888400849636624530827637862492793949810817635174585191337023148564691477337385534096662115075546727481110095354921476445459861635120380571789581112609499370615311841245431988733611181238606402685659542523377247223035183623641303901671485338908013826897360293514074014328769345029407842720444274291280673651674627915036782868272395632943374726857916906745480133675335465465145376262358063347267549762271889264723049403976543267124717666547113341083582297641954097568744330918632941098972354247608881062252731649969134990079080120915287927399782019006305458497264581964403223522708493236927398863538529027073152910954822789091548114797792857074832096043318204805977458371010714373199057585070571949326881768497804119863199196177786384945525829333026751099209877697787530866266900922821752842260971202939267179602304432635235920133712838593488065733067272523213007480698163069407139491268580752759901184723109266151182651140667422002776209793503586523328507490771615416750283610965341459789256124745157484776229618140747661342666160014645445441293738789245353113410734732078380873623725963096388477622500266205937785483297768164323027054043260456434107477322659398385623804026633491835303087534944071691861215439555769343409839725489332097414504195084106862771086033994569915910786699363341070168987619858861831700993013947453338358483087924395159753361735323283428535869640330020923005125715068740538102231557093840176947001557164053604183379606132407507724911148652933896020939415096503742702527311559444809314070004957522898625996939163323986789095797006405637993259353737031464756352905183437518123762491794390417996991907288542730447119763460154305451795947783831279882722927239676791349514182157730797532309020580990016598695676815726066386399380200262674455598217343727792662857731585962428622602814991712853739090621612989927145172851841458617940895360558994896654861476206709055191735663846133602835412024008194940253731305998339009109391598829804364132582214677145123908472240419078236416333018610600051668750887871340160255948693112348663834312554664272639437160371972484112673960115107929842847705219212982330710021523427890780492451323830959950243820809642999437963570036414003267289976369762934605660429149442822852430560672677553045247474049980852232457597411546323386814047326443286008455282866040120739383997864413601085327516571822159946145163594384099623491137580075172257143081336958618417726861589272746575728002699398280098025557489939680153083200562453476361070997954150794645489267239244145692103766619939086262894562782215913279442473975488625855686229791461037999474652625669619072723462460017561117506512985780076145008423499956639093216090058842456454759381744185033438436566168706175316046675466522420474246183599627026007153612657446658880983356984769141893553368264135115918229248392015236388010932494584176143423909506952896900334766408748739266578743002242498292974036847966035716456871741237304209718645167484102399505123701733660932706949426379071665308659716225993631165360918463105184573654321857160215830548136951940788559171280937651547769467705683455097690277562696897317241557062989903260500411630345801965011422079358833367117350542291040599938272338568875714772906621474178222431687796782925977060190855102426938966794418315587014670223174637783510541815401972978752196445267803849522525991977944818024694493068102564822543363231021240842336391580748862491391374092241455311995527733741608671933821231786821887711670119042999201677156896419370944556353684657208291240937390814722883152332209740622082903405986498542247807134298204671803786153935161607351675279151080871276861670044678513131144121666512898050629159595195456875808388999942852787162799240696124757230413037350929216656764549987067642640714600902130546694872818734897895957598881334717228505018047079134626893996834861193087477959746855703976352984356877378693257180126107655016525100647207914331589145740636485319383216772871543464704648047715431959960975949023569999121349778981930472256612514936376365699816271729049968072892649788000497828268345529719414251383265172115768895093227758073951887267400747886893806917198695372214004987535437763833811804102248797307729101906786122878112018067520400372812951152860753384154776622119165042966043029721282702109901861845450108153707501909451050497726302838911584377817348191696801886409949417844604256877698588476959243098260475623519627320604910867841815637312417847895201856741467281461391376551860702833787791836773386845447212540555248901398734109483022472612755571647127853728171928444140651941799721485760435920151329421787006870230748122834559109254230716268038398801149847293346806187114328389998144842848959509457188899172909573920017698195872170174047576886525773767052551075631777346060412490705606066884169244212558542503747453610238088258319681555184915004808037617127924266191796707967650273836932617908109997754530771707217988304357521395320000346773330294796624576752315191196022398614241520201793811520726854549797082796798826121915285512159079475295013730261071431830912773742855355988142736043836259806275504686442072929693479061070739733928921224020103890749462037458062302480805817172591563412677325421033794521294991777566100124179931221430725219587545088639462926003410449635469422811289102909905118047365294154408061504729276731825446750411316881661405574397123237603186505613719134856691459897945949955177257322259863507301452565811936306131091531306381084891758031099255404838239849038615715654403981015095667133027675725115443295343454073918766029278586974279305696850491468573403169115887059443522358151772253045158971942106029757746631218730715189454529470395420831124855062844940047403688308618580412140606813119290429685136263673549339101729147851747109709760247429195949942946355069111419703074367907677280055104339314877318349241426082736860800621783317984239812047965610838910029665493708116151220621689085222236297572631021670413963266015936497437865316906990243241541121786647106257020109666810383826821970797015499112162676724562313333584021301685850739998543628228407251451579738876684450537905164382514145643311145179623900947160069944792801443595460515464042060150271073235380358257703339208017874550084191890540121512377805189958255842661265056948894935314479447964618606748417700704283869998991162967312950414460540939398575433615848632006159443354788664722513546827701179908464312325312879978913135548826299081436596820057786291799264831324053495020217441756203202043623550866480680509678104234124776634044820761891451168450259030023355291550552011036932368446108082071534436530498547997159361544004302886416450497207498606951383494312379953961864225659122240473259789674887603809131048787458567160681748591435355728710613525750915394139187517625397161579842325575700878180166287178344816163781708429695420123004679368675668832718864168289256025846706723081592164401777679805565820400850987016481499052395909884772542396215939418894958731781238318874789688996086580942596404210957344977633277550493753407777780306509010257517696342958091234184635144059522373053614911009423401308713095416733866431029788693272728799797590494383128354485169538833985655482063497242252644707671451942288971972771250811135208342229580264513081892652034683022414488136579516251289787388318254767922169083426582357430564687146747916813891841988344952129246402692391517134845594331529216464455990721833713056472337628786906470088993481736411657093262871612592929108391926279086170178639491340754566213588605064794198137183466631824723954245437263944447506795903814346317087900450126736874456204438759002476936198804773872691172994029989412438933481393524225031090032713769468137460610183726380912348158283201206497881932979720360371724387794138081000047508189170826249850157236958260302645766220308167814447235192680143298337392573193715569428876747479410056624564256664348510919892636989964265705724466225592042248527412648505270609160401538467595065938592594185173904894737325348768400640011342974886319116119351648105144690784152956013474089441169446884092023306317411750510739215357469869750100245052803661504370171632983790236806823235792998577512753027968978228734912461410963610574925218357560970111780348863740630579598799173829950099969092767331140743249932841888141304922605742934425627011834283071880251144533158885091512093757135943772347986875671614959649680786802079461907365448018515451421285456649145802235057641727611171113808438643494666118643250170215391627048878289566724421021176053748886032792827543127777382729179897980749302047313170745704853539298700816900149604660270664290978661482079393611393727627363931082968382326342510353734184475832711916212307588873997461166559235801435877896655316028362039426732000254708453207802560932638596279654969518986112647402348504811640842663692747925062192173087599680976408871849076853653964320149743422482401230516529485015221933704720103525421020685341634910476905856897404963088176169775888546408721458467343625892945831758345701418597349272322768168305224006101256032779200614916407187170994512865990297481570030361892031189587841830612054870457101862004589076597748204419289190967036803472966682077066774632561291961500718786609583509748550629683959190754007987545822415329218109349007071049399266360098273883420468864728293213566364119438250011272215322530724850828926456036830654595226163741811062286438904333468467625283934430874826251308644531902202260000293244056741804610155877281616017470652588333213524675018965212165412265176310091159948060392966776736452056430136620881307416453942048889531353717583588781998131453009713688031834160216375300873683681468580598733012955190723193540518072618372926496101323209111153395824160672290172513842414674909359663164084067727314448598481399619848061399142963798519854234684022893597948048296687315090001588309173277470841941910645872947188371470751536317929674992653148622544672140309580832480897483803813732419023060768024051859154093810999506459272467744111729414012892790854971037681576275019672985003445484150985125911301413114806584138814186586852299815652537882183037187140239242997732008194766739317585180379270793342710759540254818843105580731898140156862040185204641428145436838177014953399297569609856162111158503649723476455364044713268974277672391069502964959112659063148735599566051256251727386621250692360737158136241439743101678690812783213061598035188238009624872483556035447397596643241125154320925888851669320435205294712543968358470855457112616297899881846573041096300892706666169371958599405975130293426858886668792039765603920474328792411042917395835526717853121586633577342670547162197431730822653953757794096340633447119432965513287515370378352921986294739159328005057216956777730634347424497621088291412151478108798544444728440574284657405509684109466484913814203400701982570578618627555313411007204928638611561063455840261825299620367673769673904991620354085946840636343111491035886536379117578959831084374573897562637376570721609075244761762797618269442966282554451611613388548428019394899291633719400301691810618726251402228863066538926023224091234411970361548374251528711020194706948698537890895059637367078321900272022502108260299534455768413898654560862452308754629954444023024864866014568392365125969126678525049998456158678285098000908503150175462723053103495308699394477090193362329471598713774586307551053971423529221809929635620652501701547730986641333037153808884255821925541556654866515229907018426467499996944473152735051976817690653424629288798360421538680017997416772939554712443348665220879116890558172979545798587309732897668110210465023626508724855099167513512745057544988786616442017419156064318299794627264372666590528347924722494907458513674495819905883210485721966420850469166906706923258823250702126510718734803126819006735661520624551467050717923574091428287909966413485626764738410733091226160889622503477606057096708630839994405468581069387782027445640575927388519111840892019105374290776341433739027011494014862478431478804007668196499963486335407360765583014643381509823796894657299316408071377545553831314463300631892765972117118370606960011561072085496629477041454152790355155194347762009031696363714625138312422028925914734714830996428135447541350395908222184286254730213689400179170606990424516233618508059962431947168931231423505485129162887364932549096238015745986058768644921090458262373050219686106906353994584724597800601826277375804066176741345604393297390848581492678883742199460145821406971585485723487205776851052430591206772915085461830306541851106238758753082310473399260413012260282126102962289124134167797909870022451995979325317399833539556666872833298167806013676875713890543071903704157967884445782409837502387797760932730517082609627810517260557560160252193704188461533188293581155010346720972795709075869040290005719668637368225435629974728649710060889911942683842254074681690336782170367539458978403851267965915075455363944554819786864089359039296993864840354535485955837558132403753139295137061221261439928017800312850315803511773871779525843783553778523113560416490709657316801675000390047622822144330142272415684888953400416855164225186474076592642243146760085953615285863115871921156337562715703247959047952359514721237976096664526650336120328169153851165179398190470763081986412543330894800847885289129597736493176273272862279968826525958392828159680810534349239976384841814734695246811749069994787744093972789186109591727505407065675078091679896230048465981891000009174693236456742271382883370659951418486904192092496197211136161818212161699769127397502249096004127368478372049400765881583975111648083358011344697428478039281662142443542838970964073709084661870069069532847123368775635238512531118101980463309593632913896144638640847558190836879538034599356769427588775120325918988770594524972443608424774335858788133189365437119257711990990545178162002203934204765502681408391997379830415720924619326389760926320210709470277184330323182665526321558584732815191988064796141551804207518861125115222493074362297611879420691310256681392503446861309294612926824858113816718180638500474705103889570310175837115519910106566510269195555668117149966869862239355301103987822097746091483261258891187706614650058897902528137910874043038250809863174791967434296020564505820169709431804444203277356126320096344417108041750783900243076281733798389395466688943780593808409509242654540130113676166499834810806100875768791584024244434920239962051507376618726302258454297966127242172793141337266433593976008339463983515554982172348626995217225213653377770651324954731388689851057637432803167310800356184167685703229232597048401092808565308521328464456387284432420200363474163017170852879683807408277546701925650573439864693000771231659972378889928855208191679251902140111169727340022210293523150659750201820218795679465139359572693681258237944366232288165503750220669929887913054615343737662748110756817612084187386417973208062441954338675277431161908118978393522772069186146742103832867158062854799882629325671991772639987800212686944306831934165493304748342091267959138770513445377921983290903642845075722625368463824266211803570334579992255319452078820292224576466827266063072019638650458538268568298012211143024708518847853054157212484976827440054487433229115491734738834459579319724434817936130780399669379272125093252863869352364182416752374293158978743634292747182846944700959306220265871437192818631451443774220309493557779077824173673727168739483386040931375987523785579890403420632987768420309100946070344736820484474535398359740510488620510758284596908577520187530624709860835312544837954667246174449693192441778444954123559218455891161169914468854717599964197974282608734046047921474650758972130590338038076179420426826930778587170254151909795260141565678110633589140977100808134209149815398931276703578139218516626936377017119140561983856531122077538174073890464660341823773560929318040449717537290620712026156369773233197343863389876804460146411134983768725320312660558036552996819270297684828190314306131601358294312187888841307224045038474048760890403363928093893031178736461663036884539394098992729305567796070606726086404888156905882602461014788874899428721419106539106381248752075600033085997260703597630325954161303803036528412969333904749276257504810274057345366501641728562624867375206956186795431629615792818191307969152064856897006440577293238375611750507564932329528060170872340439406266225799593895411974447839297845118635726166403447800746019439453776238766706433050192868059491212771964137611281631542163818488326965078644646649959470116405138796705883821450429166774979410428787275896952106070373185017709549935366644193671937723476200500526014509013164017065974826812652050245093394147745210321665865184049322475690822732068225391492144476748034114042038950765759567656867215472477690257138771041029277318314962891129658601994841089783150193224863567778115396796324278304540858875478841292007392312894850856480926810134516302673885329880150004103771126717479330481351928586265184245185528048325857863801157514892074993547547919541440564690542920523813343779628211783891574502624237770320341317718308876242383808429345773262082477279108834060248748095406096936333755248531652985604238422412505938993162383231134544144600126515410515180797184245611848995928486458782817656307341723794847887060739930515239734291785412120172932154908522397285220639349655426392880238722136658070859013042091106924599081707239719346054364989421021340528681187054866302441747338970573797645117646361775324323660996923781738059136353319767200537257010723131744636898236816296668567745986014234398002296641385214874914490138484016358016059207379336404753376293805566125712937397599563355842522880630254272703378143331829939581564336682919945446113144827743286413028084344679194559980239683879508708258652804304681386278229596323211306632441311511089144005776029391640257814750292314878942337629318350092956426572574490484430083182089109243755096108129311098849055552304907729320912727158388695007304580089243090111238413410816008454297197405568305912662803328655302965454659899605333745662628525405615285927187825960776746988248667475333590783658649555964319006494905493851483684679338840658904556456490486061143243182919058365751405417523715861590035242552356359673980719164622851279050008662163852585595084013978212587335411223758971084203129845130065671651308063042791515794507869099030223903260384054420552816471419288642455625466791144868264769086861324523767730121390515207985633740268166379517512053887221029839311630623221491340200724931602295314070685126310204999242220317004051530575647490800562391872410757151624004887081575330660699836511084604292958511399802439086640190547099438112128517817424882138410807549163371557946590642956323445580492818036307128457883130239709479692397175921426697766760527393588562954131300113856506948809820869119031681251152777409911548080134987240912555613976257143280107098870211171935961724161742414598891784639336345354134370027048739927746882780534560739816291638949348633778986501031249441370529256856527391492585215114726276994685942062593019640135040362942522036096204635290184873908249985062481933191763446138104301804502024647008675622008543823321989803180940836501925102758038124708532231571214810516111220625681919154318691686247106769069873821061294117230703738881420692258425219645288867015299023438525713751770706003000138467886247567481499121600087286575255802874532360827565205571757544339610985030624119004490724768236455008591986905970008207277265368170341824448204853078463747023888227180391424078788315919831561893277744360090727108186037897477679305183635143790639746369925630701156821268135323867246840358179631371750345370167576259684473231059743747305588824670506165657800626915205413384635054624355636418433921675199350458612345615677943739926587395282314173150325983164507962114859652292356808789248653741445153007990396782968691871932252518959318862811576536993824126575958930888050051911218964720991929377327548988380093241349030813067648627629343993393399005411774943870393163357979407959506331676739241951913029678456130804104384048588072888515833936658029853668254627975197024617948695367046968000849580207971116768193425840523941223045244446889062431500966894400528984178829695754943528782730413878721486007390745618622815105282281269732096032274741132675517497637263740270523660208422378588751478832538086485275832476926547456621108894729325755810077792017067406014427488375887624505139102483242124365084146361644816255993404079917806164825029960383186358815297961300165046451501838897545727045235362853706617542525861243724020935227487220962536977930926848957694946939438197988751372552291059303784957454069850688630573335579421230273442799442749739699923279744304926688456865335774044460539810999933838377528781040608328171552570578427980301561787973993397826075992489324741379918491399969496989890492695726368736547118520233759460523464198401645820109045085115687918894513484540296958619230457365828830585770683890741540908934245615020641308128801315666379854843878354091220268651052951824215363052525928892243852786874336910266719215945890705532679328025082947611948837266443414192653909095828750945818059191293798570793411627058091298550126983047041719660766022126857784362567118848767647130329340535539103145267417698521709916006456400736573873535709920157153244573581307241141204273029187498781490628053697481205273360614226647679313071304636172885954049831133346470877257995679073013812547473006480108848770946437823436290544428436298104530815188948205690492938392799785771284428828334423617996175140827345922591072587025131003873817575506327095040030389238492809876531795440074567625423125201944341325428575584901757295514671671744663484427011133213494308077023092101725218237724492794437099858621359230455779714474057472093647402227156599351412089094669716758102354202432169119730433007443054693098353541097701846461860343664669840905362214166329746348405699965763863738283769857256766415659666061018676469853176779715163929433052407412312427490580585628378470888367400188545609935522839455617432898456852550184209208445408916308151814321288832537274881269585040457435508802171292601871828046904114042231242997544634583350774473611744532757927198547591891775608959734518128973940581146728073955106217495347087257067608997404866928462736900430765720953955248375123857512914399387665573772295326351766163109809784336576389415281468576594551019360667784829981913693982586876439764103820506544766116857632450806534125648017336126331672205325287425315019600205200465874509826633525493240369278749527664883310950000481265296634390921384473947657059186554567459991247232225848424242953845177311796560899816908613596980839959596947358994419204316959714664876163335581441285472294472611086469718252038707422702830496804919209736819104386102592103290604564684967113777627138656459305547750429354793883151618205885061961954429583688869330018155653128022000603805077833609163874408830498768054893487264232213056294009912113179036372020792222418622794717679936653667606669719780636495038457582602938829077197059250305591047767938740251767661486446630753512556975633830173178682038477290539561168351303406404525796623773384136742487564283998450369998243309400088855144135349272059729495128077685807049744742830713714959478889673539567387620515638063565677708695611031266967270837169130848759327834410054293762994343630186661014503529145974815593181949728548372442016026749944977800737993771006301247451106036532980937669412854504223289172201524197186211761602165296683010668326749818607171833636083802099392338441275953250279029409590595213783475952325766694220637145866558273225919519204245806238724128346278825054391358675084733514507725709237502051703399531902631459110688621541997502078209628205030691509230338276175065112448049189950983873041295439457049234309306162929597381954437962724694674693864311017124901981594352954999421594507638286577242925355988747603293159618257663360160332483445673310625623514678198293120569199157132154919284301936699451147669886926091518396734697381389563868142976244795762388311904882337581015763937999219714516199818835687041210535073988439989808537204702152507395108463783305369186470471304942166092854295437061638448887454672757770134317218896258472822941375539058006568781751396972805111688070170406356500185060754941101747558306267182922758424316770705934239998671250071676652169931365483536993405399630091935668289187278798750118561821960994110520692460280961611870449735309397925944662196830444731568022061759504186560736410690396048221504187994643813539858429157630567332467107938766862416001537003817125429093755346915371666074226604082384151520720392272362293978594759116094967136987126869805413177530670442622880222537602693618425603396792977610735547654695489622310398367919189878792870813257384777064475380327516959639712804458768353322172258539876638744300517106663964097261821123818071115906119760577210315571280449048164525628845754594579876524253278266840802898304394762208667533060544180303646471031002932173427487954165179142326028282312063773736509121885030253984673666576197054066726668884641533891733391309427074009024046269702090261993460416553495362011253359745205268056651300429758673559313133305771849047973932109453630478160142504306727936314090154829501057754862110196297999418664448804721924375736673805246841229837975647424630674053730956028788962039054890911020264746302563306322150124493823402169634414755696997025789373338449825315055441075104229230846609190926398217567023567249856162498287267898779681641292843617373739217029054119045487675971634892468865871971646168229408811835965329676562211775030413226186428354744146586519647877728331605819722329197166720210501608618976881859900174778707058402800319186638459949886976339341699363364758546822025236488139328133826865618639976357477769535729651350655902694051350505770580784698312372666997450824832246048262555361870615447582374566958488090227850205252123519937920009686780294260279259463490655189941983711485906075408139097639459443032228736280106491692787747441174635713222966222915503961937395636642427505572548865062272240570562846191368011061807094914692651253507310306136194601276075670322157725416947559238249142301673255890481050337437530294168880508503092570732820885603192462959038093675395486892726448277215241240278162971442560006945604081169437470627861276444595135090078027359153407496847855783718913158865441343919974672237412797007820444849965317842425665529043802153658993083989136357464114259390364550290753739164086569552007477801902517211480324571482083515625475374002383901294539697621605047254619684869460412302912130921408302477127023413627173186963505076938293647504969643206644497380246558591627465986145556410029042804274887473030447266368489812958318493038760452549346080422688762093598696604251016955397773285218523031901582496331525905337974128690547565085799843444742188017461786519826726515433545126690508069545382557110544842600888168886204745396509284544056393389110004337396445061607866995383113531075955355599823481697665196335145804354185016499794409907603015143110279129482416238867604377805025568664625012211816493965394011082918271437597474850713746069709480915997245758245792895453982594503014008198015034042120528010010015325562151545908081093798012500159549479102751539747376078526390311489635645602000646454011568363291419387869047520815270001922744307811089670729303618882832050954196164534505258258443112147603575242409235798075505035816774854600476527650342361048622293808571084270118768639149674005416794254346579614570889854502513380131554222089332361883683868581837159821748332254788702469199672724584155086176208455566834457388917911237565766632261287911740704249929187741576501875720932509816880041743650558449850256057895105723174143164404347573854703522829695840881184175733237845212839505066311734745541532834511337602715634717710528682497679506983559262738689529720793111288899200400505525763417630399472583703865677233400364566527490112396678802294818337564999312047312075030506334590729021015550638528055928571416411632786779944052954699027801624567324532426021148887768926434954208833777849076797058717348181838709748737841604258962216948272446233669917565318590949397372273332056086492771960198496022030780242723217891253402674313965526084155046284690887160451306174863985711644456590112983411665868940543508938924413120676753938979661005231984612413595052911431725105411246396386123207366467350085035004367695961966209395814813817846763551178240685878544848832239418556427781638366662658226699427781089930019162184123786234940568914258133146959502922304056240331734309445334600958807583022659634419077835972865827550712489576896979828704687040625965022941573385750259032959670324384740502713395857821909585619030288428327433895785536819876783294886439039687357720705816178657084714098608900855145143815526409526213960233212006017428344455585424707574316119954331629092360706232675955911358679712184849830218371604030013792943105583479221639584912767717195865521658236431742281984359946965988441920390288202969247217675365224621382995823375481391430397428183981920257490417246033303358569714989436301854110063738531564112184879768869075153180066981295445632813146817057473269359776804505798482816699735238199121435890969956563914590554298852616607336085782581219743270139402525420838881330755694006083998707924959802426694589546290437819538930639725308001738698490425065868624553010590983077747500156430625094870849164153382363052916756839867492669444674176618895812495093680733117601283516030412682945471791249992253318300887256238912844013600841566394257523386264673609527176421409563615118838300636176537274016240436363400103788999828984817650247439045662560696343383412867765761582922875452967941570712191156648829271616579362393013325243433319307766252929150740522770615639940783449092860278824144070329057112344569871093790194711343804787266760092947139014043282030967842164174693105113149474464270499083880248297083538854804453499116250209481994096292016696237834013847006796839569015318887116493693471025967163368220656959553052982605746014527658024122307054398496799661656045165724950497838358448667915946158126859260971712099315057907823434513967952717378899256241043847833927988103806052257400593898888959897513510043202006141821095075612342734220343586296817009451487735901411935185847048441906906137058751279956834063705408841467191733640770853149251663289969511588280510055910757660023718879563493549900993101900183473231400764017062903335383355660147247391093213001380658308317654890617096271588554027147867141698515158976056880682207714867806545721026843513067557684104226404877911065694654561564565376137387430738338775776232377547143137899350810042938469638661782595472928580870388809438357209381166906065468398282201109453380580118392091090342396049111851703428342918799947066975311985079927590377168374040420985539575777532820905152606229355280162455531666444477905383117098807375983965753046376247787466737346151606312623985553514210770234512727173711935338581449956743502393756989718945026388171103149888156946061841784820322798393333128127338824325476203613135569357382496940833520074996129117125504766901277602609655382276863086458194840786188994561130298880635810157399299953004005541236103244558829861146017844393436877876912494543116498157831185015444882618783454976797795864992406825693723230002051294236064593612876041050397681496973115714516576710331747798511333368602921932641174520869909603508358585162261691254312003396462514967301083644644067233641322593605915094498321357972507043225259039228910596037344012128841748989211252656262469914549018364815302050687021588477869368413373626224592185628458242888132705816126049519086255703461026199605121497545134734956243263684213530087166314371669901121399624396679673902522872529775794699539098819757928264941485164663415815388630439231124577374829033339427723925018213164346851662259548584358434875822379095463846838646167560472212441631245171181784755805002756597918112667713304369049832505864352848888758261616547497417653935678124394108154418975562201690392926237543203642471422287352846141578295198292227189267925502853399032145243519607537947956901413335855166799468709293357591861441335798138157629305928881118125600025516828818730671065888468793215839226427497322011237100119805959044248202757227535443085109076290447824986142317721644777699238418175468511153445538075187447692820696019809309590863038283891336735134137360899840496860410479984178255111471938696168034594346234982833831660097507179217145320617103393676291796189842946510222240658050743886491268691223011423214161634696794525802995401313403571908383495543715174652083356332926719433402649863418197605863192353918862040014869464235953889610758263312870747276021372245295554074511906407770958234540069424152982186537557508427744216410744645548166073001018808903362384736867597374010086704538205148771404119055495743107070989906186920926466097434777720565318159178923531762217021159679315985148868661829450074005817887097226190972897353163368588194003546861775033998605309328344992744207244450732060095208040422617111222675440913548736218254054661378756734306647293345385388577050520681365959704903209104405631219259631231795785444353542429901929274931999751351794795007201365239484800242604759092967444245145454392352220430023818055363256888984076951121103731435029267219524972465247322651919001229613699117427255462206018431291592758673824870661756131522808220251490556347535755878265892470085102749072496803810155570109921139267362390902771199930864402926923693841079827373595526345061254165975730207848971245860864173419116072111253875899108986194161123808429480897276738443420864181875511607187070120078793892401259922273097295742962404707186144417504984128378585289756648762443951539758310463338025081773066445630897899139753007457869643967566165293895512151066325881943095256522679309576934338625995615666371995989841414381385437349494667911555495514392251291503612984242901063273305866634181003709794621867010960404616658500523415935948603501292061333834626055068463004954424834260354441058614834657407665847085176524920061131263012297721820152176556619768535626951765045137288283336960902042128943673859598786997961248151590132954798457843000531912350903421136546456591979629773276303234553228321738399872189704774767092478965502537816727843407151130771033947372900791710689264046960019168446657213971358344699460329772671749369815882236244193186780817835352662516259639578934931262115462698787699447436597815779837030052175300094570535787989412068005053681169421347638542462184579817224719360313224696407532996387724818655681076023857971252804337479421026159316186496654598408553801197584768092568416918308848158063108278538742578122915117059758213623725104979437769270103362067257475689305245997053927673592273857962505962782065721877894660213342761038409091512155494228457608583104686535757307450271751140216554649115690053688304913293352351019882725114387453130477852600091142310404191052239663516301887573502925891511886909881236743397937440828812051573968099480574741211895497819177901823930803315673071503853409854394859334366248887777672048856728252381964126482888409757891488764339543289883492389980694517083995027118510720645063337489040660946215096054666177239977397645491781573263356741448626578385392077137168679671733806650388249088316486961967823840833842018953222261149948190451097485960760011647906896170713297603233114039378896648774365023083344908067696327679590458152881577851455723985564138345775138560910681196124930879529122670880794697964289234513679012526952853898496370566446907476088837237566351518955767305868182959092324161092367120596370055043740058000655159082312857690086155046610863100932887333375940073408220676314207348655624323080681392882540927565602141830059857161252931082673812751121494928950753931805670048595663200687491797922593093774875391564475277699769375199369004902102277647120215461436941121852799341779409471567715105719149866382947598503130548122071710125954892051905711415809206230412028746026584293292303488847195982037794143678458261412476248485864507036423744592265173916446434126882818907981268456169272984788333700032893753698496752234278468457005529753504411163169470118066035157817466412044147993640642227200061676502208046618439919600102523088053763250152878688596311898235339706763880804340886098249305478622010122726364339660662368917341993376035282969007415905456412042211295975169145284544711783166381432462732141735047474441688519358754629146489727064819449706659124208785384184699417120842946404684391184600610012946934531904112238173895453377499092336270952414133983876390072447894922243950144683443183955476568264924081853362160322705654306997000150625633580740398296465360021247348878391676033964077205965679422502730638789107265671892256430001268811043889077714769444385972023036271614354025920185312678678308804831020443311801574135908056623568759408568395689941353271206051045444762726900282724555706504424254669343220738664880699701203766895303687212822440540581587713771479653510375856135584167989991091663997056677756086331734517240203339384458267716186704405677996571651709869452950216825889615079826133917690106639359267500525131768274093427187973576195015782811359247369299155470559177904764645279543244746951454317085265540019972317129758843447249899955659717619836216900409317053712683574148952575486078285856018950289962497693260413429440652118892980105439489940003568220222794355932267794037551374275998783121401276330673768201594080498797918262546760191096172469914328483874531555483061703508073185897038031206281141751607881398917783677192663630345224012247421506022737167447137852859791228837150759199435131614402379772482577796083884889787077290140168249391524035810603690870031326377605813219933877549736034349544459965806546120098064280224076031467194070536730845759488408805482418644747691603943935845593018103935865555763219468056881903916395901391499915928550694309296084892279590249679858895014235236147426635674715829112881567573490258005093103344274777633380875520456009863095765823294928316393391560640477253980961117537382575409890102591323997668152443404716037278155207161861007875112028242523013907941789277710554560498002527540734642161269198377436520959905098693690738433772855650063950125766051033311447038980291847488451241441695385542182994685549493810956283488198839345842655911412843943222603530068236858281901857849937984378821722069458441480650606694977810111781710426030009017075968893295516131820572169187348508524725392655612651905869745521775001309137542733316015724729784923159264868865707194220448565263239076901144890224179459194939332396805151596004950386608598454138104060161711967447172413598017406118600665370106183344844020179091578715154632364722004915013759942300957549435694804344208212587208801956122932926129490031751126499630653611010908682181641531798903825857444876631125141059378901998498668349861162809237219857145949325099812701517121933694906876155720150079109284871755728742890978840495055656938570843665702274709539784109931230894612878879596697377332260848013124644269180411803248098706258456465687831517279664969342198960265415932612054035349833787955750538271404771160167980816614616456532542609299984933234730105875439946863249985938275955580606564745614324238863206016880688763754893901957817816555753379123279274329664102993449081370626330175050368591411077597463134811837210590505297327779491672528582065469601888045885462838139589175500048960742687616341194579894446385006138333263238681042481897863183993398261144347417112497272897904173799305418744539358593831601988093397711346397335577275936295076472781540692600707091628276307550180576629983842605363300613393290006244107853717152023313671329394655919701429229983927344184132370992543313893071844300358380631162882406785699026534548737245667125310761069252742524768329008346748137941027219157389730892744846121359540876236736455794240615920079235052899339551505205181229772943927025731470827181203362405779723838718427376117291031600672800414092983903425409691248924634201830204819115628081083638303483229386225086043722175480419655828390550502918823694030292118736085173665386899542797117521097726390394856101800769078494431697952814310004544332473611922440471017813560484854501365160690712506436664275760100801692621438466517730090119148376223148822554730020670036270561921427534594550722802382689151186715655139495225820002496034320117150149644924985924672952739253619026895643722874912139170365330906088834458139023949877121846635745888193102939815233598527569727006503393741658798020911850971880626273161878136670183267803065238383362806237562341388621577110027158590387439691760655869658001270268378714690947078678558237220802172889251627455447864164683319443970411500383836986619576337483335020648280344544151625288354107502594027523292809589739883671237798286154788515772272841027631782386580347273952683984532104216787290756858688593491227902728457987416235367325668171794030946258375334809031632981363185002114462294524703465460962142008858384440702912288367761187801919572204649199625558175310524015606569301117563119509705769785406233618991930888145853229758972512324187609892161450248129696434660965605342129209128968524773133971374224433191340143001654769985413004362766079256081948861970945695237754725760911272163846466785166717487783549051793469030495789480428078680998635125201857444634153012024021563318337501268377284108019113070994634834620415795689224840692187380545927280922068995626020903351505952724554589051011086212815561435128640191506298174260241938323680434330168755264264348823942550268094175048737375952091930349124865316176751822072616777244197625896281073976752325769256286250792307165581671755426630590203529497917044562397755424578996677470038642929817861682158487923065986977252978955911647934279851581672304762438579144949171864010827641450787341069759133433951181073704031541177200815664508861637369236849232928746973578420146582059847090466062828324486901974716107949737014472433551370592491293997841543892160112018574717677074399461398390367870950481998240842856450291595951909940674504711527587662894535306029793166423514394330300100476958284361798521695088541518491053694736426135978178923364349450881956515456458111295224568135892854232353453493028523139354382791355259274010782439260694280507001060221500555531435638066544288647588214698509668227240045977283748515218815898560007729196703323932048577791781903295847627048103412720544994998641727290901186314859262590459475551867101276849126456354319543756976561825986755793420693095144232203559153826728061929414406488341960815753886861556367523384501219462005637988524477951351157284967370945309872765408288430635973060957929687547961092155117116360330867331447454438191268315837177306415280364576965208816995360753550198854065658622816583652328532465255703519255996961724783853337498973271181244027905107667432013652876027991081464550908398882665838818058630430259787583808829214047893951017246700563669320551222055538944209470927078611282463749150613748210663573043388946287196753474672930425110136301348105778491751147587806877808439236791548395466218406964610057230373026903424389730175283278256391017411441490137316454831430052112192242749390127109159558177264037470756994423866037484324265121845991342575452867723636158270803658818876812242203961697859087307150036448477807841440689820307897448354808197756012713123032704707733302810442362941682737594250730332914183885790875829851584548278874902666222360448915182982090964950969083642807969695633359463319198370734755667003318395730079690587860869693128185407646373317836958124162634950748475862627667921202298843935168624987254454205784355119930467143815620139334626351544467077615103809530625954144192294638231829121408900979501173259910953880550526055145728531117825463403348931793842159627340850263100399322811692885174514924002216609325728282443915174841462877329198120794620025255725995056018019618526185366573374572005397585477963168673517566722028747447158337531271913084810988480335762988992494929109800853359660540390171895336467548033738120298837117628857745061704821339861986518881720977164940436881306473649497118657039082082733535868501781114028291666120985382247490595374533230762083759437600893971845655273045544020461821187184870136337416551495117858831720891542994925567745932032470509482344926841375683300526260003459038030124543789821668834763928972463150086266075094540059204384947621085426804634668618098097873127526350978029980086365825148748381294013241165807223342353497807953308767213366944556240442221265390623131765917166485049428574068655752395105377431541815720441028800816707054011484915362088010653645200718294514782734626096650528598448606763634938187822467069495504099286432264676156512214900977731986349219212581321223827505146823381810762987874566332946382369004765537873611272492205467995748550939753853111900008694769400831455947555771704865952513673166191761550874061222965446173990394927032461103728929051729562483327911132558890253208828826814241283045609505659352234928226960665546103331786097722921102904658175865865477228502030088889122769999962025994618322602750866025002336535377202037942030698118799333388441733794012886759629851080060932378906877494037041629038222339221642782666085243324281380800102909782196154285257348530291986806347233994277316593538779304563953073898332310665423780366040453379260273712988887951920394676991368158891095807542149522316312246096070242407099257297706591098521723724871032022805092174477115332719894881260479578922810382338659976947370064356180297931910194108002162881801915522118272402129093740041094586443401399303365794389534668636246459593216033029045052955534408139874520605350565112882179795818985779255494099852214372176328825331334020063646452355595390146985717764830593836498167169837010888183148095867109532412920627425159900847507203763014065508023854218772410980155382057509952332897851769359951768847006511924787136051661215891764409164189653994668452778007730493846276382573615881333913380414729602038913821381175500555651859586281329823662680027933007076089443347418845463553741472957698689353325149555110877044011182273516253467548839023475633643671933021741968770666688836414787387254769570823051482258559420485318713844042771927099969667662715560096775205003913776084420031516809401735237188015113448078735548908576806263011716086830501018037944289969811193033481510052386253532769989617797196865141720121558589788440158829786621598943016313304899034407717979227365138802634490895947453715567996724235653335056984004588015051581253330176648031558578106336258986205259094415105690900297055982287592754171672309938539351924837549552574687744577757822376138659239634383795131753063614797063000434948380958396230079878864072961720066177600985139596920653613054007694148416173361102513442199020150941768035967790548912440113376804602311421704657136510164663475902121212900995108574951201155941614350733890487403162122828146917384109738481380754481683776709228261774896797669767340242940438480394695642620886974867295667594771730171318053853840445292120793038222980546930490469658831251438301284938854436022097092514236437170850135702613746979291593991302707956278879957235084035598320593432920287548766469700520286527801899536123918283832203040589891618803914416001901528716749723913375231694983337544185225452205749274738716107703358792672883690467889988983606854864283222048777912671397123342327013166050548508165701637214737850973572239455868247771569977003659414314117259278561531180441234550674570162752001869408595526164754151439598569101557139367886625211215017602318220087855909966291490995170393504886252048280376512031790481105898641045931303256378825304605136322978253938040360560068220007500298699161568450730496658384384403958900716226000996347836486011452344403118233383130369804319370715998037071906199751688515081198076617067798946624813254666607587814223593200820983693676225130139470533237308562461985709142051241674504682708221086009906793990975069864250297760915132845734840621904936048505608319217324149351055590063740049897260678559871853921881185614624169132711989501869802399783920024912739655678846338297167208965220914929468962953083812779963782918598255105422339086724969229599735873687853050942742751004800888533044094870920426892618836910195450260415856213831393500185233622859240760429826403138124032598945761691447541002521164067320414072391368953977391082766663376355892172170501649889982493726087947725610933982074886335070591987277949653950096611111857056973868991721205428998252316229760626156244705150478023619817661110318191187783004455177104332953331061431018273967590348064034776868475928912451067386207678121975901384509848996676844594803175554110427780555512561383573208798074168219524983824910132172282627043312949822746409282058275015545576573534154653691580753049436856420627505820765544830430681753280152174237609289268912306004210524217149880914526449829787298265451555646895043640624675018022496170479925420383415962617830335137968693663176461538381132052297765000891574264901450242576398419348201840282213867420424220810411544482338259017763264221427050193264307959755970535087513289787654579711727141690407390877996687648643672564818570389010977028358661407506697239324383283455544109453751683163006887794965860071884930709533514126390953866452009648066653441537698818094187301843590720360835468852635051933416434782711166698351513714663558374177462527277345622322431392596198653891306766437152096272938076084344763690214007227889692235555991312211386208424370507980112408383609441718552185892066322435369815745317694907249747850917743179670358929210013272699295791793506572598638898313459790150997748311661544276007529319250619769006297644105151869170603936156428108788011033979495147034860285973647270382345275158715403034503305813112741906169020759143744423480443167042429906896345086556054719941650052562551863755634588017455619293825178521258186749679130153820801654631543303132594255514200488598610781735308934159395529940450045898209954239533914391306652494365466397560914221575050114646411982700216827071520687852743879080463261438682507527605404701925346849461547459828885122834588234794376046836145411621025960972759416487558573705383998247459101236572172787279937916956357961985968756446693533126099756238836823336979640112474469040490220600165920456980400149266182247535295730109758097509508914772930916375381302434112182209517931859741975740869867369636833855798734256013016740422311186522168067497241478862788726273141867199608290931244315921625526211424501246533472847560130912274130329813825378940118419846563246909856282039717086943923512827813049993280657211074263274201369758863335682319035361249042576882862016255123025395440768997825471005268164493817406300733873664449995358672928022560434051487346205460747870584923547239300951569272617084848537117682585697156272141234182864451990320173941473955060340362739779081260426213475209817997590884672811339143436431174118886726734673181768778534412021832840022015372243863030311160223409341946492396130795611836083577220249838128348266132133937562605014109178351281255696595037038123900004766093204911127003407654703799434275475158266098948267982437358637588990920725950566829994641651703958884189331008600983135853155189082756831052731143330406740765845689388446837308280782884155195450354216070977462732765856017998878488818048276867041397481180982665574425811073610652065648523279548765312579811721704282668142450512196564846464889897728802357217246843192279381825174314996378724318293173299501251177840831435236371426529855775978028896473886577537573528694741558624174174976879774270862285882321284561360301037563275055050196140370123500567071401254870129797078496316636796241337151855439787122124542125396379918356958382832689456638907963964775609909462066256000180002784152291627649843552690705453950922881332515736946753684193139601667900121380354515661129613080542577999729781051911166429666378470227745635468008000840373245450389602092929802167928287182853826458394309605878008362340019245344360290134450919196460290830113550346812758555560675092903490877992245485332475249081632588620742563761904143976301386588292255905206557564016900809950694309456978519166797362272622397584513050028824576372830241835328123591712738414856831635526019818031392625305702633026891562715599599308846715756806264786016253133950515346389230126911213239798937095916201822426742008376754728611506468316012522083917300121494916323748533604054370878850513628483108651884157845689627782073619849659916126813474963913522728491568919240272497567848989826888924288012595879563762091956385127832958120206431920273555550313336312345960857500808591377366513078134177588592630521879618249968920487882235188652765272727733363198616714290956533555711842268395685521244009557260253986844592890219437811448055078329480273101329432346476937544226564657003685847439499196154548623653859986091067170779158905749460474235430563863993658431212333938064861634622875503643055968497842284493257499267320799211380710433639284250453575941141089204081661425819148636600135921345668642067441695545285712661967357142270232837966752018010695498155514440585330352393727458074733303737160058173614777710502644865122925621764375733088693074671388212557852832294837829527783106606211804029542912336044980120719694714674781196183116830376783883147216149105684915339370056173684840375032763215537281377723654990781918304084762711693680105591427194548033945976467690920901937744280974306256944777658763805277110098807383366177798298889036681952768699766178533592042119924438169430395697605743667143638067425573578541981086127070202901395865544172718121399473056523099397089243109099927846117384486689228000773043918181182932288215901539545195113953906925123037279051734337627581028486049395464101055752510819619750667948243668339599487120486754986852550472449608829986592088703134085755737726223554365779813147806527592666775691030308247706459177170355490464370518624372168828372699515253913529232853659181404393515956190078283848779401906398927705912286157498999932152959944589666806472993294955171407616941627836136086735526947375483421563879514007411137528184459526682518775046601437098299918654597994353774295064862827248655872391685762056171570302713048695209031308582971004221804198482401956606273173020119074158917115497136784400558039299927875583735260954480210804874038344825407822820289809593752087486386471913866311745529294857631962586198448927586897847864032223482335460590953604066979539804011143349134708445224335197899571199579924088680660509928277614450063312165495219962189429878544406639316408757654463459022523424472863368097978938056687412858764979895094875189571117139795626918478612662315698167995486348723163543457221604638052390480258461116907419483150787080832330236197817561454485760651458760902832966372755419260259399958209710412986783699436967782674837995023540328720102817464684342905138707883643275503901752363713457657045414916075583702154024323134396412545941766708691601052687102252624303215569781267559124928380534533855449611140581802665220010579836813484475551778881140408163703277447832725328655257345706730862580358418002604882060122678474469852559304466158906005410128494919428995060111935054170776750995423081129970818585554777469162115746612822283047129493535905326526008667395025582594000772485684943672335985556248851128123185078506098728167965272579142771169824345886260652053040674132823700738139983100411994448543223569251293626914219672364720519550364050364199257106505992138937544694245213544337201895063210374612931825962828762053898790424443315474007423824433803072177535962243387993794434413222454573796800288950425195401109566813011456432186916989645677835426729969808562056271863210615383127193662357131984808814062206620415605886448356413969088240255087019511091091465825766719738360206569122447091762085934720575727759515410604295883756756340777709104496806832576464469949543795860329550604874902735794089860518022235404657525133452580604057462577822758835188290945315163442137029328378322119987735135813267965140162486753615260247582597179251122524134246795227836181405907072980142964769426714307793423045250174488691555831336819412643988652488524736587714884468960990698875838562581278147243346588924071315671418962360818268152218680523783929303453600081095132102390202290071084788799172075620804160630887251818818908661332026601394164537838911115537125515661951239684432526560183776958489967208266826435568003009214490761000964170469716466762155707394281278083032311260256450019216963891979988642004943703223182509055383240755019306399531829539097975321512571067613034810926851633379302356986436671615668311602132638218569503267530586815357288075235894484856208415330872273544062941869790371169055428772731832783751743478436879615154615918731521035303469357438422671137185566787048849740021028092231654162690525254538366669772783684721771324475676976836820399454596163669844944064066529178033724760856715448764164004453140211293139218295831226263898127983399486017642440641076045891252876739705478509080838723762202103829924694186329718836511621485247131538120333902880097012714425780977845321677311222114234540157858052657096421735163938863611724924390012155711375302065489120533624093391698317261974714739371504314149729551266756777087681117924083011662479845524617723127111448699524539653092338851749000621614173008371325410238602133505144664982284901567075100516516517840100124283925276275230145905103269256380707247998788034865047550330299397726432508844428721965458525718199963294103800412568933932087722748073076048575069449427941684974254269747428199825631612087171245616197909460081601825259756647752963505103836017162549349147957157531766779231810771958519447207773157712491931015862853120995979904292954441231667571331351427977076585052572288959907036461013873575855317636400138094443774237543184147959928974700611383846214073054393075077846394671649531772955913129231548364936971099339733441050208199893790788197401514888934097124547378947060823772953420113104908637932146463079641233745552818390162292929409585448858163589194611933321289011715501118673404821655752443847203933368525546531760890904957643961869518583340273207608198555909202230757492855260033384580410422145376201795755782035131926705073092815369033327309094535690689444485044919664581084734856154199763075374523792359296441271917180018215171688581968602872836885924752904676589535361960944516886491653040973319240807168679270121457771315061916006190276285828662467004545692071056822910038271181928856672002105526386378734405215779620789621639165413999340125402391015494294698690115958447625256785129506165543600604616196076811620993125469138042848646866744483114973041693136207671676674360783469774218262909273374731175803431285409432101299288834761880757804741550616378975798558020183853246513483260896615732232569392180977805414166685105268422797347642851537134901196516805633985005958002354933548900464096682285894769657922180203183171867671410248424838886740707930106722859862663197758908503454547177470801249302186485600480477282453872836677249532575832516035045809252235933866819191690683067410226746324959107435462931160358953874620364020838068875628331802277417978094119484883424451306768681058567838952962791076602167355025640677319017802831027856189851618197272447965121205167810479265971165813305178847893833924526424730899805098942864331967704338088581590756152326970435377821074082208953918022849529519093922486278736223100249174848914757993341587484176278474750034027331271600221965273595977297083758379794958270711100600332443074838828039816110320801058046354767849494904191530715212250376348468323664966234435257533370707127672169811809968257744654579465319560957487724190725993362466874347976589169949493357895657066141633810184009778403061625468481869909948985194487597780567307953874733656640193181818552703452159641470145714934463105681621047852303566178253058827083331552849851546722059562618620287950163470448327984857271509719973593205782583312490608789006629251546711253844923406940827809197739309044555642992862365769575372518910680246888321137382830742181626085872984159823375169664570901636472203680202797678948716989397789909790276431034621816525356129315656079180910823122908016339297469820440928976686273341367614509469879593839666185470579380330436026355638443280752130339390172563822739425612849922006139728266772841755417481652494333562694959797810986898271538464089216685469830302657649269935070249511095519158000305180431539826231924684155392403873407730544800520492273627844076996027509826395151196758367906858929534123215470953153515467427757980015771320972570713778085760972307990936963132530422359827100913644183488960176304380501686729327932775474837650098937452597019620049711965142664995129846898066290651530777256662530363803780888774828079294107132174964704649241409338401434104784828578158765067050644450092451404005157266449840169417634610598016931663523634373996483379056449297159101065149598224240947939764309596370398191572421578267775225789720491102738676567786474310859960243746230316641302200774983509801961854866953830040569653346331206690646571315298443366406259739823978081919291290794598213963318449517440327233272934584094695919675300985878268481739503330084330863297490492821956861077407157514252655923615082107342275398459350223121891052810956429114707819369106573615779434953509847436280536169172839599029848715527369900418639311347700983946001852123632472298397907202583296580772138526541175194419810152818985006666034524990394809189391714453122639739034283616182668862511844043189115771340528210836102365575730637707190581863723614168947680406433438119621253621648590692107266800786990802113398969211563192400245165526827518174205419781529628232922826016733567078740721817824508683974053787359539115739945772296772078024482473738995025222463710639861055965482749920005192929008438670441830398922834017284045975554485660470686306122064424522091144457946919028697773521891220567127819256612746794386593493180114222638542387949017009687202093961685349435976822537663746807673124671848488698538933568772547434546537411592574252933725764951562771088944544850634735525379448097684205012526073376890199966130394709457099585408471917233359151506072882480399289026549702317757360367197839201820856317298132920545241053530810340727399312961166094469973872021260065805854001757362857072146335406414672384570142016076413832129916051644353634358023578040433149519952156954418491103772331523326352694370169294257555194471926119838663604691209795352958024716014010023444737307868124578394180346632578164566390477162254505842093880409246961347748958827776956368070169624746436157361474775010820393977268671852081098533138545900454587187189861927861682422958563716721105704019097714657914920618412974933799423142147646522677924632099766761877874486029665541822699982861533497961301198616457480679144448121344530614571953568145228885406206444172350873347652465382600209614589664378696134029946721817038608994731285073312445515800791373604078418197743041875818453681609171582818468672321497318775591736894547641034962212820326588936219583452229798854903843170858195220124809382452414371021838443373573493670712594835110297217592322678862972103813572863075614311281818793214142605522503343822494940927258863377753477907779497208963765121283317424445977299175756365081481875342643681767175574684409911057442547594914892364736339459322561389359485069897410452536170346641611141904266521494824237430454939437936880610000964316840768810694669786031070101922057431455997223050650395439915126642759716245721418468574687528032776379064411006376503039500548218471658687433914973046959789776773462718492207054553434896889893517820862891341243258616468082046345718858975349098385848677745511697011676564151685513388058740053609151938796510716500221164031755234228720288751958074013413672700126273737966276529051930264519698499720804945001113073256086953907760784681434348207617985189313918769527596837151560453841246949500118738169689130887096506927114233211988904031837143973489439377263872883122621555584627927120313010633226266872863606344412412615478918049581509329172419654209689183586982152996297911149648260300293604254616615927810490254450747569848972999526044206875577388501720142315647259098409701036992653834693770259836375741758656834329985420114910303699679062722346027163491522165010603531257807682914496034503564655851574527828951634614751871852620682135162998209791256733381592768390663938359869045958688041964582920445084096831130103082432866431528062974300265169385672916529382293833114955033244687869997434480709365733629936417030703109921018222212507311198745051096590543347928194994569402163790242463855248576048438570276539676057882218159299327436617373502835761953439400919399492845853367002300321705876931991683915835732790632603521872994520972263474428227990980721006029628868600720445486813609662821929171118286370842594002553617405568391447207744529212603250980075207208330689083832721963540719532742187107768527371657441857041445080565209758759500186631989124258498613775528078220021087756714556343070493595551835588354753177433362676674966414615052316432235193111202658072632668814256799862147827461334548647023866293336652922116710217569689418610116212522765674775633384277867730341192434593734224213705655600548232434812153363691643679032766276077743664098822700096754639200898869190378237132159017181992439646797881112243227295051174862635512555176036086432629218866370284965272844156145793310772738191827405584718626785644186875556422776942618708305916578800321265537740679934671591034019531021206171488468261280705509009020101806948715946801019666816286769004420280447432679355369596401239757750586919677217351086144664631851284386930823647096728896827917345118172564088308563155942946532438400863198070012955808429450683853484699586626190491454737581309179269332764757341592396531757612081157782918692134817419449364863178560991740618847898306004101845013060566632916088650753212415970126261052288729550481222013717155931947441235133337633689039454072601673604651222657783890356799513341593962991020565821416624152885543312743258980654517173175825433151777113229789099645962929244100174297363275588767694755961154704549323490603102191590325527800177895681971982931219229144533196993562611734113035411793311436487112762782109098626838020906425950843785930623493829105327320896943908204009071217510792730698679793560957251625417066675735758883926001856718673614216263980337019637141792971476289047390360181203082264511376755077168184816589476518380341920676115205789096011661159249704484934751046504586402311736023716701011464350984304894402808472714004512067053198077400574473297319168298168255789449220806574060971609980241182951756025302806571206033652486121619637165641492877049817730447664883303084789097255000291184819015242489780075597261897003919995310793731822780748573276010504941587387687401280239975132746792384077837384776261793321596650617331522792047996284638680279071212493890132029364033850167060878230377742637623452668225412852204379808432880823505087182271027709657379046567523151053431719454302383287228574367602394686430690504528488854390336924228212262316654552485050906056381996736521575048692369237033485829467694842882855051510172944860629495261907817598360576331106460640876493876035014487628322199503342950292465937009412631419165996539004629310581167989529629397926079423509020683826891967657305642672230877362763912356643858815602876797164310705752047667264192881018911335178872193708979101888756846467053972135644931074361350446947957223021514177588841979157565755993673032455282540116007001025457263760234917741758715503941424273583138677016121514267278420195650035646313559431398501492993366153968734615680726591601096704572385868784492743756322065940592694209514231536490416514114060127743480626799250813901039148026733059663672098525301801985306868959427399246733840558593838470540277818659200598703615826671233988122933196940148038582340445507731839569392881667351812444015918261054175913704827993844123543541632221856660069357526426557618523070852105710279776509398972947655002814505768666192448903475040287927101132978213213700876272545174829188167578105518036222531301617539465269788358015813714714423146812339109426144572638167718465416989027397592249721197210762140585096309977748096992985108085766451036095307483054953030484311828111285944405953779515455286733565033519022600778496086314544568536949400431482977817639999319691087502125773109413587888615903769205105329542674482374942300623066674863844878380085153856914147713755467029536983954386448712148137374533901027026920989283123198797737580598057139846980600344993226630831490929061757310621499728537876982528059574237958724614288142477366604337222792562055885780988877148870204752734875379695847070805209566635230216875353242920795279972609262975020260171336567037419426014819992688216038633568000884319752051108222556030891782342024042595788403969554182667478517736326446773902131004738384423691053123951736788848956228670819695873746277461746622856566422081691701570268792938654065144733062758670365138418681621418869117251243848011004379889561960071425766908811298657664731052725656400946205708003406623422091341782992461281319674988633729868621925804641011708416419850525934046700128011822894856443562112702215788088392865387859807033483662445242635830225502475275694310359761991776229673768025877657676643742992929746123196097962113327518781250693510014603265339380647722741894811293992309504560855094830101807275896345215947352525037516685591211539769627782580278945873748444157980622573991340438464228224398722625481295631613509953748628450046036326458184369807210292663544916730840565681352385194168084017212717587325582360315235241137041183689687879218215585098157368963593551950467356504270561957673737915250184334262597655779986957701564226800737845260070648395511649336357931726986296850536698813465818743926077534891782749579741688101748584518635566533771116009179081205616056643965715321175022966563608408607045517164119992863365297852881652453033090218477349257136463896607148561832439056788702928539452994329650608293138128726000081562976373870798643781165219888250476832414214893007561132373233181012015695540132147573237276172662999133883198543240240637409954165492197781873806462286010973685640663968302034177615939453814644960537834909356298590027842430316967614398709680198210824670860160935510635586860852617113561462761412871119419189354350735073664400387821806949821771759617635601344109243727463055046617024662601315762626507955762406471098054375077250483286775079679293310910214348458447644268987658618439561634320863183410974746842085423826596807874086667079367955338403912008413758141527287931638175929666979780160453821169238907644401883779608159041099262891811096206559739560736337459691396562511331036103216581643055824592614572439115585330277983915735694120737451136882388536621260671400286078313499190807401962983789880112305795435609923786611526950935212708804780102028009696411360946057223109281524578629600221884718294125392801205061078427218237374318165681398821857728247361762312034824014749446587535036752671909565909565514246764419716414871340813029235060351348198814132606865765672041952474252632325148159416352145627441866237215048702991391648448886139301700639805841077938455979037391229838821308513236201513976273408324705976557176977478060169825639041565496714218634815828387941171611285084402981565735545930492224255839508197344886290239733836925703842035913721650144051691969275092491257528507857321159220332431800189571142823112957309601576788169448943495305982987603618761342580387352034320607527459322423041294484943093387817161986901285392805860113509535807137651796615456567645488785911402241575076497658189375328674667042105052211659611426678556088363578024538326071995032085573152208858989441536356511458441086123267426858353050377859753225151093418932774087033314339957356208564174943584799174437411384119790990028643630828333982697477110195103153518273979344475877334286374802873391108099770946610598325148124050457282763507482870676540792869331275877431541159958401623346439709070252319921040399328625641285151950882058532244584690704654061666735589735534485420741048173006722271649827721071486082441161868916290547898099163000744463849635335718808852465633295368992498650708719969304422519058767464890501142868720350539090724744490174988892446291873062696399211879580880640599437331341780705144178890875166501217310012410874355957957009910401611979765587337010021707058437971703703293641549747531152314205968259218987613778979873505560450495615920069025762506322133618453990036044675597718026979278297772138107509364364549603114466651683715096747787417973689697903728143422074123922507302336650306069712832842562407167452147096111908828216394928897774387524938252793214826961403487140090586345063722421979714063290050357786300612484363965739648424246576785250825191327235679138331789064968042337422244297807914523011903776145666478211081666341235449776189068344333601026094272614767943750430451145146995497428705617475237416126199127415889488272553173394965430539699772571876602553506475080307817055116215475893812437149237694439250765482004925425360363153023456931114768197564112442932169187977732210866684244728506353218026547819501611428500249139373736814674687588139715740311760487904260841918703971727528552583918876593262093877062060895276775722711771469578247689321820789126224092319165804420460482826297816849464082125744732789598258694849146439422017491549630367838492329393655689122819053257766681368758029188591377274865240276317379289330263639120545947779235631651497370517618183794320371793077937049156434114454339197461479255534735276326072425296007937989645842510917808495754074127357299937079069517259109625445310830795924954201060501094171097749130791611473522903711530357567383174417205558842273744973546877197831226026463300723375530720432534454676272311375498963655156951367268924511622845800551996202611782155641294365023847618512396548391325798802349370004064447489921102112504070203770766229645159502120182451670050883655095391520725736488600511048393331471507518477168994324391978123408851966101291667722377085037837597313433034901147424175995421657641077800759966067580582936355155486691928311231900681431282530558362673087054621155621914312165443309245252568909782217348742167515171287417102069052460642885341903577617510203938520215710536230620505703225386745731340539651052038292802997286491050009318935386805327512427515340028839027163549405224937542749043142412753673849706783194836274960078411148594706110720053699158666788147993081543983418621144027806849397292817772705023436132865568087681318592703409849861970504994450947797789962568581267509347922279713657886065732652266994939401036763955272425125028341405214527522534598554269264060306832412648444416889356405197423181312995276177478828787071594659979670905133570495387478658975401824331120913883666576058911284178241080298546662728493522859278424044569563203051466739845036560453319219956569561692826635140881669776121241735952577878402296418569918230147545539223416565408211776377078266591770065376442664221752516321935232899905639899324378400077105107853978275704789419800001833875701593922133930120166553559373383047599812832869600311987940127225463620000822756463379203071191440610576632349424926378566793065937127808245827318565177830774759500311767759502804282126831429368423460515334747322284991252240745335844593706110701266470534228782549484855989356437845660204559017420874650986832714058823100169438083736632367435309651706317954550260307713038835816955554187550442714870310846079705269176181384797621185285978687551019072008594130321847733167394682901019056588641327388947640538780658569356733714573311702575070813213757447878576187474415291094782069215222043552523939959428128538570512629122006759007044365478981041492897810039214031559788248307886909410363724533102102891881716438133171250283757039220044702309592671518827853451627522236594805003049398054976261333524742269899176738168417855779097388338960059911903425319988089447315352483379367817683592157296298968846303494681534848124180451067246014608659575199801539268276961575105693177928611001260805551275813709062089762817238817142436535961389915367522114013797541125590125884721131373399417442781557379942299075085904681536736997408455989722444650929828534801114397629316478970293440417312438983997727647814347548092691728647326085347116644371329712730723550338094139469186650092950887209566081416131920901288505236861554635478977254421952671920530237857412439695211981677768494480967345913061948072382173065331066598187551986488197404895474550016223360912749243238367672311408265078575402133556512988816764648063687935760926780239831466774133305585708993141569773307728336887302154843608535059680820079299047438386738637841698798362964146214897076159261835356315343084148086646957948834516698484209093276830067617618155335564416071660385718383334750520887391648715094390972858188410486500014958836259348113428665989938036668607570233194120371000546092640011757488824502920962316712566234809080662840965650918628853386333508925843512274600131168164540466393127498371427997506096876439329181055741337219426447250000609882864660640249978432326318724941530763757783708472907448531551874333561701152483113049004798273795300366407521871253579747127051586493871292359186620673056500237556657736086774572214906214811141216062820583981295137314469903409062035279636389563316693548133394794365168021607001643619794628006503825306541042012321431143175236659190673446411021118911143862879732065895794589571781307435055931234905680405097234208883021441199926234989894217461321742009229416206790034124267054614635200754675284201508729269706619251849376537230499449663902345812042335577116182490892221186471112105896703656792303684983777033809891582564360821630670684223976392170657236386480445640726199959577342861013887749893562265855088305298072957383988762113953951095191310099238730120828476222653352330474372256567303561592620261250913877967430903667871184976085593948520601125425440487178144822034023232651673277861380890392375309236860197254137618856251631041850872773266559989614889302948538053804266002712609855855910272628571736885704292113391376210816515517884151294843076375032689232738316450180655566809408938469308207147322232445350107371949969347401450902959497011611463806969911173531914766006907202394921069995680894337762885656331652472228656936614561371152956937272469105141163885036156784313035123510433022541542825992519961709328391909807023675187196617720034006490909181780948062678040208219901551302842644078286226587795721862616140846597206616757641509531073098524310703429112817018377347350058715167755557714069268832249018463713088948776602782268494237449237255504690741873985577882702984947184795898616722962273145856507932034446057014120410663521957235585397982424836455867336840952249348454856734858595309455886055717809419339065071945059022450652339170051110254632543222608333167512320266952747456180529896566459196462081183087331601661018191979256681452517855060816461790347981786860929645103940461454764761546417974348749208960669288470152402255701464279855407547411751889784080249007057476025066346036886797272824901221568442106384902461929881059612259502063962341485568928605681749101345981482203210395789021565108572040106918632295733463642463129896591360183369627289741153104025595166976262399919761005694229621813533355992046858650065151000097247202178435466671867348458157673926171387234443927289755270572233405988634260316978230827648933492770312351202279250223706794888774546986410135871770589757920344053705527886486005202545946886276646005307579936558744693137689228081676833059685053539175196014502698611999829477400111417807244814550393344711736679323257459702355428620673934783235536726536849520840686053209879956533159140273954740227021749393861038586737565285190646061489471072963633151579915463995816350670354687873917377679065517462527311674850067914517835827886698389244532235435061495630935640030921685765695563475703324302972641796424368158730148635793858370558803978867492011207077658892758098586923478030600077363294516424878318357705416015800168974227654200685692188090159902160600513021813972295686188379094611288178096858197826251140868286760892948251628178005620322239931243618135274794363135701462044353039992767771960306665202738011729264767725826975106577810615234183563915170127966522631420017690449992676506519783546155462910128535261463106935628866593585588599257889641908291781042014424076167292010413251916288996895384485052384044255476642959077893399944934770639638714095635148902592679819232922065046923603000791205728657742522158722459273903100500017921587869809585080887939247859326582036219771708675605368638411227737781140690520387459118442194498135117233425957420114370097200225786837820857665154260520522907352239033731489012530802724980425230686012668870457570709797174756638154229095029540919413539211735485125472553081142541397390372043731985032797401970379926598359464874656328897357961632183854942094328149233677218245197717185121300444173558231790831575204877739507219677771239648219186102064682887914121167780972091545975663552561789723570112687574151108484871787110148735844149237089661084320639899980768458604268818399767234416587960895925277891951701630035028111009698792722599732853254496877665391770036289002219715078733176594001083352896219625633473476953554202022766655998295891933633265492932407199368886262028826794582189164154203051334817092990066643476427937569407724041918195122739561154148391944759664870292704027421391304951352502919038728315314254125433565528639306962787665683408302329081758798857673779353376998563863047181739095385502670276037635477061552965278032688289962392080102011279576692511578224294945097743044865347590985966195076706370048650146878838345297037612361100238039144168108258463503674713773107100423188576369449478309826012256896183003768759912769832282444095098940200421411116011339349192968952229235742095507626992047183471184712776149992944710282354817952431850114289226546091300592223482927337606505872169939474914355260235269269491752062938013214437410789423985192488433711993002168389684303215513787001722135658944168595022070921692365793049251472254415975282082466686401776558341283298376958266512214357885309490812008324270888608894859890356178845688211068475806382422817932305388747071551440793114219655500819737312663357653018789347395064122824753966327737058742745840668928774552583853114270046684779504498207208476358135572780410250432649141713231123282624849100277699385234590386232286860504922578268217464547281503202712529231172578741560173460628368456885169925669415415981955156583427960004432268700955709986411779408407279412465772788022804339725263027889208946728266664084753393240729081323027800342066767489050079364442384641089883161403419482923166108806198199478930071802913608342755258576724914934472025184161221027655458207388516017495802441311133897983314382772339305585704522099741190196644563106055413335226052421114081574844182508134730931475708781671692877571340758429568394067140663053465932081398248957057220331498657360718280787097993436075877005748387852551627272094756611942457410473161285724057869753830959406642789273878294877716862416786337450771805073497377394412901689277901134067831646749751877266166892973317295032344437993591714129030416509563184687707595855796236795145999363580282017403340345349390703728163617529313032736385621151876722278699740394485500421833253027049627640876503228970602271755512922067321326502473344246943073637107718331288209867312771757326683099082235975824799170338482769854101172066301523068610184484464405996000313264476831455547065331112643615945261484896486563586383495240073330871673749493574186808890880379366881622933738152198821817651705503164187197086934694734565049652096160372632024257133701764360647053434855535575000040025673936096831234540980537709046855809850158769800804143443608614899594628575354296214133910120003774428731401235384807831698647254507785262080769892700465123724350974195202029044496681322113998701744539377771740270217739391504403775276362665424361460391275862859915309016131882509163361161941561284583042377158777556614125390698164132896114609672697667101215457652491891133827379171323871535504340333331212302777642282308520528146743143050305510142931100292282292555332185829179468066002363744360896497474413593900383855397106443837392624396830946357817240667896225485590035513927473439505057679995112496125185069799438770711311310029973842593009860137243673817448104128977990131290315589499503422987749850841766017090517060327665491591403681723898777973958572861118479878266937900531002402044967018309491684849652844107217955210114147586903877597666913890028541267251022319660827245608976206856378255267925799227260859931728015508129929818079917921982885596571067127064917792624774460236264668161886674146857747446718789883999407058965839700719675912857245614862652955285994076386446921837511673674773870530795611734654599761524025841339566099181166577135191526751935826200058061122242650845474605142577241377701961098890711476359911586589843825295885230114703070140626929289549055015686595843360179994976422680162195476048789915327928216251007278230294235617421972473701144183444310981487498607090472136964598374807071081295239053901937728509846235700117853739635173113196321862390231332496590071200348480736811198139004201038543365969965323535016009457193713833518770556280829924186855305216339892335811883357740675507321169662698816980014499655990585269270874555634506902445973759709644133934383301813983765377280437775394607176864210204498616169888683460690402189203972478115527441810503057262031682645661709571493753842215387417606512573892134081596080698555328621888475500579081494582940964239420096247878282453504442087148704708993469169262337317161996597867687863350712410461127578983459337219248448660610367928297209848774348811209895662308678601604152621714723003740775184501616586573677331425119857466037168537060184511964791464538595241364891984003495262366606990017486461653259189335121830413355093640080618813797122238079605984247969732875207850694079870937517739022857901096407774571385772408193907156553214409919536652457774615633703772348450390274829753048808582115405059648313158939589193363396720878645972572806721635061951289079898476576962844846793891203253480805647548374805758617310996549575755220329489534160320182659902818131000341884387959158847249791118073112754147198360843463597451689634791525510877727438083423717813806415792608890383308629328924316265114298903323958112314512035515245584555983747059802456242241789598375944218472896758665509635534012045702217419757930045193239053717626259129807874745967379772861211363439368205133721298046041048907920579329075805081612474568463476674156798411752607381513018353322127129041330779855417431954585395144331120793733989342414853375454900806435176833528052028540306965331103402415166113312276760807908602864876322036564873804696635584560892950559494238454618718033499394174423810932666834717627930779970620669294311609264668713874190165798970442418992655089495859349920572309775748888622809599425969860780582029702166118747892677347735822355464948290970333223399828302723686981711797505375681741914358966124610021589621186762877630768041671738397792692247819037889122292265056831482263688751702266930667020401758667340087898703419708979440935992740243023141649480520155159673729425191718808639961908396666413916507424456965451263717650107193406845093865980515543158579734683891822831431593973094937950427201423619307698137313455318653039553262093045067581824152217548352093642240772118169213182929244545905261634461002061537867425728854167004912581225344349948876406164149626320627490942900993318708023875304083751148744958512333163493446243573033767383737716447710386759363573061741282464957461406545130154035216270310448407719401440517996463919685354425965487782093066918364378289468521100688934195821742967324915423049951290819806646961607961004879290847928686202539720513708755096121461486563147900513005097752392679441810630561549510285278233435040608480438810673250457950259555603999045420157550919510745908218120288243483939705601863442545834839294307425785055819161073153428012673381735428741881207422994619809300181954794621258095188595316149107059882349402861730461147958639566277670190921536355340419193994679494790854163833097432511173614663389100915319682738339491568553986296355911201472813127634670314552942539468271083075928431750389498511062433475125469960902678890561174338355618802893415619371664994569655906107866588493305745324137438758955047390278139107978022662876659795145319547849275926671741261034783418160906015146911310942206501065691425480694352113713845542223161527157329622465638865317408034475055693531987654246319695080415517265855478527810985346246679258113174277399946172650702602617090741722344907857118742406605805366315613821084596321025866857160001472322708461324215453974703905656950286204458263259881800183463300917781333241985052843540595723989151026982231542468875233632292716373525220138612551937916076284306950342236097859900905128640149348368023213818713148133369707262278061062062328363221766345298794837590887551927582228093988057901684251986949819180489333809037470061995449182027559412481998203210938592136264335911098683518695824086420611113781220446407516199014063654354670715334111367518140821388797204656332312223039155052652740033842425453037428136778956190738903880262528862596711921394136285097517610001870397988143965591410543435645684375753515242012774560830438892849678412253837528858303235870854651142609917973998597133630550257153695800859404063028984429220188380071902735442532459525256912303087548825291153073682533291038982068776603303997866062278476009298453306742045812960153535995072878938250002654860534891651557268299749384564665886145505253274055125925267228814630307912290386401124176832950837865002336689672359550028258330471059307536034527100000951781900042869758035073208476706723001415034926903294777418921873459676275848163388787872672242512053952317671477795936759407359571480118203437019526932515613480324402141068366496239835569117018406045599892233326322919034009175993739269184220681972985318896968203978961186734129522480709897657046526491497220947406058110429257840178880813494031287811196891755834113179105104270401061613461576003138043834252821681735240052982013877367863038947218853628068574379823364725379276968531551194377644018548032295248428075129103490270294219332756425080603825159256236349989210921080429970170397923104500481589239705941043270896166166955553911525672783527978398564404482431173347891111024590426885893974790384848918027534798203249794902390661769658460712332012121221575792357153662187167737803483630537574033140847992575136013512995832694795945218326847829555152918303362801451108911226073375882800084610960221254040230879510269196522654100832994535332142262145096659381891423570695433184128913613131604064909900191718800333086103354443880215559853018286027969465343405175144392333435889701776486475126499060388097869981150183621298862194112914247412554203003190529909875456835532755908561421199918596088969772217008548776496369176562094917980681776478829331972321526529093998673213020588023480184041876400114015949571463076703332603873454160121304666963363259188402687006268178461365192202751948888712081237591095528653050537441435181760545828593481036066089850067416009493800068292982693420884733332248932591664871602973354907867129618043512207752160018806057383937933794021964380907508407208101312144451295769732355477713353358864806869513746115615498345952943059111844633984048354428720372288692798051438547120406632761347280992875318809312229197279568412067786239118282275523209846050034454027701449180013615671867050815256013842169969067731411062833586198970983492335151217282553603636371614704129639050380955991641545745161033139286157837735954016627299466734104941725324873321896054654987455807815807598797665751363520645338591973464935551542769350930631529898606364844010961063073984961423043464111989224114909881246958683603018382518965348265277004628121338424729368154898019824179941819995050023195082912757782967925281137686109234735238522402350554473343357337520195328090295924154962890021563489800598254808514745654976654230729328535238215807958398394733346373688014986295382571377695676641222820307945010300381076864535081485936744639207844801461187422642328517653916494233554075455950707389012788662235517997709291381419728605129766877687891024839644120837059611470528386100974536810416441675689085292190304657292033191862825775807197425864316155274356235835456851009087011040147237368547264786454456901897187041881985050336110878062701313371131530284078535252134570338339041713360928784698600083150840698106740190299815523702380681511635089276213546994613648750871097524262187237437156118376042369931006239193016350772519164835745975739995454368569961170896379435639007658176824980301373871802812885385763796835891800617547226365379347972405162976463951766409444200525369020497448188749105375298566465664801576139857142230645085630323356561233856974017092103618596024979473199891023068759415275053711103853078190143817085383035196646021872106354859370599377677137285695890887879652470533674827302735127141202675656726456198647699239324307143331439008328668248385950124263990495755517891407469315321285283841931796026511953716262166504983416696901374389684656010295983044160125221581411328397312374987008208323564583264700727465956964371736873954935640842547062324080939123589198476621063625362308914309491566172439099681352339133602685619607574269501631986064828401662356017218676451091139932910152135967061883985697661444462730025633047955672145822261610781961344310120961785322284409748235502743957417205478860233776866458288399175439314409849521007574664753585259486318234550176621234671640287590363638154755907480193118867214161665549582590556195060137111394878632717851445706367144689017697210643954391407134222457075163263616003100205348936590825386861778267991224612745275800628265631168164379765822570164748446598590228860767779020249161054161537046188357242294547939865241026847032572991379087929309643021997841995078777029706845543284869447757586927790788416744992710675897317367609768574278044215545208034231915692356168034715475029114007898852668286277708651172779557391291526642110279878768448029476059795442164198973307077388374952742231487917717472281569506890430856396967672649506901256376779371964888971971664736963260040382549394919787037208525419524554814291256906565098390689092071444225707261574784605069465613102837663260320346288733095474031833561455731850393078041275151931452856775233355352869821328602162894359630522506575683180718111943429468769044311788536412046085951940998094524240453169134373473386447525477930678333503689169766812123281275318155657040568252179688242409061358556747394612605448320710243898505819125701110639737155649139923688119793290285492241221674672117475673413510081474965171485369687240604181879163071109875171462418184319277503275249969947313849070020363460853806420569597139811351632704215210062416826526108908626864747416466619730098103334661520579908949484346610613592483092178139118345635685726830108183281597297991616627351251694467478072998082385398698374204729783807396825818812848325883443996254442444213899410094690718961709289041951110953203163956041855764079760554594527514866225332999653076981528399475523584954272794566753519584032671633916168474132863343518685448611242176881672933903339634192918909588831143835948967902530771688047540375512252484855924003635986834214895511295593154581082070357034018229614433513780227134835092067121122470150718489048144764487359428649796424459958218981764119651292510095592265138797349840409052000689689067432462717107960832748018483240954826753895501225093634856276670496791871566008069854143054963215207933621625754990254833003976698756313385413264705323978660610084966189324042817588090535096734776510948930286883286879131840313199461777871803278297609265393917284528222074770807475833521669430905963625400228084683393660094942012921255316183360074071061867550774846471617876391058737820696003452101197741500480694616671446248356572923919996564325504705024858733257759205114515505311560995576725523940673848403135974117235161201062322074392971285741688985652425133092019979669989619358482909954438151579130441065785907130925193381711607790346837986156714776685399934810640938817295098210598953430505069141142964910362928844989111982813385500964830231652592158511905509026942604817237543761082403423193992896010463000429321635711849832802421621209689378139494628155061482720439497212651738080345673400666433011010028763294370572928573921678489480215863705463088415187276466201803124436162862653470096314697192382535770147469297404490456665529135528442556642338810446726705078026116167064330849295056394125284313034409575000724686931331771494042701587605110482042278723361801299892160955766905265836196829542000840661298305238237970521624956667820645669748587542848767666400965763968918745778805625034000624300621666973845997135981347751557055023185724279529807754307072427726784923896078978852744583084371750504523217077772793852056788750068783665637987896715575642142927383536994025664275716532036494371138854460160532815779329256549968221458028400068021147992373725391636364611150142429303864283104651941768689982091595552432946802464251594276173355776833322722425330973865829474698204403753179809843100009340269840032080324758408092441452154330600784143091625034511412205208003755034233379728510981684001666946174190778234509641904737274788683918620237113422402550776657391315660721281000833492148338276215068384012763121532342656954535674877832314989822862803056479538171603070910227858852562657191237280882003324502097642194497237096041851449642728650975824940092940196806351893985721490738511670089310631540325804352781480064913190148470594366395255226670648082248823243809298213916012067233504357810610753210167255055942490320079035675751716124578141684647092981403715884230280565160845201219895801143721681965820664511537406354723823525616390426247404169745828986772602287771117159859487798918916108800869356021307549374529541304021693499025369554406312951791329966216281677050114322696253990043741225333167402915978122551352095851436152731358069064391386117045154609221169630409731356036244862942995570164217696006687659666815754191627658494712826556987275228964543798130155376386902154410783372310086153212559643325688231545459721386911590775856910872761744397567307314662383145500530421142944966756205108260015086252631981709378187445064212180574609033156312254307542672682792388075631230629283776219416139917863373451457911902192703866176303257854832201942209376693337527619163177975123896914234113449401342772154287709910412010172528564170283342217766857575423104111029212102354001297077902916142771763361899465022373374304570574013585341073276323710041388023028920297766320951001430108561020583171802028006301816288433903139165224786295343569461594855751740671673184217379972123649093255381228137826626528639327396542493249702683103417551900931125596506064152914873270192262828259662832270937522429457706364874080726416294534098479152970757941781793554620889265159113102668629384334030742451385706532037387301342409988713395681542709032424275234514446462950437075350548359599927014605463540014110177683203501052587083819464237317168022914312485031028529586688647463537478628530645648072858296450986378098976701629489672389869051118195493060125228983753883961529212382467472174769836739420039126177441034347419667670574770939103519783677132967358453211933636181082880090913417907587875781378087323794042988971640805519378881289343424041784718447456698557720520021294564433133758723776713286086781908987989169798164994131753728260471102535516129897242156039933915178194962313937416016427799335330983860658080706295275404690281217521781808999036800058123402408809182704496222767640449747003519680712443256194726107864139661502808577500026210048574428079073849754995492588534373925317184778083208286879742267033386566027146665029973575090357400395705781157139965067413158974717717009882920634283015668128970058708151024484583994148695348065499403943829680167816754754500874343770322313900795900462301732182459330141348085327082555614134134294140023796341013684444823991221825668464234753118062838312521984643052156762239407821429187664421048899923167657953475172373816226061731041894515392715006848111894845788722642450826045016131622404243292595116297955483786774280462763812736942121500782708825874184603322385896040303675765932380916598095324767190430833467941927895048509988427225598168801708474261958157674793864740772928460932313004265181222570445873956071325347968311688011035130062860317370269788409860673882191624251588185546500314594441421260323723054907494757998037882298895978855827000960282666803438375137397000502070597043819471145033276996820385319156769344883174464775179168979341398878046176212002056460324677997749417763217294936920841533898222705033925312157060326331012587116781513584491099701334461396184747829896431760786603980602696198656155769013884845337460746605853445100269594723325097967283740356780759978752057086446223342547367566821220211186072887901913131857855887838475101319504813596784821489397475622657573742784878794312610207435992129441462918477789855391128191826699091419878445914017128561929326113943535609075771446512549812265405151466913692676104238883576269248625756780307757131899623644903355259663476643137882528041957910483204723388087449044831556666534358636145805111859993286665182292127142971879918879781889537975155860372147124697970962162202762691419314170290244331907943616632294494831188371575307558756312922462355741352078464473766477085087306311478719134958607132107327023678082915165394314421250842389475271866360166772796768543375826736801598664019547883946701923738645106633481606894543826760233846678408890262040017437187959067804161246189091766599447346507631678196521168559449296551406769849735046161784272247342792504386900601665130582263190963344363389966501781310200680790315205736496637943939218532688896430024934173012178823111843699350038597045833205275767800017251047740019559602339105700913926200298089538765704072613925919581655932895697584465765100533406483206776221735805071690600363799248748239438326158652685044813167301657203494129709066513405891278309738165176204816443578678780416335951450094770652113326729063039569288597192424921362552635656483014442155248814799826639425281571918546147401750367831686231819443065610891326072611317130796059005988059002369073252519562298127530946937142140684897136178667111289657592017740132831206978123753161888770407678732363617698540643221083155124489942898997552760426382402286728324515211687393973268264278934466503322833005697143874626498271225643234042314796832520645709604336191867837622206981491334324590615606500356791851707974343648678529171361767121424565998191750790849949381027040202770290639012770707380630768440149014774107420072488249805679736521313056970642750726293767247155429217397327774414738600431008868773560963942259174969018225342797709422558148525579029662262145234675671800955061416803313648038321965616872105862942264454250375019186616554445326059789709232197048307325552781550729974258016876721047645210003023966010066815137927708786749831045773004280484792936418635625310513510092981063361991968503201778673381477981189274584891716604344769722673279283186768735726679540830080066427804214556499221392483306806520246864368104503533836847797138875200503161089199170762101424353650146190807759138468112512068563467168729830026910317973535549638606647325985254831273258578997136134958415242295475492085621744216260997999818693124654578706958267370332994753290271921317641800199049946700263880229012506146544426704057779091990816417334468364028882273573249497168863118023098140274242858799779175560113551632520784390237171341403052915947028523712382004792607691370066955304823841397682193239894525227717398882274188994154026619707766469829338315429714881903493374164423842478117090333983741714680580943464950505703023743724796405952962962146338633417734845122648819267679539731433474358497100081691557062885259280427756862626880450945063917868134319263370838143861371580804968285086370344892962675994867852776914590028827827705902944648957177615955537389228386101367609724146692240795126719238306919838416979082437253281908107817545911435744501964419587082615005530082338972856660149986413039318037320954295906483575042432376256361990730147009438902532097117925934226777878726124183951447773205062648989984937021855783345351053922456082462623985654324475917915797352793774343360136257477408073039756825649526451348279666154659865092644321249577852406148062623574453746101438664033190925983137404792702959649009757247381589071205428429052193196488766467922843651132709451992344487599989614561652775851658450150897428264536287972120933639795582588434327522851546573259747662772241044788028394205881198686348552951832501082654752158355137619731976927842888732526958386055458646131704180114651369116149302121563421366016087696353873032852896596749433931347764885984919634259585663827724200845246238839899723153053586549053935447066335759390243887602838961954968793482748109748991715555780801541605174569313169581036645239316501996973040699790043483040450467890967627911010888034999576739764937909092018385471420425701930610858419498627593812104405028535922120233446884437239506823164650399468196646776579556716334143488722207261228776422632588315265653446191449357687888624281410101005184615482189507497617583117514196680448685064237298878957755029550773741675750984827410874571099095504118008516141871447672152182476907616322709722197148402466074269288940237975646538054835883152063042903636935946728749777472397381337838474555447640203722972544453401540690454156314863482372073061414125727615800769947841753848247484468479871348201902829245294995990198796013205845306429844807847672785229699331887878123272899449615656607287967361237696910135006363347534891561874891650281867777566875944724920390098690149826868604322757105311575793418318790961763334835370596663809216662672489704559458432011868159946687082085915377578306912142730677870056586323472725020261475442093621123690560151015960209375486773584788156331985881646503365193808069347083369723154249863835044990176262052088823221772662307184470361366509814245920719338869668845502279477027571053611126590277800965539531726677355497395324150975985150570758358707370198004703094539202055258271094565333166880474773535413218754851393028760688488243628847895250730743561153016057821807948548730516147983390296685859200836091030004192019444819427504935398593255792736532988752196634382921393174520534811612734954144572156079732593316810097640580765081639560351167166531990867509932867715916771912333953601577291352526861745087175190271719292401800359757066028057173755009002253938357896714283489521972598171337587738570280244732448577464626975377954445734488566312836242227522737878189484776556902185231900525763279267216146228029363410729219738219686408583715934319364935033409396996283139575488789077207783168267304227419263609938612426117027276255020597374656333822904791077929866313641486644249048404841427602546371174842969075360765259153173076018283794527194652614648602486709856456077472920393502192379379249327557616959502682447559944710320134718750490935549192003809813704810797013518812259154833847986888730613452707545526992191709586760495145133377510945368859507273113159088369171712388729396332827812472990719872362898367175497812927005072951632371832887732621299010932666088318816391685819331820093401156427473328771389738550206591434252813877591575806622545129712528548956530592138145702460066868089237116547483754300460872219471809203774459068617092560110999053089174790209727547142127432909847670324102610874373680315665542271750871147185753781438478038364911992246683352169301820152926810849261460130619370438753483894675087023181805225178398391503120991907890826317673673914106451888034890635309823859425526893057773399299532400506927793313574855357702704421502825015326020665481490090318379434026819004210922610770674264974536031234045455722295147220032953894832381817794172471189781119019710029402483779644730426312891608428589051927997179006957080461970272622708896515071352991043278659488148936709019625676229683722115426142011556342490439312269326254903709014489595084942624194524579636313751355519102177294706870646579190161431060482696422690863761925458369473433374726814625333300874735979384714954899212078065556989439914788376683545789169254510698659139079689560944877786894279852591568970117884941236616165043361912257249450473928736852553220434247362899819054873961989891990004778668378895169774716685962933602599091960458172624887481279052825627831703039801335787138174490880482507510756081086695916658682681452986574471820637715504273704718086280247799876969638925646487177539765118162292796532189156930066845317878791596842226901056381164428626925555506185640602789614371028889908774166712907358465294939015464291077664879302003235232195255078517103528027843635469876073313183830275893153334883078393075744988897637476115653299497641024319120697850106165091463170521744337131640860007530878120325770387313483716871474142570725366177081664469946167588881753315680761177962575287689823443543627209833356831390102052674990970631674833417894048623973179341884690921116590873381102887150907223806035560124026437860888910570806482304855075013068395879857927218788741147946613251193566536597731630269060167804592907748247154041262781746149112109219659883408571911964027626737114620939573110532366400964138004556347672659694533987335112481601805041227734703297522776467193340900150423656224768387505836190594835499334046275027715953745079895945039769353333301771346173544015838728280118259398089491664781801179516401190139702471331388723067876847301674246014138572605062137778234403535055347562507002278212338034435586356072534452774911792941449368671614478240051731518191854020649840636029436931858955407521679722640490470071452288548004981752909373038576850087478014660318581884419637543309391541942527615516980161549120651098172058479686484309982854079285176920255483334386626713705820772361283778489039945805598647541231923592168905231743781480544214253244283684213806930939711572165324604162325400026974520436401513339043035865006153230812597344581922078591931355329493318809503150065307970537777292428560765185864931512561855479849677644493242280082600924118547753753786198870309462312382385389618588393294897216713697976501893754541381798617135793101464654454871279938155291848421943163578861186992591182336692884743345228160252998888961154042403999166517547462037046063545490986076629760201105000194124166272453698474210684895239672165789048986945097329674088538337396467575524247399171583118966528621752813733127817504166155513426222788841797005135049554041902618707682611452069671718440607694360358065978385473990473984068398513699812792731512504860219551823085599698886832636071465447765324279667835702396980714919561077251776270305528485970141209818311201326464644690717453854615537688070541474294307031888018819128238098114762227771680269951548640380081488910525223018210543306463815216884099548229431675517113319971794755066104590444839112027288018661452307984313989339044630854175220195519911060016339586318163124006150103073500620829447472431190741546766223235244083804199453081516715212182336396014728219404993584120013306697293550035623777018268437067022591146061986039688599188128841374525688406711617177164846744978045878204018439321165717395636916822129947529356112275672930998765703971687084979562748626977423258065615808084823415008374888131529315313448752072507049733932032924504826109993837985138437073011955238277932419587080753635622267451706755184983178279866446871562654862274281384789331791752106815454806840234444711012166766962696285801604820610490708382220216924158345298062764385285085781642479595742623021975761053141288017039084972777784203019562840633280022198905869944126804983042134385401299951477549977256406400288075183252113142560985651612146113611498576618139979107626369595778573806036862603081543929750585576267595472912604326654012956584216375765816486417131648899790103795678356616923963020508900376950305602453621376700963000452964500659503436117681457866213995148039938781028471268413711650740141251640399074823903869272927627204534897185814657394643844541584976587184512968787778837272293926823387146427723500986063293401828066642055453210066323490694098426514292609065494673626154758002761826561012140661468260082604969187599152789983182825426380419852332423771269046693391143993155973414550885654218068445777917238457926055237945004446324558305896647937582796227087602864811433234968145420040176317141670060377264197447795327292169886043531819129566925985613580224799640701441568199698726795560299602025239821945260449336041095309058535499552159974133886280497529869408226158293922154994660998532040315140835924002964344910653706274177318940280354859379682650514209105841817753132670730322384030683653249865273482067746110008195726873821162521450832212232681035544253934991891977895833766186311094959522218121533279195292624003106881840382945975082101263016417256177318542092438377362172419414858955249044542232559240140204872867283248527820206690553413302347826734860061896794175824951249414358402508047808880317557461633999918807665158535745980780726742646346991035595641046871611786039098715658442283249354541069131549398106575063841456943337778225836939832342140873520592072799444621144361011426853680938989136583911216678520284474987966936463790218070590725323889948323171843531197008332396951366574225815770694994892528817431958737379238799074528245999970337653162330762589154826940638971538271126099091214403475532166588092692208573197692498245538298609871342106370514472955907872915597909859680538713512497178804170018889179412409748834607815211446218818144743382864971605591032299910524751290273120899087727189242078568428687110993153841053532186082489293280394991481632421171765187612090288523398717240999107074097477281958793480459866197215975840055442158684510896290621071913264242497696988707067643291041877616684124326113361697137220420750564695700435005131478344915839368685770329042702092385194833678728437467798293129846174469848373244439875576394599222945067371861472173510554599382324054326724550797453834480928752889351403043629347960628052416441390652875889516778008468583330794724689367079843938886027405466092357495989356989167110817339274257692349082182222874041909361277403283585364394037613255788098363025742866446201733697969131671444334926198639469154094004265374053403030704668815544725740189959203843153098205167496787950677861945384907040520172207676591442393168009365995232454624179037966771979356335529077086066254608709879082165634521338757194414085339235342948648369798702616533945903176381206838259166017218078889523074892533824466166754482327506279237800869085086868468611069524547818870953509488142237189558985767632408971419548904872883232736675896688751129965405300493870169575557221288511856533356255300147880292169765190598528748191123526825222917311772806841184688537311422666741425915638333458683909145413852697527922461541803011973638394454386803001048208704119279955445454844496368599364350090492424089625987711613871697655591869978541232936610093061623813170701062416861733014735457497547831526318253756227393312865314132614556345068576419946332878298807114726630093568231420410748157488191824118915036811690329287722236418011345632250703558160577151748090357887151058553616360486906902820964290561208827847210679951403594976559623396657252534906815262754397176671050362000330146230083974778995279417196885305574203738405584005195352181815300441689392600816776185390578042611667815419593439750592355528061929815628730046480152658231589674279080485077416727340658052720204564140711432465941029264881464043268194047072618735835968890829370420583588462069765125472699139073382543940999124067543569867905070256557684377794535152999161601254717971484511937414553710387891464346302567757840929723165497231881285972842250542723307774086188345945970908535211698490125904482865794837899737316385618584526748055250058434620723423396296757302905428754413333609846863522913450564753858596045008449752472718168060442210131303560173362061142793790009172327939491866322478184237115866861164392945474262701277957192487373280806868336009806087221466727067210552348802655461016530217271104117012853728667120390449947197404729740656948589251505804480194065227011801441283211778374063501586721604346528178948086578871062304889658919290161219913676796345117866778779985126040259376806878911099568983591028997574096983532104193880666995138599473245636000178809660533300163029066591249825707811228231671912823340113291115104820318080595189578898682756791756118855440881058769865663930137008996777518763978262397475178964392267482871801767069825784559850540369162583879331230679705158997046708957370646279750732948480786997581171491725876892974712303124011236497605990806771598788758535799625492842354036736324816572313504265067008541102501001020436311147040775148377908741210572972277743992055426269652149480958477735133790388567513130168564760838188817801254200191819527167576104200718402451211273274569328204106875092423752603405785627187809344475242270800212328741658680603482790151646478874913316842153033920445621738448753190668755787018682469678759791586395413863673986856048662711293070218500302418495648493763355508294816183669401939017733901599143517230492309714942119774477835248793410690984269162983795471512440283490083093019795866495535049810950448725827587387223830829127673449308219315502459127299238094836894753745930742592415713990254899752573405012082970041225588595549625239508790517076417207742993116386517440260018129439140747706549135625903062576304982806531159659962190576084575809459670494171016253365618314518621124501620627960014752872960008548400465614833097609959014800020669449196251835072189180389533630561848545018711320635397686755603279082448313324066547206462215757158147447085343153779367937782314329162856035829663434390107412142453144391089741197161852797607801137902201667333182940464359085313151679504195366230792935289885504253973539538742661917497149644176430556292929442690218571839230087591912486640009637414863227400954695346310173783847873695506683527872089753122647912327659608476146394561173480925493139491304117609833281995524781011868751382176774878225922418234750934261446424809752320678681036133988948364619465451808695638930902491843491002114782650369233823383572512290315099459171463144120819697461022490543520978688257422196981755958235485646376102576470526125104364134847093253054663180641241510557915923421588624095748059059180055838464691708446667273931259521367357404423270432005567048967385298902733397051753663457982609785382115212789093708074614800930729670215014579232933575434013912269168210205919050532879463293327960370136309204491723305493613233270948937282543511621615348290089676489363772448818734068395451203236423460834567259163262543340071179342152441485387301908592377103013242822565346550698109152186893819577672691675821326074831334672634899721936702676078272188709521838931552653234444679208105253165481842112349201901448409513864678306003618884322396787084229233627463737998716710494232065839882638661956687443284698795578675334504612350704378359883201067251633821085622870698930572624352465623944334746968183007919705832790126388106577622542835499759086215188386389103511891750057380674388769902562396823578109666555517851654629961922404968160598461525570401096556797040592334858364080363387762323286884875002266747810534105350994082273078855629746387283751526649044609242470325856083370170134841531116782479212443879439941198994431453227416043716667438340275618482755507919070819035166412754310292066205354848846347663149670207083702190256338840805628782983744649697476747046196804449974707018005871370629369140176909844411210201070993881468347545058401699085362816312947811582797349633910044007224664035134703649565350568388741457240332127093433538877031796227865614690110939231343537619879754440039018650487765964316567803376106235613016536535892537756827902388323225015508635830993527110261843583658737551783756329814359686484512507456630314323694151551632525292858446488203788612328592433127135598240321282392508466766113750112195748937127140980176757633617230983148479604587709089321785527504518491819741530502565383726023389333136286437854375111629013415265650522773182932110101664969771241771470285154458208014892921202694880929911015151868530303250566181328582742194475047861382031686437837380031560970045489099262830021516260973260468037898412733264077936841942299335960446868603438012081973119996773578607823512542187138349680066468191041624007246713515381293693455695953483926962317700979683192246488513164221848244727633882022496854358685723552711586530636691346339153595813528875741481398334433657974483429841061241591237973007220311764103645959485761267404036014843764060716323006486542008226840329766747033318033385486855662471621110530544317256340325287561122393234990324181933304696404633603138204931098500186184604372119763848508177483657186477518544323440304769242422016246445598407263930815147111587903459723443992465123129629542798399985517937769934888405879527425729250330414680992553748586752037897873210258531413841948314619121186529599398642693399534008755171324642481895850122920565498402031695278783293185928627882929612290364665597894653705670530201433357377057319933793435610650117188747522778683386064148961126716779211059611657295841442918125140035599839514741067428125113615229167049929457530127771859648530632000195985570052320929896565641262216071777338857225637964037516028690858841072781132088857224984555083854614869586121788116447259404012006366995184272074816600100232226388780649833156647804988409026109625480212561866485840718306724451697741687538040668276135796352932603922865980453518364465717839667112183675393556521945653948661373620381882634432528199339076293758241403400373431569356927949036429537330241255057640153804728734386121598492808666686485713707067954967439570744591681927774189720715884727182167401518519435177339196851128351733288338182968702920617288400585164923543846373739900201627148872545720566788610884752020787346143858703134474321785739999284303725446098749213992327044820550375757917841316957929437636082316608161827096732003357982748849909530017243992513988443738151124196207471037490627034713322079421881992467939990535049334758993203204326569773105970212517295025721715411421077015967013652951963146850939213262869824560326320141308689484524124652829357007946809925046166001262322473605498196578471345109174591017149853678954652458319228552772325883033472461817826049806727549601900585759288505259002026197630222772628950366304629358184165657300205925688959018012099600269352720369730447976767422587959956116737939045321378206516540652142339845326602297252099353804607399778127928096688714001825877572408729844394937916807601318002224479031518152788327170127880330154166213068592294926868703610553856167522828349054011085297720773682487128175470871257264561547207984993767087679381855803066443790628745478895048746289956794363434200835823067164367931090751754409929059288123509231469230597646852638309243702039997071014598611454538635664619578577844003173358564405321397012451283440697391082740650463645759843802553872247505529835325776231224747007358412638570054615224016372289240809597331263546413778581013519330157476986287032000853778424879552866381747378691370415304627693016510307742013139445044734090803494888802314500849992454436217150716284660770722443566647710000823992444650168418369039121739060319148585000354003838894310570469849078265379526848823953487898300501473962299929276445984470196696761149281545585089996988982782864216444286757212560732927142587478609915231329426368740322909880906595721588839980527429468182087006950506878598699295413638803935115078598563462077942947016454133228616675606545325794668215091160598781860801864579148165688103640873609618096324199653267998430500848677846373214945761646625530173896823151899450334070815814035424068362614592416250301965432853219900228416898592894265004792391598888445906518305861752096035189223230602383574900710655359917146137272421027897347746370422188800075688088563043820148156309883737474486752980621926781189408536367138404262543426227391311252865434574501096392341196284529550672010517586663243631477340266833758626237132322051516135929432707799732001472822265979937873358180018207529947759089253925144371145078131685761035187925964936738140353318605850483349694267885330594447676408341558993212596620529393029299305530962731470943047060992873475853364766320736578680988334788843745586864572275454950444366132848251249929429090513855024446872847822419094176605975160762575682878634425988610863841055556217608798513732926005289327791083475900311378788811438716995937389829658678644102047143184690003007061505335554700930163888387683569766945859369222024317556221715389888442589067230215860225301100273843564483426358879377303769388109720565783062828697270413910796449416623670358467997575560525768472752399678169644429273888620068374082976816706612225011304638194549492192671926154980813384617547663524264724541293322268645212057154106623425543203934301015882156407130513421985773167113462982794718525136106139824640390010824756002668893995756466159637119219387850100136225737765065549557871358208917200284971673033018293132626733634912450347094889128623705183647741303226470168536121200789772201709125634010304680332431693688288391508997119481841614151848089186462370351625412455405175333666547493371420781781886033089536925592195743864295211965261537043500876333433500395747982090102440928793299771857432718869365017179378382900525368506634308731797783676570711117647239497828264660346994353656996423088385407897434876466002201298070621426802886411886028048504964999417835050114547694385815679427156266013700768305796078468096504726910315105706963331292101395378763259000793527339537324997939472383735080799527725086436942972369857928016486508295740553385191647703043951226890815055195308672022907291755219576014563487190022419993936152337441171453440716492248267341471403532298257237390309946411857448831374470233701720341256523900376747381990961306694354320609668451022353362619489093484666546378472065630917857256621788992725252578631206691129272283257424120323475405751182236866643915666021122929837878209148278861768063313346700771661907536425741551477376118075235250299180974412469682669470005983608721707586091843462465919478994537783221927103279205891784046654885779820422272836230961662793233565150551525504450092251446495335901567235224138639835438327591538069476094680607840877240174001846075068551524891968997256667374724502346841768064020873513020772913259484492607497562239276904480128359948038718813573471847276437456427289148996864847999327970069583211866896598445863716578662879136140910962468083669658452498974128823841328441968901447589317771728702141534834235240551706047033897491864646655842311728301283661944891180437134717831968841221315099410697783197222156459371672658831493798423277120831925996439084580022858410044552384592863619958693568067884573636608635921647364665245604617533835825901882393039906282223420188514108405754628486184761006902918739752876526607663154741655356677334020508605697801297468490513265340964491910023523343428706019865841861324955027656718916294297568109638834078979251842524268442465747845459383799262500553240931685364720429476336559328438333292787916428247518732602835400066951121278040795992924792605464251478049256644844946321200330656580592258837973864346322422725334288436877284823267758740424504361829722348775343173681903613587462124556297206714504302728506852309459163772879042988093654935209186673474195603196803656305773395992581879053544723269805306647190148288135285724316117240168957707315491548403771513196923722098443534234325068526262875371147582599327588773140084271472014249692088458020474113611948503749898058982307094944558090378888605216284162614304790672711541737834028258052247437319717143457341552579731024674056181297686806049474726118084706961937606986558067910183057519082955234923928616956593420187067495956786964082459154270877590314203950165551355708691133961824551561715311479872274021862282138355322027223445228306185044140988338372406081579108556331724315127753466566499037244363910248555739603048210526584328473850999819219800852710876341896834371508637044679122325220553718772176553694943977110894522831128521330979883080753637937193447922656237846475971842789506594624521518026126435571519285020964585816829417237000869306763213575956773658525061730123930609080179665769979330754309662119859628533025168297432910836568210236943459248160420818183616647663181655457716430453033482622926472622820139121222044384198547724797581582491439595109447621205916174499356487178831858733702660896694580996436189024608864414290818024667259008429434301555077692847490962048462139209057829416841776957688258710054039765005979381300797294255267156649775289908979514468934828399103724455693498454362471568799692504684398566589756852342540954156407899333897096536686521679681638647758323244453049232836767472059867248135303747869286462368793348711933508673071131110157941586571263209480871926589290919653116752215202572758241058281690574049153389646051875780811048715691358622050346646896471498932145598468692668734907128175654098789170931938154678438621567154019921941883846265373385523200888214419647204081411593330498098512944938013440196648506137987967348645786845271607416224023359768908449975819286165702543962562802567824464364462293631976537097180117365672775600343463919189306479385138612644347884370431155062426155305782458274993813571015750041462224178733625794471222774823750427448651418930725817914477091284267348069210019108442730855318021071611354438493809506559103437587998802126665325348538446431389981640512047456623254834428735571831039911424605616120296695522917269888015485222447411466053238307615710751721941153852178543086877318552889444344323414960414757457823077768101878424892969520961086140373836944859201912281692561982699457031474863139587159085358483199555969370837194998994192916926535052946473424544297105265427958214562579438657781604050886261590603595752972307014474882664438673397012441784814255700739765790092264394745967177320757798455456671659310830818837422572454369429849430664135748071259548207755846217293228174089974351541667079702927686330746979652645387087658783858568319901825487448692018224093392970526534053947194736061491744974791736026621559033261176568561534026189858810669401315303979125113624787964599537223128164154590725941140318651774901309657259727365286778952001492256777514025912083413638226716702141966401407526367245278005087318947005250379759291089190360392243279342338602769789414503989745451985756231573391306037056508958949632167849734351414712438332951945055487994785623447839147776928413339227196676107325747781504924541461863231863726720914975976423083016617834162520160020943817885541330081789714582814522529517293054181459999028537302703295976930176382235736055658938536881062954624501447547644568911627690879028544458920239611649197705123533233458281306419927517847325619451320215265297895853446408206970482161798075887538937824171583817367567343968755865389368189178097897000003778861913403888622320709825858172634660694083942142145463206274143964602026062781273319103249109385985201837949172503109317351693457108381144548928440785909851009176296824481055623374447624587889817477966907692191924830735230939493606594884394945391257355062402060632593788570523226362008353692394490768133214735621046799324807303052922345552231250437626336526253939199817658127157650925977299914061267060595513603914902066489035086825045086654858222505158900902476547442774807097770389992286808727451272034038031380622350714569013203730636538801400282369116380289997578401453688600928268725146075442241118027983661861217596426244196777955852306521580510001286250605551503404587672746840808446721477770334920082564928889096893729550316089565667099169827796620975267058203608731622994239668666857294354749146952135829392458847463163263591705712321120376847968604119378214044328085628126043255904045280692277962657721610526027107147699718367372334731829433061625967101662790828935856794380197410898679594835966452887949324005868411054054112710895667024038325791087781362055486001509991115139284928538292788161261020363456880713347417591213637898445096383085030878271713966698915870558310783440255154422068355387504507361793991792657913444709291563865808532232745458377308976372817383157059967665857693113575672232548332749808780637926581788619661786626437026301235694498048160644062592411607959206095873626072044502088837795254008743824753254561164312126283373269764390856237118686298437315514105127036732104231600242815147398430398885963310759869742413780405550144388098722691128453410571389902492558133576110104187036467451867200796728804059242543512339156587589434011805172273437415267745115578195474019361957098270138457676719614130613454668553486479061637313923751737311654478280460237827998688975021737670830026085364992430138716511190986397079799901410934203451687435484295540603985139499355368147860899399234489640306307774791649693069290177388766467751014045212089898571664639929271870973876213456652506568460498197988643192979425378505372548677792541934460261245097271425392364404325844656246582770585339602133360643228539805448763087963636749193081313862661071887662375320880078016889466383666151834719320971114124757997808405147251439769316056135507807702053631360520689157767394085758046258723117080556711193199911787892883100172971420415393682452993913332766899787940808044671542037438144300935551351939413842180879464127511419915184727557392772565871692998006388729952569975711116936627670107297027536083465317458630814495289923396346793955330265737197908976521894984205831537847649223458478510556128443011762837578046554254338086455332894355087927202978104496339826709241249549460281642241816605534708994024424421520329235001634837379036306281332629653011935592110482956867090824813562028134269100701109121470149166556580920277038331008672531627745829528605465509996241773700779422252760326848257365297944091616381328809276648382382517802484385968704654131007121914756632006786765732692962003105664439365341808657385906788030624460968325024848006442246312030506957961290274437218653648297351616476978077672890125137798974539560024098652701456326705060814391981061389963105593330283058156209157648306312794291841967160713200021417944886499661870264587047081743821784243261380827690846286902654056539330079959812713037381712789765472380692766036229908240811069887559431010559718346770094595220030578915748439536688084333764002218953634230853841872749969771283777491272544576711700112067620155776476907135776891035257741393043552614044783807687603859687238362791921431871116804446172311446968853516428073083866181683753822971317442358116575549436528178690861087288231158369111977805568304570924048076573675015670026482321481579383003318645728508028405166935482079923346842975387124427531405883644032453710738941564737145286840146359564645277740920762219050538695613236890230759299356977883635507266174644935518227315286736975843706265686571041034787601879938935013755602932124164978272615151199213450136429487357121960040102170417351532517928766132624730143615500497656061375048883301715696951748728752185066831402892318810798078025150613169892529967536278764232854409001935067665737913095712232282473730091130623852282188776151844608629412251208203844670384312331539958048537056719902375819186169232881187160750842311804449193048469230331554947780358166434264147413842896055852283223857364603152534890220848176753979146892189133331155928914035041343226343681415846924561843898628610685762945813879976679681598295246553032567906010969627864026490721065669997772835572439536833386839011892570079174835849947732840242556115541968107438761391245771022298149304797302969108679805527777682667721325400056120987892591960481991761013255503269134488711622254892470731730019109760551984284710154037013224730491204800882815138976723008744603919626837899359495709199368231061231400444350366483093784059935594276349900021953087493750610746910013346487911981249834805104989819894890136081458321654700315980997634047474943498503715779623666589487801770164238532637092823742133300794393658054499284040588031433764723952891900125369275347721929437626924798638562380206370442751771452445498882991083896365243775173464044726457375034491227321096564569146804856341368444511506897423449291790592646587124779408536042782102130122949410263800109124024749508960805351836805265199380008437805730275160321775832322802517956701081202153547137791610223374359930392745199703312251381732328636357114615476007237884610291256865410336051437916972981038615634457104957702900603893185843407528766289027994567786340727496683188665838879736045874695823733330351028487861288388980930826210245828635750050161854348359364408929208544673578667943588338840385926384579000087441773957660110416541283723347608870401219205232396979099834327448349951289202290670801089166308512686013079341718202982298145864442551045135353608942248151402955538394000814331605803624096247051939756062102060505748873947434550321248910085180492322401134177969665206845317400653544650997190986732960236269208311030993938235658614153481585297740913438243543238159528275265466922798228001947829962033894907227292208811615644783740030704301934765950292877872477457896764038269028820194525093802134139879203123584357438190948359282502191460903645050283846550800578539310448754120067986019786864824521472394260338816337756961983004094839574692265528891450992105001061090969713187451046975544854452278574204936678373368659097961803722427737303907549596546641384331089717484189507291808468139101832973868913606330004332448322366968038145090563807451959372870074846666123643562741763096426785087964805253582618729821987453822474684862825652170682380151317308435821061772150446720061019510378977464627537855494957424866132811918683328298322578187726407056207775633042426276917250857549637064105153300191114475002408891987113631384330078004459448068168184406589895082776364612493695128176685685244531375164478866882281885761956231214968566157317951390693987181742909724173367618288541606463353327007927194804090199995527583371147531430956200042016608442102256475755844560136660175156903218792510686375804669112235974981469337590082875556455323541322306566170893680308011364890725423747241701311459001593530880139845053723653016885752046975800364408860469285116005582180554420551862406492814851698566766856026314558282531131888739632277451899198741761289436895980152097106227420887124831040016830539792061148992209940410769310117334469015737984191105508056440430958146622563064481199214938166469481609341847097210145738006889486669625719662267074961114933848414777607939157499558088810745916756238837896346580851768538675285924722812683301902189247379873809870998724664523792472206797619995523560741854347124238055691278543514060490573359055424919013584791459042338251906118714747890670835522293046044315197394099868926706106808907035454314125063597519311526306551161742585659558542316777037112632610120618386783132798671976359534276286999038131078733318682026315074920322343363174984394283800093257008948735601484467557045009969801020988657723389487142521575089241864608348700620288175585270459412620783804127489183782976882526460023455124438125365777606547719531488590775246026373397102929808479841716198664566311758210688685434960810396786939150856739646360661249299775727744922634175042526041579534692566401302147192729519870047433963987972727555552507559523909750854582672955022937020257682290946481570673382563577496213407212613394496941210512689847703545676114932841561412606885483748942078173459191755370003206247300955372547839579507070390546040826057010618901710034964565514189066801232688814581470776249648352737461859948357412262684429547257618782074717702629894604831795585624758056067769478205855998357818592294552456923194537497469454485099081562437584539976964424491473348366760960677124024363727047205273710201292584131983091605706287071219443712590210488039997669237116233549541805136726476255570266039039831931101417196468612522318546156014400907287190565674863761930797799942084489096309695381610626074028465109664848391394548390295657703958706181091954326723995828919889146895149190130396550596932213581429263321550321392593934872220795060926386974421905075804235408156055082519373570311417788470282118378431308032253651396009346520299699225997826895031678783732677975730181453456123136101796834378148235412360015556857605513822473111705860027638092239792672432318017407807511513138558788440530104959445086358151914246280131436514703152678290310119850179347731909905621702331506504468482881744422285127265704480684512620078353613035928970936441127504614025703055590972339762143602527288883798698710576023201535247934136714381185534147853229139931469451095899679933612982563590831882741341613007297972135755915352567464231502851628444155927435559915235674979593801330450495677654412061786127796164808028772290696060280620504393616389498989231350928792119248036909851091925763392210149733161969069964459425906414704340145711684825768578458337614420365315159196308397903151795041236718374092163712364223571720825907818340432025139415011953039655542453324932988850094734574896126365696831630287558909071185846478076957174767758978038634618892916060950340037069566119181231226817348384029554513659919395501791414565450676425193497945623874379809305147877369792176402586942946690035062211205591546769446791308747591759112982202277653418134704843565646434602743221221529626558671849327177405946608185456388205670632903455673824081529875985713791774416952896951866783486566409330375255230506003532919574941793670929320250095756816375664577553043833944466408627427610772688733636114507317467688353092164689443230747063551778270211263597124243039036867569032384766337092685858839213980500971801641385035002888479366539556456985154599431844931369097365687560732531605472209693263399878585129131841610817854184241016583602549038950290509741704452679849100988471812087037967367000926257627249929564725338574694363149661400845047320238809895217311248469373295079640632782153342686186141937479502522127473003237912862272223288210395130901413840314650687917050752410500195920452397561531147717216605944206916752253316440294916590101074930536243961199608799539377992788879149360149579368650837509231031110562350857923408239778440645193597992650985534922535907314804136600270760745077412428001965118270539016269702928826391884249506720492493153240161603731357398728793588251210898338692557248504867140364362234935077250321446073856153479797140805391112766448069399739434739177845830099892550895764364193209169947567952121025549950380606345884294105037246583798280312512320788520707321095874197255212806387067240125362414856126723220827993413120316136347148709824460738403333835914695780361595837363965595034803633756321294439408785199242209476085368444330304561466115431405985897839950609060322763616393692417803221594835559701225411440144364165750845657281784397624793978156522265755467848048550787673562852926322477824737315447659276761056570937832944376291445102252468629450648834948845848973392503454601314450437195525248971830004724208301670395438001518031343333398314095446757997210114999232955573356560329823328940965351399519101652966765411897341615283860017203422590991255024763403277591055262435824421103580355356605217601573733624516041690255437893708097566995419315749542314924348226802159884777733351409540473747174416974933497765891722855798403006212978258623585459898416120836284786827801412699086682418066249120417828409255906713672222235117892992646556303087114031857410059919406472386323401110937875395677522551454428198857161858486029325191138737663531957857782893575893706984389008003448728331568280974509345015349345414528992080600078442109832485131683614080634612323615168105768311748658426575376871725392914862126034828824628522946494307326474976448839190419045740187661268073373857530459950380391454562455190791422672402131404143236034032708452757173169366479427624094974742768354315406297651357419225885329747206301041644149729260464083015719999107015453990851175951753862808352797002993252202639823353054113630879581260738332763163272310042438363689472936722114018526819084266283302918667640669771301036689352016960966762045431473410908600828724959938677384778372692137578915210895926768149170905676666313843652093139575108925234871675048373339301083293584993342801775316287017087669061893903955501465674803913112160770189273107360233972327426005302726583231308187168984864653418702469585215569114784314392420411946885513856446926002479150589631974756058043299243315150182164563364826056646038996089333769731247516816447632009344859578983748446053994136885181142665384891088275112597789794263493323917671316163091903212529325899118766550146718501119460598957847650407410955115865281440035340823124110846672620635356418356027678964927001538432376115037774825222342269563933142857917383381281593906345797314370384997237258559114752281839201407739953331244688272831406846040537488991818891590785230199809684692315798661007020429777969473444029714568733652454376652402715722687467626698008359748004658843309532774020269963517951750018783520388694542693740816274606296512099876130430350438189322711560351209320067470043251938358442439442518997243157126836273513916040224677009981606005091587241103732304585449043919081033658779373488521772335993573721782304451663798457263377973848254673099443976584785850826605973474462940868910350270308527388626486730074764204667347723092655830386054681747620467248718251083990266461500980272642228798866444072401330335880338911810959345602008251906095224522504324698754730821077735383750285408324976073532126647739644729087246910748473763728347368847262729944176564699015671939803337237419856805801636143490044137872534667520079618839023634408763996993128622662526988139939452576893975324457916593115280072077698172080932354095376007489699553172324841305508292566865358781123912071307857347322742475671261658716099534620156923914129550921297270962565411654768286291360213715715299904548925207499981075692261590011475314784238971043119111022111615768091894196798869258895189077407278486693083287614018308354235213737775847789646559436746700468586250736603405371531120320815605823711487031023887646935871557472393014194507814040802797966158483009489733061872332174415261204036354621327891661910972870127908663754235822452952622302436833502586907686769656064057442264070477723200703081748388422874872532475415652383476179798752768069290300448846377345342342831423836025515970857320514544436981778334533353593449194600035517182812538940758548768479192824944506483813630868254817600394313699686959799616148058180014050711248121651499257477272154550984153973443847812305776296788839483752432232643969362455003651428161883062954366980512271286020625265351508641213682679165343507988684813945693618391805160003616800725885915192741471131929166777557757112552800679843558803711626627207973244576096468034420511273696883528607261717766998024213898115388428661753962576303421728870477050160102899936187715016725515945644970284982294236149751726171460228279049902126563525439037483625689385957465479290870366980379510719264710332655168472729069238439955039406886620929711671445712172181076871367957455703818195358988817829576776219978130969487785932867795410044388865854166254697144153531334959554073113454687935069801571505466837794363046710897444202309356182030588285022813600487079145839634423387893599769174458836075587665601623559593788602683909537579693686561178773003182354497042486534751204797527965688388270084371404432484252513324075988070759935106200937455588747018951610310956861310574435645992050714746500718914072320085563106286521163277058400246281567663095759857298629002102156530636039434760363709203545651104976119942191569058946181952494618388865021598869021929213239234227059786595804118936839501139056648502733479722860062971818797156729012752019500669657702741795275621840997833170364312428116992358772024104037552838947580884987516869657025985344017860321570836068391408865222346602504252194702728495508127593020389782062258551110552465188924233664750767540014401934831948758455393231604285679033088753209993078688969678842705009313987022450603494048888541952678546198475031423234071755649695332132426201138926517639520299295651077188487190337999805709792573948939113086738267441115161436934946277840240743967756377621732935171474157515680437081838842048968816222688607722909865351245761913754508552871879915755513931239962403164765539599808682411663544300448528054816242131694324813970860019554876218735366915229010354958131563053891560566230461036650976867758777721614746194887800180965780841567544600680202032630362931977635493574591552701273296306055542429320236133344550337401255559132763558963904760884015338890434646196032799234223335715797395693923797279385388795910117528291624903971730212803007492744465600890909513349306799334288715848693158731502894640093247021693736535794360549636473500385305190226720983414865604852842391441829813304581234230621425088688933635855750800093221329601623226468359967075178169770459372951675231017927109686328262636032644837928124159941311849835116059695970467428165097408738644971131904894218372735148387578352746411762983344516077048407649469366999060954132251720061588006726476645948038223746392499217306819343733441523141932567453704409227192810651824899628748629196987769560591921559827866040407747222437720239951798105263340563689210042687207741781130738351830153515572056027274467223709978762331951089788329676748633397977247686382828665412575516682676951690833010473744675212672993362327152378750402778283718732445715488213046543101031603717764499832733600454440732928496007893451951771368273414161296314798893591047149990607133773775502320135794381138709580848620077145015004231230067850440254001028908939212382115755757786068374136019200999702480807478649257500703612087010649274071576039828005423897601482121463731689464522285722880740428416753789250471250170155733833554736618100546775361375252773719101637055387897700715918114385291739973710404793401596582558742432455985697806647401689144510987644930491824030137213637915810065096119760001976610714997468061632991670585038361626492767432183736717380663456651522215183354792193698485815202718519622346832047077832926406453282352808694529158251901628592637171140042312580551485384442262413963293248790413242857445550354273133086376593167344492139094255022840324172271490641440876830688635372301079465937988449979233199378823467446505967189067460285711141634851945621257134858882549673388194123649203785354749933275891046124040053571875310183498939988468852741635507551593425402986866779181580750597903364013727593621183949424558926214149427763126194299784102134536895042248931615099916247401977392684280744079411867655599906070039557749080342394845914208906967147809634255527151901649823227801959882705860200221391114268777475703200006350525932538334233126845332869908591335980912601384387574457564817785492208079648645131388854370396657086051875432129625744635536039707557573100457332018347292866239205917342942139023778985371343314473565393681095709149357631125417236198307818944905353839504637236256135985100956982506626330825082393120207574568972549763105549866595491819354276736150512912320893044859948047440037565698407498626021318785021874532975137155117032324881557272570739626071935540561866248683923976799690198883858044860986649492499899036779384192000538368260171232013080350465706226840429132873070542917586484179033900450720524754224198878721380475903421234915572877568516933729827230367874923293919296833015500547463071759762605672838635216113284418866639138920066715521822422663362921451392261224974474813586459472527079061284087093830990687060274635782579101982233156946605625983691665417043375279136925730774317704773339302100219620773240957280151993726683846339609863154757485389837374081214937849768335809706165441094315328273758154635718894825672819559820640057274337413302860196438258087070157310442195470983018444454947972497410553352288215996283444698171860346272555261235704413832906863155734654634065165417648529713476178673222509324132579645004549540205344623111734354216607598987724812775394451658053948974748320778663065170649378624379470988379206797355070789632015715987053006803579625126617032482974762965775151481287926492871146532573675770564847151796701872108045031927318534180631523478083616404220215294057712533501975800964527020517455402426935980578517406784712624809774676324036647690400447848763698408421745672533660082583106335724990135209549193323024616924095441337766224835432758590791596347828740009218181381875256272170833561907401038141226239595926181620355797485142982850911975343136536031003471564935612669763899763815101193591333713224170248821929531909668918615491323537846236994247923591343542398188494022382658271407315544855138654861570083502031370830272361209879901660087610329556164388987714925291500097062802394943997639065618129095036517974614793500141990851013343792186363108829405649590948221681228717726605202435887567104216952160763484208201556018371654696273993250247724495425262205124104147266451210645659834726630426325343635378861724011494676426496964087271641328219292852153933832498808616789246102918090648005455328606036231737190375214448869581121965045279161920018328333386408793906963635830503792080948739974474651120051039953877876024346091614844208915737573452839548605564043892257732133648780559537671369551217895260904764970983697373000225649854128482580685803941335567310760553329033389197185159571607463533706947469145993824500838272813964353234575062956285768160043138325428932223370436454680170534568803232015206762429289525765162078914815934308624393679051144497344304390519060060171803330841385565983506857874837934373011577133944800776980067964179713395481892908928679771223004938451058071254727810045856002199359093705942103682662425960801996333813582095704238122345894408159632827310886209089708877563168323661454609520433524927703538511444479356114056276493633350420598098580025733261458683025186204691058018204472238594550822753251415233995709664343113852244516608350562731402898932403734369798918785673670076227827663286679866177919860441379752973670772297933800253003065759671070687676262791189762852024437823977730185949221284011154786075472872419170729567508572037878577606492109275870202833473041257405424048755021177043660746258715954113065813388524250334223264517716351258334348845995744923187804788580420129624456610861617480125059355223909483680594628506493935091205567260270392531666549375850583308428423634766972337630483845620599747991272959974572374652701409581012970062580873441917292223131105485151312807884460666887389979280435416795047460436204373641123941557896358769274826832828106313630192080914159717113493696703412557624388972740635515057564655372992095479422250533785121530567620324734955936270087895596661163976308389401776810018083889023187341457689534349416957839602693407353826887995230024764729087752725416027659619797731379169813005828683242848773582805105866858024212916029898784157327581803176286628979508175272405696189059998532327643238118477367576871163069333931031843253790117592903943259153527461715301456559396013424520921049072775390388639390837704655476502319197572382653038656619890111884858576244831668003794597355013519740329213492432481434377064522787094524467793011712371576686987014100102792844874862515644200823079038812817174588728899400964511682871408755126295365183739438635934330876557776223565603094979077445664240068054388686335225656755790914910623376660171552394072558097262305367781500130741535299956211658259771035160944914246271750521051068328364324839352388266174098988572682529924931995884166954895931678015500028926271984117539468101946028003237731976644574643951947748465067308949778897299867162777816581678458810288678966102347666828234359571057144950549824670392556551139290087269874282503336821104818257520953048043229778385604915142417232516105923104294899237830909036019213423126650972873797970689827978167136097602251108974131503704285839086502422644215648984747499474493799626437453474991682986980103627471308507393471012621657942771951712694410295818368959516702350291593458135456575154495460837168092812107955357035920498418701846360521084063268640025830374477929578423927520124093045371950590536739485133515108002934727969608984494115135650148052634971783309114862934890299763631376821233988501393178706943666359259811269228873109055943528785391058852605416976796613833807155792476266983524675729988618726462385604498275140694175132302554684916167993695678431533567642976396808372191676741516623883332558113977895101479404985318097691918274022481313485019668656738570506615103231226694157951924772791648446043420457639957348852422110597669192724915528618179866046537442370007202812014698636647113742194157679854268452758714325705379162736344961041528717150803907511776348165130533324716646313639137931257478412744927157274757941949254747504090659985338351752554153556816338586803954236472087010602408217795690308720161262916838296582286992572016812376712962930066454065029887904237881751432891295683909256656451677712073035145169280108345101389564144314866197430332889709757857689695140745718971175656412057685735738501846636572599954650959585298594524434280701247923014140421820247492360476889493864078369666691368062229189385895662085392057777351431236395395596159967071094695746450170079282547825401952180088482759624815888809008028106614893242049441306992081478446825891711246849585348888131026522365276504269868508950796762897670947973569827431140800581060660438847804489708844206977020771628996773034587302231432412952534965165552386291365582747963990947376206568253151092070918712016226507859034875105930705889503490087012986645948921177782245569013981929777434414203281290575393282648456243281661821008103024478859210573157489101899672227782161062027186381100386523149872540423755335955357534065575339791884193044583581096509515188207959041546123987065651152232665287077629169806853935472110338541604442124249636450682040315566031299029719361213994957113648344899456823628364431572076102263449637399261429772675729609218277720597249017072183883753060204471301214452996694520088574612902408232331175346329767056338487041342410458720977334075270113797686927103117685410449067521581187672133994219583960945451069656825866493287432215583738017666177323800950202952126863171358763258064748665626917856249617284932892293340141596343405233569501394152406514574924458675548585463350880077869029476121840860310406467619634063446655782684102421936833299847109422315697416285326532253672658410526767733258378707846827762981978270836303393227357210488793247889296649522626309495090504006586666216049452595272660743004650276040356757148229125062818954474861553688575494841191298398350131825552086792519552006338879590163840873479365701124599786812566501063265995080525687827478943824470658059267294014852734481176130220150790624799886979619410323827671284371745928634269893376016844433816786799360730838995478579009578146783136696909064426515452515274647773116807645259743212301813534334860737298331438808796500295811274891124667416522114802966743051473094694706938763459069434214354027826077176955804732888817828788454288563433609120526945581763487021177218046219661546160948261851736516056492043972832841241185466710813582674237026196754894218354311329864912687050449427941923328509121362464635590214739116242037807610401641574976789380292831079484613889582477010752828824116732606402960338786448813310254353278294709047775024098840870778286552529825852892400838087761007334335628646356067023780515359206543814206175745585567233338738427677571292206352998105681021304982466529892192760797304294027886834347011864206698766553134376825280918860555302274177597379298660064363559699592387307755759529856551869598881341481597260824622529924635718994757964885124497118108244928722308281927629928170143840089085518624668209493563705065225008407116719112906241388544340016623826097478982382376305968142640522681687502630054131463546226657266024967144476390909431241545464422360245961704225695793370446835398598394281702098808843119957039288498489483984426018689667536720878362062341820463551902229808177774054298073220928245979235747458058499586003136840996313651150806628761462785735693490478295944669575024938947442877965400339412074435307892082711297687703340518588466469965582090442842960530375003764276824584411777242902376843765792307071466314220549674945497546735458959084003589482480465036481354839152379924243756350853751553326996012668775942623919544145904699345323236860350695645433518635059887114296088508115948123461275851313902721705342714428612106339080987389187549600735220417362667034881358164600773203825406677839766911032129404718386518377087402859366084185332103645449929008470089495074005103958280574926692776136688749685089980724402284948793500538340993652123675277914478781148118183113937498799727946934913084235556752982864640774517276020973549251469763824730248407282276650828034820773787087725248785172778132991636853999359124797964051102980925420961977686664271133664973544508926379088894400572131484637213406906801470304787123303641837286513965175659265845052778223072662192261504314589374859818552034424982856702599469220703861305193651089012779914874661757191664118879451814958126605146846078897961951542390892529475549061694507595455706119996136439971320723914680050157034969630692088303022709395650241417211228719939560851860493020119952788865808861306029414503694694903173578383761413892983542788451146763660248430414345057461680613822145271159296023167482622143211932411364949598792391099056353605032452470010824228294178571015736290829690763664168524960898867971877261018247712461725369162694160517481195545008522125959959005245408835250381426678782090678962355396319534738118762395618892993939662874666978438290833175876430593636063841537775190930617550337372655482798981392671445389776107107813303327618428460034198095463521031744963984945345208423048401240321691293747444895919426091864936459009693460281953266946254987358501128069595510329159105090681317808901248940100128886903554129207139007478608850458682615616148964452248668647549779451876000077391004287980393445644909888991135840707916126171372816400393373200444752030819968424021563548279947025963335488279024118898998364550686884185597526840398941355563699594350291629383806982004901119494721411313700569143737370794286735295455791215716643982680530427730696552073897486713753970724080527552868904742836178630704724246097622722252753584302012559881288114517438913132282330401112098594941077584765057746243319707918577458449820618137694610974714691801109238969762133789403328739900462315541824207716616583951438683011197573649244160501038134711276008236937627805539768010757111497671468227649627995123181799335728647878688003171203517886004630909425029310105183434935148386918396140657509657549822210513473085629042569341423386567023563066912007090343698159934200033181079550887956876445436015073207844435901495649391617488077794989788195514232728588014929730101252222512077766179246591818700796967525681239286433121939710672210938134104652892204731026275002649632863520803664433654632859382946010158918209180322688649796789635341043152333655611201903330298328827698591113305407702112837921553686093673081787327268406459848205128796067829916010979367020721256895637723531825184379933871410589922638299800440861148778345288562559065766854852890153614274936895317342354913635872445279439494563645339639773006522661886753483815418480769506995259934082409688996282731341855018121796148439814020228136658837480853178569642611437031493203281849724266924329015221523720276740117153943548817221937397692033575162407803158520910357224467139149288829257269910704943038653380613139879422087908833571650905292944757877922016288689080132102665808862210664203910714069655786042737900945234521871527965422978147452953805060928609779737025793010654867514352292581272912316704315666538315008184870032051152188174623002814086444903549724929435428458028693711282192093811255784308850853537161095013406914060884471096525433628987673349386115598696387401884218707028896047424476766007831368140499382880858014390128019127068295469198271056366166583450988203356495642443264943353076614434333585632680777242010474620550330450643656595777446853719271266144296210674091424188405887233964539061823504032888795669209309529120712666480326305864618950469830242118991708054871654792081731424259741461808243142620061564495080655125815460378506882940642141410972857308208953700792979036103951348404408718821033307582896931298171806907680209900040249721611252794552464912148891512278414860895626966121435745042704578718851233266781877931203323356239213036494535773008632206393790803162681075282514921946296427239314204519797873849393707169158044059670751920894348361011641685936645013929948407097981329404862339761588483671818525246826384389399689786722091120205295737335918381379514368952183108772101515645060752483672636715792114718057100831054683596126477123118400992008875133266683977866059776748812048510506463350582115419910942572421860355477585198387029367216128819409259506553182955991692200360776432914164434471385007689121332655824893520618724541103958058122461046699617181649721687013816531042095321845198264248112219647355458093233044709573595753674698708063879884499248485168994445201964184871348999171781630202011821433515174882867358610145065510820929477121148270112460642351361080067649428306391775942479998223779319750540532188097511845078779532939421491172581757072377294187690752305446296424735196949745002311062980979939482203274018591245314077187249652738219653087577457487070446448351279903703756002925542226952972124160096345632270231867908852221019774894281162718646422221307586183131670400103023094176467143310246730142220351800140067921675050798950422461415104829586774496681475078107161219020641799609963095413957768737939752602304685600807050998559177558807327939495437405382767130708894617024309859930869270549063266906543063453676641970454824779896978944081078882082686471174068094828033530417609748157209364686825173388485139319290288634780164128713230200191235858034579828443018058031442392390860991376848057112755729407230246451830795106815668258261763954852578939288385578601290162885032376542582046958857721297305514078445519143959430332249107105574186726342960427470391093313268708978423455173171993341342766402133337026420832520612227648795848150711200118726118985211865756173050718887556205606519413341522102632646746995334610569843918559283596303483409793688556860156223807774129822633638953798292150579089155957696898339081856656718284105249747340848837846479744459460607875600176347131790423975268014216730765979138315958383138829652759666698597776871710534253219944668514012340587677849139695202243364428333925637411932941695328003761927032672908548477554181648241799082764768592294300621692332831806518807775967137504812441110173665311898700361921200335900614592758227621681546066212968939495378800591073812986603541303526299284992410637078006864142097782637204290772499713397284251604224256136506787725873663393885177753830944605758804426610133098937115300605432925705574701225926182977833529689512557742047713250479023185061841288130478255569445910859609217624269787627584665625062474550026698863948834727735938660778056068020814278169546425114001352307980700097508869562054710141756829755241334615655360761591067397855616644035252952312681908310382786923541071792504547480112766234896674155197677200372165727689058214325549741637890979520274500962152102559210969997089266880614497695264888023005840891401908596973595444459565192221806828578963889208290255646036034697357600050759376277843737267840645934405074514468632706345700118691760816009070788584300338810631895749069743353715442001839348742298320708929136798149578426498286162316119875778856787786596845748526793525169738357467825388953283352326445853107684250012531565796159326483667288665797317941545651156917563330981121108038395104723011200842981740197427391063601656426842681668898883031045107222812539078172275392581695689823442841298150293844640835881851339449681066914217503546390508388392202998687873652708398313743981274903768022851593353604754382459004097427968720470220523846732680532560832532860409822220634835122063669372371985037267841995177213474004073789260341452724894734217111628707426924706374387801505030939823895331090435714580850947986616538635069402579608158440514304745750977538429826975793585999102540943375575544551321652694834808746082285601921982245302060925155323707476739917382148008268819048119991412938840576129772133638252777648519350243671697639254017710805392581236418943966891432040187412296485367797061392023003452042338287409350116971446581173058859567223031725568135431565287869145104522903535290737850866587567066165938304754499545691687934958427243787294680662046041455749287104803826865869915118587935537937437333603221087022082469303182635819953027501555204492150307998007007563195844711103482098661347551872655457546259229822410881682312705204214619658048041582725465226956534737816890977861157977043125864254304575980073190511978550425113007443834974686372475345306068476749127518639771141569642540791347121565603097105296663051622941478891538737261260095166937173648456910484952670709611797786904209382866676097656525561002656834004700424480566409861296755058512887240978244032529891969024114363919102003508400504815051459679152951515229862158729469261484035531031113791981962638474553948305342111792918696726813203737116689804257986148017211631550771217163576815653569795587076284368576568233633583472773778485898776990436949575891278430976299223359627546457895042967070256324327813807507495753184118548182963005047943990255277460610930783189972542326532961560074503109805956427194644165504088780147817794895411991776517673546147638218110994358310696941259903040766687595698478532399090045155809545577467345072735934376525603562169269273525982701878317524846404472533639359688487660335860965819838315318810869118031034678642817568391069797727614626732704178744733915034878092717930330887938925282108993770047172265214327293602944666090763546777230903857564285413976410493000498737905248594957520567026731381388556533458688823590968951678908029250957968339067123997738896371862231112524275899500518685140557376662988293430731659139725925346169656083364698768225959630402031228785985546646714143198580269568041315875121071420985964217494572151703195417496237048336175432585815272721190850392535888308255352693346275457273105770711686098876122355242919430728624245638081996835207204890483822993289946614491915396160021405698562801778369483486132479389077807448289262242464824328736184070884705890350705440122289411415532739311876816293044494435493830026365164430102686270204366031960122592027705447987014504491860464136799571007510112756758324312249072834657146872418127344538080331539984630386990817925117664752049778451270341999471865842498979083303107383140473894158870769694918456815287449740076112666126331818784010883040214032799239642415978147412579388573945965085630767206829806119903365663471751800635620261303132855827130006974371413312357034157280627653561688860833958261675760241232206287762206514791095378160893729709315606268707232907268001641937229324383953209663254970796259679083014554042036120159878597799262377639452389772038002321237529603851486831065874694487792091382823449504578243584929461271599599721272920874467892678646485401031792219212616862735381658573362469134286617091725237278179249483635579897232540216940612554619604784181690825964087000342079033057073030778722488775379866791388016929435045317791915208223027043272658636749441313931401105918719532683626172031074160944660243105032746157380899842982334966010050244971887554199868897169824287315273742169261032022016518953816578157682140578042842898597450049469635923159915870788918527678510404364361466517713662317176527074495006281431625543873589033399736907189912151229949070821484013352677386217764924040719075141838178815549022184005909090253968316210681309785971578867550247651744894128204113316699858976073633412107531143520717247251246734323568745665413633557102944926906645383646148257668719234961172305510433490217007332718685422646273347739210865390207850183521385015492107674869876473776963521139042286879493984432506217715861522327279221631984141552824927523295922898073432655453958297237648968895502398430793521735466536698932037676593427156290229444639689609040742998020910930899002929769589218309172980696183051669130764052383734192334561443955074475300662467279847519527833483117119315243735299231285544421702846521194249751487247763485051485352737350026594244771088384933755316073834285873771604384522024744021454441810044231559873969364135987307004525090886184708817328828017155723296023803418377757066753840782307101291595317898252908046050599633663526049506717473266506153555163131407541493248241190705725403655324099182618902779698993309623622839714695882622780497835011865470461754168279490918043548090772540042402387779307396212360761967036773354586863602436819273253237900998149869220778001468324279140894330573711209014853966662449041971265894454383766700670970929315113777312411785157564201647125629673310944733340823762034865912019661903301628075499420669509893231168544284361611577570825682950837916817710970127615591881714297844336793584692435433898495402392302226511625627978016703497631015291602243454174482849455401784630010375673801036929491901594300396213663686701434741604545907245514726892277882492136519534489662887791989888561585021252793406593253888638938603520355074792139115291854377991625520874406208658905869578274948902194820349495763720291823442505056059328221751743450816721612238372015747447172476103388382354772408133124986952865185725110577269302481958717552947022961920872945468015117707716517728808658012594206762718132357816009467846840702035844546738776176554174551285521822617001051572911059690160182124919546891854805465910223490378688461872833081416197029659651838084611892591611655969987070186176669212270442748244725009033731745931387094352370597549517036594635611334731907368097908401320150459053454156228472743273383461370307013396221569467121146950039512689020207138663606784928166107294752116642792702082396209707136931715082118465323814578435806591730970001159263743367250298009372943179565461320593613423090244624908652308580021724263631777988654988574171304083640969456440333783000437237952561140888823466834634558519286309201277592504677269460565920411298722952622636667110960773117941597641470658839607901192321586051687670746690884303573718262167772856693415528357988799983804868085520974921960373604849840207281235365921082224272368118983819731104503580726493932662390343995568744696763583216198290834698502809119428749801424451736579061362760126490793437165144251893417238699913373593474845503970608670546751867286429539980159793148878871172711097421727207792985170366565819938633061873233127146538128333399096021499798401630938554175261725557611956980768671183574070627600451937195683896633879563304706760983234148089499314664945840336180166589699322161037921945487548799601693435750537731550824399913155250657003747525445703588505617420543228588968822210839731302664937795604514477578804730149163070572117757615750928887293740393737441560056577011719409150604471604262841132699590086227933540853046944440680020785632016293920182631584245135000571941494726168836157135558055061983868780982962432488795318905397263668850120435374677510890843946307411824564902145977174049707783716283366091974999982498860180104986190598780382860873422295593219118674096212134020044370696902112129690736013171954411119820647287936653146133953315422018157091535959063079588614378841312009064948716232305962442111883396648849750186229764963387539155319929807754661862412085529337954223177365342534827319204494612783886459724113051687742392714621316076713051074024213734464361259593007515856505651339256941023563706660663329803649050519087168319705059057942567313510284748302342874066482817361641545783739023330023139371201231416512646667674552525676862170769174351578991953609756441362872696983363792605379227351197060118049542124865885732262396801564918684099054248227380121776006699898145669315307155208477947019803915138131319310003071515456264337403349193696463896424238869627060489451348220205349748321938941408496596668787685882826146839072588790642833871140143956249261660260897410308669864625149933446571371312514203280088442127303227822025744420072995643071444005127664480040238446641335634866560620768911951909579371553661973093611912617997175318708334300050574684515347996183339850105095912600705268649489965078711809869706294816200568653754923300941735257239201453009222736972418533040653161610937942220912647467080514259154941807559783837082133206006346319148839583978925059710265189689405281467515535701528331894073049412395302272515572278729739697509972041321523924732701998476867038617913041164400156408466016017404745152037752779698235548748192735262773491497995121791267252556156261233048598808099708608212809072042611543794852041717723751198162936538424454995279566941723958962198430836259758830063663511105239421462419982813962266426260713546133406933880048499287438567314755700496052489066368782844426529295584452174823640706362443499835824760677069895705296122334217634195733908917861950622237491186799269163869314701169008997147647048210658329441751789180738404478096574897029833549008395054221513510072417034232201823548876040188792975903642642615306415474453596257051235463574864067961210068153322810953354762785019893898765995260361344235004527365196222127784797967099998549865931873039284247002832808238714581616056816437924114567031035196831696124335614003665102978093453616473623597146910874314075771848219760843936912154288215565103070704896848155942121069161980904865045719423035808380848575216711221458095357598210970787715410984363229618725244715299074117916426584115464212408441929840449518851918274607265163989889794375261182917873119513627761275754677784704277369211967660904712425018079987389983556244881379791597643217802291116348654754306573019980537588103156798542969836227265607658278271124223203134062443777715363640466245053737547059412425939391071668785619247760042274793586327609717094287232967745376601494477549835551279286169911196658199016620966864299547792971325050271454935541900951377375029153734350544860840566922650980588949801514566407341711800707719425786252131949422600706544425473709631227698507336645592532431930581995103126124293897117006531237555208237151678851975167515372011819288266156226485212976148056313095712173013004356189674753060299507331775265651426302109242462461595048254285134012838543536561519061221946711644281742459732260467248142773609247918153186271861697549353663405435046115856129051763034438718005682966254588389144171168764710827425946172299553928124841941023889916680078656611031071560963196788470406165849819632625727430286024450514656877211974337953921880847537150028092578268087294374074471689396717764905072675663807477668381329715108553368542696882420034715888954379819385663942331289175177388055440784751793590528370718546824240314904446226347090772131588129457616641395470638284568317815498061106838888009111089164348234336963629424922907331615130352361080124216661391929460378526775712146622425923565104381180839392808449807998752154797705960751600502092192075695043072104719258722636765591601100872569602531416494515788093763095310483889700067808788905346072959976585129519764808493244265085238416835874256242172462922829483035148410686285126158296448817162101722293568488416779871458707763317387471017096604749794873218626712910865437267992598107171964814018314780814540337622321919137743754486240910239340803745184518864356373877693368353504611421544877092040985538743206612401206095388457480928153833048590969192982297434606125491764169643575995815056607855001217227313641971078926097942476025323851532071331075763227934439902554083112342219406288058194551202807214760914913163204814903862664174962857256681687474519476582323822677759110397581096087027805085324056794550882595142448633119808201523929279334931263651154812424511205109691251778778728951642118273973757980779887331706615847705371601942599283695977747300969747646698211421172420280281500194083870035920651897788678856788948594906838182149965902909463643889258322273235109957676645875375214549876133661184378959745841432417914554068797540660398296080281427170045089453744440242501434856370311880415458544908039220988772555583546761617745085365604403096950673977280866578732536827931070355041759584854596353707525155085201031508821559735073455548447266380727313543659564854541344956318665454778807542916146800143172641275300598362040571753213400521600756090941151675590817661781316928615056033964402177542955320074438419676412203464711411590419882968878879178627154785568132993646170681029725371915522246461344223519040680243723843847045839438222813087479883240684540175482676141127225293026352071484723015104041080542803559335728061415310761613521173396606547182416644872422643922610303869988959612651825867269275144492285095240062173955177223169662514426972191015389678114530091080460197663793353874041166711192291454567362428647936938031952353834861063662540347205043518989584822430664054892275294191956535034229440138522898818311431752308302768312660297203750831401963680401869865498673176276858774883330374309856732668123003668192046712714860821457363537596986927063792005448094775622885308982878206752013465037416292553494032562105598351891284731020502722708955256587026322672080723471789348256057218295705107268612736579863678026226836476775900830196257433716858336471102888289681693590293604438441041729877663541109209388471899016784160449689468952757307617467913023230349871443995526113529232846311270697900767446149767600824348839976820609342213746645993265002979961550666331735158248212343722484099290747528139872090234748059914043754236005352737630342062923740992339200566616439782343496369031793809395154107603605876099308250212510848520395086350892667343554824825297118779514595435796251075908149540635987433780921869342593115948339783630000001380709861339499843601758744453219008139070795838255341526592654167689107881414752968870422444510853616837413042046839864173751898404676561164230139131072033883437996342136757936352933748353919013742462690759803958011103439393012599443311176436094959683920891032650256442474832742753782852547833184028984577602210480143490381790152776831293779194546207129493640980775772841594006396536283927883728252356044289434605647969084711148651512146304013131436094077236091041746665974329461383429290841089695296194606044851528766005607878348102490228234913592000352305140752511236721109885430704279628985865369752652521539970341643298309798067333104766129851768257870910795524147784121869320766896842777883804299752814727670168395069916292513533168322297249760924284532699914743667032118859814271704109164806566438911644715475489263927903131523999210774980802903663613197595973608199325325484119239226867408139081383292458105522966467973803371663926252938613976426105879000711569233289907562333931752611418599531429443651629339873261117821613034240906539365884606309466504247546884121279693183645256799352863976821117157725500328064178447978343269263141596536445913396323166183357271068437752267541884298766693493141093102578335723979720389294032930732442046834150878822658155222521450501418076013809594726804852598352817467852877531991375753273214338695180796281346695192056194286029341295781186980866238085852553868466085407843374448863202330568828672620972403001890288702082455541915030923204287335952028651060581503216791206027623335943002117973154128539240462868106939667479136796947479714268923484614727749373853926484113978893075359228708341279875016754919735599040593928031476233532293446046259830463823665681233660937582477251910755536384841351886444766837349715590454309039987927686519833872354639889996683540586822866606693717769344834234877892308997153822813998140905249011400021762795090381996937270294625912242218588270431622350705359961953742183421551747535742722494811306749867547340622757127185631668210227502774329235115446318582841231030810727169977608065679686402952623879810698710207437177310481335658672626693996669781624298444669071328627656500404636059404217342799078181641756344084987285425243406605590592691361131486886726903598018064359383765140099531867686928970489131649050357348670896392704643388904667194625368496573430977059363023333190118465430931150377798538676951589817298637320354625772635323209546372971976353838104051088770994130362982209373511136498567087042638522183405427172022156469756936035193590507026695045360193559034499493929548685246595802867400996590082961531845939411584626362827637968212161308523258636246962150364865496180913109516736123866840975150318020811967976925866931456053535642680647761062268226301933338345130276622312209995573078127498736870842845430947235051946134708994537799358313313705149726000871401139184451627313656904674545897262794015042340431993049429372325661306672861428169404126787358481841313667054224454354769777564524750521313258646496160346993920691041326466843862516898422334842284546402506983843232449261645721432664111694101798197778314039892451137247466762110114019087373967604213553497369861849753710374279844179453336005377304636607864068189110369386997179856565788536888918498323499414334544167400692300987288673128388053569184810067988252670232782921516072827717418466381967754808362466270279548343102686453474001165964236832508833701457933625037358199809028374486986369511166518789175959213110516252688742703700126379548120393493768675680301158606451819590889769132772205115391226035558346388462419441079963256777463659668940978817177147646615927955043794378823558050062870271588809674932988899748783379393417331550833764036619075211061278205479699809038948043228908327782727173389870191746728006878768158447982108938924498430521968113394301368250776412896816922330622833426356656795535233137078745310570809314249373407678926792691023833844514012196725471055432254479016308907888306268291310494627624505130213830732489344789557666303082562531544712435248553962417633165470094768199933424331834996126376342781544827718332061375775168965936343491999985545105794006015977185108539862503291375634718831307687355967918330778598914445656209843519013455535649016231621883376097327487771124706734058884336578396113935128540846124878142999271436144023347363541006531464105634052647895083139585319915243596869683530268390056221354187553220600978684966328349746546689522716065649153116631027193042122767933517788937293555609816397430653028582558192068719543287828963410262685895962610123036063863523381010406365085275695661091129671435620663024883903339908119974333861123332797017172270141669502094495143045164684911642436394637172998194871720241370574281640681743504571655441985880773403461361056495615562408786754678111972137885478089284717864563811811187372987958944594666264409359168153045147216532586483785450142847459648068623608744446834097447244272470218603641275269824640810962666359104922736030147017902942497575798055937070991248932073358469303905505966187234968469309584025813265216751914909305451493008405384718352452724717216912337885783230959023363925702576600596563313251956502416223075321673983626688137338594213411917329245148418532519572654488468629208271439246335331608149524126480354217960224369806347228773701762933709477937734665509585655722439041985593451460357574055020229218771159481399827967249239259430401400964117633466342309076766766983798206395952837315692748022291560630215443335504922269509548902373126234808836433282453833141130668470138277157611490081721586868385707685096429814931232814854817687495498020765186594901613663186274444556891750100306617928632285541027206588928651498110924156853571807167694504613666584973898521122773193259202513660853689700716178461433705257583689747101039819440648922282234441321195770603644879252211597255096456551422014460011473371801507387136353551471308927938704757224065097600501123241787563191953594658827974932896056785685965524827227642507522692494561077531635457972049231737364888008760925428890092220109523169384211026502444363784435502365214985250230786692846484269560833884601126888555584288324473741152666443342545186961638158071422909145939748536031221246394021509115153667318134519994308834062570778715803702758057799111691836729242498446833094469500712999817413823964342382986811355326461749250567107648774998753041740567276839028257586335309192660963196645591918402786633496488702705715179347062717377443579761026518228907270639447564640894953547431450303118563973008344659724476305438278465563956624229124876398987578009735123318868622095932468525624532287947135916061632669558172678162124818739810657741470463534611102058095358203740308321612728915019198433202713568492879138508548580356391882907175637501392304561234879468058886616989477864327760165337033703924492935315888979195857407504345419263240633735239264577724994282619099726550050925726582310385722806427252728129261755600081188603268892465748461815748825537266788089358897394433722013834265783538997637326146133314749507476308947033552159199755530598442501766630036045317451033872084722082110113303363643139819820492592673131155561287124122229109499811083257133604758199019174169188060740424605687714882643727052458102551489600394802784964327708551889942695207495781378972359545134770941988251992025572725246249149880553316860216182229893954122563040404329869874764580449734602330945245946071017323645609677890497762178842100686204953046426437026533257999858460440829619353696287902284207803665429735043976785374135170002917546906088535989194244166556848980223209834042057305529469501895656270849130499607442167801006485370598466759301359579420024775747643545487703327057095048859548682683105517469203386102145596745400824530286878006249991598402750511124173171177319664996179465419430377367662579185619346674938183960732998892320486226361041692114194948208556161846952547702451927182065301319380455944270975171905032583388314010643446885758395841124487840793888484176679161512552409036238157975030920035668516524639979942857552086704434862767366007392512619730570521646687807383261488271297327742698004853314334549681997991543195280550932653788948065550681446167136763692840390649617247652758273090582873439323471388180591540302230967042788602009135074626054409520040654117960577889865650590245113002066567921485528615942088578892484955187884433484332680136933195194227397937288028697291166492837472593113255619823210905016134976306230302351640903544299031756572638108191104173004145103233214230445499084892946790423274372675041778313953155300581825185581326351627295159534210470532800635234006693260060632021627321684373008709951815229334771512960424567863353134569180901808473259085354367297811562018110552395505857551313769714621693606798135885215278053183080986213662930731962917944967615844529919799305858302620724195624948505798490468604770163246786424791058428899727223461528823494952507077161406895072795241493301826341948176601620564414214136036698962550029039276717381891462867527496059388079970359607747924320822854385629432325799292275525681978457054133074304193131568834067897198730923611203018655933947234551339402744647201238369026608930268244886489789317606862416715434345058987364355674438281939876710232816823361965013200409633542784627870272825762576997625211189318969670364694507303053593598192684427465534199446436709396993382600992466534137055047121861280751595389646870513415324986672311487322029855650927968533025716300150890457215071742620768092324141626140770956101844453778857800751328226930953780332076077894313733638692193018129658419779435028633150579337720712998620441253805547998193642928860312897969727483182290972641435996833572959007394013261699624023798719649886600062934691859619287780512248821536282230335035577316313945622435446169762670100990712381939237634212414388626717399629353461287878570504225129593082471022910393972427446214373178873527860188600696765821401208204428084390155099043419901941959795460923082115725151571794786588054828088001249863460471582929552702712678437141437785979817476472615149849374823027563304783105124365142866331703426820802363060784608851447442707238226975447073927507980063821950597373070564532384172619501710123784758008101036512470200155233887659400128394503880923327592338065843948386845158803952000763699031563050358350093214873977228051310698135529003465235835974378078001689853649737212520692287813909113364631847448380827537868557329760383960632670916514263510453852290086110488766341857187433723153376610767143410091801685013723836173315015973282235268699242695850002526344499674435002635228115357691960244354054288156598839362246549931622240947794509592667094406081232344207224204444360010108043319465075025411591246205894285153493372495559521147520813290798136958998377841576955953018973179935593475215629682197067491829055953129992278193565277376814447594480856038151920466851836057928205247333379829763575578502082316541730609330734446138280590490640645889485800250642128937838893076737944499702198282620940797452598372956579913134808411415166803050474745951025670400653835519835403726318072354555008512903006672838094942147406003429821126374011962112207964873374552463963200905960086831628445759638213082918563634621062299009302140480398549750857407238952698004420595273931655012397673543216026519790652145509830407063751719488263793049734509879979967986836081047663171891570529290908056912508892546293708337520360573933091552131210034024536801363848261473803391817030523270831685379386848448735832875862527210053071261163270083057960118160727876274642059313922455166757696553864915843448207489739220296801120079076524159238620518242186763227892548920842492938655069311725469644978958035739158121828967115067237608673209712798623683110096799040399352586170117268494032645410414149647397997876161790517369201014703701565694742290790823846751711123099989749032950522083709757918819474768249167346700124422487463329959330934270679054365864113792695067192573663290917051106371988713413719870782524874446873592134986792855069424871905011600677990476020119427498873443795075003446485932629899362112912711261885144642865508848472460061019433642708904811114624321026225829953640566144379072245398576095397908818713235861675061455933985968009455545615554610205505005922535474233580393846539283372999568003225299563973020043218389318621142285705201034849625920332436964032043186740834209916387202590189041601031584298939755622781493251831834848102515457923819591206028010968063520978577087852418079355208769498817948591616970200690107065442628163508629935707749563137321181175411852254841788281041653606264483701440675112905999606066673177369584323468602698001434631306352989005987827199960728894069608550376453048049066122855532833092813526388397058171551581710651546938215391433432726215188237988035828425941655341927182325007730715848952145926965427963904334349155837793692557914105354758589492820747125976602171092874538604836255610014383377474220080024668870477296459970395480308064119619038171447556306007895827634429164533425893506948704514132214888445008053747198379640711776041520169349035546402742700705740515738495461318764835103867008620682612996691532732006386844473675278148445622115661758784044808671110859816687356684452503170217338132325595895364635964233074615031476524051904306438670483173427136267081563134806273485136491403574765103188684058691845683882301292896499426036628362883906877923614972003775210236210286072472612681388800912596904354318735510343798611161147557605440052771483213597795800469860205922394036819538664428056504374862438231040788133594630494303050639871415449392676804309151328941119591031589820982670783297382639526530826615692988978417771678902528797571975279933943346609155326010445015518644416681546164760403137881312712836901023548796831483725491756996061643429105983275903816128760306893799885626201467638431937990623159802498435030188640621430532291618426239520086883584129016491051573214616796833851998325643267731491326464989981503351247380066389428840743622597068706147728396580348473089728220391190234941066985881407513938964418147646909364357843838659040076518659462030446061205270083998177933053416227783449923841031689730618246200524128049887229353285277128566890848285008145726914406317497417769671362485700617479710861723462907643765703208873869630847365866013017221939015356217418632500672566609264066278049137781763994124686361848725008451879213034534886524483466909877479403265301699255775357367613807853984299991607596550175705531937883184460562249332692113900297183184395819423122953753991675170688944952892548581552968418087138248863772811798138252331168362527933383951702546397699768112888183306372075544604697399615688327026650354155778235963343426406958754525072680688696376261946158554349677902254951423076656060369574584994936841839464755789267041160153185466543652740779891063103424738095368457921729500449187412937353126510504741834005213829035210474506582287983628963582689478463783344013085781678297250693014729179404727036565725651598524422929357918912902887551677469407313298139664437410224476092697959639375923472525822811041352996446510636951981321349605741384194438693282947488481901545872142465341884042886934350021376114811607212393619486596458675583657887309624086392338185224471134208463359416401888031251491437009643946376188525540717694126289771205688587240107385628676584341244942016666473937306427775510228200770111406434035247829441161494510966868572590168141063603945543044533863446414358730589496257545886170456165288823116285690392359641614145788446112534912932818974412993698782129270387110916207819954122939256586972857218798743858829550710896364689601016742181745966731064189293195484410377628730316925997124942505504473569189932735138873754553382372632357295241358086214237407542500479484214655872479187511001393522370897780544876805920936138110215326806402748919725253960913369516282290356831535325100855291766843328479711729575166934785424298937421863972341742355088062952896291380853277316060086199795551291852316559826336350291383908536649280720925249763803071631188752345311826609672351711019489736761843453901589773935120574067327540223855109503820960501764063129455940657359480383443149443294198249793036016597570310172046917539949961019328669333351164081763540389916323638198486473501939466039063050955927314200026965946156705934520289972179505882872627753363063247429889831945169792906325282088991194951200730639729053209158210553007630614284549684419078799794699317058473818943438250737335521285619756990732664550206338068426616662186638819444618897068015833569438157995729586511121544676625351212098661368295057311500061787807253865007180416224849393175596978484585509076666346644644408108669944429084402137469599439065296715670188203681026478108439719350773844753538521740057539011169263250276797704118290333817289168479835683232369445030260689416307296879699442088181575253135990095376686657538435707471887379221189320692180044542147395135880970333981100918307074081985439684940260728922281859368057969211531606276655417126837123198642012458489946195205048658934562373137111481791276933936272686142503796240176804726204330404370984951642687926367001968389617958333740680002824629393110439225815863680711670530430394775684058796074956069033856348288706633776783714190078105090972362313344637258433462585846815207505010705284351968456472034503830297212696472896212522896750001288708272017689749982087313913572990302658810003418297540995532008153135012279824802883075432474382433251874874394824600832626665987940018497308587220441271149545727534451702059078084783805430602547479551590492335068090037811044943867660204193239640737550702677082638482777041732987380696162025845503531417554161406151461518853064417777710622079511964309503680960829613909805710921051977546173948256703339185752810010285604656516453369139709718543860239485201727102628062851009559966257055447924684067097682787004591916629924497266479739061513914993760206284373664323709028577056365789752475400005931688256230391031149904329932495557642797402483644681483605729320164985004282857699473165331153871687359394389394116312969453858423873171325129581846490928914722842567672482566617900951451386229434021806470961818311848898263692265379907522825344494746453518223204788073845985628281941162313786679755569101368245821785070131232778354871261711589256893600592706820573856283094306005730681909360437323395071731006271969381823396077662393428715571263399914308440533946684807667472390117476839661630713489663108268622001498503131761890635193398106994865824660685883854462439973689920435272093343083370142561560138235347324198413058490030176441663532060607832503909839260662806043828710310808384726068607216962764458893174823224456736640390113868411953102725915812842734950531528030832177314123658978211563139323888103285441066788805969736572289865923551510024846518290914979387305278534442690649606205557730039028605464192786212234384011111590395886119384960050631072302831813086597762712772420078087078924282420812408084100515237822928430483986312189986687299552569351319743937282562865264073082637243949082455901124160298336586227211102450191620828125916967111393364330988538364027681220498860597616875671511537619575031485569050083171169336691960780005199200471986350471366971771117276211390890872754302183110668782454318855998800613232047749495746818250498789226403853977071576777759394762949478376075197138437212090536936760120612598371549068774903973510574163973863401983098686941771638122567092371979697005717523662652520561141112881115550145080659585631958556721941424686687735067651624001577528278250151238645957426977947273715044727650391969845059093608733448284935582630487980400853124064186558189924162692330985681320645392418423425858502786708295018730249223492833794884060925476519628334315189771802351601382972479978190417887249241055918170052019858861358115086032060173536874428014243530200037158489228862586199829868262410832994509719102514117085738515725227322046448550838171089074001373907540785003282630505916661417466320773845733812908657323894555704996820168024409375695932672943944306950872276281080518554274012004927342056494615583913126884308598289848901845893070088069675442478535030238961968112673188401174004023502183114379945815563638675471064847080626900192175537767403074151448774336224986438399868628661902307079784252099215869016728230732909452566467804414879290689624940768208730768732255326437337331877193549251495834447806549554616784649759895658000560340381552392243450591789997536067466291956585350478581036701155495488118909620497742765274511201243369891755308456097811556608541035522873031413471465120841063855770273896643264591571903226189377671216404567689800235925222627149211025746686100778129114857501598968983588372897950252796152586720448645975096001608827393112213057070783807499003444709860841829105323914458750685289886105014724484095323021969954748164029454331187794435283144293127477943842769741805382918121974710707244930650408540149828410894289448908914491229648468858390841212043078500086130426085372580587063488972160500304716498273248458754160435985568850458709310788084482875028174917513129675380641157034742085337175271286654146313076197250771735153649676366392914411021295196062121914409737912463720263008321957741410014767299501618489814278981323277897322556508871383929355398763986597509975214764970133590828337195142853491687207259220327079497914296040864162905445569681458341699647263062412922603178687294950104051200600515419888753745497493339535059635156885680549617152795617066318016172441342364953372742686451908395067232753827013788277962573432977163554942789532668361532658835828636364747843211296941491575958285974091590549808623625849804938694903331814806051030277724298711049286811699590213793119627656079488338251423029614559725310352953400987087738081000281355369068543457721215999749341581016700665531662316475833076733473284658729987674647562936724359845963683053839932993926075919670530107390875848045029126098081187851853309040954879851385760520227052088568878886783501609048827684200369110223903724183327534218666668680444044347610242142682223124478955975147943697725479460857862401834622459573667034442677430194511367886516961614053137942805651433324042718487937980797425922120290466143332650422973648367995047536395907501040031931853731673573387126222339680074541115785044463536095235582754993575918434292619851918827978696352412475970317254276308214134181191333400787399667086691138671800830245179564302824927078524918874762752789914903069720716338889050934195622068469971663614858869147196719602242327344811932053581249931016696794780268357086561061072047080807459295689266595449146844649815650886353238488002587990359545170634188368313152012928473175391562840563180185947577607557197747945675358077385613919245611197217184896142278327085752712640118375477070613803531033027076578304111014658463641660368563537529885605306971257380198664783335503538692604705913285737668874880861373596184294231489556540638956173356790972050556272094676767186688115759704905470659047712192130010632752014389273657964476034915742734337565597840054537084612858653839489634366188168570134445442264856503841843792100414079717956629774086534396963371512361395929500479520773223934283255159656478250286423524715386691310924115995381559022336599756233754955560838248839963817092515022650663364130272413571860905756505593607161317819358675127390856294385345112548838574090300400393633582219535133815317262866471173678270589159858699441833218986012795718220499919156636623767119516691295395175843319344995267191116998413136210078751823268309478317171800863601542445686222573206770865806741529230609971780219712249412588553550906516332168147562824817601051378730981751919693118714035746109237265119482746918774660548040479072300203791134285125135209715834995676171424892638872017137110638597681995485653855471102431589101936724479283835418661087479090467287339142134960685153016483803378788544834961861748839117062337041125607254289315074816317062202628284325050399819727547531847632124257564378506584322522185766993723101945710898896150784671263586753824712932766437164541986547235676608025251183772887392971659972569584269243621358713329790334050464327466193235304026069340680687727871709150015299456015470373399484578033103199874325161172209675076273744940785565790350983715300945651672446584352481548288316689891984019964651971716653788073328415896562273677497360345498995693136671855535317093708098129841975312988025402253390880463135768282012921788057536165432174480911485411176412668312959591773603970368701252845367489362175593193614298327769026772487876001739907143124547098756423211924874975758985118731795105158004705383293388811714416007338600033816432672505718232967584620512457027136178789087679898049598771607527353326979323882566857684296845340098477909123947915169590422387031912972594253258859371421357638686492948723247804153648957496307365171378688204676163733472048159016381442127072037182785280924968812597574154262438321507300509044766445603464404270415953818160731098857361695025503022021317907042134381495525285518065451090243979166143135958383038801860286979168584493684326680454018036834068323204566717107817711829633060399936553321127871869452313012964765069372877722082767553531815900606105466024922986475752792884901611452046927671110399663956414875235174782876390709174968441659920539952116840365704000867312733461828826123643031253926480474745009044981625049855964921642133261947423685816616052741788319498908618278147235175050588272089194182988707307033197038776824779900502963085716509692511960817711864891530650816683759851862563539559318249035095215661878416318667311416117029788561504017989132665358170822870626789983341462983244395587960282682093290234564242605146208772226290103451436161235353759627260280475417384863489090159861834885330628954237501516088455874762832711678140986091984032203621388778322888231565857678557207877809859369172348464665479503825693296404854703933205717022294631340223667889544820946297755846778591424108826422451933811338385832668723202811353281307115843331660571912386550666128058690172979434852198489487314854103810662331616892005308977692024173585588169075957098347865118355909027121745257399894162891726902276631674179939515227875222487601084554869045286485288902006283985250385412487185565077110617886655556597938606056155722376423836133261423956428458754689752174944049325192130483637472866493701816727725792885792872593157571473944136968152334106875068895671630666262645339104873059662869802518957990015139613534587915414725103419086259000989872601067435025661876232925624689786916217305354729976530289831941013474861716229569100854641331478535762023923635113536323460758652329794141991657601110009914405266147427410237145339516595751795647933900636241358078492095841386722904043390355451444732769324848396073600578194734940611152985489673160655249751953990106264134782211767648784796521219247394559483176441345718936994910304340644248173690036048923402546276317136392858741623502556908383017571045150426099423783479219902902184314345961991520103165579915874636142108377026610827655972549800798408178397378733255754446820843533017946119309298945333842729627018773549310766861181402678313391641913476122512858148103357191950965327934431513149999038714215198046937288095686593150400422483491902902428386265620874172818003897021906525285567299579335568100156079817134154498111497623208213139476853168962000610119193224925336496798929373698437330337224946705699885201318136252806320538857998218477767411636268619907276244769368482798828872050052491529151564824342993357541262867219332859021801346761576061032003861830543151495455334328048913092681291717835348544665448217666516006785105232400164892394148935343986798977466493597708439261749046534262033402343655051122375013148654695457092201295061511825323797849916990271385146338846234677528243985380226823155255407478701006122053000805914414934141357520450146246301158909882208133186821990913583404016370796314155465051540919872988112658983921293000300582867142224612443684800788749114974904749629473968589018484172278073923303374497036438939492179666022536998367153512127787049157156937146518825453006943796197749291968140083314374387838833572637885381285210020678647284687551893333802974690760479693801938128385465434790004080405556801671657568466812252922501805386886736777600223174848335201259553651981511333858652522067731312984444152180263005988649732602475411134056767132289578103081993499462533728705536207203260715158507940174458233948633422386612080399803547083310978293982685439385821621275670488612522099459832777772011639509981971672262636246581904901295984133984187091242657458819153940633121720859152557060749176785964193685938711797265855842473830695493969110310654373180070734511074260838158236661342506332949799963911692935303944708084160035371857104929154492229066027919226304430388941894094336474133340029378159285007169680791644519205781547902770260694109797484329015824255557882314697624616760015560230423053517690473859327796622458746771854293896809146777224497603842974154658204446693001882947846299172975571602280675192647167167627422148632315987397018205025761163045033350008626048975736702827206425024400130436793882450280493888064427311772422928201680613317663618955484837994288378908695022541942605838331427033286710501451250677279706934350163915210481842813274248198452002281912963975919390904709589917788009730422395879963512762124281966559114672181630872811778746460735897478232747061671104708200330781770473034178895108135046007437087883540728295993946393135579290266914189998728933459484124884349895606236078687825868200695438695664058103336336112053971962541071097624421320215669766024640885589897057634359739015875127907225697405638275540546238854884641063033725772384493583252845835732342273035878269772769988786016477266895420483420737454423411366495062863143752351294002373389653963720819961308252337299424547202670751038638228330345606730512542252475636340451235740510583538088276793883765367200192429614098177498809289618190158207297117393207599063810042906695897083782417015637952936501739376497572437481364589435412395632429928368370581211456161228410060672047440307887214899049751185402857278352310010497835062878897793728641391344826100073131259771334366689885369722495978269688825272444707516549003637230853086642931595275283839367950474877814209021419864298499594169877648049309237520728932034044394739628142908417637983111811317495663693320390200907811735185010048842574965112370801573148073850121564329574348246642407701738726047350255365722565835567967443099594444642461209329305422232983596161107815613184324781524593671443633085831072137524909431653445481563118476417121323737834755637998916142471462515180649716375435975683740881232232924850375897566880936264352537536765031760465357703058821032690104152909817579192987602018404913735121109751908069122951269328197263114263318355390199843232605290549196295443118076355595860417995862418317068697349055486743473766418099952878623724053452797488642109992532832723380393329059631260064396286353193100446396564340707730581285771960298003043897566319380009580441207514892520891950348911212479086253905976849490121023106600053688432727487557602912868932693987056367789773549568019084554076181240811139659684540137778108292472285922123189929860906995550900292778834603042281131372934509528044899506677729811444655159238424998216241362775828249229905059306252692730028163065098569025788651113420760375165694430823865761450509990930062459187903459478912148693928851163021167664225965537396846919639677966266810821539108391837406503505655328577924238249972630677359262547462564184925100349685548297785317453123845987517237082526244700786572164801050921147769155867287161389316607546858737702109788963299283436481680436655301900170339800005342039679705634797008636064066114047876643908206333048270511610020178574233206094358539171306588996404457356839544441459109358939610050026527826480793803947732059817739311962560824113632814451860325521573300388774275771939516513198176267269841465830710376147980206386470474814523629414076327781672262837868701251714282190733500133731906354288445810674580814606113849973650543639518976723360525412216795444555580145899861408490742268003611101938127448436898783498913220493842134591702341340230909972075223132840391679222102812383975329344093905300407536514101297868687464978863788300425539055632730258339174995564841623451628679156250153733931044307808873735391913794140625328478588830134398829520051619258740161316744944587328931642127423125981559217804048113637848124877295065944240775204631857988804441541531321419915024545683653012352978445672601176548244247682842066693292405030174869888905931920074515474968097037151547404539154261026149051648591070114789728118650725438259075818566704690053058121407135740617550051698648238500047650599454129646786066114489090444106177410113816717948269098100596229556884004014739564049972864544224290290409844363757165733163947289153105400081042175198516916005055638116721958109459838138632051787727555734453468079063775576042133843879981660939823081725275009492080228277423168202392420754250706247881305800756242805511020735214101370662733646192760348407260305437598647373742103202641343000745620284942318004457205153674742769828095527603767903070862620043940155940720762929943534796048956818607527539526478556734500999128740113718147703888057853464539930044727001128447755093970802909782037957028494578543667169339297693036527312460818761114226978009705286509019223071450222780339100142219372197659494064088224900797844880740444503047075690994820749887397207193207599526657902211302484414414470267509589170832070579759298402057004092800163845664502000717700729996776861459270664549599432229240165459949351864812049636163967401030998111878552441981226327255417740406665704164934176398846341727009940491174341493881172383404141825475982131665890790897037059799299933572880085387662911849036004746876054699845072151865480830028781870508678428813751698125896635509300101041676546599998480966925950917009543322204317555526926691348735194054953278408031431702686717788424645314877950509629774412697100956659862124951460788863521270349385249119021761963565837324997601667233243027171496773594410101571791214950597041678184613614454761229527495909650694455116658604616147170970645176068276598495150770884456499027923075084843877800028196988917141866440258782292325302637281324261214930545585476772125358664099827708538535578617802723105200275914326985435574129199418390727788640604241356740405982360096470111783237420875458927347341735898932071976301136926045681276095615825234228450798516038179572607076252739094503902871674053228233495878927479535384294543094234918840975454091673912708382018407698336919575926689888710583317357789315704878393612620888192080476199410861222688439530391898384475367183858557909012481498649515755562787993691947853518820770531814183732239398057666276331541452405903395999862989168807938778189718174004780362062082352259683782571143699884146437324342634159658935365675435779567216299319728385679430759451695652102471066935410296309241067535945699228304731573129237573610286041280639551202583903991663681632873745647413554100531815206885657506334742162910301801873527082205602904480823731194768292638124300434501047290357454907526417213566978995944466484220112302202191736417550266684545601649333545648488005280216131266883500375724551691435242693881964008749044105120322705560582570577732823230480562061648764538822169541829910069343007654182137022181551796582294217902615461826681746607067774007895082971816856193419302441690258653867283208545589638813109828262163055512816918818904115805430795434170981631562745461147658376848815351745130406586602348005228532443116658296925430640312544343406835670546997609448316509623147880237160293376509661985185162432247249090283321642099394086779458055026198255298769132513970719341846088799425594600834984105841751528573761124107029076570153468304236358007191060334494293159134173168600791367339164720083010819979481526607228751168444749000656553027854479773834654346389490791326530480859646461821639907418521746237512076015027030286142598048932045403452969853595105246119305336090582189123063361449593002124813752048556579618023961954910527747005248023886708789731549608178859489516704205068524250909369654121757003195079444388865513118299161478208732262535942845028153127455570266994951017755060954360624768134755355016410438929167151719806250281423467057131247008348684113483043367767309874007933480006224878979947131772600193557903241966967678727100070915324508278338966952810612236757120733985815925209841340157707913312564715289076752571008734539931628060737145612759621054593148847660366819329511708605421518620559284801573497412897410177333746218423914954346576248912977507161140968206843415295487277513687569038554181245790682397407641391687671558964942840708166000739412846251782595351613165351867818545788071232375358496207084903291477289598650738449596185713275532599657532705100510548030462524297062870057097416180686832685837719129720765018052634986014896005072779333523278951980042817898929551069499314129986695287127937910808109984638251611247043179152718811519934423903161200569883220070330941548381570476319195417629317629956112810699573161387206938854313904858022640901010788450075327472716323842195275850692039911001899083172968142271470477012844269764361819691028428266946046891498558538052752049719560212377155631151134198197531069797476869434958690477608956567060426553126901773805481838202700285797256699692592576669099130652421894204130219336707905129179119884034323082481437119789068980744162300759039570006876653864945823841716617918444290319741801191260506899132855039574298547955110666470669817509733015988335016149705965027771407327210890645836565948189220441248232931622162915395325459743770359000822434532446010531935071438749374806533743172651812575328350829255512340914045366934463802101064425218362964366767325098638922792969519486415475938480171271443384838148915430750261295752299806172493822151595134228559494197971545185526686230376477225973673024246337345298106414112721778910397897189093235063499167810108387812162062598913945277784842186390271716010356278540409499304217379190159611508590151567015351528110074744562592720199733843577666952431317651574681527120038366593226335453260443787778962814568544804065819020342981745332113324375587120866595416868853343653909095195936474056442433629783260919148901903119216052930265607096027786521677979417366523854102723340016336542929088208212170770048912425241325646932191312158220548015530123179236948459342381796169879178185999972167113697228362188663721337755217935683401178564171772278479121302602998146985712861284042528105244989969025558321708706338693383668688062732954127533073233723915836642656143059246139887129958144891237294919116728693530064108138617592399423156641824358132183565689871867728031975154514717074893916974934211838242779378017808422079178757737896993918231406399739160546171822304244301238009977234285611900171026529882026967167473869018603964736459652563700982021507147077285666056489566981372977313405130946112212866752400480920273830533639779916591866902274062519406998304739220770930573539641986057786082814648950773805199546680485846562857117677916236277312648928874492381319205011771344216062681753115709757348446408394827828462065834928049356479944357697229104424670468408026908816044814690660210523088562509863306079025288269027262439121534274706289272736439401004367783206031613615335092534143970217166263113438987868371124316070534452334614042433377591126175474811369981765045809428598598462772398258154569168306692709047661284132229537027304483425290281568366818912538797021178244786726507991374156183300644150704788907532663250868456070281850025748230410401377378974532995122273622918988052311930806721734167551954091890120406792797612042507781154357952052886204804275960396810453914674591357242336496868918959276844813844374624195047669735805102233187064409180877822541311727133294559791287744956509954946707668349849155990737925511263529395693667752643560980404345146679798331435132839982696706567877175298147514332829711895483353046873455756002832626421444846976019792302335467186567452336568517665011006251583722099746068579562179063299838529627761683408761624228353102290897362934945435190144754005472957680622731919662184820634814720202927976813120390243581388411988009385415760517915064651434819478855224344820652215076116391990468906780757902542860435562383264050275564318151702297369494350420011372758151398666258292158763831475504742970856138142281160677296318821008729846537863482968945984466553976586204004382981929263778308915554616814557587272238298436958479569747103574953109330399532948948859203341652719048581775010554587155559132604552153884783531442004828331875186116161198744492973384025895660175092334441098631011601777390662671177352713804410601566626792526549072101800320272711100800303148148308325571699632713982190423470545058275650703087801748280926280715825289241231939246024109689044184254971993314969121150426037336249320776270782085976974767369541846876680861309099448037934630404775369902329172634743450924394639087390877820978896713025840474669578703549867936954597997075924713297281701594683435118312610540149241801097943536754727340999470347050270784283071456476240968445139132402279518396455816913535558222662917731406790141366368083427190657377359714237221395207568481687897613618246204616453602118140632701564939435799638074153130504664188039209614717714403335719856476378482712899977399921029052920585761661886926741737882970473893715204778902688219943459320921252344142986492610584224072163507613830821452152641003943103615379599332104782600529763236927727669857218396597423323858647836017405491090803371520137324196278614470838927257820959831270704071408014312735843590632562893000226549860743708404576049951603406087862610878251052435851743528524726128439650548008229442273888257244061604881249555714266801586619021569482970909701669976150409155255895524312106018162393781342380210188586080068944423461997672502342795379244482153877587080411762734699298123280327349720549259126522768661646188070029133624576067638715768930699718017332673437769751665804564434268329493242574033721533455187968304045581270307429727137586464766397250236285834025367067654175500300521679299783106212366291355416201770716808569007571046317688469628908487910146836288043455311010659645037627857463985036006752221127335924117635742595007489743852768577711658834936285857643192365624231041021733907420978819023564091036552891892242364131542138623338403853867505172773889336463241138898519184510226301296727109336859491781189433086256477612588633782313226233229713700985425454579289322669577684469682119108490740380916976473646288714717587104887801878511451736383254295237263828474971811329921357413286995200193397761232085175898283282325772705954803816518425655141434413286109799170216561274077586063840990874958579963866420064920457001630306194138265645104524452653395387169501062855531465700630252036760130041871614730344382835157516604910800537668992265332644912295449935833347090928129465871662915556974640175669142035301381384299479560850486774744621243006660214337378560514891352526865470720948795417705689436618127449388868713504761194035219620475620592041297636321815722674657255903293482827774199836848486066980029110134922150871527460528412899678725946727533444135382816484593611485753436821934463791191667204906756898965716710855609636461335153412575664426001609574810730347879576634239747506667000091270254780188281319472063666464164836874221854197085915871698765019463795358531173766423583878620838137566972627951516703814663546205532880187941183559582762274562864544926277435443244269941438685204836238564466390097113410050446837880210093858033804243109924310721918830906105645406595202135159835524180531824431413831161058104163971841120531058962284675590265234384921928535707099810655280277396432223804927687726062162185606817384123754479622983808478392005437014084921320509946296433443279422476855389727462734402410261376914944635282581044088718869221950675847828549061414003748750238099329514821645939587873290907735089647730152949473046445649531145942280238816490350844910851689566478584416438967257959526415972165114923838654283761179797740623434647384277521654642235392070299477370934645439531488063392284083674838260913052403526287735104566742528215266303020145688224997576377845072905739087691994057853820564866671392995349469769811452895090304565260062519383892688198306742456367562187164426729748105078333532675743746586339390744329999579852418239605742625585731925302268250033006350391788919184211015666563562926754956355706312941296661238026242032056118029722377053141398654904104127735037033591614844036447288671654467160662881818085763941586569191401474359545921195443912934804251272985990701224420640896547573928349954267157456415037732084829603265926439487598354928002347971954247123929989810111061556936862855743761115227607630789348865663078658444142950584594564706836079503050331670050340696157493253142757790125855343356598332135272551794859363900718066692547056534793250228412885224195852497074580646623521599666413303072322756900743317923442579892077928618308564562531849528512782179946319876925789543164426281246258195763015840699845715648481473983186398357259174776842869867016488467640808881185868608487140496999771146398910797272229604210755387488558479542444278994534393760711634659246904816776204863447822903920366870703028179415741873387018024768055085506728736486904530303480798764130217866699659204797180363550426380291146026666502543462733144740123811875973443386103617668484675325718547333495208787538274656704041070145407026075978992285869906096253665808082303227351401935959881868568005034633834541506589840115610964419501938729237907760183233856217616616204837676045097207258037325237254840299591453571784127178893503919178525627252042883069915481795532262533490008477911861175360974685494099545880001792309709816626123301280284249671999458730786600850864416271775760977484905125976742618160940642636061761673595957437383340168604173803921035968076121327256961943904784178942873806336976149896430741312975218280889148306316085127827945143642993264964190820857790380007042585442079568722030850622263225989004080348902415534497321216569829750165880101534647030457923171126966771081097715595906599799065858357125372891741348568435589391483843606502674343274970466517166966739047376853837794548551144827942886437273762305651735545512295457703839660956331454938454538716043856219481086215957025802721101494940341726753276529944015547068958681950807967627441357695507325604683744947067305208136267279192025537160094263070728476534905623588057142772618388497129096456705066906155730038576478415385722224350619107492218549809628653359907968614713579220563135070462559343465608290932485374836733152734274596514701661682127523477985198654753631843412605500159541235688612570979682934016754450491317823166767157697851603113027186334633402734243533737919423422545926055784949333698752180171820607018385273412199062826188993410392884917318174629808100868220677350516414861797745170306580700945329312291122126009724992380685335250501798766930554578011837762358758776742850127973302157017908188878576823120458942363041303667108319962210190596801846498808524408854392450008879171038055531837625923372158434084442045070506690626792476808182715067512360940291168784133792665919675317103884348966243300970105698450305182398567526515195543758812015655013107895895280531101907163622129090493460226165367270541308774272131542412599458689333141671872073345621266872207515392969249954709081344321837414575178338634423694060876093172873256282016628362342696443199890968959563508785391560228894769647494676050357777997971810119463846985611633118734156638556920007667226058845409945994048364068360972752072460507820704191775565609532079066915870968348612116076080149092814886874315547263173822844700531078245629744843495264918516443437511820288758138348384893147009286392846118023702890804985385381405033833114029785352980973945725578510595306143843508292034844197883089440234384168979538185089186915983520319013941521131007624479435641772165968908424250648184694601992816195673075509990310917978673895836393128206974353564533427538514669288337486078730996384952712354434888245630803551309154345887327887670702695417426033567289273558249559079595656769337674529984389645634374316928390851669816435737779396964006069095086555942384024222049593924379680890697614833260827027853447641186118319623110185929770800596963193934285281650082549366421799940561530148674019909338433043023451341761542183288385213254616414174646761637948379312462312382244073066100263377419274965218437519950395399475239126467333095007247311848381302744675541972550837580197419563004127825756232465518848278710709626298218218382476701114116528160947309564697448100887074035106625549056204867505660240766227421492662965446213507761723919655734273803476830098431461143376008402243436887810946975722670422099813525476049679393387991546818916251259599761919257593853160608727302343866824409361079471149228075045036805111074919784529082052255399604433494069316798351372977155848918215487499417592741671511964176490388197749004988821873505101238245034622863119550992069672232248051933109604109893655429703329662733429337246055967312479627290141322902230986834805378807270930151595138032014546148248611582077191143712700863015632742962696948957868845914641538889236794682939838694288138443980994578936341812835342686232904419920293300245320022661413533188727180513151325520489113195247782415336242135972696053373660229317232372653521099872827557408628222295968567908969769928636812949861660958265001579809360778366234798080147961151756907374670557577783282596946136848208762653190495715699973944947769680066057234384986482576567872385158823738623182792452738891692828676802564881636176649308231520406661993602012895879420395092456497968445173711700017595768326562670760529667574455861214624543044193652210014160881305053218742932423410118264273745763556984323332264478146901015586113479203704792583989871178719066888476555163373256626581689818118838129995249934611315636511715046550860730032694105609368438290219179329077453586020128970485529203698817750706648303777178280642766702620353247768530562472438924661159208063221089279024824319136896098049890564557467535484369646099678963738976556187378114834538695667165771980110297096217443632055114075021344424356509639995252339399643532964477534069105780817093957591311346613242977097467566566669786838531751221226734452397210181945396258118773474642569041966736099988823483794458231396341445807502823981239756404205316013599069188568466430347769603436296865939977846728550870294855414464335058822389727748664992747795376878533405807490989146318293262602367559858711838300651096233619466410814539434149820341838960091062320278731065162877726749790869707371977018435578417326497201492443678428010414723198181611762189868740685907459630248446870923529731894622414100977600186614044121656456288901256179531663249183088541861398682842005293569674182484584430384873636474106677676635040416060738766458467411131900560545288697291878295908992619611256925677019468133573930156945172274118055334436127677319290788001311466680184134827898141818135742106369273494569455178279268261425606367261214161886912338551146763182598673485403482761438112962816539291022219144355896404955045276854470013587783427535935668104846027823056088870905302147042742872680037924880645792201104883175315966415190938562625845523106941354874893563784178158322222385570716776944716846410768838212451384217305664165430104528506299170920957530997331421557859323927680496827163400557440511936715213462341522614033149550740984230772385642620428509603607903070323118095633222170070956132497822906559533612512661824833909411188823780680012613129615383073382668391399147435570098406816314100191702043380228563910567262845011684405940368518768937102676236401394196166281505906270400924590947241293504092417476109230171422446212955418926221866396100792794019491411901401837560760329607726392951717467102313854496614072624920842698552770930029230443805600154787118720447488581294666863994470941633138610229801651188729507796290323234677765914532579317833775535770798110262650909186718453448730057194146750797242785093212375493534452503449301555031411125599231388565630744084957928306232629435803215452402575818106651639862506905839556058097257633862533321380923541649480848135696038675165748215861613794901161063456867688196757490133679491263369257971830531174466061111100134746684950329413207378926660693361596968170357166465852266439922048866119214100297015685000057798683281699917885951364292413684679065932879991557501917524958411860361499281199640651344526240165116504258751194630064709669809277491913910435929204199813403812704493468727837545329509319428755176405067509849739958471742071353183348537279282457331247115032826127753452620722286518461114077150811066250417822091006467761242573844521851833136635441899410607851035270596398556392696452089243992843935460915217258333498336443053003517410959260743503887059183968071403491954002175694227380119154190402632635836889949622459793567103534382685051136356493415431274393848513896351991559979646791244392723765994507212749562392969388520076897949199864026551073853279872720315009566259680142944610447595996440175848579650780453996680998743435481311491987549032706932330978089709506353786753364828394858245742469246529614089594172325458665147814298888047157839529834717276182059993331577090441904275833165022586542843215031291525397953773052039845427269238800513490173631850119954152254459783690273584461892831642435455308631603372727480622220684925130726021232207944450499228899831694001745413769385449373488662944310068353616252833993902031191813588023260384857758844524163450267892943224348424816650928919653450896589939844472749502108463378257377588452134539330526618699779174903487402454529504178573231295915015623191492524905227924779015487248432226716891221785742040175878959058955216027079900342216832121861383769300525487129813044005504430957874541373277220870794483442150028534987000409869428294045115923767618025942126328981914184561504195778295731281049917709507681439007133214749124427964687932139265641119235705656502425861986524240463942161542225751924637608227706438621896965732981291069628729165190875812081762923952816987781997464108253507422511102297858145442352659460473815748218951799680066559860212050866817051994243449392560418154279791512370772614489863848284459421049582295647223446208852793979081182955812923667355992406607502160844491231365844483625125385286786908792783310892960529807394502806523681614234421479950416425638691223108643850384574835470175220267205311244456850227371675996707949716256571365068593079615927134658621137569884566024760904555031035095811551488842279891131425439894788518820012567927695355305506451492512713824779201919718527533869722614902216387690171758627254113062867845652258568561476084311771536805483027278884474829813576972725167202243968396007457713769627219115993033460370297038172404886862397478315615019634253938618199199043549841129337684338753098667382267389141367779199616198455328112596178414177282524524320394826050169335506163445063066195262866427023159142631849300013373542736751815445837682153165114319439883303568799409891071479637980726400828804363896121216061549070419178006831269005604951240336990050348721562410150682873332651333776548296238581664509748674362605500100853788369335476802039580206343453326711403038165563723479811466061458775008615743252590443130503477351036267906722478093328880575372866297957547487312355026951527176229590060242274991267511707648211491289573530580679964288632667609689158335784051613744468982942115183652262011380154231901431255116479985811614740714014055823148064606508375682937687451245091584606740830275980224126424128316376604868408826634493495074589469787233991303755380440982198173497518901999898127176307088956804153651174684616219249570198234730528403849260021494930728557941603842045927540399715256152664720548251965435777907321248576023956232229983714373887319349075706354095489238603104214121961697298695665813057461093918739481791682911657327020449053102322291514834559587451942849551943767312857632948318815204590279430033440086779726420559028428100661845063788642994791614107749361510366465931130848090072906243728367283856885426421285812855094024784113370714451924880211297374850012051704410791719404103384332784080120745403445370180858574688717446479378668543071395389293870890070794799942500605412860121202534415129054449472082739865953273786260895042905614161551526627840370068199210442957175852361951228613536794792872254302763840513998514321889049544242333430367293949459633528376417575579718662654413402389669344500341144257214230011485306434060406138365909881629361179267350512598388136544653758882089732156706602289162357776546109646529503946648307125430736695951973015106287900322182991395647048586832617034400323727184581190757933408510418626528554202169359509969533657956130978433909752567129308129867492239543534316241468800278004609723657270078982505752998199523082309014214428329126757841430844425931450096676718956184094600141276629882491738568731164806788976594263507248615168145284579901287382041316461190069045830652535994433192875915254684043964741136590036697922885984193024641708474494637027461309456043812927333260765160317240159574501911076629361973230458723094826752656854800417255573357128929589211660988296448102497214725938340763590547927139944588064014993524619532517332302737059747094909756761877100420579450259428327840874096069693078610714000596271117974685653042644497085614269014144877614489821757645768486818575798751098466877182576501301948587384860273435231465610930128106400932525108681552781033449822807691242072138321653309325179413948082856304356272443520885793157479606441775750322375301419322472845824236574362634432485905050746250436426280416165621021023211131519187073130523947498046890983833721231728348923525287659706085666681563992102071751592218865529073259569951690269039443923018084322032107331127679637140166134637421255597757961621937177908345708452441890253739526430886918091001152024434364161619469876315131873743223974947197631468890023177597912534830536733635617697230056567686972577957696897655018236757583946015407949792222690356294836542392357873049996696305246574979671595875410794823023177892877408046158840941696400134472853638438114980402033732468092149050446728596461937628383321134653136344981446521566979245135928576970707416352672638210296265000063551503477684244257570981966607134755650879970786138517827777095718579719112651722570551232995007352802142746881376154321579351733158375062558984342960512292496565308179729596796802330223649261067502446493411886757284841313941751100293232078249547268520354229883009250672778923929674981116135472295722238672600895216400596234894771168327343469775283236193135270246475347784619515918412336450552898536133095756075194943428197116964034878989391782338386548947246899571779026140426846074328771204103236367303715302956385776950669703108769968719119198169986480944168317367866715707481730458408376192421134810740867172970590717792067835615987564681036849889897221992155634302221289812317567673621611092491033450412582671840711576766655852266211173005832676882128669440635045841752924513053446518898716858421354924076018276988403096355942521651568648727008475237858863925825724019755728994912803850646833123511409020264123074954042423293688227111887841056388778846808379533747598170382239444040388702944883176460206286401117951302565561547916625318359709503386804238455912443358427007070038040041793093081679081393264946335622385879689898549878354784941454905490412815132304657853050027266862268442015033339415787547570887787974607167118169048090598895544035841165552671063746202644528117989366070803713975448336210703949880759292276991787204595170560513138766122330585659329695222540095856102157274346460822646430544055369190488259137895684265500430310767671964287008058312743841788897018026782342584632459853646606431147445476222586566674265523635484073423432546845812627349501250105014599956426380692815435614209731615658065256448838320209320492374479088385222058869348211308863680754962532318734325447920493437050809435988149932088449027387285802275404812664497588011917310506004583462112530285148997737211266528155509782486481598340746447561645894791526031282803320480905372807723648781342203594748535921151334102381510395589786187413916129726910735323682178214777347456391320036189176811142782089325844126497786558551550405740387024268007252539779610830561312767491668907180498779157655660229737884494085554390465398007735888506347122231142439590452032131814251903148747957634368985615972297397177467462792796708241688663204751632176422167516109487245664986728335455855306075465593764329318566199010545823808466465016765820582464329557893809126423918464240119849426187466600312411023471061182742779542681330300034188611491654434292021492831873267912603866924199192080634579997229425522499535164082597870061710967284946944321542877459551819205339191452252195300700078736812943763827095652155741340586440443235573222500376996481571591452543175385438204506523101953878378382198385427404937530483339566954501804479319526012790152374201474886915113613822683153752507192744373027775344011402226994959504201152212527368025562406769799508461497691616280901562743393128377375940492690817927378088742830641953372980480585511435124713648833247214082768387693667495522009421256328525848559739856082875898118872525129498989741082213871977193707172250502987547463321676039674899466908889823781116372317518457559967285014397522429887638663614925642987050683814272195259841471796671382940228040243441905786707497734260679649136167683693939804944549473530139940834626401781160250345824929182041737500311178501428071057605515349025702721541202898875286376247289825571719159463605394825246909165825109463787609736321569370875537768593986628175303315679626787233147093874219119929434896111280087726469869904310080942585921621978030846327885760515962049598689022937547972080952064572735987891116166449604400595476027282382539618697325060000459621492069023971478377245232004342434597788640772037895083712408148025087285584115221718315629451951593960243433676277585430019113074884674660683918947862725402478845812388255368750940006689587976649710295614287802934110763308672023799867686738878178763429124154511420996960538833461949141740858275218203722622360713983239680105151394591448340827937418288545087032798978812934910683483403111382581112339730828464529891534890155517714449094074110715405871170597704646570252062881027105102856903162107209682244926256524049603289068952687811380236294767631197182728947395871194749330535863572851891255083674900440612664412289677554723178797569322931122193135086293908548694467545591466530069032134245045505526596686598940179845188520031815720430004344236941272783543927698047676303927124683714718087264422223045801633366778964004360516390780143193149205877896468205088342114862281874838497680197151391576919767785847525305177007272932218951655406100436377060067668467793033474837227575571457411368114624477561306258107319222314171692450746917378559766069033728083377892377920559857615519726866444321665481142934428877752684474697315873045279309177366096194203579239918120881153447052449909349027846679744784332209471580519711269854698999259164587203814687387022830334547844849423143746856246404812586127384472438506646590740988169872407038848455189373335432763130444005105276038325253097466253978319683395423904419368094033206147731326953011881885049113696054395985635348364836962857094668743958258158237934655054845294017642577752306643603048994317476441146325089512178222022309754147942945238205383190075300254287173270504265591530970774284357636428186212274938414276179821045963657057458077996472400610510935769863630862808526293359225807334264030159410790719576746376061369080709937165407642073349829170571893829629019520630092512114480007517664168999579311958684903786858177058043031582586294117988931905444984162131519556094841070161036431831722324110249760614933325951943537832551853773433375120161148996360331722797533201208751923882799264590253161949150462641639658410972888191112345322730264534169509480988908275261140511686577012757957510819494250526523928464165580215337047173943165866609140159056734510528971460050004135442628363969993676731791331070742807697219566985662536153711368399179645819975313682078078828973801155709483554831808008097501085247484030116668861288948301679466775248100870638123985770926818469096886809694056697971311254260593392257132810568689897300094657962900512115805072374757910002633828635586739564984333768092254576727288891388824045390722068380031418449411706637355778205861018752194031674475760894067435531017792820415420860189404551891146841082251957267479474592040371006626291294296631319201102632010016195080807604208679203146656953851847356542036217906784933421001578333270888780891438939447066403643198599753654628630494462358879060980795995734527489246847683843266112815254900771262200461399852886159862556511537353467370118509070930130942278217853111495827636467513437389686901396867879224023486714028994273610126535464113223068666871160822235898631812570260146581976863666533368563978635793459773504186964834052829177054240524516243181928034113402990482104316318746682333729317488763095439686871152165036244738075511954026119593665624959166982952439863612795937447137192692524374214937051851924419852419832130945637091807769141422072901488835820663972372785927166608310231910590835295335011678304602923674079592091813982172684107121002872315512225206401357148914622253781533108933031008939546450553836308111293969584226017514294533363651298845375830207420181688404208622374862830872398969946653631541216103280917849397133968863496055264881366950364851767608726693165846627724914548225862810597126168754709069144185799602576799449083738132075971378003583873311317751247447263470472270071668560426236205588669927285707321696589962885860083893919269016954379032152943112308951525108022145649331912128414877137652698163234580094051066016776756719799532341926616666510840219105102281842097082210047375031856429737851881432980215388465463929946208405706794954299089147621806165096083357930289097548465722455041462348320805733208411216248296272034968892218847473950383691249084829158677438138650513607446867363502904496302483076536216979244772147181703082354888942622647101417002715606994992945370686224220114272223530044070253820844406124325943987530447262557818707539639618991692512442245354948062966106797938345194459074115174700146809931571263134659760964813289348757289249446517231637122201098270843079990939442463388906368072260102922113525650342429175460168093366884015467198700223393026691063342505673762393003379761591433323049896480805029186199499712735975964168618349359594198750364861212693317448024380738986490056926929615134566401701161198829522559530039388136567336919076047738728995830675823361950666898851422273737112340988198339105977661929740560664606398524829528021114334895629016993380432648485559085399144508284260396347584602554530679919580005566036231477723079398323015231414258366095817988191940292340755267016253905252328348618875652223595855830810240518145480564075519588702703120487140484965466649203153605212113808759795810674610267360541048237541702144540685582158828023128896543174072900280505107727227855728764227572259325103469842701174714041980686954630448461242744099881723500540969869420374150944072205644530996057624976035192411198098116017825385008472124799395467769739448854140610592834807909623604010272924038233119604681110801013430834400787928799903538707260125856625875963298468685151535509271077063637667824980091919491373925626101956976024228224690491257044769271605839104949805041189115924813436806775932706317742428615725795994338743842688544354303562513080121561206823252251087023447641759779015924904931022692883497355571206166393906730544664255594220967561093552880231938914998337494933527205422905115846186186874793361223546240072804877353229120089619360209006823403834505740211040713119004752761037530627496931527340576042396226661596374130396547976234086913126081907215409401338489682147881343536306196001092872791366242317512450060312441342812102590367533165512246787526477131664365906243205819509445978728602955756717773814201605141060292778542660044395396688347339143296924724708591298239620699140158106159410982375928324214277454254682001077694770527913771030621081945862096660469091960163598994379201787586596379855619563329133728038702676769361909926483753991105801107210197895248966737496724252671911754919378967835227961709444737891318186494773029594469265563697269313904090803555967676780823208941234852565879188899811831277655832120036256631000032559858187716339742905973864025254744006956969073107157989553783701042487175735167728224714128380919831472732331488116512791545460426600766068561224248308211887145216653968085979084473268951312052809080775622897177880908122209133728225081395568662622092330431292079609707017807972252415735540192819599252762641202579877755740986985797690879036935020725383233499332756631874490863099685356069121419029131736850175502232091328243341283267344158063548713982813276926660120474596366728515951929555943673972879991535910206897969801169563184086432451998352028502540752840300223531472795164087312486096410498307825706505192789094755214901867155264552150342703989348826195583574779617038540315944960549148074244432114718236413673228948998374707076992853424594423408624027941723056786022980183216970167598789120773177527885806647094509065764815056466650625219696722922864672270595859039410285191662310923253861982893982102681573733723931480710444648442087330834843885321023714820027874723756482953449870958714403121776027347198263986292488444077724478063832674481023339365764036125155851729781545134402527890957039818452429337773442026652396549734216730215479733324517103195018950744604194330908009751107055998228891333521983382064785819042815265425400844973221305011360413964860329040045443548630163368741311868995579243483404020548693267477834002125029888707010725869441224572230832585049358408901929297809042484251117900693329026784636415157643536427945849855909089021781299774312215506461439212301653059762337167036504851881113923578891540688341768250083731551242065088444301270383477672893954394728387204518983587836735927053321095237483201742336268732491867143855527555005509778409940524943069538230275952361521800444507936990832868533174830310382234783472075836084405683665044068913694642432932619696444792007429443924278209933452633716543755057231155565059114374918131216458055998899701641268359498764260182320554440360128132844779257496358669474860670359971878529394326948075347287963325845416601754690326230215404211508228564514709239520815729148998316319669635301687700506958974053498421624463421377949311944317288941781211962735370103880049202297617077902244133690497576149959414688535940433949277362592163989533762123638625687301136866127861258272943901992947820749831930431206391011469194435264773264547381424032250443340527776934880924137751230008139392925296021078592166170443402088125406809266232269067580959599582162087464295696185863981348995420230981483740416240039891454594188806274563683093268421545497154631458145793483017306705598601561435536828788846959078640493374064321336693895509436574280482788895869700991073319358871481097308024878132045207698569348157933006715979266835795352502027669727114743112276140186374940317394979266413670403902239816348692048980836138610734108791092014680310533018733459850664992671664875053605363448546289770520743112740293163799868746176442615494592560202042051190053130069590607263229759562678351324248576061666489763807631569653210323321222577107357272657916225821554138347359347807346460009839386371948986082646959814583836307704097992174653484086666888698925993726727353056173574738144724091979736901618473163775029068397481036416554875804642770865144132003698253989331538005560210196647149258333580406387296257066110582461666350071628635242881536582223558382043962636614046972789258339409671054856451047620596965605286552428399019549176603393922298820621626695730909322552686343330232727987639445944433356542849641731234144103222620458222740826444149961167135111028004584243041809418543087838087120652490494463172119152722233239973394871896814740871788558530525417162766583234012235600560809679889964055842880103173685622953617601605783944145153995158866586617968188437676768409451236056778510016417295893199686477613092756910084312689410046030579493805715382247461656706094710941858382988822147461873801738414356687609868495902234473224585885211218218399657028314272682453683785990069415691786119073688866178448805197343179972416788922699575405427559231637581382542523752826976936866324154816038403186368534214807682584820505613545439365919476305733400021242798195771676423603363139768237995392017360527363693309810330478658744500382965383056087601257903895486009416689365095789370820494612683434081634949356202465385974163529833352108089180782393101771770933243989761009608208937971980760800921861449762634818583169742760979794782401162777489844908917464142491194985111671890954595138327151512227255269404217765826181502808283018268813511066553765881860073756679137965793930341390125282359136074266285813862097625552490470036850644861437806697211370036376505627780934498166747062001689718413220706270804973641994975859399334746455175162429226598674219464341820384539433731430384348112623151065182689205045090235792024363914572405822941824119936116940284324196322610238417199577897502797345486104544982281499767146891410445646433557973431637548461761436581565485599415352722689202699481029202136438175680512782169517329452633663508798860112256709325465477573545779341596949410387328900237777927737912863297285437386350913657173778266919320425000401989323060798707345351121380954052840660307696729003019794225180720434160817434411136245570700184216667317088949100903112117583260331043666455594915544114821134792307670516832918575898308983763839711988464259990178536062640354915015369970685835716236299644399681523132644797033098133614520972188691476456121748663934285221043379537303240616544053366253736857721798288694419818762182972846485105565924228813352756423252465885507257419918405272592218019647683197353984266042332306206491207672492148796111289507208759537974988918666749328746787863841431378846169124633751905243799670854571296686320041151188837517168888515726381958526484908959755857062162355802254797864642535615504886043695477105504441066799169666069175823162957446108489039239844312781981609847003657148256955552565151340337768902325303666553267205739576020923334470355902821838958206600312044549459411225636545663873403208250115263687282886182613333465968284979167247364892140335385158734478466471450840904778556182874036251421759662359739851386385328801950603727042318715380219734129150338772589150401209276779042354071193970830563318785124606117681423743623794440904236323281735162154084474830362333552723196748975400568810353133945727077265335193601275518054360263137341883802557586398531796560551984773828318532317893319440367276610202492124240117869226494130849967323608830990206614493711267265182149944595138525951476986855830448424269452277414067371085783336599575875564521192274233669739984730572194269039533054757956395577533272467281825484156442848600047270041754210917442135806502395316124263278257200570083807246756831966072052861026381579735880285480257260536544582455161233567259620798106063257774388528927739206411075643263285427162511833446215820536814327182050342881838236205591566414727528762438773610492602394253107448070512774230595732364850825048986474879198274514320093151500063482493639446983631887784582162738414859639060962571362520372567557844396495249454294389169909338922539512063705104198712912335874086109985935608635108002248200772883751139941380638216805892946202484562630084648519297161444327097942431107657614754239608444199191571046884915496996862351614848504956011274934809625124576300711667594163249501669205283233933605192597343257433670865705338752193190671644555600032735624756344408267038407160892419034167304510941288720147984436024326380008477582836595769577923216105910770038198577879503837310398491724806958702932163999508505874950711508857647508418289170993303263889080450972817364233550776181360066906091036959241205865721121599350827363614452490952853346057588573711417035490674240812533394434883709486982300596635801124640860683291013867562682981624196967551061894449836437016235672201318163035190676816574560745560323222256572892375994768716198193212140496417181132496500075127138101635731697991763889891886823848891089207853061203581826361948119908466220230462411133284778024311372585417984674634800982228173438715278004699249907677479077751575015382991119331376871214333230380422228220318131618635545824320722164644667038609879574923527841522242877300225105939784715874150293174592214603808377769520985216957532386466459710791198192311942214940684715674078106774924973186958630543262980279798994478233453808731451067315921311335879521375883952103874002194279189305628148375608425044731498758602621694081423059420458568594181835015558885054193297358645894932277561981780053880225725433920705641006549501907608934739588339158118002737922763395260642151098408966062400648061151434307866875688697214838432400510433544360596210536067634909060859229556851107290634575571511143233687215664100023542591482495318877699946343696081715245088528945508313374990330093543729359116812677433409649757556674564009091589255203820346890550588702884832891462138815272242155560905817498333477614258810399024830362320241629403893222233558285079767653004300161241496864294466999964844774816255597462693146000366417856345769337457380251505858982604865690101227661739951880908035618839719473162853633776389276388688088314261173110597796695148812114293910140480312743010288594693353019280699256729158895705591947563392367320586522401743434269744446321718413211111382665819849333019426274037205468632451506863280833911192289145391629729980640296033402924043303573660178007828304369966263049062476605614773639417410899794685349143205196890029392556749642827731482772401326453534911559381311569092114224388199555536716789224066193694438016898903770224756064584979818867048052489358135399393936363016316758792310652224501061649298332895529007140367750108639945876989570967277288456380641999299696271259645396817557711781518217272684780896611861539862359164447505413617674210632017545891077107753015770819452855913726324301187250700693513383907633845219769629350015527333139881521211880696829267105087715298174884929088346817402535640583922608965590840396660626096229474485283996904680243749674837138801470983174893675574899561987643842999488146073775997431182425490028241116540129852179931192435159482153240998351791476679931320572481944176417348212043758940007898871514405538724488748247233650625019718066779932695940683957584861004214818903162066012005483417217125077483179528287121350288963092803116698475286093509787631095550096117902893559890702587677284371107130067162908357177390381651513093164414443472010340646762652241165822761601467518470980537910169344427184165619961756475093906563790407067878983376397701464706553353867999669422294067589559035059288928683194583742450969340996405350509904560368688948067212621159718697004979971657045654647185243969254335186755865210458362938906346251428213565734406868912024937087614541598810754258031286496506166787548128743919777744311475532669789424179189619674391217807036326051882685099817378775417498054136503711460843098414196266451297306732906514458265385542442989594659813906854042776219604006904024423738541400217315422286274672145638733540197387213007335741189145357452406919761614836324030725406895750817183743414872956628533177918203247423796333917488183642215002786681924143066203263278839644926608017057505779961744902993820861718472025832596662880942183208458325436245731347935037108084910914382807432954638034481511739740477085717262935391639438806847804547598856460781781495595587385100934360858321198787344101437347268574542139032371314830608137206612466613493229072088314429764339089413323786285868663303684976340315162082576125000438740926753956152184849140715935584925058267357070232582822326101497540345395563509123601245051000603812951296796359147967399190712062579823624054862043908332317597244723576768984187789308033329570686663865642099422673964079241134391399708705133928915796676924916155498598722972825565574373310882075416263039697601703700304950226221774062494091537391090143383431830866161034236729814845521062794989372010743626992534337025278584282624340967904080065253265863453092082051244489788949009781432262326604689666165099460866443126307929189726545762636233704074361707098569642232347408265810994237993204145370430603317468309330005436571006561902991501597916417696826770166365964885852198435878116642757191399847560742479076166912076686084434027600557380014262625046213056321599189273064098418208876132363190890052765336909498644857299262533800537964376081027058681155791616636047513160261030673856121543525655419000356447282707789321785506107270025824257967852942573967580755643349690823123430354413458939717640094870228333387811224396292399049900130977803935889805092472867875669719493645405898738100358116638950875835125420919965091112276197417799336153268485129679099334302273150001888252412141453397498267846436015472052008364953384067224554127418049324629283645170901897510181819629646887639747886592459119122108566077430201771593610190082490649408438663646783346830972573178496300753320621634745891914058650812804585490044861978565330517053121115615298631343976852171431753560940928874247700018735488159268057703657147465599744906103923060021426963401734731138026904135768872564090000136053970593390850403901628937430589254606750844811696395785198068704429993317564013531235082450549029187807750468531315300581172331032898891388179421450725773001359690300723706426632118719333528950328379125812020853247369935349994800296935435297400354166922699299731160584283220392843317499576317266082366394567127725781486061173426934992710639933518945812351217164716377341585892523244779404059558215802595643283326049469660554307417689697340993134968225098715921563989071909600231294477643583990402938160990507957747837399648108673415004619775850029632706899083901201205840143869001852022895633427340597093445069402822660735272945878827494025882189444463432940863099245314880647361294400549757042066302153920684382685991583812818112606905188435889900301236960709051889784092752288647166171821071928069027513994639490998461438073135183066934740972240264449733531021270723532106061887359742490652151374715421520901494198961672651864602222466731754575497336706340759287452538063484915336692638863936079036322735058540032940808235885887358654064448917074413988212113686278710635805377750790257289287096566973573214775540174987375004234569307829350567225918492835204240103787515134724940035847810199679568200554524126351327249481764445357837781942135845150735265739342604923585102893589244852188975297151618621536516612493351776887125601523936601152444770307659328068185954688005299652774563745972190442502684290720642676754094935734786254213209145382025935767852264440999765692910179325600049429761122441303728896604921252119997356667864786389551218573270674872423547086205570717767112061429117479372831421829937076981320202855394333206987165660422915574103386905475429936567355213834809430009287046103233041055183145202112043878980854002702109436697921493907419673913822294688709388995946708936636346846961124211161991181280417778394357439366344632488510465643592469341242604581170756811410907560136982044253425711072417776562336243538245268051393659354149965058522346545740821142219427815206851848998771232909975152682357420052633885084008406732971018348434684153378109877395249571197933186378712054151060651320970740453838649298633446035458477349014495716492882235943988670943882070381123232369309320333825613880676831173301000624976841047718473740518060291667825792405608627620945002430051277360415984645872434681700268874554819896905251199910869157112711492850697867061109426565469260614161124510174238292820003373164936253835961149122136006340777189499933675924751826582962594070564495701556636942173686881069463962409683614083452937800973417115259899849404537108672095501129985670817297027765606394055824646732320570580020741658197525738079511994503719847641694666122591851629255662005233345505354461289189682415373564631453132467008824076705369451995597125972669580498980620880147483380207948914074344414251700356635283825476127034036287937219798819830821631477294449704254155531604055003125239052208684717263940594088552233721031109938476205078771802699845999128912031901462710836648026652868880346467529178547752086131369262521027697445495165084161787418087707388839807525099696166373208309739408444837986159542350870930759206326068719737921516242923238036284445775771401476509603230731293476065921253763136062795287972679505884242231397540948693994942709710648712826541878766537481082707347433045528749014125669304873209968143914350432552566409768402363654659962517059204027107747475299068040083218720672588665146949649802901996436435924695648889789857886164482999123067136323765314756398853756417667770970896374857151943273940474524112069251567984854710676314306114030258415798651257410371423807907085491610241459264692478961054267785147613559660262486604369866814188686691355505559801437988703520900489884288115898954993034677097725028746163585841680223555138303653784040519500241517065230611330194004556956591150892432579273208172688667662085434324950138980503923671414432638465193323387325357857743204663689486165820600200901918448474637712398234063935583304409295828335029990389220725273004362850671351958173417854020520437498602937013685786957680329160717977022280289141197568157369284322354883949318411446095552539746729007837654904701071973082150994537694974658041392308190056838485974313185857745305179955123995511323487487566135185372965056110995203705504928828157107645561444600969306369352222183566665198739280961287498301353007062638505712267126195120841260264355460545120161540784276138554464645225354116092382482926957355475304347215283474486119339412949684602670434332506504289583690492697063810754331767916671797499525136096741452151424074194743423795544742685375045826259123628780314171256341544016687260095260312003679921920157479395835661262752405975384708519240593264591704640620425454110263002386680381861846687172472294320622469276945714957399917385702739322879922289426031593429618128136389714348938249161088842084788994293401985178860852210811324945388108520646289428207045160932231245076232137475439973229664095051098161453639247094100129006789385064886163827926596191902794214513167982089547378639390506612608765387116392533623405547908202009126707395597955443573399179907691947518995975201396692442144462730050318300535572388830519315619707405674354849153447498363603496679800848530255229766684368181724787029010363554866871063662918603026536427038863952896527435597563295149012115593989823748857518904000226344345261136827250689131354575674981962095346241525532161660405457006838396079210408630335026505391990669527582887295031940808033865549212470116563210969549116231049994856947137213492438624681246655928792695230852492438383436603850889552111993931271551897577856135514187963201044079203528010145059905335088250233260173019250552086703186677911161036526432638674700617525211909438324766339617932567655358001056711288304265162103051211973393014670049701870111883218649040399044666520708635611381455050760733708277883253341563855421732149525663204285042307664689581036305817478987378747120143220034453631654194743491009585570074304608737874443137275349099049581570066177213599078397036424375620703790737357252836223098068824675933922687970501876978214549998443396182810728546088346757568743786023690265178570781079119619596006422763831144909384799158928974264035399487482877912079023283062558377429245976301000533991414860006950697573949182769290746117099387892616836882608821662321885003494175617891240201796496066887617477263027029573328539002840699770145360612870966811065017723451373995258313420071005159464784952964104640814187348475334924775108638849773421273691008864689181230403300448028602582341645117740113004447772183644563817229024432377696786363198843899411942310869680312939854500282853351908785688678477812838023226036595583198105434868787873493312733080223436796829585247286275968335909297990800785786797514752223893349612838948037542418752728041873964853701014468722759327009565704452375591084225399630826909431025271408053784319400003640781259145298351631463156530478697856562839721428038347761260576503195063839588037850449379845361532027214799618388884086748292178865160257928112088824555664485430516205134514957674177585291206780019874742755188057091677972583319498811741506338868714041133069787044852985359898450627011942305424939115119336263141000695913928626894741619249602905386497664509425815157313075138440459586224616121480286213284049911193493849789249563742527976203541355191329841088947557261677152250039270539218979609390620325609810756504589940259532573946486932030644609183796844554293688289416540369766558660040874033738925949775399286719908448870204151921083005369836119656819576743001505575480820230875266759369144408089359881219201378725843523335082250491156148053172711072358191881321534433525860876714656644663163373678720273799509263443786454484105228608852537691989866355282747768243990028161314994025619094922830030360978714677010263542331122764155904047989473826910366612977910551229619036799740127485592398483527525436165991033115679530662656507363705392423891270663142963399514375946476163000512565091602359724787681306858289387723684231239233635266377680633486102123555610599203596507564433702985689029595192209666928452357577680851513018226174273217899086739989654470962459958019259487069107234920862060596317056573555360560732848074049596129287583913671141539784962383232991926249032809514914208639226876702738199569078304232784890414217942562975786072543785279807851385812623212872138142317637415697359004784998583655281364669954315133178320762280280095542768249981862516142577522551219246536931033686671588219760336020157132662738728326824106295452076877355623362197392479846851690024412229943257222636657942374065248624403540345625086248347759788659978659332576807713882161243736606999213116656948163551169963935598286108055145606277851901346042799081390400318995526850325763072806330218244851716271027451748426811860583959369442901699929799324417777324263848321110854192800905662701826107731117936113312667989468494646925956914506667991632783503551028014783949813549334208823700758624421052966378968489365966482310977673780465568739463846282624122022218937349413023423977683791883162523281901063106394693442583902900140488915118139534858990417892136455981370659036792989160768213935763901968331237207519201632934991573957903657407061971686377264723533828581446693194904719768064346097975402666659214695516958797162987368472497501977806574184200683744800638773228235896242072333559182280186978707075894023484836791309162778476931616148113844505585668122819350851533212846167245385821879134149694427905249699645526018758547371601621712845375436604540119530324239338206080085844265617827250651802552252302768736214213772880333199774530347573369623629564828914089438034251881313461016536160401346853015920982976463058842458435059192764077483742775120921262665380046870407255356316710309955902329434351070137480550059043234044278972298854588669026732943334757398428842133230039386197028873899372324128132393979618804238453097747895041509590723072558983687742746039062200685569942571376071207724416073239489883676331141407301868984804862839693410694622809794242253498966884674940986266210307348829025874144631387327059854192895660259196293116736406494175889492712049108580055404195103761840440969866844911824932847133975020403100426703180207998532287189549605521917540940646748902639653770018261701155010856223967086782063082413291047585849669491288576997913424799071062581026963847003708271115486940593968548178530962738696856574149929304173264686593574927622737800534699372467009050481888544139120569722416722540748944122951775735877876887299921605021393190952151038323138289716244763906787197874117598521420065825456047960594060410481517638321389684499699539881412393180043741899316457921354763223394282702355545237983440207131116917395319833680862897558883988726467081972478676129325225960431331831648547747300637608261914735439630803872237928298893284217739224884833885880727143846977793052763483256550278897462149586547833169367974835083531491623989647481747320647534143191147320643118327027417521832637631909694562194626492988502396864737432266816028578174305897446990497656895400884323058085489983748198034596533407349729935486708282350221904492855821149172936690245951975730461544449531069298279628168238922503489198767469381729188543419924379730097413744065647183885914389664934239372924967080208341763408459905034192975066855575985339355780244456568009758662355189788104612654786997550957104212052720024792347892912508535198594720508656976250573843954556397278611232494982404907677468798393715241526495754836775063118304175049784459489477255800145877301784931860815558482942295097730800093272902201393350494904234502954620981224785117078632584685536741217290068394869214317120515901244248003739357002136162267296822875556150247430750272893463292049530110487908606346112887712912833908562954391704744502057541835883106953865370952753620314913687953730208095146379714781182479853325310036005694151757266176419183535979530495490512775193295022697855455403162305439737110147867115982088334514302230937656147540973975742849737930752452667421202779674211998716402836546416374574530007834523783876570589593054166083383600419635540663300672674306028401208796509597151667062499427359336536901434959710865761934301789555321270458506408275103084495594958658494092398837372627864758885169685056409867910678624108480144350642540747760256612416342730103825170945248276108961300939224505755871748085654662218005365579392257502316726576608377579854396524046272620956684164253186643927755221147710331185837292858751640124786968294452053188823734365113324929571678685622587391803551789321759384774901706542961410728885593406053169350330151972916960279286752396928309566301309758260579478862442501568744719418574835043420470147790195221651158877788352516701139370873710612724430681647931606533371579052466981696226327628294391693875773761321265336606185071697512040629101958994895981845795333940562586733262867795572090147803286800261553666895099407362110911200832363476890219490825102496614243876790364115042463897843169849742315041726919866215742655451499410779347924785539516313318608947649324247528032751403335408844117832983529466020329071907439825755911329994399618416022858721442455009591886204276297731172220856224925579612408650749845019852581025998754178212504528434602555408762196415015276480485534793165619707758051426016284536256425839305785385062874858387022147777554821640809374935232513734931211222125118617193542408449297166739793285629407928755067103806352798863052035856086127336806559395682165933900519074462400624025029304452972386163497230579313203384113077928277634395985494513704305702396336622528205520445004107161130269834206652690494843629568004302700698070955721180307685751515109051113254246617435010695325853327812691900569329191653277077234546294620211401437497395086237995684588442805418078684256906151493411668805074613648960634942613955164965520184869681105839115849289733182131379005483076876933285482244571787713398948102418074907849460330585361477733753105025646163805136648022597314833232501262957912676065022525300950976232783690071012854044615491543661140067444966325702806164449665312121815877346822670642951748505007801303506034490412950514429567601431679673829526385552466663497301671976604842649174464260703802575205548485829275281686046509197529983133542495235549681830044817134380322673551622238635549582940304556760547642195414783204877344045595727241031088794388296925078159947529719997574946927463802297803086685874439826700612842433732595339025690236140802208826042748644182768377536888884360778006676019507890613879171854549932302426598834308096119307854323584458130583032925148684100682458120117849772110397880220721304098700681970996985878455929886300876277959367661668641974361413325762064966133182735434138652614377633770317326971757818256273268530231228225362149889949041872502532425789254713990111981230693347092894561648371141782098125159454264287839799396629250556354897506401725693212440621451684066704607878994427341059738378004149583765817545067016533392787020499389989465239093726598501173483582905781289213244602483915709118777607769723902608898460673012459611857465101045407433132565574298524105664047616346740680025713832263946331669485736319940821686155855262077375098660148432157972300171902172874986426752441881688331016437183336670141915610039645873372476029160583241615617816096362702655829672294299402271263902748729528828402587169029697589895375266687953218225863111865103659191074777925940288609280427417675529715336577714431213427373029736026129536010267629396269187985475311758943596040082339202829934717500825304517048003961400257219935843499433507826754185997926076642876019667456843879252787492220903941193783679553626416673480997048553628362457250381798109648862712344947851000783803513600679946394736452968303262425415711697969783570923388811242302547072741714542830642733097063461679907026322892739956248857162404121167327471498507775489105061760402889411697122533226699893121330748994322321357814143133269351251555777652673934885101566332250591293243353346368058921851433679235204217040120643601744208016885916527475012985103434925260515143065733874348581632589431867866479426895885080745022189166867647036077017453470782164542181617630742294713135612756585548357424794421819856175937618206461505516460046179630599561567370563599281918492745761867955473324455095904633414770702099343708566477950657265839500237259838396503479011398677290360402398731055294124708664321399610155462346447179592056366198753293936339132565265725085354094481738672910963352182889460827500448217657860730355880658744450354571744643497922627597685603509811888953915423609898672905503820664673832576166378288098245037180804003047637243653671177840745980770077422013641374096111220598321776992069137076392535858641684507569711353200616535528083527294681970053742518868731050140659751808697458200320093484565630527427422386379249221017763251009402310652140494655215863160118979541446274654319304459599606583584932903021429584969437380586987054143428001915844300735011114430196289339004398317765542960921328419036699655325380113305246488188139091925378181333870842092018652541193707097833710954273380760776200564983646004691193033528966327632268162564438301944461023310754311119891843309420071973693448370323504595337723837372353794296058601509656593840724702398226738525231847669308949920091360831831915609855708264758261686201575046620326090316885029145621403610647309978791637787896683531638330211138742974428727760335281008141094833951072264523714116467614376245497272802079577248510030710123161997552691601673232845524365511804025341497542446256521767304458487134218830085366101087975760946861480505937242405555715908086973707873905965308174703967931436120409916543241004759580007725393977315686966190065453893953124798664611755881675755866056954594678190908189021348371109672281675566916782940136696656816869723989922111232638835236854121348495562789060764627876818119665854084657125862182481971860666132311548859160335097927531096817969560598558698412428127740882136017618004712447866524449605015168272406695747232699605293461578801088814033432214766881737265718118350479320850112942638543584632228714143577541383158643774529339120196194035099177476670934978863296094753011715248237264859092253278797006672361141999628424490060565606005327672485722524492245993486141766428444352800353566418152038163076302740177922181612476574550172013702143293260927564000032844983761829363959256647931318300709508286511122706570274365513959331593177171879857564189443775720388269606539624089387848902523217931708979019947492667360753167027256716290934847772848783924695577466456301950956975739055510058989419685481820870033401263693696936310506031950472449073058975503425611549901119476914120315279326311926644764740828048475051261619445801811949264187582290833869368536481669114578195717560492710012028732472321073448739581505906807723350286828384287764081415130139161496876845151339963992019220209476306733317431307664574383225457500428801482248984058909258864550827553212518628987400085156417283552077372973654523731541007156093811040703605622941571653003397801650947034337112891752741184118723731598485904625955260186850878274895024463368026184568752341628889291091959847429890822776382599234067774582569008134635278752495579594623109312750208685276639022366157493107094639449888245141897494112852818623439101628258227237146145337267482510748414219550560346144722018309261195653891941172184181443561644635762385195168906521155982255420972087230897824312677241390858504829959449598586308090583613422362419690396315375871650095163896807279934901472179887327404239468601978651853299030015328302759398983116427232559892810307511931427690499313866666272184558604420243133072107456374989021635023490047312940154071746251129572689055592474197721594589262224500178163028267456025302141126603255427171669554971619449485536458364100308627569307091016440141566281540125910490992806473505805607769261787859772555517657208224093978713482380207352647564750961846673036188355537240395359822694820683759148053063083530492107772070705753389702003277846878575798909025803387330382190221155977972364764026057168607602045435268578674226953401684762807293435053361691741725383060665965919467632267792853884283159501150627568419762793005108297931084512563426521304060113205045035472190058784217562878406088584820605624621137440789646010316774784833013951498030407699205198935530747922344985113101976204178099558937064398655911459222987563178891006981514009493509640164396990882890339882585902349825198432191643645641750158587631659667726547478126932082451097758803389696572190079392353254034159250788703067428073273670545855256110621557944767811492279649152686404236240313684110160124029846719487132429297234520273156201608247776450319981513876933172584123634318294071202639097061496045130983591793672974744392234424806110028067160605857574923546131668612362534501156391665017375161254474686152239903072807370378193976136743289044448755518563003666429148105456581708337947406022411537616395721776131615004893067065714858368545072975958085851207338599139247774466542563755774030675216422353790358348286364124002003899368015783979774170839618696361057905657377765674905862634599379324182361304421139327564656750819085929156806313583112606947762051779359261423170094853397311833972641667153066094981482350790750544522277298614901786675286769977011170588007621917212556103340101071837173799881502097570959461785377570382181996014427611648246822399677741428805406499729214200826462015948415318416160825460596830883356224896590247644941400159467099524401955564861970970987064376310355481300168586752147531206309035737377175940190468929484840882155306657077918613279375553013895946886878064961666318509863179591143575171526071303651131603902442200365633509910593688511781339585464890902385073715619150257704459932054184888296667281243201391715375929734587188466086451153548080955335414054049936341140475274568378351388113346237216922293127516440354076849022119499944988930570572996848233877658402702942505709788242908866436999833824545851708436186636017898262600643862874449305862160294969979232976586006153337887510392063583318879680663309607161135394900818826780365164744606064544052337323249964254843166786382054698497167251503156509433200670991263299046713956917695488897276201756642018178334038419782789974756996650699241946995824322373196756901521956446756123340195810143374969851353001406544438086868725620896662678194508190979320333981894398935805237265507070004440360251576768453772581784556006905458012001627955697187108482408477488697703702340926451016864829400755702815721634186020674571097602138941220547817846082221855106948768888890685594670347848908038561172423351659011526994829007206422766054519355788858961181252600840380385544082907558655871053571629504710213160921655817847498335707046321014603868037891717121036039641003757642097132423125788341178302848307385474064527608306786434594759167065169114314808316833209953524630406505592943146615990771216612312242821558727684809338308762404129523270980428298405800030977040424424355639149386194160295697340507289431993287879869794551385046287625666538308492476392207726032112066128794625840686013873810223990089783784277781484547680205927087565566719148528545738630954009223299770421787402218234480831460223226119509001955419105770624365953805051185086533888189225070155920566142655373384101672711535390713627249198979426575834520887671256523806950770286743938809074531166883075887023513528961455312618857782898239895375945500729651223279419190522229759413366917541995950855416794293187314703539517698888555032518276632636810576504633792799951010054608883620835115387501722700790302416499080500899638159421317440834927983820771170554693779355690862777640748387900803947360131589572962866634463917808582660891801555158778747507777679024113286051099628650295694995828484159700600266291058348056739877916445373406191111185422625535803136909374165646764419142384938283081779826562283356511724059929722672530170799094477772461984066475407455173900228064139823029988626024185090359314286572113568604056491636064821701029779460061678490663365201518114695405839868576577951032911940405219972474891902810108088562598021445293276033858031106209885538848129393817129865365992461460762776693772152498706413226513902782489861652336732317497490999677462341459780555231480663180602515731425107636236767700126085258218640625135480068495803707911814066985587144724161205465574191431607817362931627303359878560494524601940861937071139180421165615392179177583509609609971949830307351971606077882766437783760351924785387205416411897821358107567875415027128862344335540141355777206267278657735938485818080995911530817270506793856222599581275571915682264124641467181023707492370708321908270057699634868090528755880846563984349046944765266844456944655205711773869835538816527575173310913366236203771736743519570743734635006374609217309978876421427259143950115955925643915122814108611327108401340798753501485301307038171603843293124093199013544613095742133307553669232865410084842494177010863630633377280563355784971070318873327769290146487471948197479995248375490470901259076843238614258444443428461611830508926461857871528179239626584883604663229470817903701612537822042006940597819153940128843358118851085382016792068354290843507513260064330287285877316024354455749263551151087093170863039546684387073091486738695905784910705405491936019659207873634932271544824264398210234183753928786043694005381371770950902135047409878445589184496158717822349330692298365040436444059176639987439081320510257796763844028434409030215908256220397896624178599062527045326719844196141497926137095803005086862912679697432525850430353384795299687136473868028425461106356328283116522029309098259774851541457093089244266762569657474281917914822711460103368235529324558952131610795182492565035930587524064416650863344848979744526942642639196286808203600779108301018551101876284234282367628046726333241954020729370911132033061749460453836619962545100560536112343677813599508399488403774553387535024393530448085003700815935872098524534772360813265267593402116579176793245003127138719365287639987901050445335141015569462774206118624431915059563689464952775506610075281392581610763550718236797088713819087846916709143855698330384269583673244217933371077265006480383503975346857795794080393678862974437610201964787335353131888730283218185083864811532868112672948151458183573614987263888443906835534274198628568305832562351223022497956392483482810314774955332372938339656403899824057964202824218698219641900040530607438609377337935443843940403339491819769755485130095755343011295399106855068452556643184123909682882200615211649304400446017898377806075927694461487642165732960269926588058170738359049582714510196474291325709488951737142913434728230687640791422463142788085802070831523642524872782811757558650715841981711930287995824339651595482322806828657457170782755282341597199055306061360783477066321335109819519739282866774907407316659091519486953749519066342853044186427990383965049727330084555741730345722255010958964279675012181050558368419334625188978150533137960952851493779758027747366592829723511945296684700286357492513771185164837788312770064686392119868173231909912485774792230582706352154145554693128479722610472732762211031048620378472131098275157362634662149316511929152284536172038267769154013626291496734057250108419424213011341650330801598460943661206728757829351552934927266164104899686021833829154391493954393209689046423607135527537914145677977648658973012944530135144108735843434385919577196500349482142143289350026650827253242904073102194937415646262652316934869129668549145588167130501001742435543211580883070244401920271397326989498530909084551187817212098928537876442286492250514474732758277619909972706970117823440475088654377321973380208904209157419701362479981135231798403038603381837094401411227941828318049425503001320166693090862673784959626541353042422063867120569831298137204838569363291329261697609229274486839839098496263261447687258835251091970061688029446628532553124918901537358241528749746130451960263528494073294261543896896674132581396915971537136636367829627596952763649676931968560222488670608881366473051528589050323539205244973804482801297156801045035676263603902652148752550195035309569304773580291271012442792958256095143279390973082842766125191181824959620980301597758239312355530247691527052163455449643210419348844611725649504705552271056281406526844394546706837147080335903647646896633384612127217857549958040496746582527081694411750915278598654127286394298180569695144872740423898554805198748409753019338430963974911935131675474821468460319928222264908949829690475763421127936737176020072343786920629716551574405161061956571750797691750410589401698170391384330487331215518769268133907406008613922020947647474917433807677620848927584917021418492706228553892901274434240965692346076724519594321641222503605416259179929067093985647534795738104194509366622656572406119266651786876268970119769869599965513751307708153563524072027538174821206444985858307383581457103456210677848440848161225858279567103556928355550686263621241224480556348705720855778603097730656907346992860685988670164365880048941622627541967932093768092401912309801652158217136388950534539200269960371743578682038556471524724652202194979058081514227887979391071488957137249171452649106988906106913462462781207223911038839809213532515535739235410540910360707130534860013156356858591855973066050604568265247517836071172206509889685716130905958767195337793212594638105218432976684507013681334912736897140251518833422906476936001379089923574040716221501576885286823678856211451844603541831113272072851361781257679832620652528882551310435084497807183531914543344411091148202890379606620704616690966765612495344900425315679178005898918276220604021115881557988696758031938894182196209611555550423098540540376822891046639207490867883150576762257419212167946818570071186412575600254949276787559972934584743343944469136268821600155574938228444748850152529323340346042098744106096513528311567597395000603436589842771086043343899074371434132794908670111628602331449711720858283427066285988770213869888529703319427670114124339185550211655523845820756597341325685472362437566740511131395856564285726658430372824070766334587778308702764561388863115230622483071711025685361567689786763337595423375902785149097782533879737026698756177022749322682788250710916311506195374531925460541573996998663684282628733509825302364148082193887145477850357907559798200441956966922379154699226453919218377762977793126101903116925815617151107435204972244758264643827714743174420097683606108477057748632315816327329892027444278687597397360212831371959066323879148763661077709935879387270351681568026130654294878567845853225076419005772286914971808471330894779967439348484879199922287209064033128970100603733155863736595717853128419697703158202198346770048243627933633596981603924040463170786716520271792883916925586415786021821189045373383383526446273144643335696807919535828403583383028269771776071702951674637298871327451571204250820746004701701037939326280041791706495406253861046215412733745391624934675743150874064826504059732345261397615159842154761736047985101139753794957162693190109780349142718383381524878462866816913736133930894628869073695199980379145196234311574497511511450527362059615754400785520520368176680835624514336556928927474670456998141299349444441521619652182694546387843794299530500294674493012261937506780388476200680457858518751974432537839793641473611640985114400496962034704016691090010563494227100708710111244233658671874949435784597757685764259739029682928912211671834847099794336553421939443611848476358794274754905882142025250345864698522147404301950138482963420242455707006032016168754616719957947452688275948186968056352925873428204892208396229119030319337578392883103566522596723661490180868819603294406680375781939426916039257250237391222619315958480544048199598284006009716104882931786351434910422336069930173526223643705061286609918630446214678948202449290680334912373227685101784295147975719283252823194209931078022132093002652317806772986308130600194593328212442904534416257263739507037773624156841991228564847574710397191832290627656584065422136587681885715697869130058097065954456908881453932016920555142636373852793587881096660959408371664702589814202230561634741461016587193447465970112785002039786521620003269392656706830498561654148571342483653271216758848225116748383278382295088110038254859901449728146579679657897770552342549011534743901851669082974701575115518488395051647595411588120803146108810055195666739997429404436558689230886793591537552274280836035838594509193218353961043898706713349959720255101356157681229314568654781427480753151913980396350591551826927790925200390431058949679532376301519542119036952827145858498582048648118993284819150606523323225482810737552823140647899388292582350274831362514626571896991235865854481151863503978402683790133131782482970748065793685107216289831357239029956353188373238943143568186526655123244606329380234042566276752089208245173735845368951277190686650215269117305335575564212062858292915688209020826244443890770492520070714903945916584686724299095645376134086095712790748504127551478423315648158231777873911582998645942750656695333393386929355280743896526630881986456141820981416738041921334907087125070298666637166074747485258268699896053699247360629375772894420075126618232236729759624972441303218355938922538990560976007387668624659608357245913426148953943854102454705189769583389069354220535407213008768742606638492074087611120405072660337566613613208986626409775729942729119813046965552568432864009087076158949541006642919034589511386054028486004840645327302877661369280545903949847483035229833534729996288507034329992758543351713813785072746847909047832891542740611043781134129414456388756850398410462088253232670794517718658152273915455939468765816365934669143917479638050943434268850154571638022694098729697188967428889359339807522503503103194236704786887637225992732635254548402333133160853131113545979625416896472277090707326733677164123480492221799426783616098209532290751691838497247420503922394349654820122829145505952690028478691033345480829040191825791846179812741598685453017945916730586128104819168495340484518970100538121590561696612354746980304556868060435345753912711734840171270324933045490570151906087900649447951982908281122615871847502177359633731470655320173152131767336315846435580335819824368119278945280292994440153339891155336690713458828327395942974056763460626234046835818285414668156077199157919877006843714784829957109669486184756233480555800102569100766308922866604990711714873995402323114277598347814011895375332307624120552924455280766943051939499775495397390165446972151518348588377016165654447340971252851295244368672776254978639555762861678385618150151215581024370434984275779536315348092477572169582080220111939345689038695274571811836904889826923857512531466596019717180540792591421364708579226013492745897289155746050594186622040735705783441036612104921221171487123591663581469587679116795410625445509030904952714827600551420719345995904813902608555568953821836097323446433644658984295296986016313799275759940320261217824597722777935563129206040831658013814323016860526574075188216559531546781015920559532622343320270886805561817380035596860758811447835810755566115008931717530445380254900929912830232267265476074014536623549586023895989690362863930802051136332531625049847072562417659121431047779068038618691445813717147614115061471113830269761218652853941895341492326324175357029436496009791128917119274956172144144653226101260855333908684268571182999998341138096029430826361249463248882914064925480713748326694747797093979708754647938747741780731407379353161457351826953292201251856236587632790230849358844679724692623386090149259380104361865113677533171797186515051659789840348832316056804970452479051638155056442166900196424207223516859976390509372508734717221890626638454767239019239129245255572846213100537643340604224300769542684939687188935625522835601002684355670904827554558864319178897804355788871945026499134741986530971822205617594351459158480949592420107825403131127750986532746796240121564546890136674526961742727565449051599917821054806528336584621223207229155669410897247752487469526228065882279270331339079190698950040504143598959780411913786948246187663027479375241532147537442913830199162087272094248753756052837637625087924611248768064851848039389718879597450045091375512712823426368863951177310401682661836139177402340636225209844276856654534036283258236648854690267451190982213737574361911423330704063982419437096162459791043082192507954932215348378174810922949025724068031136147328083488366930329577976275349334732792373462578124080064503894879719650408157302344246783003472688231941841700766867079380025293055029670123871543185707540365299048615750669106873413808940211660865614829163726203656344245331925005119145774622111557672355154639880417945840764423117759318023455476966848622804767143534294937693076337873821340818447660857653918152364683473254931881887844516598335215704786196920836990853625654188904583731485230247001645908128902919160450164467970410705260591231293909463911002315097310074436695174893966184702329789399993199829313209721241284249028824155225702325529591722014673027165718289797799910228174303485335308809771907205343330371504888541537050432632294215801992307188610049704772211722581347649463463008866461013199155126483811039924779090148926399231434221895424032177894181983870579423125871781676832793116120199937500992514967249634855724791629478154219172868258486734032585995214838143332712626267573733250610677070418304763624261790001431638479203773945711918976318881938500793980704150039741614107097015328323555913181650501002622445302766407875365517505085447427636631310703042868678235950482456645043205423469162103650889284706566633840026252669637352565578429095457445384746762687962019558100993600824706510574284921299561910196709933010251305848945836166146484259509012089057609332031387253618627326785718356275818881240132669903592892603035848223403005982427065628370801796252668283625033221129117202851279597796623135933836594423696410095807783616610468780403803871875324868802842767437602050588459832186617312113846116596716750769344140989690030756998972132786813147860374429516122059343735409041479479007761693439401901566519561694447885474141225515386141762566474602879617871591287490671088468013165613307019080103565318239329936706856360060931366695168666191261252415927909833277102398635432631263791120384823600211057463615173726585865396646776521608142306833531971843260201074946978839062991043342082983694549978795962845591027910998902367125607354644935406536554528798688890671212839231393659869359500925986741785280532827916111595494628132195453726813886611013824874985827223097697856776993613216605849836222562526782722755864426755703748322796586008908261867992921772927431158091253187342717663727978372984584900867628631501824037751632939568863110838043305443805325228704088648213636501091288773900428669807742678767803738457318192548573219091966023954489991344486290739560525755221942064639321238967610781351921810157139125600277107824556216858647060609798968989374206540460063687596322851598111777538554991650985883255543150655382425636534175207950235593470614732869985006776646738113040988273935828024147956473403056661027147209667040052141219005329017212560933159567063810169402969367985985067612575977428689382466247970623711826042903750211313532548991876882450431434157396591363271521788155604037516120374263983759442900446787829322177759857713936109408528664852152994203056133283034560045163546009134077858576737717224121713278077335357027064562729781138722071178498958252129270279387361877450352542714470483755819245149065255868746773433272947904083707080752758512967179353332623342847493195835838490147873251936359008313205351569833664816625560640510354913885970698804095235344603932584045886978674582553507699566477749429347648481747493280395996266697808907485733632154601236879479211363140789493023207621732294618999365201517026631197374229142469419493620376791416114381182349449416883924293766273216341899252096315720648504217731153301606189644752010093767327188307664120490741403141145097666504459092511259974720006486216214715374167317930813332820928539995549940042792777170518499781203922826508746466515270454890358985273363034485385762146808109411129664685779655714108461836734304141568847838151468997467941395781461844970033788160058150878841620793955228048412896553230987657617969397279679220263288784303107475798322430430623938170305482503508920856687664120846107091979629398997692922791040717868332590087601318017666753157696603789696090161533830122606743654261768140061456968240895262275953254614220924428599684101451588803440643846191461135763287642124477145285447888480020415649970909536659815510115355300084444844324022521953349964905627853105635788209194044697880256890630684720976282518178070923445229318925620081176695932516951117960534736710622433318530385766773369256233709901851010082757877864318934375683562857895357736128977681580632581215960563607190298147947528467522466227943982638862505730469820470784296684856925186212577333072119477152603964906253161278879451236878319276096057750585916097994766015991169816936181015332321697279559994879414167199102642457640865052270569058274325433679957143185266404098766433350736433671865218197600192054211232711111423826884484121840277791382378389545795141439716213748578100973619574681835135603027943822583091199725418947096195947864208647429293684856922998024996738731322372483656110728361033296452222120367816258687293803699215336064710043990055903431142711717996024922114283554079496934329654791582352144228382308652481385979571780492544100135817998201213645582935816156074191950691186006771303867932372009416030125760180527644566754454983761534578990292324647558703630877646610433794181766084266350910945940136849639970736155126151034329832465826533943110723834371628442510361470966213913750980256860963073268286105390954029791565712437905591967524464489752235000676672842007561666750685902408748280067946167455728518348215895007943561162717449036003254439022518710873430388165577359254598866001973304983824241823627605203505509089883599063620174421505824672674547521996497086594184358561514541065341660890035409430879031650965100730228828541037016795995551447646182998826836514879562867242096905650488375806125904959160634378806081466509060830445895007428412839896132719124318014254338010699226628163365901351768528180098265217660078343939123250225112497205431407009454374986286621370270146334114763844617045271444623566093931673611484646016717495040294843422383742954988048351060588800959694567533553934812187019757513027314362506002043591730522298730409017483585978395438237393927893820424460671594544162181663143959905845575146218485283337488665897745184452730800710245486903233502245062000266279531550081631941360251590345107542544967774054437101171134572699047385619526666321755846061677251906496192447790073701171663680394894066076523113930540025918434736808406508202746980092993110743044914894613561097074442340925869804007460836444815380190491974999955538286134187490133595896875103711480044046076520434089709150661718278159788211286327497208997085867418846695282552422488104330264216259013642216750948454723179626203578884516711508937592062519036387292630726374562007238397045032062940601168038013242130089985044400709560673900219985758350124287419645919267439183767905858933741738040618958112765033710131023800612042901276616171758431843478795422610597098978296879546866566268781397270576345181638870943441442172385521909973891803723242921898085046114719466333899563403758402847862500594622773684109992691745893734273047960172844518802352491841046233158091163093892242968975586576731562121481305475946440912325417680075330803284645664369748757812590169952682212969051089786654616405990125559510692251859161796681585684319816715860022028747143112267456421128947639346420286905789620671143468376111381973811527305258236717472248366059291373645557222426494570470376182018347865304061784657221893482593242665524218677065545578924864878518700891749323105764237968000260074711038966431863026014987578054844513536788581931212732294768695691624169624144612392325312887290579453089458424080503773149383189083036884867170901922876185738163096312235414895705044767739079458476376068615593046196129691839002840758610591099589652783454737689376733010771357462472137567216115345728742225442711996861602504511218167525678031643926673575469514479435108316228542542495672605089950910387550141842647248868840462626833724277730059303195875450479946044467171493419975608894129221407039493258521208324870708378525712253682886910318912140759169174317909164540585628315384950904603132666164891472542653507772364283229644022187030667339806343068237621313105260620089871212364518252901286001181438338184224813847468399941042161092424010156992322660051122178470217330586949930767905628289440780471554131684658437329865313792728063998428162204876563150508177533059194304940296389924041186505546090158385295991781594635147489484203414787676252553061874729359647789057307529454907754854952469483344413357364172712274080341469820274099959007659990236244304895143752899830302395742866312254315652500621301972101331734986102617178288411136816903698514031883241347743536208711171316919754664472778430881655508038173513894212696505523526271167820486155450824812110793725603120614120235487926933691317201597631486854701477965801132682280117643500338838068913147032359763250030392257017334175489040994212762811565716183208474383840089839858149579363327709894542515827634687084768295601487092366061431454566525297006936772465303375360937269602655704617390665623009649637982100494097114158133708507813907179024676306502619641557833228285265567454256244019047081728316918012467278717656714247470821624355798082806726682771210433141560279889447094365373802032243519640728287474313038831199614559761702500191150766039926531296449363180106142306920436755328724655586085815311525003175156323224562013247307481327647344488938413855800834481330352512181067590374693676237251250569206606195715677934173661566680993838501064236587204064464755683529018784339487455758183329545056178206842929244238745953484139035004194212528752473805674944067798078380606400399923337660224772744765656807017910815195110889566888428523320253708410802335570205039946942015909402843700479576018994250575831619889086068151542950515269445461238920681726000028888714281425805896494563297013047450790255598218373485286532984342125091535851574642911710478483536782278704980146516896063863019770283829570434070635879453509997094643871676685585069683326786138809705966274418078199398193473441688981561533186397200319042422069208833424411983580424200080035578897631367490586359442810455639952625267391167893669990579675963151619461824507840976369739785010791773758117182347634425548570059344431594458910718823629389451108813655990626391267294836122028352033828020771411238431262522882615978617353753623542122940663280239061067737368206078812834004166092410476667579363191269310947386998582485338758860841890237181598287853776492129187314686685576454356207378687273629790951984740255775251065519701746494157665345074503549923662453244723798247116660250894835172203300672146596478306423954808409373380568060179219927095118631802454547252325645525003726188417478905022703030771333470636434999017567593227406023844916279029369115135267176108557444234434727464622683374117440143625172112099206089069805503753118202268573531389610138658818866057962347402146674069513541418255821531161609361260997961773595484127393150278803159645022956933448815543617353982322545064078640002732983113522888649839953224790816434623234128328023455006183826967311639954171817004866312863171904939817299878718824964862137910102142044093927252118277734462103886902334788854342775154179351947138921811970472660128933477096871514492854568953302924680252026555287985883875725950413555698825894893496809179794305383578724277302581810401561602960552473859487588706216268060023676813192075607208578171774250011824405450010939292839479701308972105671628724226329292879580421798071242113020551435519709761821856283803386749342559048846282300004193673398221000956566579314787548441171073694269485598601905284830422156992298440809354569367018295330075246619028664984135537991293117179594354634312334264087222218828359652927800985590710209263935777234425939499289393723528191655977924837569226340792127287721810225561259991821067189881849398270934662808817472019638480452517432541487610398716641757798580782369184398102144235778731033470576137172500138359017970928808008574833041249311247505579414763033951913115106685467921558284999975304955838069745322379457787626043951814427414174804099421564713975798838727274775236447595882932227636792888117386552616751192802849249530046493170790046478018673271990691822131213587423590189275335489491947060939677625638574736675567614935596027866871765722608139895758935837639080279702819528882919280125780383295904931769118969748954438111160754784353800887472243010660878410990809379048280328020130414234913039427911586392102226660923475740535013808886037195515693413718652160182138022135686814273383513238554421303539060140487450718463503316528949161123653061286084027334425222131670875695940124827767533483008060965063426918544196967258966288125236203969602374173135530394740698868166659801547040605344839979971304323372825970284200207070808077861433519846498582149151016496416702494566540196835977828363494983991938384504816564009510025732068349786347558129303624261740380572477394627916414474865075794740254847442033928644352561188249725434929265343002000644105439727288523973293055105539086139259160662809191527811156983122677644136797684653049991591555292224114446676095908764856892693485544935915977209436386369224065301307654885526378043158929289073127965053000651108535906888554920117256134339073923863992746475625704899045115772409170524333099714143644178922699219156409411022088216301685959165510876301180605760819004636112834020794918895252447301418051464761849418874313123612100408595159540582363152328630588877032076611016726589014235859573120224971412748341625711101856561213704754321281115981088043558349960842943498651929440264255706571786213254765776505458452805841301500809549069277968674431001153872453563300412576140978599796046090379863730169779017972888064562024984370472520663457528597516857558871363753576673312072705722236801813360176832884949362933049413176415773120926709806985215205298673767421920399551431885972978459222659397704495170218858117025934416701292189297398503079341194074761004870688099417589791055700221001645336695379795731088473500556249101643017053816522902597683954505566013895741502017914582351644851225565292577309271453228967321688238531158681021242837469023060592782054510254829068133132647164789149951221719687293303517261562150805764629906295942278357204583371989776109599187073847167748933339356014949393260254930198334930670010404008869009945253337935865088514523388822573523477825958123094688948428371307750585764314519310704387093773673862357900138216953558954337305041931390434928990077093424277901269320214074393414344488807152262473608388193998182878597924714004147050763986346188234445904234870162209003565894984007980783330830906959034339245597902677334080940752000092948043068180429557661950410723884423032552023404623215643432967524264942523775113015141924973965895202284014776003244289178464195642520213108085938464588338494521669355744850688695187476742943280166330948631208739914620385237908019168738838501397528393050635012646459931279168085952453987228820397542415450990389782441282099500555883538009376581604289484698112421776783123192536873451069109345968646111530404749343771389638520213052118985803276246227030891583980921494248728719364571541039465414070965879621976976999654204079134459430105248694203259785780882475738829378402803104207339609892357923403015180446621517887424491386626606392232531237767544699311725870561319159261761117825867176923250098929251561470899807926484742872904696233280166620070611653209513168625704034700386663248854396417879824746904464523230030350381946578837823909494258591510831687744818962248628319224105993030725198565924876228972055284771892300508496800503732699620823369652462300742406288006615255881950286475062671664837323975574342684478559436736416678463347980681653351631439328719965902435815530913992749497038886260133860909316249804992508487850647516231366946471836709748557799069021561615419604210423538353660430984209228961800185153423637674678999219631181621134236450645855422160388123297044930405950719868841659432073306284734057069999346422241710969781098001083269033844609814200425346582363543291027764019079067028496918732226907182543766196467103271002781530436985178710096138017132686933365142801763869792157543066137218921871687203048199401460923678270840510826790232567770900963287633336565817467454434756287313446644483939424703739140762380690879188498507459883259513732808380599206090086730017494560940242573896980475518899693166157731626492594755245045178952368292768076480789557732466339801608497296784852377178363601388597603680176500558214204390702265123450775485836153018480894916037057857428533637916065093813048510535932047759837386633906284635553401460475944671246416148674333218764972333268417858962771436796790713048996544732182052690469962800341887528329471325485815710245895450851044281824580477467931722382435452456379235407730859211774108443140442873137947417603043212897999750752280170778840069162609287019780522423079221137210574988520321083224367595506997639323210418505336393611036179704350610615659564984138024958393666245477181998752994435003143318945411694107082007208665617101757161435842131988036613955457984404345812070463342009409836937659971195795288059897204772517891803045282967346863426877451123035529984818667748218164796028073173285164227860597289487614100604323080179256573550163314788365448904463937938328205128894428094002605951312919018987051254353384634607310816763335089963944326589196884945965380604540618276455747679697476920733716771360187622159855771789490256599891949298880682117037613896378318543217797407323584410230773925821130000513702131039440958884385549999554102592015785549231645164205585206274765958217594811708509547341012720432746021554547314789005123285093361450621639374127378711839042839924978699671657570184112896405078462578621862330789541499406857224810093245830650525727208452976946474007741202259493736160622002853019943244451046814195907705681858859559441017316343517187031673807597828906886332296578861060108932072565878421993611246499028050197903267086674994297614033024015406722045676402468525145335927947666070736605034609122863673771597103624822243714257917997037095168723414380333089063778014783930336283872899848641179000128818879935362256347318926893983764856401432388766910135599049541313501817161578128761980602873892433601143804122427589683769383042550494892791419178800587722971339768303979211206039339122611320806116481929752272648674388539649587359728004416376968988792655020787567581195746962659304611419297902894117742704549288621704328846893232589314940979307839210948281282078160623919377797052158708963998955373358151851616472573071959881143877558537565790814552227110768163570632047142082898345367476186832652649000058464653714854287998850565216263865329147449379104808327926187732740788606904254092281996989373449584313178470633844910630220428245546848214524884967927742276352821081261695243147033414105592938673746103854548185428674171827053440005725715949802517211648634649644109139292778979878314075861469111367207589992853945221108086592452272135950368508111481816336650386823584481284355042780544541396507814590993016598691111895289880777187611753403593563532369308898577323589815137377109463553078342839465506404810700473291179450927196478291860958040359168420573121619580531012994652082242230525211226937206741022834136782521770025243559186347135119974760007208907984220612832521588308169357924174218057662052606621179990807666881673667721577840528340937030502833528112727651295683197176151423618598630628938694031999219959123361166155287329494382813129013312121388378209286558069207940808674703170571063236258531380162010812390860939048319742482297449603206888869348145181310946976361460637759736762233118430798666905292053994283607136214239622004107124677774907666641657638624701255625528259078420785547410122211359401313841381990116108562051378661243009701992624658316601117455143842890805686301448151195647654169322822080295369067211370701043655328401003582115534153859532247042538978362692857802704821793221025405263067230106013817629456366533942038234424913477205591560472648142609229600630029391075054859312247858018983599076990327864793300052163380563231308136922453631432666150405082816396600818793721476594830776239347594205857660155869397896608376867112077240662389893899356012278098396713867147247241084846507416738546496577898402371211068866034023144945506263426108313604567132609591600809935700707105977802117677876722316762575441027222967046029800306488858498738939480456092995489477509364583079247101998876073966925338579031487085828995819524124516083781080896347065079271608151471324955195146187278230887970024969513056338289441578209702513470548801747814164693320563826365972777686923156878253789303650940465698086317388937304649081629580810369219888613225839753259753252229566529955952050444199907410270033958605165458624657202456658240437963481278000069429867623013160928700928518889208956334985517939860145941054270596623334156156339790138703477835918084405566214999313673920812778640259601768886696665373140344590961604361389517337809217098154764252704233090992894827350778229743766264066872131493277820495926221705110203574494520084800736033500499271923036821756755808836330278644798561801944249835716407471413685287330118840423205785805876416366583019556033315576707286007300393918991545457359613495252549451398051881728374262425149150252904911455800678591658077056181818866714712856269679732730095805851011983914400449351619766587419153566212304079787085699855033578576953964850805316520226193705658095878011796738841521905926418165008069806997318300616212993684640971719854659781160329635291778644181279800287148579032638555426741013401069727482537593928645332301095830354261392789106546580265723550470740743340561102839544732885031787786535282884154880362636096540703601781127483963273767070281056371284642239342643846961129499767920273691562654149795076553302142931844578892403093672183872796402381358680460558396110925400782301209071425676844772617913980825087980923392071074771767916814604965673299560072166405549162995187447157910737312684947035208157767047794000049174585722963687251487702271871363948438459797742842798638306316296096920855362076968205848018217876340441200104932400410575248027666084351269697874613259878595975700829501719470700172812495482750120137737680659654150569030611865563878276628498205154827536616008497806479956535284578447033402496112993548876946058542845845233081394946914262003054419761804861664287312787044678759550474267656729306841431556206060518655244758172259856753868251125280930341647994421160848828898968169833404487469412582207713144835085406779019084809941011077445160886874157619223353539345242405498625230525717202941178032424452297877013526463920763301815237951053157872325732974582129949599248538099668667231915988267858178628317974417282924556906592743537470950727188838881832686176065069279850298898601927162462136212689578606316455831761904369716076677692564000272383975487117181386274741108413236047333398091518160545371225533343267230254368412415936267270954752396436150757837600732982943444836422478006875057930980816287533649067408191637646488381422392521293892132390232126652661504249350189331141058028962335948206455710478398640741407523841118246437608223448683636671136455830731335696898900687053259167823699816484781275816156491806200576018308368382713418836750085091841581477931855225967307306773380637197067510359713394302635742284089585390626338917153795919499472438146544949271559468345563640415142526394391551944098694780476688526334422153740489216114067529911036731468671799834387666745437849395285971663375869010507223283043419448778439994093380323811323393678093816858788459300652407150138284791299437109639628495840456326272990420553603373289418281858914662897361354740230025971010207037753225725731785461738404698948514770986699663238791447385579836982872759500759430815164340792623499032661097848096053982163802907459794465142929612678687107788239818496933649603401441270960214042587001026450447452949636563705103740272265522775306440621877877384253644512762214218221800699368241816939600469948958708264454027324668094127682608482793889001878900808054492575178876103585543588390085942058841989077239793746077876020496837064473587680275752503404039322375568083341535764651253368932884101017532579554441830925354095531797708269347536383014144349221079784346654595460284273539451622202911808022370800168721297205237088952425432934745551972373684994997050877600043309588271564483248452041638629536063332890121401744733031357905277681963584893791689516436171772943046489982759868339867479157307663782679611975465406166699006522712172259381719673840031924154990762436178891440505873651873962310416701175916613120706086879260904589277674161197212113540229330062680254042335584648955420282831221630431905331707084558658001043206351766964602063632949006597828965284711509677714272848100384611466798363066095374416753269033912166509303046557925401455377327349909399552871104610682710135026060042470235074489498538353266569357070520420277574325014151916094034651799191185941687482435154445344712269548527407937419480917429322154018076044792032892984801688287437081279522789633268725202235683512822495973259110289995319893531398127111748978863948415836322674174807396171644790811301121850709165736317914231016482645735469616960837678501274517777357537891488357483327253799406168015742435003626767480003491338541690535377265300273357276081533616402094507393725943945879573754801012163961998592655375932396198192081577307621052002865434389433958012596863110089470918031104936885689313220140151388033996438791354145478771715862184751587064982847029883428872681650473304152371661776827572817552551639615566327411634217715943586510398511702617581097749734607206043188409550823109053316517495806782368710145201734814804262201810993897268776846909126651813453232998976512131510727080491092546184458278261698444259141695541003110262522792004348964321248313685264332074486388414068187624746926701257745846283129198499712771404755051541267489573926636280500572790058908660779847033993267023427992466203810949142917540809281682528252315675140073208716168082274482770017161138507432165889805332208531216062560434797034171884373703552069679455957677612796995625927154626178551063884064819094496043866479832008224750446819997476024620337731628744315675293722375677937572348084589648238266283998332698566136793405270266228759833608543736672149625936492481738750964148924374867497425582596278531814688649098167364422317174266960620919212443150089521666878163473516945825083762664582507771900458522215926751842670525523150562123031622619465415735801170823105118080615234615910478222024123744374850144112281124797768791274205208756455175644525718706813007318877587621132294851470431471864350277317181138918026703660170003903679454879646749066234116195148801249173659086626198605129873210559424434816820491725665920584436137065768485558554749811994067754228705839253493080078139862353254883887817640013890826370337344861508783650645904376646712572093926891330995751816345277293608921326413266043267546230001920730939981882563919860792149841092859864963508585896967109220770957830810055543514743117551730632229782974353669823174609721927025726593407522771995417587331859801659277318519516180044607004004841769911710576371561723659455332988851477372250088246657896518915670763241402228945520794394081910100681689125321419511130316962439052907070686754399638221446517930938927489060260121574810144818980980075877122159849555478661354766241274998904456768678799604675863430277703856755171173507157545501536708148570742083252183201093300173021513234389155126709377462656175827745477531913868938096137691714554659534776540641287570114139349176570242908208042795962661664871207061507181143602616059936852463254720845585224555480323419855583840662778006852959691008819868466954054905469997443685179424882518302542731727430071346726403320190092917242759104938719946652457541835203119844769289393158902329085447153587912328661385588472129701058936968072780255805936613775381195002057040821655295101967755688128747905151032013135828031339966719737438244082716805585295685177325937553433398959268082273042201915913011399661914270835123659795766350983476023863798433174420333261991867194937356889795853076435038125474814719647157035499339643113545490597327937160602674254093852365958730571154569754262461624618491543335465865616772835075518064271839535837877338346237995806150821612205570629176540641209369364604258903080103720640867545553233018108065197561190712594372124049940561968243053157494268770052638767711057121386127290996896220092775009971451466647415887219897395806135471360354468032651818638498888740968451696220065062913040739254131998384838471975303540702147291165928657467923718023837892663570907379013601586820245728387394499130500172082051146497333397750805334634664448653161941100686166220885031345629120181787181714317523185250798100790678591412231566114820465966043006460135913312464349599021905591866578128141940116689001489737166267586058895894373714026273217215088798686497332990954156957728586228804979850170461911215004911663641394617146167649516316228983325253672190745023280551353461265033648093181356653287503497730073548604669105271292556056187048913768848996624128864263414118793663927326163636055422306122862595657449974163479438693539332458111483837533776941820647926258678971664068839704238764116740275682354018992200199024348263382014168584320723182376963165993028347675965431932005311170336057694504528106196350620970206769484663296098886801719354431027338745880284040551841811049653957838784015222791798898237831561587627367854440857187515573799853431797676116125176811660894427265279704423291241195747735312455067266747241730138911618708415990421284011761608717191516225251572208843420109665156474109439372787446834786900885323023029648753606079256269139663830075058365900965235004147944542098198887550799039877747637910678000723985516245483454092761519778261134881642054828361982254243057966851891249870075476369814637933688513320430607973780238644866779897324389045332525463801003507884648383309239122878100150047284051313407477898018251982429776459602964108567338976383882421408551209424543476185450397957242976373332711358634836606475296616286530928212454160863589024198998488021245953885462698676360194970727576196889942178000829328084499366605828669164101142972066022064894680959325929336223379482448334113452733754531748874380901985077185137167839721080449241636671290681577239221188144765234829858653863732078303704014864292398487943207135164506201432862416270069524014968049923501735748514273597040436363498863764265375468931405037493100104127623199154912155750794394738309432384312574898628259456869631992871782005697849979816109839259125757306421701747746536939898673587255893184884428869239008488348167221744825737661215176123860074982711210466877946722153439421721061446572667209398088366019738174989871159567632043996262573551188496068781066454578854718283488263569292326706979885054524362209215407840074891621207462948895204879299981920771472315110976512457855483096593518059764000202198194210647573951060376351232391445260568705736418990237996000679404438084068997935247543861838154372808583863813861516276133769738356256553674464536172603130449718163147607950692138821104560963472793406323644298347860986153275706143418960945759672639535666253721384847432822119547111372314165580956142412262568038891385720979212358664376759082643257321379176312253072402210211719528334020528038871443338005907073278670718163922390263339165068300959566344439405180258008351711042815046552463912170514277260091400654787156162527973189913980130828023110092924331685705642595311111119609463552960107875331481202077673059301564391717397938611018124911806685213230037721326751884379647985272454412517312267708458225342860557120364210317201661831779792766249837653034474137451629613463520778765105529948664655996124596951609155935851534155753844291639192999548292098295179143905419694273954728242301366058844083012786073298176748967177942970905068519105805463091364336281705341077203681338168681062973612188070202428317739698593209582661605232847149838605198609596913745672832715409321353095052302483591078876428152562373871154985387738187692706681147367635250617925212013842479915191284292137074343735694120868529514738052947378585941859077829655646475640778433015577743884459753883117450353012314877869416988866938718474860764518214120993240465520506661859747572922215186741134217174445661052016984789304878755173212893847653236344009062898436321433144595729923526715388610167993472740520621592417228751683239681966360287061877340133533207798340430507623864399683627057301561830736462588391763608965483323488733083081528517441701031739547473518753207900515946516133215882677484407222062924742282563100556118449176303696302962948808269313334706398530764374453680447987343994943970439771393308503199470313862126776578155709862663453249904757713812958941010273980689875715027647926568778367363792058428565427589734650693981067850918292343254289339643619995228105367716868383528705386801522504382500752947910417313831750319572417921738099924230462640497039410378439455871343974340927440301444045755448883685619877136136398721117112258089005115979807791284960930569433033449861861246603141629323568064778797744978851089220802246435491884149697908146340718468080110064138750386525641712131199298130372291319624636074914564376435575697265274475711796526794282841039448077346966976004920067572684503681402919832449257270752305743176913887839770235957437918043342207034223180795744167381932932022492148652836082800459349704838538147082758859552585146683842199188856667305203219276641303253211615707919541388735756777067369214156922488306019105483463334540199794775558756290477224347381318521755347067492310499698768954975741671573173979552212617301843526877410932182965139883540502482680731475157142988279673831138514253218739011205817123020312358370282370581624792524100665044254678321516272967895358428983333513504242295311187922898608468704187594296120865617823840518750092252102660914666824946699479690844859454107961925134801153778926149805060039731145430904164527805905194177760700139930784857192918120999953685877822214701663933099196740171411192513270049144341727558571306654425578475881692884195282255591670610433559573153015465564932322248530983061931804013302702262905005422483351496993189588835628624345542779580320346505316800744764152685883437650181443090964812114323896834664021067881275552343478773302489290052386506269380053177967124000709046471871125425501992731116493377405709795629033170686157276099641718479658389017220387246467057923318632183163706778513436069717571473829782906244726918505606617044412921665042372195973067670043591656972723128633059668370843840401443004560278570134761941294201189017007147704331265646296491090037809438010877107137762930459838294650414528099204752311040168479483798286282321858032435162148353970315923765780191855815896271074164255814988277524100324454101036230906548157253825513724528382334502569436335043115648763516111048337851768174633284651336176379878523168140037997594136962354208006450568321202078326756628129331671064048998401484001789371511274977983104583051983756161474383362900750352589616007529336423798517356544572344115366655406096642969565871098863598626727084891794228434393336015230206353452002993532388261338118252374269967795409925448728972890886671393856148255492458807847616485622744613791284841768768133399530203452052944857931492220196182856861451937243169648028710162158916125875674041930050248295403281784609728287531331372582324600035160906081255402803408267572685029584386719445927459783595907166469384637467446429733621533947296127789039937655516495381969672197810293134774312835274010451561283994733574030231753450445565800904703491888702462801918844018817664685695551203705169781470656011568329237043920762733087921720257865229569730439970831527814869088394374184717668226769213873619808673751494577504436186939357002828999721507346449530833937650671580522966785129794717633943385847070609518337257734000768890875095055910009534628473327109846355468923632240671995755365434904763415784609782280190742417146157663055612879314738531785964548591876676699634127191106935673784326481310183432806492959402549960385551336083635506890792515689851274831844846646561721703664571903530329804581325811133845568559642165692587021897424652091893234601483958274103730237898773366874224250918800174223698308132607369123085173239736918878168658885260471219688450721232324149053969478145710980156812752945852080113886957985404921605072549152453686169967387550542884315833877126633739215448316828719692859494262324715403170131571373093587596453996869017873761766873092288108974652181144435647450896940876100912976693895943902378670435956563271137931071011133582631389201023728332482658033496938993762570913427781032647421957696555661498237024323747210538619759843965693203051757033013978354921247671357843922474160555403831245348300620719932259307916176796445834976323709868039350012358756343673498390206182908058301911087290744797646746150708170516175750846659422627095771735381526594696456556869802100081894546560036779084391768669898422880712624660407855764111291351424076875621850015448324477286165256639224793714824796463454867295252214963340326052728394526702131653804346423368741339574668499091993427009978921642003102845573253780132019102320931333555005937747641414409962176975880168148228318915180498315141019870737834771280010866858060749025361402473342762926820813379238649546263864477010922557609320216606193582733110232497847625040218628548056862834889932006898290486240160013709060217907723366822497003870362170963117959549012417514939713444812602893897091238202735013744778177375137636570920950413884905616888886728455879377118601718976701557535711635203340152102834458792930725827872181938475467864871189561748680465556776328490481450945458932542161657128991541864316480063649210427353923137737286067926897705712784870987160286162765832649459777832664874621043311039083446335681876275178161040258953962731166543329405377476183421110466773172436530214618615675183287792642254786937710907686389655863579084821501886302458442586776767360485160627788208211852315612623152583506537165306129995157129445483645356111680012198878294611403907927209448089763032605635800067757281232334344765580593890601860518659299568289363451653631323615904214330914778099047362197616992210723559002885204365199704612180110705201012683622965917672411479896057354093132660657683948500962214606694430907558795908880021713145474519943380044301855564079260294401308648231272029188329057554579731316209175579538275377617079155458933640316715761311634839191581034292239210553685976113231438078017910709766203996024084856522330469453155504539709754009311408980899736624671622437157826872260461312658352484746811110007022074903894197495015329887957698136598196775091861243584962682550958212790053629027044395592432433691356288544491062755541855163949970832530337114735305972116390354480549429514804689934918417730697386059861045320475749788934722634748641207095910058290668330261490385462606186096174673629736587248445880572437917895176090282560683551586979877500135313389858279617367254697542742941222544464676213069945310154189263164149733397624033192210721437946018235376481147242973297801837313299861944010410835463523659401755628307247422267618673400757309194822440228793283463500098163435990772578728738390385693878828861501969963693321331672781102513881897798079495093117024223270001166542821153107902036547032745822230442625274787693612335808722680570208616712956702019261654029848077702303913792474388832278893939995264826582883184787232425863282690220025777230884349913991505352906853799369568893747707060540960173353721614998258721721424670012464179188633957377748175355024298384925703908037485435698228048786576038671248892250655338087786549285681012329240474019875221374456772927685912656646167693556551756102684007681443318787523426816881370534441040060319681869586787993911783705156602153570347804459389596660569021672079315004041447914158606373317664673062963472443047041048137558078025042013850937885863381864987685955330349808942663177255006891864540086760219292774632653309772521283397094045757293835495613338599272612008509134682507539377485833268193745019929033444257051362174583368023341157567276512337361790753462562444480185357382489501289372504661143991474793635254246187254542549823793224211449692239591375357383685518744890707001593235809885292773070332391269605598484221009975633220340650871401441621513312659267036854490000363859554529317188869323124728307088015210649980434485688086665142167409800124642014329273717173550080596734106976788690339272237354636595804637146179926934627975841314050041094209939461852049276695559440880773943037297355884768604429512456614136378045906713873960210162339621244104195464010661434416904061108079230198158706328725348462218567899151375759313947633150999578080963749091160039097227372306402339663602077045837874319683128235477921924679410176805581401432723948677946105280898208711252696009331361281881588559451872050794383089161976736916501816649797149843598004534020800201360250887978405977360240977769920958116178017528520592599083247128397448478491435324251486769330879643411442294394094698358009001194166204744859108022043483307812933264307842865966019045900183943608127648324980178629399568256883574651844563357219035873034087536562251262773638234368527877523351178724168605586765994203782542063911109052418402923463126654223066153669809186675085550129593265421190012152353224527436819336766096835564036937870078531649852999979548052411257712706509355327803833951429839553793741628614013870294934571792565825029367861075278324559103144368924307892084557698962971985859852232446163627051815206536956896418199827956400819643365149842537336360064579289967089312569338569930993880852003906557450969423526644431857310702940604444650618165276757846630357252172816986846608010368152257389505304559086774547449483280447854386734993741738688578921343954667877694039088063015419697305887120647343487754927754892181286328917928046376502195765615167501903083554300112897370635505610619019699345772596884528473431455949791732928347538597502034930807062639626395761508378531544234416561909511973059763487642423315600330075186113274604321147368016875624243025164940407561676285896825312095326857311604855649678392644486290089986463946577104467078126975849061375574175373916193081667346829751885089647474019508653401493880483077652686611833733045234367957332034858033170554501803947244901999791916574669065589167324746107552462619342081282097623283895300499152047627820453407800309546403069379634363810199769340282367786280104511806716079697674138246686323553647592536303392405249879386719815487188097796136631037349908634007471590179413091053635525890303367564201471277008911471042910632300212257236292815416978352055665501880154061097325985975350269491597745518297217000742082112102886665755127178668339869893691355714463433937182475343443517270624334647362885766425711436513566611827895965942624142593578508296547458446139673330060323694416768390468951638412529477443548835299555647585592684291675425630471852158142799291813182695542905389029488649027889657355602698476896475054621950111754091119686547076679534993449824868756664567841942063910607620491219892498699342748083509929275747182145161578043882568967420744278478497570168577868469101037011924545916892261473847173771595641101938622319977076068573570559918046751199872026456529283934523506169425922019923203646593633317046069725836258947126621673644468301344628816308039472885570541886422917188805412263368523095095729536733184818983780595380712904976305591396903195729596526993394429962950723564315217421551179120436116798929253252237213045078111982322959672476913917382341235397202924013032968211301197803704654997002757503156181572955627490526905994662682120750602187331535017444158421115524792717024531444820061309714743022009581668554424960830585978745233790853713997661772534426080323052170862951011661183896386423637219607032852920370418940343167896042608141202674311650304942471432682239762001259577523948264509881834837044556216364805272416404085091368928214543673507844212981836958784053547537105671994346323048326221711252304196258839390068792720986771464158476798527387637753833889089868523293495325756178036697673266328646776805224679663375869012742520367755335654662256475677708180264840460314451551002555290263339239025662360030234191266561580902195822724769916939211567890737303051194877827496196023913040947971968317970107693126392741680088720557618743464825717767256882941502606352163772308744135718050311997710661529391642142408341363980342179182935635611614496372752078562076116150994979120397382764108399473440288638072028941168060343291969780990259014930016711483126378134535257221794840889667606624735898828679067649129420921985484850283383661510604325721312630772229483700723613539789936106043341196029648972265745186058604282302136350552263367784401311865649631706124042251949468626924166103348227507951838127554408668914336279901414657792188516324639343675942638153982800850048883102431065214794653783565205764502901719722481553794149070075736387095189214665211146088855072022806328100293741176676373269200762518798626513375695853061087630505377234966730628080628735383801149114375501680966149343711469891976140535829588658528021082474459251268014059861947503749584081471656916389889991533476573006500165385539107767626961261931829062091405671695029720673114373981438384008137103134958676515779911450965230704144597228926584949788544367649405056877068002924270191985720249431271210765083674117072709819175791935052533584445496550310670409351250324502644735947511936196899060959564399805643988115309147235963598027720160542124455048136682966225407420097886408847672889906787419386937148368472565207277310302853025979051649884150756359769463489090576253122075962418122768069084155158977284240349382932299268840074134517082477230840265314635222122749356412727445363732248808055060061710424853601165301064507042865983766110343343484082663775646132649009738827418544163921146552132153102470923133101321878147381770947729540570672386360696806158278859083529906293081268052950636340427082312907032742698663410351863822184584719148064230755845295790024872379867148666941539456070128239160337629276797591010247638213617665504230496720491605322410036843813770647215474564189873575155762103341753988506444946173180221442960850176608744890496662054886312051004449330233107161423758908424529917324174420837039367995907549269691245687657211296076164935824997020918159017352986644907000791692812572053989750820966937066068581996669222221036446154531622976227159233446156456869494872732845357083963231990317685633919900440972298531074702215778347991236762554735095525022932697631848728363975568130372542005658190525330686646881363262304717878457958948337453957355650682099272309019402289863686721646012195652430941048615554267865467990344716134797394416753519516951230180227520783387097914539594151991776549794447911806972532784239831067757781132099353336410389261436347810607130864039480958849507770517829970060959693661692545079487621352365624978328515612279559280623455045264382897815078973079244650745450572232346638750328807319947570771361115633629723225168798024592480844557269044312972199591954847293331258583782483202490971681021740037810380724436356581281151750926085809885676011169885279448551097603823257501374981680405344057708873137910948742266501379174212322499221237163157252150556145852961169038863938504394356462565652718928567737338123399937960817925536482859869900853950549105137809488634774049964996042424293451762205024347313682115059681887218013315198038965098355776371259386155823566593107548609943683474520111528544516591180222368902789179246401958198586391140143098786230207740794328188315581118569955270702372385416899708527294731681548525275413641157696399616714267756510078473844464613420713156803594040656976041019021105919104955746234204334208289739570251138473090323583837389901899269108919012438002918316926116741187827411437438364468119914043175462429633968491199094871152851312229018232301561857822357878808646400865676027817426177568943835255541505255920269228104991056761406355496608116201877000022373955648749002679286068266786686728085220444764861819810116517728490111102420499335039631436202825325995115526638361618852650728658818132613451442512457012784984140757335597203619416504770216783133186590714664114576468402274859846694876242278952291352573079882040093909394600651991668556056425250770923858019725534031476758305788537629465684377606269787106413532542891127869569629425858308971499837389651658507394612268439505225680322816443691973608497581184091271474765397250783450500916494725571818261269374927554786388982961045119583248274189031929948411709409001516864781291383381661319268154254325377842929615659980537344160587372960622622450480566752583721778397806775638983841666143055416245734863035460823424783514652754223278708139630467059567819075258266599211198854577993617703397902174431314072308208319676304938671280164150857765445648159904833195361870228686747932783967936583014258641116928347390676482008215321250898997785450570638928521882818156317818269198719523752607452316468828866645717566603269239943310061219584107598469460978684097085826460549121487052123079620031216620818251789419087686050621426403520416728495040683122296168150753874285255631080107357033568178785856248367573727127684432052213236194173465738741703237103751508484834836659999804741846529344042975350507583476584033305891710440848991583966993021636764904520637366247461801752432788918705030292689935935148959751881496466779691714574933841302503501418583593413889189055637904259422553761678911689812192158585754963519410013295418850226610364121227993332954991856813944950093140344261875133812456895165572133587114321085937975711658421958015886927124051762180850484145942298921449080527683650257829070979492492043664975320453972991009320803778339241253673526900169498380401892456999308396358437346112716177110297555964761132226198200968147550119294310309744150492259590610435189761382402798782147731638786110274452906756099265557785608187210914099208838042575944410770666017687298152800987638380718887406169824097649276621157057715963140285107383633487312539972625448955125452913927882974289269575681041773686263156842478621586224428114601696327903077013653207587967742581233617136076381784652943904472391248512989083237024040754694604676334765514630170233458371907323901521454360271391565444224214693668650908794785284248131135784519853446632607499114316391742777343995190713198289764242881687435673273613168160487885380634836995810882542793616639089323083717281879787264830480462937684041000217508409163245454997348004023162999047599550267478750019570005560940219530166720639234811308927172507321833507488037091281578627937677902462048128689562646552206442605566576175059716189655188022433371439157061762231389651868547427850658239667119481667480538992131370634178440020412380134017098830652611706443241122836433968175156129231482497608665312883199975465504229159681413970125067284718806164363705224149844234249973211197415531717866792256821726980481306827507846924141391226640357973236427213662275957975251494000538129798237536254942249493770568969136034810131939050384879142002196941165393721042030620896133393471643720503223580419976634117827885432766746205492982384738715078035631351142700912528137406961193841145767027153006354504227035742134889335326223730054352916550586196890817119600928282772847018901357297114550291861833556252001040239667225179950200578327707501279763029022626111926061161527759084730019766437503444477943829318189805355329439053202269256189073016933037654134884576385352568892500899848814489555386958279373762365525572554704811936808389226103256635726142362086932117795780434102146786696461525543317056543284158449715669620292830109658120840502846770468842005752736610774315362680409487058522102788954609285894324137295899007117367531911705631906065698794909262793805682483949420983437549503958622587327410526294596047598453728190484629127226938853180434223961255680165967967430098077209489025163437144212043753232439551318685855960852127310778387486960691865614175619030845427805815136682988596889814559727842896703404074935158983587451905634844192798023851866806699694411405029492629326736274791052450761770860383717223300415346894281234495663352948898058746873770195645632425359141138269297195294128581112680340242933375867329780803872800787452467607784491130743494208288080309323631922393960194886589051328932922601452813578179090457357042394897096894882993231534908546720359131868035913947488227487747902370992357968735278816696750955810104084942704750214206729203273162319710243836763161799207577418210579678479633516112029031431166183322169977067485614212443321649933899040730166744858166511716475759764114505091474753448755917207350843845093203023238192740718306270209477402583744679603930557693955411170997869483956864988308864148909006143962480199997423231273497894922574912093529957723238252403377727631935260769492195167953484728786888887555750663030616299331544359089541141961165603166004572901235581234354309819136783515832175476259659332939278641481996829554884707655101389459972693545537009333296117424764414766758013800108114841636830373728331729004778465840575552205912204657157750766243647451794342347361873398384229529090363708251079470621566421658523711133343644985888517656451185392783611581058134161859773395923687872073796472124467538644965347382259472302749588112933520260522630043674460027018800721451448412858998020580253023684093067615047944808692198610483315587557277160901239203558433183599652802201272434430765189549446385005100008401708293396784413560837701072906289002001839795630522983221126241555348435315705197855917582293953521400155681625820273580268866882251603425918603352824216450129010489658168904559622464446321546210823116489445047645915619184377206733519048683280195531058426025158738674645386218765306252832035128623613410652985240801517300826855475943940507647430903214940621452254549037860336007202496402543226847307121461994426538295425738151389124517299199525568494509117742326625075950048309234001306285119021244529315744266861434888311717141265156498377172558946708061604177137532978058449702864711050809821885651750701715037655528181553767224466933200992045269118216895817766592574340583130642882874681706939747301537763155211133567546915983080373837009982646566406532950775713050461892969278158768682820450635648717188642952495964828379358691603224403563162429640810849792961586753857634847411504419171704526514624656603801172497553491948960791322790416805736911296724582074266994131753255860543113190086271883801122112773365415579980787371760069679324769488701942577111964641054766409469191874167234822790822057518206157225118441293005277314498596103621719843834900162092069064949896545199080174658061203354047468874408202195658911568892702969348825653930404777875009566871414273095856445255263786103365980018754923396484526183272759101848318790168590204256096900007352883119552393781894221357661914475215524356299509166636441050160412593079364212783335536614352138913407205456505017477493109634277761437909519060625982010810447664644314830607345263126579153861379535563266157214822464418637855836183532980558129050228773377845992889442411922204447042448250325282335357988021262159029526947806585647198543204010330063361218060271377517845178191856723450716858992622079031061462031474541576722320613899402437446319786714344552799458636462974223276204689883672003127121998375145490075750816815568842700342713100863887570942947184749809146383754292084939292300533963805225439873724958484963347446106365863481935292506111420553182843627005707114236154276120805857930780660334614180415604378098377975165675886360811557837024690241600067020737032864256886198408586339697108494294216066622950286000429723723863625238308159717609831445651716837581981323359356082250010894975289992014847428325722591877582829570568023431770499038802541536215443405817219905186460707618055050991888080461623954271729838635649411496768703829168872873744406971516402014863757900291963430845382453736498276742323583329004145880384304279228384103726792205829646039187496925091815485496036904172562760777587463765964385694640374527727225520048272638253721370518311319558227425269673303224082198592552550426016369128188177074952292106502179754218912141812707855980544452559628334894527088695142124382314603817924383941313157568084282101364236157267329058546930394896486288548040832490653051417262104118381907781095967783387130583282448561877500771363049233878612076672614359834389755849411644078362579264721591429240390186839425777057245653748634948117046505584499675126498453274576177963352459458436955941571725951829175168548722974027292087472265107865966436189314870356149606246714594700379019106264060770648899144387534576643716428340448070498248443871444413894904792702235603601157139647587039448658564805162082131723301766674327024224295725583351592254011659958645666777846785178825090389677813498671224237825055288626886359473019930553648324500936611415133727824092190684193704351462810052371587869190453373245526693141164120811134452732474828006942678329595183352375224549127407862721357466869285314211593072062106023121056752782011101675023828814497774559826609044291413399203975056861583915388878656300126389963153202602791827730906408755906965542369916439084668312226907216610154327521805564768531149422728638719349583270292169994029457415938513377789571987267126141381794569565629391126310446074516662427255301416111341819697112751898344197175170389403167609983010675605840240033745998546890505841706518197584516481508402874695224629644335058948765995042734988665677225137165269464192819981705706927996493226150677673306480737542877449531950319034348264504289232217953508875830180778954618160770044590340490056272797210095856249919171185937584158508941528100909301996697904647212483812514314077586179209727736780968086205791776504273266739086412440538479232416482628569122847562712758151268324381468992091835140854806332161520637962933382753533554548247316810383738266855578076087446835874127811859982506212347246133574104546660910131396762782910065779615229200012048974662199040574440660124190809611280036503563673095239215484385712636423091132093673199495890978053349019330140453110296581951065011054473867209168860623933875032913908592674013712436355319863743386353313630648817660902304353524505386049800382980415518382392226827154116495792807660357687991706284921994005175978473897973713323870111003019819426244247834584593295266208282170483012427761625746637847673240423990441466862686222140423602677202484178571423673444678876593457450328035093029427233446702101993096528582042460626618533077080863173187452955881348091457165200762406638697090251883873306609553188937638054879242389417589204585393983523372662588616167949419239134724256073976408513340172767322376025153819056618656594286998363724891017002560305276179520088932424587818940092988869000870299976203983267902771841045811875107480829702773668931721606266367888426074383703864302608404310471821908801554369161477772402600535590071071142868156239521163674099847049028909295261884825485723840739550688400525343019623176758212131458350208740024803330519850028173967040893523180226945870445380512637387685087710585503628762027482619474100282545568453604063249101046173632356427343457663791917379930978184265857835491533799426572791375221024223200127862599424076675962313826143704460204504756836043909810232978361037335125998802037003918716290885456587458687313571925882237326918421706056868148934758144129355621796638868004848564305767841721512393042264660942683463057781117925240406960551866201797118754550315164795126634891914333265173010488382505650960358299885694061735964423261378422857461662847422945985754099728080473817807532149543404230373427631385658470514879905680193821535013611214630982811427364914088730935409382905092103201980679995647448496820525652642045262515836676833368163696434712785178208136124848774524745536913188060078513513549547511554718569998123787935405431906311517280960300815019320646989643309883277772875139486480656525486810344562340744972351749235502552764217516327589360750408468182695855706586364980638957619993026466357329977660759756161144162869953357690979915359207137387845626886608537502067056995031519536436897671013346850758784391808578177247856113846872508988810187843316319920550193211356260410601608520341618323293864940938286771174202835462031056291531380896977697532345568868005112482304758952233109186924904341168880605090863065946435661397033947253667990765644697961656536878835402461036215090051898194448109856510658430623686108487668866658669800938657668664751057826997266858927729224235390321428661141928215618007140779059967698523365371046560734097053509337337766984218760360295947751341971637676571953687559989330715109219540105692975737369898413551102675123950156170695917841883602857330964533958502951987192781561219323955373589157270785758213032194054226374479261142980348144707204673498144554061391965766324986911032756281415768249366017674866311812946663367363914313996175126913179213831933556504584106567208659716292679244460058998087318108665156497154704300256905560562192366389416018253596407195995108663339238146505637594963333247158296716366574358119426894355410142380026290429495854028636107895801317944082496135148879186646529501799625629115613727121597340851283127119840713483254478274396637545203136764139100416791688677482649093558487656507310760514624345872866446488427071548864144404879496675650296942577634436556128715456064306191448054689598446408407090672232284090010106788003271913600756086686164912474786660626380876176792791134795776246652395584230995276483896711146414078996910717537598087652857530425407544076695991172967584220180920871805438935201634442754231935920226938831533679312474799250014265589185920827708218676717859672195570274485970924996197463944640421123598506155917823594944405240308263798528561267859611658429642923327900030460900048858234976039920648822868085242899054968116251250840440514571148421438182035948911347778998729154214309454133579837074283802573249311663774804513851477128098512979016812091391104614388917062905487286830805421156981196432833205541109048537282247893313202563318444687932340630904031403103298888172425533582557357559659957283161662378500489268570343079680469418754870053955351522896196605227999245844785404616184738745500280388875523715801965738806908249316152425749166967246282768392946026714113731494743157522173637781673894020208029260680918906393302647915383454656527464497831777785421040900803751924839963504894104501511971139901624083385137273494555366755062781625720076277230537928413195462690410605160199673159582156061168033380313984503496173840678233764588005581440175760852196932677271063826308086944547428974108889803201906401820028230066523238867835416292974961529887058462822020165982250110989718478231863349015704723130384532881416424100602099748982866130537505971558764061046759095128884329018681416812122166073170451957410416191070542173073302893527160229655582885176890766670402195326606642441343692062740632348628527129176942046548692123127591362526539144487339940368419944672353117823037405892811873362458559311474280828599980811311667533022305175921963028842200908707251209047448628157049788463592750588811351415904500013368586469696583155563838116514105337364181321145403443742471100469526550720431087171634498061884975705190332597469595081297369455782819052046224146196274829911752523605645285818237825883881076472145903961633389192443395234786285558867045561893761898435252200569737074338673638579914073196831099174547285233526844335006613467691634041010494285406491490004327229662329135220622160074434584321444577854551634651232277017036345608902241376443304561753253438814370849529858640378017424510921655780833057909743526471561118214550727314745733043081094725943906474990572544376427588618482644919701843058596486696610409657241610811343442270690048450213465662066566940145968612857024487817672786722704582787467948523293527571333105096319067145540528234467021852173793162498867013990644853949763817561884532359916387789999682946372903212814583915966855470346586020442153304884874325342464527199355825100504594603792628650215604482887898819836825671354422550639784744688287547518933386976756783522995848942876030764649741902482460478962887731839736521599204683966785374973762540133849855743845596748471926344565639736508537012286716090081567745527032366833888396576114465543828245951807668021659096728647462084553778976074062976174165800270408850514237191664882017340024271790633128639247559753031483491800846461616642997651137019592729277691366480242993230114119555554109607011809492352127570045252218827965336223063027900507386900087283128541788577561007808694427822058812698357694599083648351377846065309299921182160439168437380099950060213756304535895141559913240445282436069962411012426330479789207443073672303256871573296857306835184088654772803944637983535146686568203308269070524701150361910135067736291004001606604360105134657134013481444471637736169581037916082304297655547913260514928592252553300964345400756838152235691706881095520766239218650125691123702294768264772223339858439102866727071345630012622268051427195613714112652097045905848959707114542979350101842390972524905882496169322898634002179533945596964939090830175317675014631615196926592010562338304806423516634495516738101760916482503468002874514001626158483898629254816353940396143246646894676429177667814226525763887396574508958087740549937232986852534946509652451962271669663888461274386128528871645016535140140218973908797667951789176713521679611840451982864795039341470604617615728225769110102139074278460483744397705549871447717158960960364745700769252757068469294694798011606602977164320006724930916860849554967876668682314064174753389388231056112967878276910618586776475148516590480800939788798403136938225141897380196420471885211729713000758786880672379080902071973980700334232035577955726053082644152095498647912849261215226263259065804020909082699730053865479194327461162036952011833740636838791299808221375709856748155820199824817000389685914749109992779270675588115873272719001436703530395732131727147214192259714028396945023789930304534733103526544719996582856344681350294480139125735466703883693325727890816494320394925932747403159408877285010134200237266077769230307330211845431493217303205109697323791683994199449984196071389399306048153347303301353008110903646854137818454647400652606168514516431774576350386759595579201077482412890385604253744577883525153815707442017881026113870684185483123500932530593825660744194766002952428302229633116332258534368406054922257278358941306134748193892078139043733359285344238971846358879725161917223022145458951658270133025654600379920640457722315211891549978661913715759508667068266321840348609807480016533336410386824584153523894282238332786464039741306216401531879200884951555930930051242201397664271088308517121775749636857984772266614250872995196560822484853249248491945726788768201443435160884683963413956663602841772481004016311226532494526873182342781794146346010398524286109397169393672416322505325225745326891843316008592839890177230932937235515251660510747983650573446034156350486054124293798275396353501216740659634021104488819643472016156407982944373454246541173806672631365435399317755591980056475265871146152455829518445190979559705289967853158774976661338967683811218176314642036977055289407962170565891283421085392251905714299382588898031546180548799870661334565426259524268360577943463164417501948758651271755886936992101849796179157564058580790978016860725077714563363877335848513825899597034443780308294142348095073649342305072558720374336061257544565180003507994232840951572691133970133612371912002748109409244834455421977324786935035251909838450357219948354769402704892962667706012395663257992295146251081355162775121026909302137668301539831865033345068141688321528480678322123026460757695219890497047482533690755416302323720104955370632919550757460843411250260874407733157452188640036497066136205682281700586319645181861558709708817686374462785060533894339826480074721626236708216270385005834694090286419125255875128656651289569070667585473727811186890945484766637466433098560367911204338994631849500591003168504922658012815964413446608345280631166899304523287433937038302816233096361992785258833214541168840153218459158652630426105245899620499267365497590075456187974010522487699129433065196887502865669980790393799655397788698850373855780151109028657666755779997767083873101454220140268208537527160540273217350328671338498923153805833425361959731825656368136198570063161481190355283706699259238832586784743970623733267694196047281074890215664191240624679732030271280151840534241588288365390060071031372144074893445245768867048586530435245080492130999499297369606585062937200464797372916098158255090170188184897921452632676223314759276276458243702826555088510351027003826903762613290373906470569625057951693332072386516025340521353657777917572112220592306587383579208420802298116259422276165750368787341680011075067865006645943097326236036316217939792724255936185744963207156570224947983793574023277344500277128458000068757617793986475174284053143249235695303616626227600692002842823068803284151399995012832733740617978928790495317661731113654165756181293172197098508629700691140211103745707378745115410198134464276743013868649961477452746003705751402145859662402326263063692425157131263118574153357608805157625451208514979957623531173317687720776253286905416336751080006933420795625588174355233199776756436744421105108911377667779083329968146503006731424807104916327842925177989731990649634221083378702657289432414389380830452832434004038349537373197008816952300457010994490486440018572354408194333215558697716134694000961780384898711428407046233014362181163811080563629284896427181292717407135207611273144238886006440302384934643084230412877092528986793330288521826188873180894863844203863745471157237017281147933266477318467097126870840369883219589808748977012525402133002625946627541426818507199034557362447274029551450752057840799141581975656496549639462917563135204845818120829820632577932508796157979361245739434341099599058187097167501726660503488777877555046275471085538335632716637664550603231612739101213091871671952437673068934792737838220100952310496879284919216149906510522559141635524891516871499065745504638980484513269426714216528093807739315167437794261737367598302571960874807512435685692668004428839625017539038506465088640269800677585506584478971669223477279639113527211026276449832492090751028809632046512825356261647690852845363344014163301816745747934487982251566460791274218660672858121630148983136205235989443163970254070613884513102217274158405500847304359705228318152310074857711673549066515689230310719042484877420075083586136283488980648446067308286243035926482459000070353657692091602789013073633155595262068623869430422830253847648285571321316592270256568457880439145924949736791842838180868040659782956001969351497946907068777846366502483320917451040232799766572407555898147594333045623729698760389613521946057746202172496084236356769991694480961812175705454013539556683344347049851867554688145602973766594102182075288509345111919947697096186079146381148647988592717173253302032006072234254035616081664375089310811447603602760882280981540072543776159303806483450169526244946164668429018387682814590920364227081535671072306148454033755909080871899933476748867279426599585988415509972039203248170895699001931303671244011517521824362111401921512210478103572762112468523560497695737281969080591626155570548063938498458242534972108615797537635611810555991494349090213623446968306904863813031254805367596251130484398980234803006626226198524283773569477266045834174816305514357641621102517888410987823539130131868131999381238158658080470723811901936200520266149043536552722786768388933138991810025125422602070125987263459790735243076862184969983971222349442301525731499209026143727300955902259737426475447149109631803297258519502988301140709702678571026071794658806791858298687143760833328491660929327127505446273055601581611496404742522191296430428007413692501076116049827786914060942192287153500230310023736120344541605971795230484957222602822064080614854454487474884699379518531276099496533761002136068733078705936259647668252025413472184342122254755988265451251001317892275827855231665479245160741327459509363077934283966650054137705146257039632874230445811805933919136481419277101989822665934470277628112435212193099327899354455113390333622935940467285637743403388834516742852414869595320848163635276405141221954493784252608269270908837074268501590701436991971890122094887805126237520982022180714420921386671013993695132412929344322845290042860012060796310685110808763659784241123774403888010862323184989098035754040166011986974987707207248523316309766615967942760579462927034754182761921141953847495041741113770264740618298782938930769620974139926780960001440520540152344719780868533484666541027090329438045813311696976071120333566991683901892752391216267488486204205698274956351986565973476429932872760060307138493056360608499495331999226240346867592647434999553439586004316654490740917404335301267960564316660779620311070738596787826259744682460009901339657758555954715804623972656928657528472320422731577674737018876435879990162914187384643205186222773500872325203822939129841174548640764173912648900641349614680286467472145000600506899932608886044504852291834725603863658102662368930487677835539164725886938636880298795277117071922704890757144852658739834871527033649942757590808301864787485855716671100922574841452454901664733568378157987333191708832836895029098537189181867070846305059090189443415255497195766516298171597989564343842635131656543590303151872085022852560431150716011584111959096024957058915197897357062187061760942674230493955273791136786565186157805730513987692086192922396893837913958185181400806395919020905514680474252599241643497564612851265880557985747827324934280598654085786369151780356646321727559329901375577199660624216035301590896502440349885435039576388162769665907413356773165898282439227951635936280607641335511017481988176508534377725050419176830948468227935736684088592080183879212501703068333508121809491587752859912162126082268725919730866863655584738242802995961504152427883575785359898993852733402290549602658672060378391306928157319314292019705485870476499753764399508132269902252586672198630605966349014699535161350417230872261694274352203823204158711095575264737541736867806544639813272946562567453629391603685493145196746464931510841274192365656075304541176067352964346127490436155417056255487514044044533425030490045322445002342911616410784073078510832205885607205790938229026372406279407640621517430860895311063145756866624163911322907234573869224656868569973830954404730494261499876149971413506853294620052109997624885002811377001131768255806260180113416485172051561041683419745942593086398584476210796020011081533300679863113419523618455938815852989125447474332353056326701798849663172606550799082246557759309302410394103630123307802813368892553382470357745005876481448613035131002598041541326202761581616847719840926107699644497549396991275877296911383915609732393473597932854601158872283426074514936252301339454084755525034021849824170431038126724882807606427140658428786909308904090933955264908446399937913790785366797763357805382050685320342939610830232051841274690604969661725296074732162067539259931971509710563647529726822520611849737252733332614093579863049414086528836026319280603732523337903796205288006510358596828495338371133284462839133498083176639557577174892521220486306847919067510156349732246985445147546539523848220227683355993835558198429310666014397117800345521717841361999784522315759415620634593064256010299847398793220974360404889458494153064356009056383193861807593954940435936082674501847198852915470528695535080267849666547369297639425703728277774752087200207080982441357246799523906305038196499563644726337236558574432175634897345192942099465094384634583181233493563381432988383506631267310529074778437393965437822467749085655595857528982264017968006118030777135144462928295775510731617469389365910363652284112557872129113087191472836513603053010764048133278939100035259976129737426557735617619625888604420663143615852819580134972435358574299798688420722532498836659701656462750949206944756541443897594112849621344473597448713308486405191684583326181387215054374928225028546813452638855134067065354197580452550702726854602255652586588459432382110197261168285892498398102443762023518782215393059112903021653033457257505865586454063185560659903551806517834096009385657467309097095655143516115011753991646695499911764791193246002494078612827215985777924822932824176220193945010958264356656159778623601404571971025317927588258229913230907374559721261015333202713359167423817092197281348564916838488185088555666504297153986055577469380971832948080435074790328021539305755014644929684379317962991467648200178697704918459049275966813981819451905875830433832628413266760384697189523951628329055364494727756038741858737064886380659690905445024324965432339506977475562110601638013405020798576060083576568688969242105715695855832299928775710625005100672230910806635279915157082094319128752478530536217780118949881360219324150755143244679587505043787872991482807680096895490267596327519843189779624381848607936359277449916596415356265151862272081279183245227586557430775898512717817319662822762067841814030365969522608778688325959081745832210860345954287842734691204836984922497125325433014080219954770518656738921278773928886665661712392393589923616214668824406947226734373147172782993247358450914903652770635890271961268694729100437437914233881360038025664726833104403280633362043443051724451555715824497375972169783146134606998674367187116573245590289403347010174592084282019691959984373616134955969718016343526199287020333841299790288908253248797308902181728115165431231565906926411038046088556336398624974024888975719588981238473743698600164394998427090488450130946059446427652578579929656301703123641883562068076603497789251391042820339633549352866702054244856441610501428613777511244914008421801994975228718032557228053334251450754657613819985163479862692603524551362233643805609900740439305418818973980877454583885054114184167758263636286505368336257810826438572505495232603787294328184591823597568063088525373880102824427166689142880661886190752879639483074659610279765090333244427082616128902247114602568763383029695084044204115017887457535684723843046493229205307666287471089892411694554930006981389405361438653373266842933758648248974714316819287157288350359430333948881929154384515533180785287763713177359576542596864895783367966628539533274295314498081280882694666899994460553054968292751708245893051322200181919297691227526058123305543849277076700674106620361826251409386498802743485843548648952248388979840659773423539660980016567110618639655180964088708249364940110878074594087308820908323625950861102256819825013916683232782643578366029764171616457559113044599815191376350700993051095492558425912108808356603095846201065972752508333159634105041020537453462300385035167602406695747023149922969750889638166349661511673050460734038489273567768294577008939105871228347977067572880936999055177443772783720147808936342992272715996526073231892966877529308716966573348320236682089754387820962602886323264625719926077133258166465040609172138588484023976836833825575730620982395113071829480500022639059683171696041688780092865896889219294881400607327818028756798103614358316450975999077688239032732970189280288993839003062422642437066905514343033332206715367386009856227971823386978896910715160942381907636057353550634268175440612970548678874271694376285111285460688343749970273618899208072266688979977382723108663415222693988467061006993797391109311772142068455184824500740962489470670370911267852684993116892007749543735208490962354508940108769735201442795257696992875145951685704619746731418941496083697388879426764895504250612162202787395228023126912296610716856495790304816374544961348294850857287088335412924804552648724057801161098185643722581215025183701443891074769324304396343603982667089730178340978642352370862581242570370360992804793156947951600024549307382658497618644793837123579157206202918797078909238125581088749220552788825929311623157408479939938149290570281634582873526142462107471510605617354694684765753346061033546372590569445006476846537770868030800819554673767677273086661873584249804404186071362220791395743187036655645053212462374064875214349667674196205290936727044080677267757037707842154730808403796920433689663328611273940944975520229304974321847357962266217148334037581315224568330909578452734999899491712245510419567010052163377921024396092765995294353482479628688321088985033313808762681743900793102271989613893257846524765373511348598432410747470894105614698798571874454937920830192910110867660370299836968800417975511340081506524316881778674871050327141434759090913611849500115336830582251357878281534952817747532192881338547005117548228012736685250904863482424730531408808084291587857278112723210853276418812802161155812328588096158659836096140131313950834165422218450261374526856803529041619447652056300978734090088277008224150296539035376625434907629731715775107719107679847267756358245828209195165933027047797092216787469299329663787432075887827973569028883540694955571485035985361310076213402300966284465250750640526598310193925680936850082132109018174749627529072200085069051695352760960030408137789118132307392887487698399637106170893465428338542387321569653652225954501873607785788926179325784192075807802124963932699044198192300895296266839823246285827810297891817707391142770806139830243165657930112433072266613172091714515056666079901422125586740263468066672678766054311829620998029758900902089824914444706138920229406429631725499742304857531012054487116331198995086594310262103147601447998219309317580698840027744552547516968042088549351366547722277052512304928020718299450663999229732500236548450198342309525912360715478572887330809256743576241473475885940274016423826631873050906716328475357188411430732414457322801302697851304087475808370252060230450653922109982487905967862565212163459580339803901573064107832548897190912173576984074743785415210080802681750241063273544895806488453686190404599159140218824256192445944787492158329790762099953866469280098019500135964228670269970553773292958954109405472719223396388820115318732547619697430538244110382071142622722137557806343985969260274068790052730634176257616458593231681375602545208331880639178151056627426342453683878888725614874463474745725252870616427829808538021630678051433968747103353790077202021180157563190008107539961942652186932505443236613898563225074645358496843815111245797282483135840954067901326988404620624412358458283661903649833286039308479755492704849498212613826962849173176485491355742859958220898322165873658568878280982122473854661282510688370441943406118385434385510943380565895081834777808412626996709565914301243428189290588277262694127883526838185008556826445289105437180537105455363897569229812314196776808272171162484344397715256714878677501192131966242674927059626074384394198568577516067924262095561007492652024028643796998846607780320270504320056545627602174219439199495720126130327183305895011086943584333304553757892166371078033147759052138801873360201545395959703728791530326580234344922166511134359328925462685612242733484888180934493467489241514068421777753027231483716493687683975691137198224724145787895134094560716795530407852541684451628638727829183348434960255904279417285651382205285949269902602150496905632386454244398298821894543214519836831198835679056147354215178352994132226195251942843551551623473070123254337310979362453768938841362852934965551066703416486377090652666829188887755242541121420927486063336837428410174044676197126181284561604345822856265057398672141551819081629818175271894564509632133641757544052748046184395132868867539319930258751474851677632118338754159507557370618282918764073957445777293219628474862676793304838815361811766901384264026768678437631523496533385653285530054235395268673731408153149419343701173326512326381070121075329239708208112338744185931314887966308840293523723678502378486963819160249236495528835929658143470680559954006273912586671711188656677543212287810435002282719241603349787783726202769914715951962461121377018851879441380052667017208885663186603431614902166435419955784526131783533918210633603821306662269550254422000012752495883556730199673690081370435991158945156213641102991167424008240530585265703194636443472514950570447830971441995838026305782119562397302565128941905175247202743409248213358034458412913296815834475935209804985096949605771835047102032289891750939548711382065565298709007637840512572944506216817236223076477296813710107300721804975389024441304686991059259563864552305619618983539383979679067804174492715972401336519998714900030231047797209166583194790483827404679273710823853602578292771308541684880799406339687313558755633872712506085335759422065832926087661811695185907868755911350163851568635728664026522769385957104202331735682175976987800936889340378923598119638020677431479701765226663013002967079343569228642159264513425231956032478792890815058996588696625527298854859089779025676022587519258703648071174877267085792667645276161278489815035884316238379106570769388282180085243732009884194504219917925301815561551885372947794991706209594173611763300009705008135034866627622492336153030036002457508591281281300814473824144327240125705442541743456397020790472243747671157447585048315355793898554916248748180484308441368148494995068348182405893249318265402128040648686585286315745962533944947544075887331411076754322612771067482186787174827703836145874529760594863910717548873907573594362755686803729179973902092545362333434814317684519367058869357610495314939490034188347913652184237263757217142511215564203869651402017089829618692825560506646917051559589651824039847334609882794250892781550113367255470106333182759541790625888662129573727565536837343880297874110565397234128840820200769947900814238065212270054275951082062776730629985617495284150654715437381144070219299435541665485407276037782058138122722389987713997120652296133952548183826661915971016916279170756870501516529757921545351274277234708925130028941292664000295688709899361552610885110657351579774738118267900968662483044192199230031322343565022687934995828796080094289365519252289914220381172762237858961336810123543139101772540755699705223869393354654609873463773411457593172849730990479479641141054797075855293221213467167260580598196000098669858992686903163938419341980769025480456889400530767195174500581940718896401721081538998983192122637503894140071761172812323767927579192946001197106239645697143370139658340122071559778069040891706973992999271322517930922413439144591289064506084074949054771315254213241786158678356282365997984269573044223196365766502873591964952910007092262246847695859432564170819066728273536330472921346167205802660889557075338345374795372404179565858392719392896696588600913836030908596768399838321957814575173427316492210068623244168954858866973031827895035525498549098804756799305384634769092105073916874366685735320692963772895447486588345464334335021865106960018119923870108717807196429102493393020583643305354817964719697329666352514270981809568625138125156258373143941942582032821367472869070797283092563611993964996689317511220310696864475777111396713681351420328249502374736130292736197345032413445258366858310806113099892073727307415407972782127069412599841278384350162616510434000122038022387477485049599505744291901577798684490245472915472564237496932743801304188836010713431489104706499093411077204065324377583541807663540643431764919987303709766849283996675099264124438891553114309937678735367989199082988797878439218961488811662766786359342511338634579044123626009715456028030018535828045798811647009970857110346666291347359292410025180250874505779425631467761100743874626580221342299462897701909454663982964234503509834341181517304753014738969577485321355086874203873642637912839426289496837082280934423399560127601268757164899930845738073546251160381792509001012660890783534467782770222750967532351593734345467099632545144470478571815521523383663392087660917621355770069705422137626980817380859578746562172446033004507586891242453715800923045244281507427243953353717753221029304898560688464468025980903256562990976903400339769179122623297386586809819744003919225084805085604811867665458809405414682770656286062999313277557339458617042247801609735034509644611853484853788881006358236993627551344760580163006210890566943766641791739103910258621622447155956963499984873968671955079531416493725523258742122920411673902389482775176677389130806630991012847042526950582634111314923892336408792521428127869052177142770393873686262486965957520905430755269787964635952773209370632281464799933417069331458551187107794127233363565692996639524082111962108643008612305411603078968632766199738374506264244338843209942285459582850706848021785595405772818283037867863307833876521986020521988935617300330600269013951105597461740264798115871511240496458494949169911558669899840368654221402761041334892774965388924716271971409008365698951801153451571882763993036413185773448578359716192037227837633828180498382910300999792594494039488617845397030881175188300221512930273158934661921543335103794621409251595960621556809134835049838398673660103639701544051199464243944574983117315057915627971293883015902321946589767677307221731219567246003063320500173577270810409703653787255871209941213715600559930652040498155388670288320770345811502405476641594278827765674031570238563346136256148446025025019415421329203462398459799588761947897705257300762418819360002735776854221578954170533794301209880700207625473694070075077116334120966111387549817936745378557928040203616126460834442727531829661247681456255130974067248359901575625626902340360877129827079742656998883933211101893479368997098272859278610747106884381604924653250744852134680478424581250067519425433139627195414498850378744884245026650875317450248555161337576388150836933547627553246670346003464710793312729671165137817246911734286351145911368244083818613066233913399628817724957261112391688683870805934172033832070422103364211500147481689222175528165909655305598778271862728710058361808612109900908561557374134964213127474639500968069143199957600298672774311934635495677191877912816770868130921847309970334332715379187932305006857645058966893891310798043407693348910359785307622908084698711883645635671212307757825165878058736881844299352477335130752471718742903918339621925421925063801265508524842690837311712961550581641714748394891959561908644882177317444640235471427528364040900220067461003463516026392122586793222960934222479449433828144388990191544765380455432110487620783775386998178760268254873562064260924845029872512866285060444214751714764272951860345228524631088845743820912697401932465012125810335553973668704529661483949078345847656625772266396601951042353411308982959170232286894285304862235718494576163347698722634737026472447280688453926395807517638277173283198762496892500307870891567998328405520693033751308138105084244582247649647586830607601090741542670638450940875969922193184646146103472406873256544186993291556825034721679211851566117975902417391244305726682326432633125627184367756165922160717844739252557985839623701728023673920173528017825733064080073067122616973141570981360585267978857252288968211571087607926259655130824741108716166182979107614160804589260146385957281472582084779529464046640513181371291172589007617884922000588852542913359709954905040146251042461190530472932227249064678908357346182715296862291552578317680315159335175338202335861981221865111299485596721466523146126785596986206017544764737441010586319967918125615427758126092553733548116460691604486850592551298294498256490517842960465861555414642954206420538011164970629905093644610835219534483383106058528683996996306099644208074356467089142851170130731237562164028975005064832423921429641280383573469124961744602711135532500756313225658032466972900849685794238880079030658550008054086143015502562281280927675953772021450793859256157701847926941983842507497917190425934804552408097770899039788612306732248377922507877762022494067773820773270465898924370374648930717294025147474963491611614604752824468965405416047131631402892391050831042661959764636049841861233939110282542178980751204289190208233669577902548476257535148746892666556452918414831715354804514879628475732467715233766065998485604953524693163142460043197117367383142338990453479887023432210625951954523445139199389185569584686088896108009331686825053606077448808407307637627307624535114067333434211072026225362084041443239866184699678997131749985719624559756900281644389167194687548976094832326361865586880421502783894899044034305804294439009144157074540041734597075777095591330880294562213160137511217840588932992444133185211842220614749115899024326458553632746484109356770598122498476076819913734552634107373686277471729106928797944070434870185879925293260082991761984281675866591393823987348528043097160078767793225448224581337325245637976923275413195719887166888068818324249204972906219403000901143191053045700571747226067418806588701910454923275403750442460216981563158056774461982789225742722003873874272724233464187593411153274796729301350856468661137058065189934669756029555694216665730417718298083836933759466454907151205017185020415992505873643319211140536452773907633958831729741658403633505458840333969024650871208278821390275208520953022537091927509711889859397182823464794223901655629571724946563607975975833255195853021611974708510453727469334352082635156142989891632648117890805392916179277018776826892548759508995285746441911906222283889284449252097711855656638117469084551887624892085254649874492249306380174657656457424288266250844207776207112736729060240320214248877083662113221208130275487511944654582313860882208605616938735008019585409692188140481815401078916895786840178610307621996493688436632335310865815895466294764419433190541671120241565107921160674179862515299112327892782521234960378369111941263276400209410501598609489643002060218176872233453099693481364002035990708445544630058072278299466637138812670017185916556746365643599759984719192577368561141506848258821876516187731696832139792494239149873629110002831567528636403664508901772618636825941196356714123714054326980010663530276011126777026174163006612717303713063799593826199662373978137618519386940213827499582342206091669534675458829678553318428862244213880818179506174879343567513475422900994763730500025746061381045276334338205622992398637852059662619718099343954634940758433941713849614607017783494040417852326412338864660820910079968612289224207084601613209931904162113734902777800532321992469545338785183803258540214519905702471294860262210644372464702984230469453841418702514078733177946497684518188032356205909873514712042481068709970113776301553342075630783937938074789668297398028428095506535682108282001412250280976467043475512996633252576957631552527762526109538526313846537492252566062183599930296566604360788258842817870328420303486894051686260979002025590554163386084722846030867770554218612665904712137093567077695935226244410030661575136726248136287679985148475450512459362391391376227114273658974902739366546055684653198692544129922257503501974576506533466791370853506696757943630582950380271749360118148355654572089861789447365451440707572951822699524593267691207940295150301855735591916914411084152275434427843741364256514805362919856103184240264713400349445924200358005880408664192031062027813326244398607887375336542775930939585475080054492795940887978614375844772446017656231444995910471716581213098471205300697463132663491677902849354025568618927571086997415176998935304000202986066456533708803506151902374646027699473556548251996594490687648949502304161965074615312296788674241064636844024532769237666115553963574660037056971412802596118446635329706405147597177337429850822995132848467638196003921673827849339896112614176124332647850784724240956641773535076855136225353100841171775620200852589845190227953698000833806467911000633487140585524198026959853609612942842866009881141763562262114291112187309435970060234818923005446272931993893443938459495928540287362637945340367653456165425133280530581541057719631301369298305060601507756601640979462790914012855000474666156136535860439162130444597183336438750367394474293330429415918071406882089331252879793045997709929045958325697573054873912122239475337002130749572945488264728829310611628905560707775572856410491261391217822391101018506029505301686761507262428866900309549816931975808108379480729756863715151008139573978392176842174438056331058635291604576159656622982711094144336649426607225520115127563820151434607652471043821349227632450321412083637165218380766878360955319258263937930933631783328130870221348061639433059517239729442109007610242444930981264296406225540112587737346942789145316713017832354500162904164040732293495138290614764483739633733472467900436032119776858172796882302313988368877716004627215324130477412365043130760265532261850817598801048503979620748674217611943863438992222847633079254436562178049881975818412931098711783115344371514536011406330650570111317187657875981311872268465628111086655409080809180946816769356101619042547106942707899623807571601036409495478707755071887196629140521508933735478012813218100365033798655154485784679217640932780274890385817697590459639707846346033960745506907707658592346908531066361805976096104808377705490936489468219879579174966803685380681744952169343587711661178383314891309862397027479417690911021948207269194319533913964658604072687539885667522756568554275992961115121630986901988652457460538790288493953121794244942889708362395829992133093110280958174171199603427000679980497941384877289972306786212383133137727614520773205253747692528378658577525031047586546048329993978002176398953750030309421406014779807483457399069142534302572264058734925640964373992016009409507476678238795753513543748837212283949439305323115046518466587513297556502230098377904817420046131140617156389006425795806116673587091348637349297763734283900315646905189193046698726100112280377324578942966646808225030232125756831027306739367564390116847042297266905797253474073674638252845757502840980405060950797998469520246122716175762339864524950542138488065284906215234958475599313439164424687444316461059181285247872483860566743321282480030337490825450497140295730950565821411764097512872853522784467318576696395434700167050525754323207012759111419700167261048706554684126344381542238389760287985290745590680873983289457692774416361674178949703214097190929164815821110367194494627972008137800277333292215372642558035443150432072496236130191915031779607557673872993444451289997527759035526903132158150372076026615629490742059739529901851449260347263732367925022156590411128057151828249494494622472105236159157619812343545129833204373443696028617903494975778735580381091190879133382316813011669917673779860658936974527931755692735833603552183735169323599658534596737131737780631261306091440266008667389357486422262071500885154572985719806177045351585561132940408308348087527845620036174143347799519281967974262889981603314788803515595240518870077108425677086077262844977408624662927534815884494535343420507134124822323949352883231483953116133070039338523485931553683434366513586316643992655131303894256512081157048250158432914731644255726296394819231506431703763702680428854494882900293413848120185558729156178004301930062194989274087716128012921397356147533623913215227546287101075287792948924574092503108500010471041159226721488069170437411266460086778116541806552082679801542802126853502075048942625781472357508303193573316932842883151294900401663903862642892183355677004067494429716236969466489649028874765940402495530358573364588305967075132089420062213939770715191790014724743778264974365289582645774889679015842442173071266174690592808592651034569029528097674983256837434888520851619525466732049827851670012537710840537861935691626813830048137149697308744428409693989335868930588299716728178574157841805944081731644389544691225594166779934588916044600901058279218152947517899508620223935153986598244400693945631010797904173677948392995827611738882922689594261809828399437742282831936646257608244018496533285691036150723113033239273128327264999678008245163972574717074024317709508498154745095018240221603792704325561814800330678871575342410865226489688179969626702093807676725716707778714465123351755897490150306949051574079202177465120569928933165166474651756564643675333327282925981460133536365264935553247934608015693203740858184267690771861615164329585789792603831463287757311534542361861963279921220966344028217452215546701559011308353341311461557938244437411268544262672224775630305680325403532949173150465011518225820731439861170822677532577631396282886633639977964317998924124450951540049894020551737542302001818591511564855360863286105486643352539516527396935907999809368263644592434532911586681217844824038460106104394030520668997841061438746109484768007813427722561032448835944513116216880614994668500063827743309829811301981373366099161829206683274244560787734849052596532190514727392211978223793886767783022954021746391852158989322393859305646131416483672406340669941125822078019025928208914775227657387533048603671449744243706825194867554840471996185599812554764104241208507513476043017435748399273649955696017859750650629357098812613501386467846723647243324012267945643452920491727123127877889740053787496791992987121630857491473670796606887969486169830857368321908543832535044565360815877130622756983066133588332466563631297090894679631098491860261020530371902170162125730099737864587436499955576504451771375597148427363171017354457568540637047525989770892329116757515905355071828378212668333016512437235243238420446032446702940711195706115940951443787892067079849570370454859140753884721074455043350444709774505587895995736176386339694696599856024651092893150301188860474765184147967177283259515345311231184330410547527144649232124494810560044315173152207742181149094881304537550874534998466546754606595197076102218894133580905101958628794335842933530671433376322054766209526028069743282486428544434442384686486777500156152753807109488230495838486541098791461626863718283599966983877544516570524680366465513110286389617438920907810993996211210607907860911790967268645627981240244014492526824795344220105491683913286794813607492987381192721559851994572410699732546484304962138812596558060017546215736510257513804483539939423503385683133764803883443616202358703868583648379714085788715106647991215036999110849740110608054451919681803975716930904922117810745224816598893520774687983441025898526932911083590462249609991088931307739537723517755511700088246639873202918597476690315545776468254250900703763976427050087921540279275917685617891834905752905735700956019873608903625251492291953721820652889699119758874634134960712344919916790072879655059143925259968766123362157582964668515396038027373942806015146261699504394609402875091728452196172181023755540315499819608330189439392830740662344291676257938814145116487506662628659709502030602996954510757395291761688895988650197006064815410387690081564086284300981928531808953208413540166209718128651929828737052819819992887507035548399655358050416689773161246868333153080668540939811034353332692549577393932518574715872664837682713129833977737768543766459309311587943036882698465211888715762437284753242478062856012059249896836371674809288872378830978182245134334532512495277613686737884773176854803098731194416284531688006447759166491666014030801991740231861318719839563681139030363265072321025831409914893411506605729792575250651400234384606710156330549729724129204998043001408343403633238654647011776004189534585781926396492840508309827666099143344604917632592288931993252553224941332740584219866888998106115083331253304915656115031630617292593946751228461101710062825904575769206135233274821942365579938763598019126657687515319250734584733239315043814095462690186812732689995355051499184094329792067123290746696176576123853285675954141599127538946091268685728665475561197788362341866032961718427494708971662586210228116737023273027768170676875057383601826773962670548628481911104498303204032676746890187013579664841707985491485059645671312206762635410534054336492767875983326840169329684228547088426138973753618620059625317042732643064396983095788889133088361066935198994666391981383818806842688638003375826906277082063514467458040506860870911786815989181999002543960258772118272442287490513890354810579758786482040422288022279211335146689036305729221911394159781403102488458867451777866265989961817505427144204273392516259334036778355844760881537743693277785756411826707085416535385182597248770843846977109333082538620558676636126341591363801371459334442371854925362765202677268233427280049784824281037025700923672720236081964788629206983556079519030198139195286114944573045112668889463949365759625085769072991759136220545612317508336576342239268137305714691245656384213876816786858072174367371778516769651329236319357806903429535041586370426131891321452240689623467442136688848412007094181660560699992933394980924508095415563129200643157099401955797983633175581368994784012713388078066034486676585092069407357970398779139874747077441183769669270701752879181170625674662632641572077383218023776934244438516360222477142443962747274239649078025384175476211787963605016245978359017365468278772106092673712877002547929766296994023680469214904060994763154951571120501938600843261747704132185978734690505768147157716426651514446970589790675620710666294381195551851176321807766607030169430332236924240409127903146012551915857954396738449692177639745731258382741852240799251267202976210859238807141917896736259690443216975818354230327832186151339590176754867843070517139556935155626671333319077581780695137433095511396639071273182666461353695337741949358659799142308536196653357321349767485699438685904540010280638060332952168854677600133568780722034997673419644363191060328509501912442241149115552338823551701346814070100379891578112863770329209590155575811097957014181409870688418114603691994104688383412595687440674195917321245826359544577821635147080333748847198225012772826596688590339537274816635542427521155121985289060402334419406484786467786565150141772662786692376357468572259782988180344529897660998896234059343353471870989224773647250508142012986996371456397672765769928622748002620967181103251136968562687298917647028388916566658727501702112981598992830889006773088504887271304495487770963052139602312681443627833404549599305942300978123225135403289318204458906470643993123123433604132379554517599084753595269050274714319962552942725800253720322015353588870422766431621801613616903250723754401281718020774471890855267020491717395768241648125219775748672757535737377659661136974933111643892244037488321174096284287989911690451177449988198146424440258132140719299382960410415637059230213747282720488560207356919917154014244768256701350989338849603758605321354725426372985009012428552798687480254633467868313908849475037431853081195805205321812032447972519353695643152727181372124032795181947750010630422402511425669148459369327310070361390945719627858538230610350284761973228447187920644989741894429819526918129582394332358576928896915841250166569858443767609602608417972732522767905569819919957496214799139897898788365687832016904754005071843344787968743430740158524395889283490001931406377132728879200588926444730242611677240193760365758649998128775690427933192855963475294976565561885320697195895737471186771566007974737087861960464142965461615319099257483175003816996749862665294258291455684674860321267239003624589780750382905879854609143591795018857497353808128549266874942175420592595138134121031327220538818326223720593293313514657121638570059878497714012322161698948661314095849785560578394672392313892136301937520656667160113708493758093857324030844131458713863634581477649200934060827516745129280735804192004260391301622642699267335720378121548065704420971221717471954972768508216289791801627355830436377584636120724232560874431469757601549651974589675278689830307031811807896520866293161087008035483981335029834456891638075592211954642285461053203650005509887306211373692527344613372922492444207622948658386449788965612008826770828590761847504279367673501412515348344609298130835332104228419650408952666515502230026383490369877421199291069842325212706422654965425938306564515096845831120258284742735025220854969472092032328009513637844270671387858004134669683047552811230699984857047438271889816223214850969392197590146052893138200037419586290578843641290159950568012550994970154701400462255840555557669628838508263822549105593462732590115627144553154750958384249759281037119502332471154580492209231039947772319534287673146572185270477112444494558341734692097410477900789751133502003208625810709033446689132401052292438058999353482165433556461298481957323130018177444783391825220914068089817559884117810121353235859998970975257457150571126631845936715759039183593018838111521310911588203008815572701390171751467183622918061263169797369620289341881774789179592635809809353493701733363305213716580403588734829062545836469607776803538186643671829866635514140299644852386653039050791723619173363645457204871483966732100253291349656472749592557295411799273299685741951058281342755807437076656118855135719783311231782283991567802826138090014625196342956226119867194241054775957536748657507141053199637667276927183887612042540567014449872483078593603126435123722064194927057373267185789315022300835811472913983364791216094818535698079461685300083173090119926386352113258355531407178844549710895240137075634262105340423808830034202250406016479946320619608121342852774450583573076901249927165208585470684351995771584242729701323785060684848453648794841829587145007948520715204577506948333825947442997322406750085247598721424990324099593783337779908512605640357071995791336111538075139491962763738307329295521550262853489822233536370767203122078685879832852270518314157621621791506629222690524756939229830441182467831483236019686527318654112863660336892114299093709926683156473774987821760126690862084232153001848056876677080269934372484368679802158521365054332791789577439799700630160199044900619470923215781589831457557026207637645907827555375776637946893961672423443827743592019773523590565588397683349587761620122141648109784811874762367108990930796361815855648394328092800330794747771718232354523404071682199688869390340245906288355449058427435900683360848412869242102920959477152823641568344028515835665316237080087499604964166714443575478570336479914371130976646113545814768293984294500543291344196903033132973297072815559777115715191605219974784117613187053019892440602070696855227649048586275036506752090452732438568919313748568138823052271527384456977367461129356799805929407912648726669235572262928904287718896019713250212128894454840604045837371750856757740248176737486968078312076238819970579258961899296829624476038998285097477496600073111597174477756464350836366327073504294025366182640094172742122934636114359089441975979327914876420559134561720121113247004545895101485228166977985708040630785903878658425251289829042055682225880034046684619354973096373134808757036440358178286761724303987160077790643120147293972127489376894653910463538111336135278016221990706748779349016285085623813870526286847426911164103064512696820766257944420421806391957874390040260341619816339464699842968532669711706922342311980696620600876079746242111416716669157618171240533819582932149644817448532435248128202508061218901717089809026058889046651950834512852184548925337736427810273983648845679888361844376433670902643352046812794511433973417780643659277152667489624106733285149541375088106664195841820909117095856616871085104003132518363772416563061831791830979323687309523538695705985843473964587303347251381299212794382325670322804785069080983050946852129820381849034803519431404885048805328956019244556962711776172406706193179148639897572395222801842504847929891749426689567282482502115309208938866785529674543061024237301727850749209028621773540590977030905062164594087315117814268884108476044940070216210208467159518801899295745746954966946964496190485007860689462500389810963764540901307326437392775820571189329399163775010196040250107488308771305586044922565391160013806135061043899698168869427035280701317958814774622924825049386044559072333816200380868296005150838347901939265711016864099552771616651472690512180826906413835385304280348841439223110253552777278017949680712920487839631601379267935306242251309521307882884218882826987571932546120912193037469935891339227098558676089945200420366106822222677313858212156755541386474262137483171898074242003094238898232764607902034836640319243555235275452058820594499314743262961502636161963156777561267970754189967181877035844807976323862516340963504612045499185526468477243803812042764982515622854196348032577500278220716106143573698513533971849592688697853103790545452137920417080541846517268394110170521168872811630047178080003351358470256492038769409044786084364516583714916202088000793593323584229655440856512376831109644244086678681496097836441518675722962372560277897558524084320274055944523846229087726171294526282925526687205485005293513763241381204738320143973863502759009124220273508387005430896552683430762770204824579908414220200475245089812161026901313945344898497189290130630057844994000904443447094922671127558159948962317260275728666432662141247224547007515061374374556766365871947928414963793220527689947090761345653466934850330358784384646357364412585343595086440916717754999288351166909771824119496008480275905817514796077364637088635046595021588030447644712997886580357508674964791647268443595502444286095078064717189779976105223513941672110505500441842497542091499998283700072789697502584837781095419030617419666669708125264116693775969477332059361664873005989983775166893314872459827535119781116610179145129237191662172790358936277891050528475248055127469818203536440999103650818728306451820452732177330951258838476444734360164790446472655496292434580747943613686354916315499469374879647268884261876735831028739785269470062918365653594527476968797105898193622576219180566436728905340832775884306615599327322992177095940599346691047039049027491693632650497705663431894684363693463725267463222635778744572482535654528228095181719560050286225896993849484244984561653789114475920322982228713054426826953474976737950086890357298489079847139138915268382778543208211873010811381368969929428575331334450210148558906883988095158444033888851638635953863291182245088793048077413714407113329849132238050440379326022058167490597027519931802355370371351280600802722869082195741645503653953068492318342049250161787666234851565862909426104212175856725332394737116719699942341008142989211479773980680803151691389270107446555093170555513624163112916246477963597609468316734475627089839426996642150763431722554123262379902334931046288403723241065391480992481489801742328739606459373156445710569604225822621760119664477877861008309750487513676031686937714898464390135102197467628512460057102917244793100477716157240651401350933351004706230454884708164687496717240365269574838402502288164230695607241781848263541727094814319953291634609594936981564452397181831203128757477896847762188784766942081713525242050232846393793577217956250105077451940829947697001747100036885933608990023748235182121840325211827217580066887153006566211125949681341720829667292947186852900539743518081148468624599299713447338531909843323276310020962813848873013515552857792511844387743902908458877192145936582386220045523452932111807596904862349692651704101036953833287586252061416013071574108160949947101729944542241822939298109127012383038159107424170928482226345008485729228009904168352440258155859980011716529032939557299381185306931901570113836128937641129711742425537621047291274828071659921526716676961096918413857557715792366738902100808459630155910181592724311412620241147173482905004791800207704503450511012596744275409253835177203255063161288994263345114398726256283345210539300676909172758958516819027791539906239756375014917775929613866867084522377825707951859747490293402238067271008166817749076820312750696206240309938752716047547950556068156130541403738682612694028872804426291469146536794742829385629202936323528587308560859245228165738719160427076258910636286087236619194854943329719664821339074618779994002485958911717461985567849041039068464958277626151044248830861822165583202627795113355574368394014339770793652943690224406311137878486041982100964724519746679572876658604443627794698082717629610408957915783709560015688081749908116109267301923067004892286047707046556748732280176595471415965353391727269837518822333716675702207012675696561812352249505171561582471167268834016629129071405350759217240011530693844767420664457076948551885722332838676453872148168839393740444716195412259783857780872866010563854652228055216580997071034040349217970329919584089326569120741011496481426097248636684335717298681192090261187302512087917997915340274273537630213146308941649158475985956765430096102491975985078669795334506519333064574477747369726225852230114766208833986038652590072031771470093909885009776092693880209099568708221539205578866583512628431588155484793289318695654493495363543700617167176975412480091164228982657189565300010743436854061515785709730700564982731531009182578206383937272833245126012950148221523384303050979294757209121660794457921893708954126378349615403570631120534308122441023016755858533346592250155463140200142196612562686922534016706449492992756009272079082940724822919072849610867376979162192344540500580938143856969671417921108920389398611821707186756010445519229116425116834643670959193022605135536242391623477182135383198239360346165848306824653087481709975752655548978718001855731938271173951061867466067591889184693840448313576140116095349082758834481330228872206022210345787235637583907957728065564020130523964987040993331041032214694596629816961688547732220468908383576848568932187620372325950335172788835381957917783623337088169393314758457561979908827851778891548358898477315802589518410490267896815992459891592015893302322462149451394707205872601192557982262386146813191420262394777139324964938928280022576132933121599828375560959849877368473350207018804149364559121295299997712301603928330501161133028674655302529613007850336084519251826491635215698929843272100965971201780114110397344818395134674039948035941027564811643323411801923846470122259229409149662760652115791163844794390413052063178289110244753618220426703225103418394219798831700806539047921859171213989479672629822814726750413073675618733156514583137468633543085378616216286025181003224346522085975141213715254561937580342404489136945764356413770712884011645377190018846258680413521628755384930475811871039069727488952372703680613256211680344208391462847733369292592340410872034935888653234785123301275680504921392782527960925528337841914635079505560701406495719107148057919232981553129886581461614070619712779807074370515449580168945294232594123146769167052054365942419465342177989227969169907036922932076517335623795739213635671087316207106619932703077017308267422214609284146699477373391521818747967756499207593653438200119715988283149183515321279381075365413732156710706924755722831020513440002548052066729777417453576650967839179402800670408185016946770089646912868005220808680468373874627634624175182473826374657337644992681851351115418785098507702827937781684073060859438353621239240511617035675929388583311532244901942524423042330741405651486891876690242196895177540990722436544975332729849283786179906642571935776813548066796676471260289597232820093386737626200365136680263083295181131155881453943434213835740964962154206075061114488816113265610083900261564546254773428119927024178639939678652587255335652881650971876094963448148327208654242343220560754979305354734637696763492263207976690685836061305549755752215245076314483193596946191016686481040522292662684363969235636003284409382672564437371580775127773533874140804926435227436378505233176822710096161973631552761557925900237621141034942367505407350548755507043955299787373228819903706612188227806042430493858177171554258522074040700500869518678196484542431366297234116830631220490682726162740408669185309215200211190971061376115628886883983460697982881210105239587928937841953960164790799899303090001097665772671175145366812002099999129534320117889008797492528292982288862144894330564662778334017074199514958522435700941888554655638656723537256016669361721360851507906457193624670825889911846093990388662077643433624711017278260558007750455212239078261338031190216124347557840370729568461495554356541487268682946792234246147998791518446300425919886101797954134652751755923039343932432630299812335983799003632231336346230251124822417109342769064787937631065485607639571980984244203180127208007500981080997106129933522645542448553132692843432942109849447726048862414139795581689429593983255213969764684028936865079235869413481592221896681229502406254955191354030808484564046686636026665297546658462112085685389609884009924048356462626663644230485762150995209412232359255061586603968410682908265667294395923331393549467210286211499032874836941593138817619500477102027949863266006294665564046584177168836061414464405963946881196726007422520553935107983919121627335505471562152479411782236382068933479933510617497118468626852999297291729713031801598321823482210120741548168851859317362530260204561677888947379594336462324128316800247040128993855134922390125541015125001229496704448260366410539838743639923963835608500262193184365026482906233056179177872159571812656581145178790979597794984800146201095507545669055835393126863140482417976890982443719745010864294334211736447244453824251649876284482275054390885587236488344684957601985933343835035725035649655026509634203450625956882107459789389260072552105349303895082513085218429349385077586078746410461094558259559860426142518286914513388632648561544634056125321206653929958415190008373234505713335958731255900084105812713978619662166449759512422214232915407637690197215748526362026122839707994069285579972511739103407893404361104012658870522005543481893053948465086476977088442154021044268346818491615284473952789098968811138168758057323925180813178704002249955092247811290181639496701027637244068460099131283978469101455756553214478975878268587884747591613113109414269794310891708601455775109652212912205112686979731328757641391704058524693728782116587064916970482378164372139404052742376489359182543978283162427793313837810828368640870806659070034128365635611384541861670072438759807710052311738429088116601115195975356242235891469779365709508566040222048700036492072899100623054309745644443804004432671125289003707350253133377132764593431120726238203819740682932873470418542742568078621062785885868959509279692900117717097399017861204196276254160884406289159906236190665114292367006663456032940213923208645025410786544266043450072792604653850769232812772982408322210286908669335263027455572158638684632739432424938215566764104545487945476273811450225746996245557606193482924781307573172093498142622654341908196467020584720023807663186568152561552068239611681338629360582612996843528094879043406341591895035339756900310834831894417649993761985347721711319211192608709408511720769204286483779220258401884313476152885187670516536446920109851690908988969799744561691048628187060080985557924817165404107003260629514913591495249567916320521465732639462170371319774619871195521359450376999995176673612737167752414536818471336315737307523780067781235997743619429467981895036285847279736554520247225825304481620429680657967811495313706753077684305898823082636961316474225948852827835516168573578351250736407750704995878424257071460414499409202527396837253364855323596435903752117705396382069026908561317548757096247960623341599060398248492014548189894157891111351031468832698106085545392413477860533018736317062901695178261628704569105328247339755949144664565680087387066843015921565393816404613938745474227637209659989846491293132861427670408580733458827846416227284988708601848199197645654697802314850272619838272474936702895772911439469589667464888497287542247784931612512684834770958665037056678090649579949528509109490541582704591999886623369690971996435291318076359590872872592812932576683671193620830225540147713790333408276632906139001876935593741264212851567956147854743460390356125055232713526713666592887717037228833945865721050735066424225316278118484689922204019729196793507988772446682498701775484298255961281371510078441414491358977899774603110730505227802790987830046269062579004165237005652880279524328457444540337451018975738469937261116701931325353265806323128886604654688139008345341765851608130978311699657367158813648191694349872502327410078779871206945135263034112896754496075225895545111463298524640159519467341266081511368206491511010659218101567143140513336274759406155358467662008855766545241236992485400063140849882411067357120712357834385442781083528296413796789324430607814499200100762749411006830765364224873045982289478097654427171555580833604082448338903819777036742653420302209109914065144357385462018619223005253706315384607527837809495955638649128998077362840862576819838859278221981617287291309562997790010457170957648722589610568015704675180240875785270483767703963817858960770403757276833327798589000622206736842578026261566902619832502140320626677137480381727835304152056990524690142362167695249043964708229896521172892676642828906287854052915884377467897932970379310051395566522367387890390127256652235308773443939602696948957338067136456317032413300948826831787151545169750713166265719579978192882168239804181326671362009554145552263437551172145981582830549950804755653029120261387665781709609916957515348355235338914714903992909059371930365176805394456665386517925403657909092991724900700507944779488552793160106956893277904297417936259158737599617630703725461756286384232500834231309106105835268660079182308248020167085578325904906994851227145266326943805346859727237046008831318932313225874377320312069154654186997768411650354187848617764183093224109513015219579289818870863536341996872172640713371884311145483363047851640639691987227108610526445777077515213631950041828052298553893193735336696142096140013677524875818131136530933753945365811860015456337631980115462545009847075365183465373310658277288329652200874922873843207518731292306697063526017722766684873640939475074686320073384704964454179940328627556859839772361999453667163534638509950386672370753939545974880394255069725683136900423961871961581166121174955585643746237410254378007002946403020274206905878846326529651245395742502871158377886606040413482963168336180729144977878294792749196802059270898650354940449194683462276734626439763917571637400536016440815661012234576722833703185808467343575135136065860440071459927847195433570628372564028139122218426268615914636060771445920057964054650577592219430663991952101035226324137533363377791210299108423942570105632537751692045406863903313372706988836836177246799021218147667694421583953540053496475746434575937638075084051723219162439070855102817136639075357038416696558982313889872287575412020351734007902450091727702006717170900828559093858327101828998128201662769664265864424665421564130332215192783150960142300825616705829021951109926196231220995780107642664997754884302618851348664526281651490149209654740949677948957377664475955975356891642761555380827420562391092760754349176835719946541721393640249672016133067733521517864560723190084957005598048180760345439864301027964679692277271500683569205673807627012978819117928564697579243910188421883575903553899297239591221422311592260254994491206799749579036453895957127046119231067583963031813756817724985093622847963273129328487667215857617768193357287584884103791534531531426220707156215110456909927395519770527191723903551049268690471058516307817957116670212132810345889177354129810554020114291738159484869980166034720890132431007225977119383952540836376767462449945052416761341748185761727354132475073758435351678158190120579479661732795645055276999286206457310037129442824779962866776986856000401756872748552235841228000115251344551587088802005012286060423029854314958445643773207288959685983991133597951121434567014013330119629551284586232569655477405543157035093700173482660868492533676110126498381679525402935570174592231280155801259301665205910661778472092691227848244698520919665378301550256363698982745545668946192353380667103369245465647333729177404989599566737516764081621458280644436256736624676127553960458815245530009364449384921325056749841210069770780647575472996579826264015225845004907471533495103018199771380205468357840539372665140747898700524313927345123571214968496481174299595008459660870254453154867531388587220064325063542294299362785206751033296886493772698658136688242395850954158216701210194535284655587711925831417803492695222725280828929630138748602667824198554352751458295348247830407458361707236163768033780837384636443970445829901922665095353535756215359212229581342881596977603602374030175570411463783617088919582539744344558769355336339784595439372729356381218649772336486668900466976725283957247324709560261368642230926295825223506270892226119774637078878052410823264151878281754921446563486963354244158455783256149584731891955075565271870830417456850918042380017427303337129830548249989595238887386031415282325623632562234002611391746179873110933152694287566962410923209184966240253158681270761744514491054612747402393542541614875331495175014854590662893525177402508147079136290887778537925724580587766062334519698085785533575505035601769006532892281394813693797663628038883467866978042119437132874596292103371804819382794761889123885995806064793047191766014450997447289497488300514007503653470110884687902389427039154349605736192085729700372936357525327063637167541209375413951462362134163062650713086376058575517354996484634471865903204935847035748959361314507184306893828907902741024355079850396347471446104281675258883212644468895901259795867020289178353848959454836412192699375489338750467725326906403087817643454431577568391336254328285504974605025879137486884556952611438597451367672955740450636127865197815866868396734859632579657235576753057747026717725114067300405898293465866451402842459549129838197731103096037859545459025306250958603351021649298737512418579755019458542109942260125968712407080439411600001727710638434954585251187512970506197064213145501363593173477249455117266880695871654226845030416768255456652435259468868942634471144921190747172492852741888244269282142233295701768770970429615288903654298987942337181742182823188302517692656307966496410529460370627942304927723220769134672518319265591130970268428369796097335147734334078656120590246418115631298903305776226829127342015657139988219952891431229779942224137636859718927394183657237048684969154096086606623323212720070584089076797657500143070218255240776865786593291282578724587054189656188821966685890233597391213990990947937689342587175603851578027833425258249022872741115726575872028067541285007596916118796513278129240014935501423058189026629930520623329436791126089909268123964511308643992103126532609881884476392802736043024312137006116870879011866933747448014759156483755284353344011058726990067784964449341145942571239148709274856427490628374392429402787561074455858021814752542127524592214026258329510820008273131714060106135709037317685074934914889490908442200487191078441746229054110877239182227207927861754341719769856719742862541629476761662625761203677683763272597670330201518917055066236665838411022297776437702670000979374088630864382695118123074117412454937844196201945490441127262853903419713855205280352242587452415581350070035120659036249644136631174381906816782055618165475758307425835156131442569324678546927182615471789232393391952595616508604564762555235343485844153379427382766366912728966374086634571457320831117443775662438041107291089415313493243922401191380413209285314537949890424503720051089354470637005739235820894844938926255105496675896840279842749157555262426160453896556824946895137693758281228118166290724632236593268547786079769155059584118663488517164481052851021010362915873821009119138243048743542598491492506768607234087082981772969147468108807512503560415516241222435589781226713865182135197677679325115391135340678155368827168655265434261501815527747532708080860459447695096987554596346321998402968631779499944719069143757697119468038769518908211693207901466723122294621554756819137319594682004735525728460989989181078787368527163451494068036824738349684273305241240904970870383965165864133691988371532167417904365010885588599592629385777215928665618155190382689695207025518268338132371259673550748077598526676163078154021100054493011903478981096196718439145563774031444031546564697604924864680753737065761215629096959609344812556766040068272596008644802018530169519171667591006543958746831126897121540271886516426009726305918875674293356913443330272793550695354487882770417272040167047895603261856745350227800255317047834490305457835935509506540386480730334337405900850119638236495147849743300450256052156817744637461372402804686258694446840608627237703361850100635919215951450886214450875017124356772551774768659482858602414077951946389449211491046232823756121707155098606110537362953496198986742566132929661512556197009434122046081170766806833276524653229220786207258515332493749788093845584173039729741937449295142376835975919320817676044402820962709938361403940313803472992289342713948645183978878662511158862520766558101913966636797186874696747505466029357990653019649692632717831162750947695767684868729776844772907552394914937650881109758690381598372444432065576697394785198386505540721116032958539580739525728012206747246776607971774951851772557397677816991230381022491920366156459891339926964500497888097668361730809552230559502709413121961630252984155515561608897426118850610508240478626850709693815985795234795454075440393413727287177602003156913615739938418645933774842895443926375556941602478292603796871009734362939018893348717083738271125479577036713719186411156914850699849881569850564391137800781194915088769086767684083245641412585531913347582964584405079841592872689341669976070215940342354905439049457496613529340178256952256108846046253468739944737181610558686534759925125752607724859108965811769453833056396650524953749547686458232900242589069988199305994339882824443769331750449272862042554940735981454308850845992495173078345824679108694786540670342229727987671560155876340232664232018069593708316657720004751706176639399999319244369167267382223681323494665744016046728409537850322073117079442939260323169876566327035068802711757018021743078715169151128789256903536117123237540778498188378396718378872421427679621542459545744057751088261411342634032683836427585797873444431676921784601323497355001753539596792592488167682506851543361203986661750790654882951154180407381281897743990060446105265174120286411516964803792243607223003213808306334353308916923611582846675782472931783571981546342362294958058155268842394087321275767321007956078026335271294634552817583558106003875494329049554308688980752999057436855650526554173240327141577674949971358292572577655355547248554046513799094254684946986054829501539033826913873241890662807669286623734583120646191103974751939303022443785527420607054466502012166158348829263942857651965239336914661801683991064243532912994220923272064098084055687959081552302692994319052460374084985773127189231465768754739875848216269197378488264500735802273817412073211532149734367487176839190763958655322562976113213341948164582149833875415859272858194077465193438088071290913214990000841277986680124117879537057945216711946147159809526962569589452904221570764814109956849122715262081604328611430375742502756020253246085114970669448911481327556495833481802455207165462514213783119947223965016658029234796185658854812932308245509511090932189647376599308078517295127913565168870339107935683720872191017872757416730708167181446167479501010331791201719684272984859373666184490138968468695609217878114792855782658291207612466056853875301178157839876973412442979963197372128381483056938568624639083462483392630670834067667194510460621540751590691576882710838111984704446212094216935317039513313354318675552128699014888354803862127351334073884264785180071119878583480286346839443666304445924483272809818223721147921299508524286358448034957611600555570001331497408801240477931447803823955288946949679453780010106020530175243661473688259950684755922786441945967704714608491627968185621479758079805005005386089289172216025705446097147528739914799004063665117430757772883741157685289197596829883763483293204873982248827731120131943357214468726428825303034492009792243402261998564679898005919582620283568201538634421859513739461686628281912749624721427069064140798466379141854318871712288736988876013661300081664455850033428217734203596628107693194186369939389958776380460410618168670876010577509815317754547528587494487767603324413584299498693765882030626553273900577160519963947131308405451847290794012174761130588016131559446437297929586023623314541281165715798300249264710031975318675552972703491336699108112842358551641300276554933870692103710698592779579464335220910573803599906235220839190256209088238420803519315935136716726207353933632116186966941491606111169019665692204645272623046134363125474988333733315529410111839914428850631002067738087279034071863779087472577401164223737629394163248511218086611883594257854701660933851780769009883120448093806820543908114064628597823091403162883048402608287276230976544739557089334277450588893915973445880985872835981496015091340406577697219917814078846349104927380216501284007714798341573021146988988808008467878504526586837135580305794460474241465662873010226593732867749805108521473550683031085148031684488248173615851522050956816756455499630615240582568909529963305367252534136971548560297210654429608600094823733191624319895754637978783851555583864932232744836330250449793280280545861287840097174551873453464546328591002068100342910306012739957831224451102845196620356426060045316876898913122747318881993863385796928597736784714846597305355885513827284373672630465845153660341426274662690555574952876576945186606953400436944365082898767627688842824704247933115903788002385058460254147204068715915178230731242387526648890939395296971976225490594761879230849271403193368068551901601116443015741605306547664735788386309195073830812638995316030752226231819302817982080990191944824950615615182733507683642314924487342254631072338560548021274252810235508608769365214045856963424963680848328461536496345448756532017760454231393419693549351011226782632773623653801769076779325624741526186794584531117015823511995178883506836972505784181924737561395833906269386544889246694835926084090755673172459469574337802082124678955676299030411461679930622740859615472284850516786735693477808140704911332984071789835568773201686823155117765175527945241837389534439825636510705858944070295267295596590738918297641625427689460546113063026998227906426902396108477386833274767408023508013386561110614004064911604163867294076702077863162257858584550475580877568017859276654574094810713186865822973273763888723128706561182053237680976777026181513828089071343167353685524774365881168827470923518417957452082511443030566728299095615262663345047835882575434542102650868387963568620307595118799140163234262708051765665210633407040613978987220259818556756408126155827087356569305417801824148147462394430729929700938339997318399905351791202226596363365436554946257852203891967844658959134053611711610009252287629032378215170911258025449275721837254975686520124645782966947747523056189257643423818332431466575406917356203227218959095883369754470399448662485779791413344309169770125886135659112483867519324544305674802093112130020719220033573820532338908122821119117437654723874993770662204569194785735982646930792959232403165438262218237595316875714290670244961933692907321339872230215163581643527388635576090212421883986532056679151556664962484899270464275787082838020976380516456219448091843761081185416515893493682123272710563185184226783243751619515676439426519459839568933512750259176691169169263005088025259783321957596818303651908330983133750308040332189476100304591669329386561462314166244759201135507859113632940612478765572543663892139007845868499296742013908573453028596052737413862060059669881936399014673082184606342045491840647767354489893768685199581529366265328054303081070150884426103504476397667749380378432726080901193260647123040890322988629622841314627825941283356277179477523789279358131879049219005972024326889155874880695225834612615856332281353356268184061892198598018585611216070929270682690741728992384038796905588057892023242166153407721143774777704781026360481398209377050400794825657331042005028949740355962304655711148305527610967336666691081545787856240103028863700307838909270794363854238889165232507168239143300099763848747237401714614102294806879846156132370268196195471446420928416609435310941633203648874114703598902188900705609853323007624050811490779995918712382150582105546190612215869005639466762373981536721481510298760913054334278155173574682056872167017227731624514792493624652670506655420802146112461285506328096835044433993236693251430918477541672830744157872517867809314738800287846902396910538269558292383044482744894359728927247053660344069642687151656453975756938631532166791472818671495020631350100495862338637287109048906423135900152886135267410935682264782550819456743997467817771673957378522144145922624705219844084436777414144609477738867246886080452606416439212840177040042419616539100354700098142928034331607345753481931875285874476105508602326329552731579159055645075196693028180854566264304122901227241432694833743691565165085885240987764100512155506303867374543495910324748246606489192248250693266336458433130249534022359443574353471206354823077532297326777115919176557802080118139994617807375649801710965146573611077398260969290094775918360510299384612803284143097615955771709386262397421029570994762846838695924456352032070946642932979146050020195832728827022022949377891946842190448896429381496289301452588300507024371402660095128965984249892613573211691221797938041447933853001135881098059679609826533459193709341789223228401138893682695571779806297297558416756953589753305784912472307620253670805905833711057820379378883575043979997181726831322987017145052650469995446407961798443277412624766429595369137722445194817376108114022131941402231713468218787066344324185633954186293601638863204964652146431683972673010857296059239463417655887319584354403620386418764598465467817749160978564676410438129027747974793016655197409044649963308861351753782276269916547100406138065891354276397106442517123629593280181871382597644765142287258399521160993979526167515117152183010382840765804242531889602928151699696965852056342554880046544658712831922190032010109156968304487019827388138279781478188220531321589743734380538280848563528412962504066362706231091151828990421502648396054436219730676706823018094983318189834689862895385286906993634470208480301649871485955676746632975831677056494023039360096081825184462950512204793322633868249165559877195560379037453930259757906104152372915417838086867199454846563636838423004738823815110006127302387159491455527998192507231295024673054546488879018214492858479476246525360409393876014867927349434898913642985206166654000043040553322060866236795895221815744461150943980696451368817407189187979281875883687493370044313904921521919604901754315467530256985924259016669132742388680016594833390168922094199429022704894602439862820844128880006809304097096292899022580302790870566427219733651569239681979260923516653133830614986780086819051265552588312185733988768281596032850207093700711525145284820954567033517412901547984867211394152111961330707466025925953696155887967639284975331999383880092217169595678236356569337720477663661682604127366489583420432949354372832364978843731247483693728103787596206450951766578621755266124736896538347145879750784824000521666097481493410412500259118543298980586210176654000946951224814656546699495990951416274275704783243041553783655359810591810376941772989192996374750673839493718923974400872903335053416924573158415601603984170104171163231265488372650914215687402447350413154175083374201493478589424198372639830740162562979181896855177812190170750363029283581344498834642362269066564334303574561658171109863040842674042887030018851839080550352602730852838783272467559195808739610768276595704526448938235397709916965350324025760495154910263085815468606175463781530121341879935032938784387133227087977144518200284184436137099463637534549111933781159372833731371846408892655866127022497818719036327838902406552705392906174005823635318024793253284542352568294167196577374762478334952706890827821222296647069031996185538341437451357630108537897270909995471413155200238743579198361033062444064530036449912632564932019950224762779403704344772600126310193117241467459981514702128138037086305170217975394689038010245929934871811795397729042514617338127497952616133270313617240322810106427134150649821355223695108280035709298364603935703503145450731595180243274142448062036392943891064733575777369924538334327770426540135135818849376755547199553890922636626630295692074314259008500451426203299584686387798854743139640195433670823207230551380807348396854429339333320169219825668793239944663736640792252126294337632246333825739775101282206914942443864553695167250217036166182712133644345871390739040069553187195029526322688196613744728755994062563227235562191336987821727939421072746641242540301367976253793957315875393961027268682658575248690344414107188321624642206135033614154542684564477373948765320547506217954060156080702113262096028429724902023015192441383283207312248193716822599809927283562800381668166168106443407905180419499117463381543650594898825841438249874911791151043788004048006662650086564524014689378946039118622348868169989570988743403536868242427865878966675142674287847940037259825415981168688071212663178266779487121429890865123642243577487103502380910490978436098188822711913241312048287275324556044302448100725241831728944027070569547729821845053898338626770583477417115066915876284232762283984634853037080998685530534277575317878507975901387186595992565524317013724109836562303072705429184537298148975474053545829888412507884021793626360025831812334021109670196836947607545927381831499348449686188769778160199412815989763740161779552769532786744201717718165486976709552624016148261322719652895900454063273652618848131536581280166963498053421786080430504381295605039128684270273896439753297407125323731722674779893433249854959710852199316357754438591552953233453590160627175221228079049168910429292944896947083902859733028472833992648386770376272335616941910296052062476184065077846615240519041911204049399922276780414249531604790953572429277014706716220569819387716185805470799288166562896529665254808783594488192847857677159885983249384863537329616915203933596106220379764322603780246242999688154098426052091547066725010220707368806471373933253750759085649693985810764299842273260066569306289670027798074790629143688869657438340022099206823186110249618142338987588309448681336711984689597609347718690517011428890683589296695743851451582053606985758214350739649685809648249609068334741336434038357854336057769573845690681359746346709718801602916655996075983024014957203575646404913069433447504726344052809927726248807233647745846477067366518338813024338653204253008721007691134261098928794350344530952656574363152525082140890948346934724833009591600258098779680336823996688524591919660991282463780976872897754175538576538956161218992646810106530662795255111873745635813929571812641193896727078465934763865475178233164198011785247475500879485547846952829070011353642644927061853221225000951483138647730086674265724824026872709444939023998705629100859211986460072375814270940228830368567152181233702212542692861491417933109318718556284728973258240374057319168377164165589340102435553717951310242120024768211042668152183966645927316470077199731531635261426645402743929879195537675702603879166761714658806801210113124343317258945666602265770681799723396896564821421992497508900259690647521892016428628248891659867044276039940064302186259366406072178855515478869217432801781204273264094625968359898145848332347605506179194050221598297161270844861015588983439118940364812954815492943841784366893278595186728554168068713958371382730096564554532214786419303560688361410776648399228710526005780002223074406233167363865801914706313468448639573148488298936432952482121752428102187114558601174699945185239121017407533100831289037413012087007099099556507639429190293266488970979593914148077528507681036117286537651362727483822144497158133698393458996154040272806129632217493732835080927082008107953521338743808541541629363368606866439518341249787831263487155743812773372277097817056414679767648334331583991326027771628903000760467831913278640081670735790677117850103141280814465564833606038984149522968466057377785573365727165878180844196436872754416355172057321958022441955697029375852348890972372319954513100580680994090251230482050108497272867825580121005693639330221591914800999373176020085798602663816153309065956270704277374619392181135905914660014992165572142815335740933646973580076342108925272560200192755625834427137995954322348840098268399883723062278500579268476449735430136596033749646948916282848333524756200948470122927408429635894223349235404665397041615460584257946694633007327236842124884391012617957014824787269767050759434095777708084127282326156826403607266606762785235632531367744550732711907684547460827629096298377166085293106463082054336851334217455768982636800083969546016840224333264116804871125402587779093363249213929180320478631944549356906477368740947300178167510947561857016667946415042374384909159793723107227728798280823759356189716853783945525985677199120230819993107563258792141541067800475539212893235365957370911281096798228662735110876219204424730421565146128728870267140249863765968956429708761841127917044788809911865457556290233797701470365417598779049923229017800318189375954801904964341377267089515390276588956847239388245141619135245963112885400449605063014040063392735857488792109004660569458542586304143315382415965894709456332228077176063045639757265447787883741886988839620609213291839932434520295097079925347737890147639498991814154907848856286282607707812331313156999272424379064763096726638622433802593248803607175734913564455351206179311362328612977986107303717253562377456704163887542989013847906833418954808260003452129007967391576510813031666678002229152218650809526706907559939391610524609402765823453261950212584332862522485147987772603030351566689978035539286595245695305140050380455188915416507788961941142011743838816303272277608569681210474399494032595684423557337117739768395621371308026363671128195877680469344276931573637709438523047250161798171007620604145096856308519022451291575454653222656254627835814657804408702383550958221912869114703219743832870305703298708541845604164889695644336287350001997369371600087050761117342848410556361880127830768329062755107824377370583807927832337404440179071573919131302837011076866059118343923474034383090543947758188353201583115719076487036194714577995857379643752572560724183572768526507705393673503804918170433349387842011173423139933777417640552053395287103795073032601669240077276765484212060534540668180855506040260739988110164766470712426328141304222434599551135663024748194322985738021476870878372341924706468910584762943736739842069781923475582897410619200069484731093975301201015426558830756556001689671254207177310284245188156620177750071292340981003059214540620872190816754542051859294779098737452144727058932579464897900962964303380891832184187741113156416436335070953234927083531647033065917996670719393259433870984415155494654767358126727598429828156889759411304286588627981375498176713469371541222980521983669851582648863682091480567247022143445381341224479621351433705975229407847566166366024933346511957557621105153427669776642950076063069957268424978865427136100293725274752458309019095943780495767804045807646030869025288260033716432595209637336555315794914726167264109788631371378515179316756823723724002280172266141769860556029193556169301691953321437059513878295750674858113661919913834946807163449582094934546019618443811850123501524019538131438798176705213826280244236672106511401055848452682528720650673054788020421537398771159555195568775282635340745975850467164146431262092435728509191954051795071981894144828980407564696093613289509707375237931851287638777720881369276665544187495213554144932811828111137235189090602583526693151498728472958061646595816181315644956073042693536028962146077671152762864684805050642553896212957353932294320257741272135885965857736345458687517397741426910688336706130358779269471643229040131427849050371760085790369182437471397447012968876460545874574949251850853663196242075382406773547420863879359186933075598984464402676383978031792560728959314030075259270021897712936487910843762920956191169734277749570126246703104915406917671433169147470876098816282782526226294745148724759485575987115221512197331980692018944687093661774037877807014458690381336661272303332486826434306556782805598399133123399096483307753229163413803023730085061332885823494234386889846578819743635600363553648202099296395979376507552460078100971428216217770347741949122691442606283159632332282718871578673451157301365968845730579607122281826402272854669937451817160510560117928720472930403812854188975085977058095511897262413637342949508720993263414886891169390404569537288846674282526444488368002147126106126653869671534133451166630862094040082806078844666227406152774696464414978154193160919002268675963917450896324305071836390608790677379438447603245236764206928784529060203351129958864648520119870630794275161005844600873197747530503882861404953524589168710576974520266113876159753013572594859447908731079370513034977049759624679797919244126170747207440356212644023853038108882632667016698345068468997165490981662198667164027261504066126804459374662301348827788233525993539197266002798863722692178169493284857646972575393651024320117665742067094720188254255081147320089513333158427377760679598562726929187707902502281468524359717740656635297399676897504779988137056313962104327782938601885514673208244743154984644988776029743578555435336828447528461562284750136421612735068172307449821862283731310248539464138540136201692807346972517334831018105927938042350216200646390841472610901162589996236061721385047240045810483516421976312046547551531310341706356286820586215823470362192088120968992137426139177501497654387889322331554038225261798239891122838558664733566525999853400734971927107356427362334373564864360222953851497081423450417299161605842035422986898198574571019617286035207049870251109850833590135915084187094160529893455040230874241714584705696386545552709417831215080454457085536239279688937490482536335096984841752127286775591587684614953343834713107453686965080809629193604239946673962531593421240052557060451272441264189153725781221187458189795103426514581287286346546135651602604691231000646128370150434910206176057735487547086941484140014682162069154951780046298019857393297577327170851550192801489514462761384512304863091540837815190744162824913548510533204006385053852486734201438780839276721180185143403376909959092835253254795100237682373116465715752484321809125432981729145511585391735824991734761352976583482826831603640106750085464255257468097336243623781568836177785259045897866665622017440337105525614580375484205771833406653475153463126831186432264186444156331434567114680777065521138420323086045384282246740406349851102545408157356839613083282801434287998712787565919001656435891973478322219639347183157156772577056322450937080002652088942195055517736842806339215648952036845141858309863672154082740907996040308410387994324320791168794222669280170949166699468430161273933981754491006946047780425432793162279189667645500270750751353532246590395749244012163796004429452947924180353025803087496541340773413612086255164504235263987473607452556000194265512576497189322527095256991567139412901222331864711193355715634061690113515315523943938098057829047393350474947492785082870378728245050174894276368142293223675160951352054521585727341413322409444322597604787062699054598190549336966486606812149228213581956704421134890605252797344318083168777573219232033336726114470921567558044913093633042442313612576993645234668878512567622913912404034658832653221016857612494763366576050316890607301067512971808986279754910783717866178650559337705592655153665866363995442027546108661934661513724678370278606573342388888695560578330491745874469213203221890390808479933811960014503552625086340728837487822632786881928207662273541687875366924688580414225571695835532739463517604401826812587477274678236815406572534232354700018191110071535517307134630693206823405378888514867029276554067931740792283232439121686649722913875209977122699608180983742002929680593298915844437461656743904584550268251369941755411521391456775676746726972955820130880137111118519758891757759466638423209862823100010297220966970570678091153896749140900396899828777574288600562303855502991731323512196491443325405087343515815849119406796275231435782949900011844508310221391482106104938962197532469268298220749004412274118054893376624744233758167683737917752747245986819631825404527765645997989184809503632648283743666847782531371431923860304438328106005730193014156654961251435461196148535995858723157022525837084993153945782802086874256566841005595851758833430681597333749513057944472208287337566840224396987839806208258468439622255674358624570455958922059745238548695475667381964294945895307876327972877881503657273914744804414292686125479338976505217081935798107984286434062859325390543003044421796289649505285668033911982437519042273300134411766606090491834088969819490973653360604080822479558483939823032831660527043241651057656274103372420955646479940390311069361134872759645582461591244720046801839798608281520138890438139081399504719626847711894896306757069270721163804914976229398747453500441955742809319916811231657342816332687706347576863496712213268938033747544305614034190852573111391585737899163154025075330009317495202412028050103690688585323661137566674812980336996559615626210949486249072545825552969613278798894630901254771250518626243728145117435467603100477374652108278315699701023410533378257361209436054094029487175171656690696680097196667794842703820185405043665093747789630053278589646599922691817483371119816681767576914704821941204088751820118016015638770675724783982686159710402979483420174718309404694949806601253567539861574740748763203303529633912415519602810175411304416334186669779420523166409718777607413331133727947471005243233346864520074113038266284536925853516825866969970421919294228669902988838224165825181087990221419964100777206202035409780611215684274467473272130036306341999666594390645590210237427509430744369176307137712570930760444487136955884982562953619023406225943068678962571516785668690157860673258105975784184508269561914278490850174093666446636071432235079223220929447358447337816121551895165603037410976612970810957012109751504109054695085135998251741607207563676496138394697539658291379207807658003047575949053772333426642193064337027981884108644599404787857191367995995062638033552573208897294716527974819802869629874963726956592781479036560196642043984414939363663620390829684596933176516853635733290118955844288029307773054377465457499870602252209979109412919625225703114011698969890423256099075057041840542017768795399694339831320281468428812029875620595371817382545625263970874685143764681097337542583776115690328731895604557407191324923892663280728746966393405203918406481525622588008928749553194331584753100245098449202539927545607855406731108833397971625261906502124612364333522807660825826740677162987627791572403143792223318432911192920887963513039741193047886498154105467784418840115429463628683617116763444724132087861268076217652880800052463361731050182442053258471791178170494289814717203433723933456536052202194539539231730314350473376726961693444430623211425786848534040157306708055592082262855005494358079626903785436189530054960250047840650462101935616252367903702186801317767746880611536432413108432005989062568647191365811293999579144374474058868189169313400385620035511742506998325465910636719880471931013225612497076890487912881193352994495041262832654163982025985352516344682078263175393773452187418729728648553577140593382111705526595154463950502455074570851388152843387972257196795607453375620278429576396219383753083425871927796064637602368402629378996140147602730952645395205279321041654101933211626169830422763393417950243424576545235720105079809910192879460894695237857138909530739427413879139867847996706280538978595420724685616585687877625406667714500890859729840036530247319459789824483590456734302914333389029566275240683203658398682452743274419120425268529812279962156062815429631528972854388102787306345224215221277070318666632601458906769451294818138552230947884379020648797551417798080052664879309469837580245038257932263105498072646647724886367641741604529377027679180320517024751368803296624853193399540962418382464012212031807727758677757922955541570119273922223618210809418019899812221021550090536704376665806166943986719201210166624342797416911150643405968664096098867811572282981237233253452975581610878219010070301599584300430977250944637983177291337978685100513981005137104310742832747688732592859695093598401086689879152153657252138861998271281506028447329580395738873574781907535309772612681803206708598290378077805711362323741526100010533524953727423662611093181666970693252907713486838538077111510772113998903170285282512431058661229306445845885260399976175697555567725922532553727796771780256973125085232781197915418474577723579845929879348737428514273909054676015524272879047477731982550540243384326222377299968941046766980871213678778866942998708155729087515607978546002006854516557595619736832038230038858068140103446071585926919525997837268237799364470123770775717672434654872248940080805410946190172675165096159907501121441935719417064910334862405304514154324823476315894986925362430566816738650618481954980944141881984790815308246491203684794637743718544356706819917357415058852026170403560363405443446685019558020034988782771109325094912934529047545446861367416552172243407209597294201051908522540388386637545482867120513375809367673687663667234826520685502715139271385018883440317137177571181258097881812116045815992661199211323774771652807927979819326797394704632329074059507235905666561625580442037463279257346281351364788657105782446452817460132582336000554237350273465673065857371597721370450868740182528713955723562897970979887023088998270207808238704640346965068450155155048681589861514059476811811613006965528866250008235072300217147225701095421133635835189959306141680379304533972229334032890231371075731700635156757892278140674618119840070750356065672530321248370741676986286969450666659234639007041022625846151856331333139559473607232253660162160224592927894322849880651892274096782372463795986254843741741367432575446068381248165550143034192725314906808020024711572939298908500752464402093968411889365043211623143244489341133714831505620306504871748854880134838951338407751736694481398829535229972070767670731662882277963331724411025365540569877318362226684224758745098222369244746398486525492949897296815735832877207699725458817106819709257856053273402108981418511436738323856155698162390221566242770287054867645246188276003605540971903498105614277000262971903155475077528746502387818436708725087206345968591524831459910183019658319050561082979162976559927715329736463355798717628391085263017142506448495175334622857094455185040373768886253324197382156852655878759606902660594463159554189915372790636959571603944401902160004633507295231205403010685504120141951792434575623704995930867392530699842204100521374138424241818575139419095386666621378056874101917835802271812580365868027607699045342111268248252776581191961768220875445524419707206722409582900689465249602727861498542458798993793921682258688048145583953172001792600746766220294037259700144238747776138598614407827139060217938763180393268414634756614914753591289182992552090007608230016472447243684031022986843578256334157863463792130808122970439043142473886546051474267968189610382340356220321018092790422360498566087091951623201012967192921919662899427285380501659560531548148124583831709326724766195279731343448878358396580273149862871846999808636449527871919139680612241032282735321045158895184275962645931504599459595790376704249255968675915823189533576377704754015987574911702786167545625817270314242885121020848259732261352187973153744511402265869363250236808001002685478331277828306363994377703449025264803504300393779020641884528440997733174061876425797371347857411716236660238254519876018520953893585433757809476007716630369639395336510555435448094379365063143035932643309857425177102749593423335767137117479746461339547382052844347926459763824363243927273709625874258086903459044024886648060308508460795131996114715259675963349930547059725756707638552380760497058650811918393879705987519210883626320178660152619621578596319071604564575998556922927796559415912426389792574037536659009991555228084551770623016241086863174827759175807408686493373344870466802280398277915219051272007584663761679638176495755153472392345111548258911332508173034535497156239942821719335999367491718331263102169384274120611644941358195282947262679689809541748838188385638309014371119038343420850481783911415013383680719003479301275364146976277172649719261648773478046948863032722629233228018574798666327194469845164912788174262779201683949677086637307056153580333663438976819327763149835025328751980658767590772550047435877193781614988623199441055714581428285459236252870266646083908604164804219979500723370773377697645354143270674435044999171774589256218673787656367502850555835248655274445612637750490874677889405905512719802498076686439614873855486418320528145713680434616141261101756376033292489900567776006057988252729778867701990452582922673569898212967364876330431348972384678644582974654554951442148998159490692214199880706248214240023046762812510424895458281468004824377016419162361445535823277894108326938596752593759144304056390824517967178272174075164534039556987249186735486445404097303777066762686017748386721606969728431457560856710307379178912752196008532983954374503548643156027444820614442811709357717062951965131325871129074509582482064904539176852765539088362016209723833558215542833235646512742208316783567730103130094138900342582552359195995213392720850896388981402216473344660177510806862551906535748155499281221007812838680020291567768308348770512181453315421878656087093902436953850148898152891902174899832504729687013177853620732670731306996992416337948151845643913225622591685923056017893774756887632740893358429984191589173177151846635674573391117142919507602696479925368966985858295460680745712560850927286859610074333823509700414121318048916761375687042716998201718800412485122556402697717995549513041016586300424836637129828731550668453813268422970349231974840678888618881960096898073126164964463081454936649024172218852006924061509551347219068199155804998708181297211003644601755611017774141982898630944339526943985783233956773208073435571691589412916465462229933634105531156706852590000677905307636267169756504211407574800299188575322035733698454313177651907214254492591727228250556402772865375377843682357995730648572047365670986116383452902419000284069040994989850301919885202689995007243222734624676506080541474273691751289983719816306955408705253263765935968249628778616357134123860430819182475506117940668669237462696563049660529024946100792838986112672447461468914949961322315361561025746305279727151469534103068112498401204080447695743696108753119654345142199855928619495671401578441905598807406094976658344224702254236646722342981094411599677345118075486245310197119043311266272078328025451656207789331734842808636849677907950844740644966773444920798556605876099155686802672349193414278983600214302627358985441094611639020734904416791685518000383355774685703425747145715943503236775033028152453618859303954218152710238680971171740849167379191940546698203529243118946218443985968958938083977731168296437921574684851028771720504400612535448034366333219942645077887498606089727543590334542850231241911304674876928764745251827599386119446168767821816322489479935410788254614496382566856491966354693441025682246237593608364904320984583289359626829203294853778884588280268533902641257897496647372768027395436151992489197770315359047850525478949852425985941477125781312362030413511219341281678434267791731612809851675102885890281820912023984463308237552907738199048055089996110389095013373644727617249418315459762024489850992949471249527346023743690154138785165100036953625081789280480450781638530146309048588093213054887352090985395381032775913706056247777613709305355976271115654018798036856917615333347421570945061395653535561896992161667357060079219631323419583859164546076479194096374755845768559271990063219236917762716491144648776015646274613390710849523612206016018656805288128468729288490550666721134612154816783666059002748211426204475340416708174781449792907781908835541253618472050723031932239476004111690529043909342231447823603808773518336298979374232904498074320044832622828725722111450199610023489452866021926040766824390797237745178778630323717418099993740858563229546628813412623476118306402626745440000018843581777884319391919483926659384913192462713676299602502589980707160108813643805739351773219939674051230013759327566206975949460860390087147207585376406149612210403315378394586911025984975847651621501724067666832746080200487852301530144774497868599105430236155645433360511749663835630140292627920302844225787245543850634956277661076122974392427215377910121193732914764170502745693590919478452826403533456153502056211627364486192861419048695278198858664769154674042508785133698979049546568248298001755887338421577531880305996591596924487144847061383549493586076852311649594830123690334582035394973619753727235694572452809797092298832809885758844240947395416328910846332548544237385030670849093823677159284845077156121111508170720922496114730785113051255921797360355547142260478273549041584379090650111117448512959432230814605049388664411433550588926708502561595665042422836457635182396594311404041107766989724996174419183156858450437141876162243758562814986686122883528557063189969586956591893836124627207836443992002835357339391726263239202184954763050690773719652393544971872101334266536536534229362883182735385833076238905314504446424708732614090812751954466540865694909456351249623454202152087619157375453804103267576185511091334235144175225245942769841955094141864247223433208665262833538193516292318517048291161844867738734874212365297050640021172296803597228477427404803969308706037707905276453534201502040210175204901824783918661704357689896636657058184592061559996658810891419339296565911718664521961388746447541309840741772422797190713999026088843156038824724888189731507633111507772427349568907701029852062345343626898670167756378257525446126985521827695427517806556564927382842853826928591353106553657788862268348807266277720441899268129297086807229568614358331809000547610366141824245056781176517867868317194726941441706806364000395641850003837264028251369487509172031316918427400744814344502245137050750547123938587742978116270494186285501873971666484690800988323639974529376701304121888927153836816980106573679738102571702475619489979003036193007600429373826930877055482188893871339428712746377551864524122046542895975948886272644917491030889508103596912184677810232572526725721749126847841142270574751588295953633577068262673965612831325189833659330543391304832823301996070649483256386849700753752063181688366423235268891928361157178786184178277259996520494050898899760921359328917719930400084564544490179115468432803935457444422678067762342949910471914281170455360450385934868965676919740908248501691335272069185660784269139471180895097297692551300828835684558722553659439058558827342580176096756054499182421237636680023374602598704488776172605344878871570961614462497240511962873227292498721635450149424678214573776882940550794798344432933176982627783933337573909233696597578344134642626748938413584385573341151123507774429055033616434859767384586291664951944030953352269678756689318088944624560571573659666568141695249993869893409056309141366925517654379888697077579419925104050137035860367755838401321408032944616178535371890284473681275888054859734817076101426410016802142598092805089611280488501819017543824380852598131254238771372345914314856117811327178760323857694422056202668076578324727503764814374436632497957243479537654840330404427766475327168769577196052104382243821330325109602300508241179483623284928869502515730504475823479427220702657832688976828778763330561940623932685298955678825556012024415519729796455001247318643862904984553193727197671499473094188267974879814143876215491430481301136000125564577785359165971886555897286392649312905652313458062275493345592683020271351154328729182756160150247487945027698149765821285931204735803162483874194075073437414500793437066593469215309514501169092028490741217995870247954588009159749735505260721967994657035719586432220463626310665149871156547576255232202709600735430954510737675614276852467916876055662305406143829348901914207934945216067537685780319805875864437369702026207144840549093166873121065981196923878125852708557345192910211244229726225437544178916038836849343897641986071620407775383210676392429210633686184921873156547957708786979993340435861021843430368784535110794098545459203526760508143369941106420934147682695332634655884266440134418465062384540209872638189810115312189861519026993533732804744548427835799184925893595718197760122952820520981413462574154547633499007171265403733746734905951263800578641465864860745042982590269782522872947627389398010244742903235654620702338409490593701356799851746765378395386339680172394452260039464562398937073983888386407898607842183375994560858883864501071605129837575925848184288648122411744118642013724627891563060747224935093966178174179736376655461949126908096632204179868733339994793316651373944696517728167531787286308716675824088607317724089373505932308654128763411010789700670453605295301894202716146487285981648766084746075304688425585904310578586434226650300067765504620855231035533214771459508470406161977437058126796056631630897580622038144061863988905332355707047488782243963482036809840096385996389771970202399167216940233289954680716620184986880956237087633494916396158497485756832958720703326680764792326275289415946580765550182841396038782984359119828147712705911175224841512704515184512747263202264808611147707380646192080400441706116174886979804894431911483296929245710879148816009781401100666006054238422817791272095012043000759566962319281136729758453210125614252671061387952009608089031547738950539796026531669614597430912536594295720189880328609928417158505560902663420255748426704654661298221853739032796127698773829731348041108434243905491347202693395224670603396555573434983569863767395314349623684163957089036929167120155876935681638450351892222627479949452055491694298249034207651717257839746880550691478035982993012600372833305451573277008034370171193930521227983936597732537232092985987797425167995044045561283329552059197131618585164157803053099077996177745753755314874901312460079209533475801460236545661036051858358194703995230464987097018447068552932256052917805913096858268232489089829714799648127779939252793688135391531424532066499989967602917105380653061759628902067797698252717790462083941149347153098260046582966747217894359267242328507952596892413429797494685741232330371842467911293406845982240459037692725709901938342055684391614135778051462314781531209045878344887892769536360430469354713797490930972725277319390816169805592430866632406676921924475113699670922277299492911477914182540176498571811908622640715050289668463051625875533490274570022118117083450595819817611962023761169655318476958269732553466454280880883834109829392417659248368024545474286670893305640017487552999935498214944035523157681947511600641796500592643499859491368762534366823322162408517911535969150540432963381998430195795447003136139121201769378890654129138106782258984071168104913923665591080690699015183052130762183820909477640635126928167660826266696572560626497544306245297223207314045847775907258629301541981863857285041241722722160238664575519234344421194698422664810660957641850789347150847514943206516756551842187904036113636735453650464498063321301534360889633438605712484778837780916101624597417780344095599757508790692807532774103295289680255406980560014554768754153757255211998805573344928875471079285824053495374173116834931913014965738203874099830388082227065480797986699012748128872214237299243384988882302549624383087935860441273821520244636575351661953543119461658016915557080874504911729630799804276950927650376168681836110376547483229312687059793496212610585842130705894313083176613532943709829938820087802156271614198312803695529908834131137052376624867455312380625685610987353516892924495248840960866947997601262874912731731537011863225254203617954301195051184607265486090684911322727999796869618563453599529636730345612502662695125446896311424548610073313252016042583569640183210794629758192231664232053346218081177795902711883355133979607401506166342393982203747237110683761894535928986627832560217376723951935881589584977378649471753881443791072066020511379549735096372024964009326685941045500872738165943595565352999934911329958768329942504153462195799729253522894872868362526745473769353703296339357048331505012920407121981853454117187979671899387925141089796292757865299884291012085488259685837995472430009172819546981305979458078471321809925144420221061644942085667582645063807884230270139293814771171829600649987051541776797451434844258232546886536106964426488673166633700032948771985217625473138233146878332288714911202032119759122162843674326157729703115781781258830219027856688083763236222826100056268712518104892228157537641942973179015926212268036633360963349192500867107938873896570021826696606428938140888673984474697296614145852649618805945375390511801441295888548101384291506121797767768820962632513689184968896768263253193377921666961002694685452159075081023498067367225701419310553596378627124000939391301677725240025804154707053732806891959899444311909592326691515637035675601533009165319240096734854064596085321731604295527666582703564972432975044823869554153310951246167347745886571790508395535941860386919946885796811187234858223666726466653677226674972772002498428771611892191050521383446256463228858251828120180856437039652775669132568367669788024748088826594410663154874137982208551465439572615764635382472811874205076877842015153134772171169321836416103094420145586787287217172199439333421373903381735139438343483346569823122065787252868668307515727519039850888185982524014523077340862276506528091192515183053239383923141199563023215771314543421905803100848229632254025414263874191492635568299126634595505318161963675885396298491141437360897962109588319783088626919917306873007487633798026862871635898107143129941980284426870278517559445598866486223874062112028654525545908104617775686961703137165428585020031069345496208052140964611766203954755973283067568591490728631846539346361071563215170239256605939575169328806324541132507953717913126938802205171566992860010006405712891623897047390793677749354183577758619522506907603306874018946407484036813614122613373553649960737386051215626605051149037512211926489636861567753361676278551709022414484783125128758168730550215445058012869275234652334285993173772328941685237617602615898345690941740794193163898418204924760749023671173413538281246684870469679256866048294094678968238422312156093660716391554573233350793154788301989402589896357976792560571998787031606652648700486671292768941198998381743000871657404674063731626032728840526755163695564829788541550180582583115850433570559088191623846052975508292061051267690629449755105537395213614121066676120821112646561959478950061576641545229581524617746778588140388312442026652182556750809655467929363208232356852375907012601684077010360709431903214245404127167740921734480905222704542390992588494852130009241786949597128752715698101046953343736635763050164295226651852863705009566853804527582042096109435169418517179337722612887043239052637665902163116012367201070490589472394634940666081746532041049294305181386615890363477059836790575190721409901974691755903403906265993859732727537515796733863689208684574851528338922830159594954729161425229231710886636411249143391927065023781494087007102536573533935122183603128527470351180682945943889977271222687071361205449364047640727620977611917390505200008696805689506372521721443453983802339970994228161299052325531540826038468182673940288504383122071020887781143277514190378868464828195920794114491982194997844404273141413613721181100282665904326400498651468297948168387187170241415540083824425226947192297926403847261847816988626238106617882753107453356412017189010137023389646147064804395391776332995718888595020588844640877562828047504502649596800682112386634061253129516375511257884115398730464029178044827029978862788091581374908272174156550195303836181352178825599965127843681784722975610626634415540502810094606850211126579294939986434941326300812878335391104433853615181610218989706557613686882432876065025937846772662322245821526748798706304588319008350246484994557252232730436014223538495964560276289389534599117209608829227755047747641654898052778134466617623299469907141310884254975633057213340401517036515893481202236252662323723567257837179423171475616632992878236397440243511276727406620391423982957073426948108306913217271573364405486815533735441787054832833536673244618327085543442248219872210566700111540699819836558214333055965625377910732740488163362522717230209611716915822069480810653664119981122812935135358833377489629391928758322174646347526011713641180766100805028918438851680146034417563487740628310798641582411145592146887422100580450125981887783209186422128015862104104471507226232683036042630643074489496631393328406507267408489097527199243570958023437671339252785439033881746316400575156768292088011004303918569369633820550067639739073638278508965006066845970422091964917335237944187666152894425391923396582062377780931970922658688271132369664265748924373668964463578107552469153351151457280162054103510143251870291162824787458797230464129003061314768321084026672923075970064503992997953787476018239589069200469912090314339737895583062483654872047935298876721324890599272662594064354031961198486858547902958891559168551276387622849308135956477821765751408256433665526791053012332643962406642136096846917320788385696120111451378013823465843793204793860247108267622152228400239749754122387291673748134832306361812758812968475646657082580232985846342890363767025274086521032993670854879223252620027367683085327635499837410164111817440181155610145610215766325072874029383571564354023049766697550045749793544983700194151859141697220476354002685635791936700925188026515708787359592393897785352947947583114324952955135692627816665612445796485316294127468650614880968059484537119360990725234038735940599307720899027000197298176720377370281361338056709387238315984326216361111922146062445704615959392446589899509557951193784539332361237479507329375495453620428654609647041236585759692780876767396832801730320178543516957313845157038265850729308868221511838726548914868534374775857516470805789470820223652574665627180261717889875335637873272909183246486343334341143070152655129861290402261691558771709152259649820134537617149706200499011377617021127876934556642958272714174071164314995341027494922470707601615770946585549425620873599557703524697352276171364440759804130270721073607397158195646774757835727556725790670203496363256164460964982776295647555512491203005278349077299073728111150451589324893819370399316394348650605793563102869226047885957773960833054043920522889948184433464043929170439598006687983508621110326076416103791845096663412231981639068540000516923704426093407403810837615299100178453735140460877713705425972780829234142441768452513185077432100937606148075846870270176895431953010929189793539362668703298973090934239774277718602499793863242332458121885378295277331441905791450539337101228149827571108269010815016818616784331793925893966455932549393596708865219571980868884720974465630150796502590028779802939490341159899581770391409318794468153477149183794015224320583194524171997033050077444097533501468410814276544217855986417045224478394832875770462877054707345978658930191743843338191797642381657206141381148497379906019609520163547874270864668463060405974314646954613240381877123320599719785095765632290971475198258946861314259968277875012931700842719591538606851658183896804227694354511020212936448060809034144301115108442304690040250607602929719139881290406427485295549187380303876790501306074318311698595957633119587421678817343756453122456629779092463296570538449693952041212206852931858726839469546680488976968538610778879120832948402390567152711356092794965174550239501789323492159499489335571048502638167588428430873727923268343712414898400986611444246963145502176203277578605404051515630980002453141434208199756272624461526765025793425590895243361115511835489142202967508362581970645961446709641985256614666987089998440164692451816247942064651990124286573114501986898121890164304393089521562637385057197753150095384168647089732670044215812905395587292066457567245004949320596972584742998879890956406439850549997044162403752728759695930889907739524585491662192414923768866545160127636195300105926818331162619915325469404591083412316542399424592828779238813416948159398376821622096390555529224761516580471363944324358917463327974479488323044298138576968366568966706925536447768191642195626990940681034888565245152976778480608075571251930046840803390624496200571167525412698184123837175428161198320846641854667951986785477936639081693106904285006815812748524470920987751094110397324146349625288679309587490267146911220755296500973849788573705361943740083503234313554310687253773524233942929813137467367119897346506280630736383256290156466219888823047405319220441164931567131159772816087690522990832454700300617003976122955802261800898328106104169148860577405391878578392708649699378873483285233914187716319659748205028500575893557494375310878753173630703429825148268918755776175164789242052800027396821460590505985005797633638282239201370738341304406871743076817553759031533876884949247956200891370022260246461239064010246952678881686850742566241005655550473746064331149736710837675249160395576000380507685215489899689525897945694221314714515130080356785916470164352345249753413886089730292818888297537245779884141343946204222577184402540076481767361452476061977567925592411585790293612447499896145676898276558167541887198234044783460484346660930733330596057312563065284811372205662874418747882901045128299817133813572261273328419019456151896272107950325903264936525073239971710816710206115727208934642098321446240883854192892524503511696190397600257606625770555005240050269408879566977798789776412358607503278174040759718439951506872265987223361136593888115340636640917946538398590873204713568319318260701934857052998406848688681715565873178760818886141994484804158367715181614412347297480604222955545599399990939778145531394968699473530062930938253282573178459598992817807420687791455352467826839362194165432264055237772748840309185604546917616049543706411740539192263415144358820113478887404737712015586925506173001824727118213772453824137495691085845284046473654012827061310861393584335650084123359406904353445622373171543005005074514027314611979494771758719407753145424837620181814517601792783992616088649678359040572664170395968330288593882099049461922701707909152045787220832298049640552708719160917976680547911634637664915138583684618173480151076585208838989923915884289707757051672861747937175261765273873716169929836607895085308744978297406454659435075231480003902778933099201255202075295398944382525005119415704422976513602589845504294000011069040237596459062413346942001439655509674216045598558059984811568277948335153945625141608307437641268630489471878176148445353513776439421074393267896783840754307685686323666999485100387130818208504033864577771042882053345525250119485984630232031061572931439298556903538652793425369825727887159569057243755718161036017256532682650275138234754064174876112374081492363872529483456422613254397792091108222915977233559332090143862904514321122722428289501472035665858840024268969113231358710624860388261697099200608888641041944907793874431740575210738637447530873604265771193665790234203418561376981399623721328254666508008906888034322048593454150706675518281009485948930305038377044380628554650291479957939779838927797720820692360779008747091157187623996023709579919977524925486570644962610889906048882848846996502695844422852020672405186773058996985674359819565908540481422801319599403796630846044559690959243924563155681038324447243783484226090150082150009661190833558175730641257649901031049198673566404722949873326892656453557285661976758196088808918873511763048700957365983662751691044342855122813549272997055891355584003983589555231749387207728695374334214842174952821147611930535902551953854107133330392192135208189429908704143520480160663868568697845039947447151776240281637853952096319730878183460714551773981052247563651179274193942527094467436710313707810310654898004970860193058101971389868852455496272672531573961766844600180220516478139414280859643890621209143826817230320509726097429711755607787067013352020385765152791370505112342483136632261783999158099074289853295543780959208041823694571050168989515297133419395777760835756913022084530420571365224354428593099251698260048556503745820521506191804638450063660056764103450661351210464163356519272839365503703990376903985380751656998444985788698917414346631718657707602957033328925188126553576462174315474911503532820329234577797966545178719114758617674513914152819570710927687494097174001687193976054911793223223931545526688903378385388652342304329044949779518943124325069182652291530559475767527216389350539059226888423692182791310785207504982743430499637097862829803978468905756009518231118044252249136557074142028906260587206258412694859556604546557486073922173887289366347674405286833068735521212472058466372383109925856247817618604421887545303067218750410328727818917174575271296383395415247759335756316039284379786058328091924031453105493486726423653598195591661559800780465771166927251097991328830137267135302136723918393075397013291839738499129379266747787405549618430989311294372387359454462921186864259152719129604551513153322781548453055725685809119382485602496320244471118759104506922595917554863422899132991761813683257718115172828753643785211205839513636729446470841647118996974316382499561644088429709317547712224563781475962810366519720393689011143147340008664050747332050323881299140788107482809035907058394128514403426693212836438286921834799293126547556164645379048752830689560146626807665192144112269789038323674582221838960084134134664637075418560061329922333836003939029583542557964937489359631591915284531965426009246165746251272765755793573652128003608421573170936313896677750704407049755756172983844658578631594459359017931577273386992994696605366070801730466564406207312725878148573819347896317662992124122603279275324724142332507015581243849034544871541630065435309656324527446854904878089078461248843866677446584272407227514645090276166996273272739117846233247684128191160885304717846962670599313368405962838602415014770268511174534647145006542966675622912947458620230361416578029044381004793229064720635435661763392903499834745846270011749515564263046442139331371202744461696103483442281296665449948767618119215255836590444048994504296860426256673647928017477786356852148787120803002707855662214876988784311542405669434704026739269299874367671800302066958193783194865298396863363817442634604688107290820719661093110942113820180465239828253522929796934295043424723460126334020446320111462281218669049123104207978042077206132382738455917325817587720141932084343842382252978717227484306830437921647216033401399460996349969260088822827045083146410568046907846972482995441072940217263487502623529762813325514456505230654308161659359418664372148417102696651631169535654994501044746199758328701939072625322553045188200348690031044692515786276114973877949672822667064047656638472019205711682422510210160971930533675649738500553016380490001193523389878783955216027240699567452721084682823231700532169580306858629765432379334649602985374499031547876688373865014394499975173787826351769118959520064486841271090497556094610079170164956355713436486710101960366653419371247966262609320707256046847219802015972066146099886890716589592441571759474403818176211781275172430990614300175262145521755329859689275277687292038228323575492947936554054026179394453286589740214234990570280547714900923895789355089509058629329552987263235949423176611011335209529002981827954024005549473543675263784887207792928156690693431970245990743780421116912301269615701676074530987908201436738571459352386443877989010125452267672274315021836592477611675608457946427379164430689937150934450616790059051146083575197969295021362389348459380860025852525862084852309103782262964078429614793189738218723232945983034961977833640746611217844322618238522841396383391015808650765002952522119814388171215995190480125154550541394708822409417082338123119952177599295854793481615936921603464965358531619069542745902170083631428686382952463163955530725012155090026645101233529913421861012689861173782470728981967088509431109708921362939221553938569642191411628037613111010097023517354013083474861366723403798230635287549048675187955001533072411081382960857548154211609226100083909153883169829427238714194248883338403961821466968467222278110732910389751540031583897655137442483768615797693128730372943974699311283954755592775673423052183309021934144605994671468054282207316566135007314007407525605819866574527302030307463835254178677891638731333407180681547924172868514221091885269033086449605221210848878713115732358112395464965146405872910470602196904932172153869637859375014114592583646785273199454812328985016540870599941720665802537200681976669673349649794076885775056769390055588220212405094669768759421812238483377589909807727978821092553205941701715904561764041293339738345769675956577482116227531877213210348507963531143880929858811137488908920400890114975043619618008815086742500070743444920452831222330776100163615315248019327413135066468930269142565828743494336528430310866198416106422353664247272594397198436717426717711987734019770860735148405892053960638888472469473704486846935157607466985236204250974666220819919649756245860826015836508392181045283845400550506519856333381010494181579588032349373938556981671723678861635149423949162971862604299496045242201030676798154378172316379202834941974004317892856486081821252033128706914172315202014754694361015156329640762452279698715025681922971627793238546367128913877214665474489731340538213686678898116193950312456267736370530638293309721862777454924414159560836712195943784392181921983220285402861688365908488102804865823307206118517489258417031899537177048021086077399626230406040864651360637195713308235700465759200713257901177132385101558541335697520023174687524100445970353895329132865095086008635283940449088852447106351324904412880710652335986012848540599284233326022071618676836883674602234808851744865846716204461169179582318547345452738782699916190304119488753342148163265396661488578118741700182066752900567082709368354144271546786168038556200166929363185894082252640701932280027980698727564550335906219130005398485800513150188346155148075695485781126696674534948782562187425541791258944505950847517829187405301699468263620222031316813507835345819366736487935228681347020625743007925608181449847545695957642019711079788733632487924736843720773479482677056791782303432013858706044537295879100313926752247191499487469878920225494485049603933929539179250045652111187380202062944942516700818998711308529433455487430598037616074255978826210771916171960794165035633781398478683514089090510961316810684115193642036806609037656305229225728401420086427711158900453770662201601211564040309162211717706262553412865062847539584450695148764909907310915916878547902204627918744189768946146156699577096677201013490136711940330299045323649708755341213314901166875038610850545676313318122405457497130693304109595993958799200084463417147535728676772865882253589115778315145958222764389035241636660351849634596496458405250916822221779772125474712855336781579199002723777764527266829974276782796387656738900217160302448201401487309967990205844320467823437102232624667805461134527973455972154292215707710386848031215295573393694671727158496442957020979594322339751346214035215482376100055445553752844730048574877823589197193198730249054491384549609696569900078214542986225851304072229321752449451588582727642054740493636812979923058196629165502558294775899295430234613582231567981734936955631397104709083045910433466863151070051895240180245104265369389794678276518020950959072859242476789119356921548242596478821330048973853426677838730819834470049041369799833174858751414521960556727156583322367012082717669089698472168771865467669065956316042899254882335579392528321752676423273484635600388366612682705378155362233988005739801431987837059867115081357922409853874444035094642911119440611707707258400742829816426696733324895932277662769635074220818564311997082827103201934389151153682770736702457948948270148749160388769227189258468494603044557617252362174416763274840221921194175931278727778429474511539785149314398968279543952214244667924316980728021240504895154751578923292119849779608965957541683961184554804860829068955842091878189909835120290084107374629177747364588612448821636222926290247738028506616819523811564360598285527990928687241208970758740682203493880354307586699139678246147468375474105002044905039656040446711264222347676359616198765443422869924054820290691200848128807653310861655506534161008022914318615233426924699154048529422602278173166628989501128248835019200749139438134256401656847519394933019268738326016023531462488018454868573458319030908497403029265609438178474191852721516676458959265653515056086209867875471259421681797938685277396893188017832661547347204580772305123526301950598930680993446952712492189855678872401244929597467654385043109420781735575171482741133217708087168132730677815441883941180545344149612611945441039041309374394769344731078643778848947827559787070207294379503925278656758035521298421316245837235267883351375364186791967596154141058282861312217281125609966403863328211699656940910474796068320049948630780742866559313831464424759753047052025471314074940036991429969181814728859720785843130420003211230369468521506643520240637600803156892048459018911118875477723865936700828684847384314338194804706583110583521589291244217504110686654761448230388332881421190271166511214938255664495590465428340738554663933631632331346691381113835757269063583253756295280330231153390253852065340607893174862841555748081003539227141395127179065142881287185056015317468457117871628422006912283757574708949566284388535383473244564108537156579894541568101056509665407227226377436423280826543670771429416514858775847592645595326250623129570993587625074837165367166990017989167007161137034819399723422537554699828039079830849438905858449419689355042324308275799840294013536381583033367408260310649808511503992388620538553653599874729276138225225942348916054959563576856352401895625479538131885351156708698962373986073126145107121396846499353652775718751562654450913427275965978526079609418293265874053938734084272491807220720324500473675099692006989330315379645945075281903889616254489855188678045917009333284790469745564199454151399526853797410014884636272178806948154474143376481873256833410714897079771022529911798937178313779509307252373447449976094884875119718054535612000314046913063525947726872196234803058131079757797942511547430522384689332359724609844852711230517470715465710946792001468546786045595035507094178196778129750832549965631606865164202830414118056771065090635767791199545192306831124150143379614998206435483161303259391218106462967831001842297685815893341290179259295962151024431865171873215434296105000815289080910456881085695566857071178087030310686734257752496013842489760023900001682345022064774926890731214554737770426101528423024608357482650704174202932684488371832498772718451813915704931186470922373177685690095374997278433950741143219124766597372197176745900793169658535898592335465314881847748207243014287557762026859700436676590302171350118647085714500293727422174215125212789361553152846613572210393226590148466012091312542177713947913464317832083167879882639970532585433960281804562537143878643558496673281999403602590690463828278943372295729781995031316373141241894664375554407393333456779792922023308827531950399075162621110043960720040799834496801387093326379482416727406481934682722512763495934889694652964584667244680781469024922419245500694682648173722061354475553416261634580713527873948196312146211535379868570365989524229858962802519939479629830991374534766781288918748089083636410443990562675640469799840893733425488181633741785911352112308323193850181726444631559791008976640141449440687654963336476983518609484025572603551597195564005918201695578679286522780128690595642439229339415506911144585679472931963395205336140935099917944426769662495772560108804232824585968105424362981368531307282498650331865217611823144225118700648115017833660650353655274492725206565775277064402129224178318394363717497739066079365405074413686378799522600505870452205858878203539826763862366608245360465418072853994064994694519191717938889259774919624326053586989377494197833677339308678735574286951077297169943030381417928348794441121790310116404025955777488411204968684688972389664847797255196000999544355055454438260145955172491919752433340633381049281340743586101250406261116610900065334238317600826421373511561797017716567062744936586853763548695394650190588755594224803004547042381994562942270042338486460819101891145120399438595384901751388442909331735804593826798076256335297960507029031140179043115127852277466914816965610314233676696664737228424888138020641137694760012934940825995829575354968820438490755660412016705102621000105683178493260941657891560907364987120901309000295157760977320599187326211500115641964462354624949878168133844013591393457669844155685105937545077413232719592657141163502197898142491355659752541694891723187085516651405205969352836307086441809989183131652688440494773246859085738064100692318301064376181898040983885387736870568051429511258569758606728386129999441406194509900026578791069888834314436899358566662285384166068832539679279887980513116100816242369534338121216147258104696501683429898713591209028318527470515817015765828124373090240378067862955116892712574916792477702174172221134257478435668410454805836898860279866051751400713566803876069043091967631321416889703126361723283588839901503641755331102401101201355651725054702410296883856088229504827825771087560544957157625331714824432670970254890282206100740810111170010182745686766132302562850390950412990028430897065112294191795151418526159448169854288206192436583341999949314050141419758058827988131196238467024538796085718479927336736216295199233080310841914717942750046795446111735410685140072753130358216459014449104786296653084819449587344805182208561019702260579156288729516364863310128334302080531516461751129562451042922596619371341721856671963769627663152949695336534115992877999287853062526128869266909067464958313069855243182173076787663529559609476953927394771737670910703666639242134065401142156624807472065269862275757940101143043410151932652820699336124254667973944697820124133109429557526709591109739199606544234711531415400887506499977205600055843825710725972715135447431514002941761415865405193448226682043763356352699132862053512127921869537730559961297701258042269967160008990318871272159187032641177432174763309946883671916654569799056222897522668969212903871774894945190575560339792436810871049822115175777078537044153280511133674830545177489220328714772185135044836831761491830849956764939452042892385413363547224226324526323551087827811515025109270170784031812614483554497152303664473095141783880123589453983645756065547663335217384031256495294441140400993333080068478424383471793408470424266826830112260619182016121068954364795425267407446229055299048254864189303930802829565408739762638385459668570982056622976160886356654225822249311436038438669366518538115243245213759230885501416447030067779032896753480011032007751318071868134238990108015989776161185612152819811597003261697660083923338808993639740280233364131750781187969718348703250266985002683416442432658855709417272638396652962425055449292940992124405809094760854782014051271118121320991890339559186051231474357771376456656053838726601564210423472167067653339818295599947735129542586126205873769839809031319798247417569760597618021023321132753022894035320666299729309620225264773624142133566576021750927287663422328919943967363745447621682481162432381513284361576411161086256874447369249013808094211462242055882294602844802612046497805012461123797978253291550052308401247832979324326008401284144209809754565486774422208973173820116566017646095892045333262340368068344444793890196838243587127889712491020247212805604889820211036406323467033435055688342341970873975999872914747670294258087436017295395781168473295242582403813809555794800776005811440386069712263714345819087189923877522725498710141257124791764406173780994956901824867433663936226195957911462206839749216211987572794983046921364165954487713007863700494360014692962056857049168030882977829090293316476963187731343005658423947676154359675401510070672161104824361233843467214029412277373518507925314429554511826400546815439745959543485004215200504600078109089022921283506918590269527679180408514257919204321500886621266570464777115851157036837179856965525826641396678159086983504373544367824271847082955193089090481788083951504768001964332917246976663100323581858598605565576538927796813435252875412402363836719731047493558705222569998407321595382099442029978817352224690380206149815886049123387468192468611850268941090178888812143504768752987233831111708615142325171529421468893713021675884627735951239302048583026897349256227001240465012119117798610184735078451665199532904168315033067955065562757741487209450266323573819516455569375247314388443570575556595933391049739664700272923493783510468252577227974660645617768703302407363360741972297413511939106752867340654001789620002180662376274352582344072262014331623582444790128627601879009214711256211581273964117683305071450913894445061944219348619098820600146534662155797532191236467985525721144411263708130950200139529169373983435078891742381721837083919649809160256295587120562331116362415342004227202041312228796777511878813799362509255543166576261440612380889754882037322527183475395302915184686527145621672794233707342537408643529259242948046410631889994971535282532801263655182337063134987797785819472130605813160479253486719220169530190809875285966927125911068178947237717100059776012389312522884377765311979669407872308854696799497883584739097636695597927482010946833017684522268113655164651390074619657721034619404974562018849700318312480306207533227667161553002448386069917543204558072948319089722274135600464792455647164062208380789909405941934809526522204349993101522202296668580561700590376707328540198944788888187640576534064298844455402361917910138617801856908219025658959961707866368439089530944232221862078458529828979707583339332136414785479262346272325962738123578969857924505631249395457729621059452265283945719944759562633446660039862399902810476725798823229167146667608803349290798695894206516936413359595314676841236201296755760256088650139962248024524339403009962006429385940644648910103264996102687631433269280439652236254051229934511185055984565070961686920924513778519254461518233044942953942802768460789749054942055265933889011122739349978954016517064963473706117695528157239264639845984454623218750308820366330988897143124443108128108522090889688703825674383380930531329139291115899829474508984747349520111706222383258028710344732738374171537569550868823373236371069107629782220330321698151118354622896645971891306888468142293484758642145500520474775661466983180152611771000800863995286823310796751210682616490129480019434061898172359842246080659468012697954408957705698311468832401919435692454655979799218485835944161348492428308968908206780514987833230272074302488490077785788381314931715519033516639704470748169554599141308162005465497830698375240459645023641154876286275940863810912235997435556665865380598433352055893150309630236055113682868309393677385572607337270559572046992080985646445048284387226152983874893090616553268422333477218112577951687904591044487520156997652507189206505069788940922460260348234354058087475714732959042096231882524286967276725741169561580226975634547039170171339416973974282805955751182014956216052171313372784536170086582307043692210044122374290548273459854150226555511759908392402332212695559574153786998919641828026732218015241396334397096085567784274498154670373593983452708016851908199679393710248947033006842377109131995297222448986268713634565952957377039790381639116447937366418906201278593368166812101132402879986059028289439732162612027352336950654953434539373238014659558878970563174409030673025378196288900810675451198597747115399664302813563363820337476410308468770221877140691981771163032863853933119599975482669777789779516623083596705122577102116122564100157598687947752847234602338888210743878994735895279972282860071384206039483711217238383843561976559197949096452639390484072068641600007355943496235650371574897105699966012658499709187744500335963997439671919878827585080734975589276988043485899063861772341659016851220738179636320801217900712959884002696728856745816288796647512943109774812809896372183472531621162274689754687643139264532644101147788111793638348179756313535426132931613925832765284207796611101925368164149594859616732329889785941131735275054242877062393204812377904156922224714387140414168881783614005661535937806789187036558994871122409414314820147114836957192466252601618440462656565863649313646628148429875345041936302829458585791515711889288290217224785062349731732204990848417143299389647396007734318708826202309740032523711808137252483695739675744374431719856854514268629374536127948534555776067729615432450341990260200482655352341224964862447924930143830997487445622011089461175938406202014115578235055347619776098521365037265749028051225699364154701754950974418252425372137560472551442234632377628048880215165296411563070813309312640290979486356419529588100125060473986622694389943504490832304010583197623731518133818489021531620451929084500864696149072403618432310968202760076526872195307476969506419725216675731123019881589489194645036605034769404448206143922178448513888119061728346390497049960717473021470627419084749178861796180813926329723068829796411130448725703259125881092932034475221439212965824332471715610605675511166068489117621583268203961916919962313071942376663309624602553391505467661638517591454504444993044984483776532294862980277602878881750343013724280447161974287865438443153493779539429954736854791110627879693992990517746883225331010377176284284809758938202440324287323407160412189471389773912258487207609464730379005230412002395474519138283166046259426161057015240986221866224697408140355472725847229779761721831136908044039451451113775981913447707718186307094290191240828439007036509353970408417198761327892049431054635265278717277481262186660421992498306939923996513459865711064211965265226931814688122185478798410044179118058027226451522282675062980773533066349090565401460542362078098727758726447929388291226517774734198508134589668978138241844408014647066071649130481043749158904923439129156333150824311471580102566618523321455828293685084072505492690974954540673622772160245607854750512138966113666574008245585184324713997793039715253922864633618127130545150964811547139371613277799427839546064193013064611605470815089947062011182451822146112687838653237102383545094263037021100664041493389422701962142693230857791320767667374057419942189177696003623827675109738752124405369138626315396529710472195900840022652207691507098137317235707894663109971902709384467316905292876490635449560532731572311349196475298793847367638237753685333083658764387551681162008475315826064638713279831283147214488910866266954992468700043052451810292969562376271378691319892773550715685633143859905123674668002530541364853212374679786418928136491395015540950214047930651095589282373116087293408784427293178511627529230780571968498980716354802266294900257234407862280106648503220780962851715685068890083975160353603832788309530454955476747607382115079287459616658032171081851057872533121138357473126127428384261954275362564741757079828118107781067304526447513644678579881638656063646513127590548957203028897551205351436261496228971229495562014857409460416026079459120770549397307792387746786299326327503070133751499859787717679851700478418478155201451712978881695677480074381644065910646659508258904701243225142293118748130813073801594756142370974194174723835523052978906719363152279682146640270742823052410507243689250228235263003782505701449739018209689621755503418936006410920557150244572487841480843782969923936378872901346738171630999725527304997573608058283173659806222031500172345576020604846810264001614763772835149893616124117571256082997548713241472805039743672867080329437935542498317448081761769628287531090159387828045659253271181032755494568793548764931270929712118356140068577268626612419361301054326075876692054151675269991781195547940561150215871470778570647114957238233452473810378084689163759730846636141180939340636530625885577186351347237368492614545128600130154619420003735687355556026158512277900360396137501611150073922219227012725118316411900305238989989587308972446731710550366429212072890362117227261438426963325727889535671270946260447203559415936748821315990895291800012052906958388627150446069390819412139426257536161701734930712968057592511004050928934172260212329971721589901083501924773539169430821339488552901985149488811255357107403627725950911187002634750259616436619843100645979514511463288544972385006334696865606650969866300221310473469474825655055537312873550738360591091905702024818627925849123590351506452429347860181951763610451123489924632943175745074910570391486088967406827680819208092185913909695042191157683956626640396356570807482204448185499159141331154910627393225721223415197823186539563053290487688155600111261223694854909030186265121632622841422109283360727637766684329460938127628646713285358578968471161261806822309666078316824048667171457159213569740631764431037619630613567459747302305459001092675197903242109026686511030964983361255594186884840703734217197536850191753299269251707563727049880578957568725150801743686658125872201456639562175667333290573375077764360328933018679957516992106449737687448397185929917496648378381517529445462198805639253062172810906314071031655336789674900742207920074551385538296347946409801783651028713356572101879453664690660839537847499416581115825406430051859651002753354660278462553173504147400980777513611783796514615931014743613648937650530496492149655565053999252975012024820099507389384831938342380157813142352154492605096056394402234629715933281159717750145946134760208504210372458732447350512641333946444693368039507692637861748161766365333168231761638326625599025371235445747214344727754953009761998055841064234160364625984201341379297193507275805875420870056079874176642404076859588370936325408481910169764860106070105347896314961843092408056211738906209451823828812701199802411888572237786077313324051445963126652773637758534536204312128751540203925427662497618120353558574659385709607390676595882044046968976207006240594830786068419082468494696356109342394907854885382617533611911932367355016037747960176300601271370047417079622644152085846958184293182907502571769046535151390858799741062113647281032337260549963939888414299090560136096431369357581388791191871985375519849986492642069738619324165772942138855291136781871027851010760478028842412171854080309339208149327152276918500547549799746992690848835109051274113454827559132767309569710657126130212268348908190583187902553041326242120122420589345448289971301688236086438257778253804990818416543452013230235150376927993424313369317800096621260702149747064334154107976956387297824634186678732946945479202458303853566732564324418716271457568877665101187002653966694950105934508383288498578256042787132485534910036408283576303445866914995739461907813594127505485136859314287692134068113611497809052003351394024787860163411022617121191268640988652410435724901416386891677039016356121050626343014580806712771375997144610765666818316125606586527748558114366641727857340131004542835474673066843806901628343698804055014732955842846171323895073420401275401489978876034818636386574441322732738720059053931787337002594149507961873082828709776384628479099454451550314363293631394350449556304948355229565597177643813925670455968303542383361556877273430740085763012719664113650417448959560762721038111584709611325695209804884054041141888765987447218860506512675281286321636359348024648621344705081279390645334781513764821610664496519782588408326784255523870025175342122929845126882649250519215488620200683214515407909307034530310014858601676371741211785802056097576462691969049575800650519494904014876610757384620423009529636129303699910182655662874287661426597153016970159901928345318117511674650062106916385614248890397554202591056353732668683073513871450792106425975685551712521346893613014719377871343783818236804019976565451432838370460643753055756359538656482768435818867830718483057909889877802428514241677287941951309861449823373340168369365729061781713432960991779343123406726396498883266565489869320100363839696746233777543402486202764120596728692592291253661375179528328240975873134717304339436414319339381172495126295291926966426299276096105664755903532311678169861175361894876705210249376204687895600385493476764145880833791155537924307749618248741593688436384539811874231052936376919408805789431242076372565980064851255640922919749091122164086138706942087111066279795600758306263575042464715791458431550083051581025480675533647663144170087713396114492923039921141026719235366970112548908190102993791211260806866427446567128103398895369469328724960220164911300812199340348810789269363189910337283655482855310604132541368126444624156373901777465764266481987907517922608495589792654422128388876934564473248282239237574899029040961130279692307059936728048098407584758250458988568194365474012839770082363746475104058928242229091772354173650862135073138310751448486681332356635602938518388279226410935362490201245028239743111950375042941882898166988423734474466075880347302867637859811440582006089384589673141488213424381348408826511437417611085944405725972299918020209106472840635654279024214274049177527582895218819491689832106047543284518630817280921924328267282764469748296007605421068275935328156379510366988253340840966646713594435862588586120850704271091902342533290665190156572634295802739558430084524791130352108822093442303687562158052856278901012769684653501424091691294510007458592475789396873871926564528823553700783279240459940190915836690833322269518374389419135049505069542888193031161207020710357526875007066621313999979537321431350504546096510881110030402592429492341241462587958759561529836596200041483875364740364791728758588663737258890969759123031673258282026307159580778098296650907822609265346039394802895311739129920154959971829256347649618298819478009882143341517470285969409437893621393228784463476765831988104385013306410510971144995476414430470284432521849679711304783163023963993206672741745011259871931514994317314150078583776956020976107737102987955658976732661166856020163553645358068602742597594394751177818998588022559568743136100015508016448648134038231431223187354301560236465297726125882347359925963456313562680445401756131601647152415773637153478457655794156806244621401622450692796489608269548500258882078748413700884254523695735262882066935935242129922532057854256918143279134821000861066959953956137752983201292946990561674796187241505347965183821007069703944689690991129610591002168594197331358598861993711780829326257060532223758025429747906160819483418873338175962487427380235275034362726795639658319883836026576068481987906738884420625932159792326618948663638241354269208524631768337129242780107309935521901464232537088524995507864765582397383584084895098628960801412841264433027838367441211298758676761172735964577692762387558772516959752377511990913114966828424406816141800992543986369028518762226421720539204132427660240121005579319549167663961137393071367108453783889628155309092809823297716016958444313149268154915706104247151698735679365332819362558918415452432810116126100824043489023227070142603053878430724019592450336001364208527820104960976636161241048504061498476041553943291799062885007540151701271538247973730370067151630169887786322008361718226510407137103003575114710734719731373851694023538895090784161947574819974085850125703839404669874198557411940170334013473996162404012647466352297374477545798170252465588462481259856096210984402731299309064497545568002559327664476824376626161508063106637535706791141512430444454947186271635447939885493662424787096011973822162721823756704446597504457985349464297359300283428187803558006208510519166184907600056199966549280590065101889634541409633241512653055576427919781996746857027055080316099705636735683797506100584962420216454320174478126175912924196780896350764589746950086591758938477217410772009887545203535437607879928393481042777770787964519350289702906791509325001031941463042924505328834809948914372314920513411907141647805827930594080297859368924626091497959231140388546140977127659699829583964234629413383618166645198349717971480459066327514098502982401450154164420113942219592766861791350630859253693238545794267971589781917372399279380977002350363363989754935021956283656997526197860470897431967048844342503993833867635083884061341739238078847338463143580287816873475908488924436113641639299765453138715426640325975657563695678417286747751367689787988529713739921672282454332394867860482781154172364617748777254536363353639544528990705527301714210867043007126057711235998393870915994998591867006344887726169823487301195990892254420247874773070570872774686624277933380211992710006354294416669125223828770928871338788295194501690651535164818544457772021009807999765642020199091455183397245720678206850851367467131487054507611117651765086617721540700165710695430204940174427064678233639833706659079929428284814388741731867520813922798060047487478873299376160474100900042515183822240638348010253556580847161100605634119357979076503308940701322155626090288566587384400567764468312108322709126065683252497377470310264778316369298585141549847304852753351951341668120173657611642805197536867924752592530684856585872821752029963703654951833046208549850132988258003100617283094871926634570318452470668672414097443634843691030022823001990566942518227646686516052195641748693036403387439165698217155005216625997683601308252927335983668211539953425873550215591432856189309019681428762891706008564725595372115016601180332575765947470038192614624678743082498809486960245690209243199072118150019895251175018610202605156912872878961153774897170623633477100453550775824672855385226201809636078381279994242914943836678023795608533960634218727568094825887519780374628712330496411360741443183789121540739455565858281602093438940610029486159394654216728489040517219200894120656234709561046886852750364052777062046612297596127836168984885135168609809869281047883738627113240337381725592284271474632621073319041861195037198577881501427201538725003722859703131384380232864050303918857579857757000731341681940511691413606085565385077973495134396733102279924056386860980964843174803462309690851892667613556183996808254853049061093599464798135557142364509061383216274401575995421141190253720806550668674637581826938179456665094949666291732955604109038495006456325842350345951230701072990353383505996215573410421374125029724156816274381014779045001456948772175039580720589464867598834439565178593132088205569735473760865751759155431229581933323772844659184113109969497340476220254574807329383901799967741987608007607226040493159153815095487045899701961093489021814979221738102371917427865780315356614061202728921067667400682792624547609251811713060276871529364348869417932395419388948012631730762371676843657393809330214916771602664456686159168897110088380395933476914844168004152051049732824891223779163993159739807555167741827641861929355451246763412279092411542689928609674453254012548929600046094724541806075783874821778975744146073426267906730194335987154797885430924841249953653001517617778930768370557348295407408294463573758545071034153562081326491938674795918266297358089908588404966679576758287399943882382763348139245421211849596916701742119461563664194891566514179039419982211502781068864095712386893632718355794864906908267434545071264281028855788589898326272844848268392074348108485030175812148661896840725458368865225511744108277475261525359515608384593250590999525091018845411830458670921321739730088646726221946981960922418382464936531630168407064275289418719266082915913397909733690039857322792858469808361028381921692657298159211167083215582303143288675955606916585499936587791489519382998081681002531409777964186961486372621022894223197935501657169616330992679058391917903832033609782891095075849901696203079690757504885269077025977622952002691048083598212829242494071678931125996767189827384537875351245187846972985748191734026903450003891472547055481345527841875279566471094508482362932575476660501242098742973615821310409598649640689025464414462960036443283535609418379829956724054031343010270251429970487632643279330374690033540020106866267627197077938262703675263761134689120648908467001551745696048757534061605910759338021191343347889967033318502120984610525149866770912866430685612289107106630807076428957604238100537005448812808057664657792083639335910775773724339116776168342793006242262990917010289725786301031819083604749534567177323193968635235405420129303090688740139531612180028780089080701785893874699987560850109420314587060553687339743099599650708275387200329356135201590714189731388859819439721207668239956966702177271891500967736988247661714025196760607116579034437790758397745980708278937291991842371427290416334423807973535047935737127093971454625435745163350042246713332383319976269859586143115371351091971249260544820007584779265702465808799244556853822985693774292273118729486872295077372652809159328452630950444472909978931045119233738474446205517520171122054729375606319476310739293922971121860649725311819252851546573647455116776552040919442074154245265184313780383508566862179575424020891159644196408753524893170429016630229509560546482764287122517086038152838140974575013520828092728887665748160684780484708552492413822234995353604163671346674281029209925583099896163451141933959264282663359888383597484015840551699461260412977005465388585728055398294092317325094250108467421128490220468553560539960903631308602403651676485797613017094441666588027466652519840660935213368163626372764344512538829193815831907074326975053853321873192364590447823407593221739144421413531708367258287241751828359069381975352142562593295966236054347918834292888373737951772238513076288399725210294566414501062959558297427457102106513497042213587649424949833322762212728978451442799804867606235303254510152122640126571622926755297036643182184947647422878180191790555783221638821637610533546422135499177997148802386543281414426870723034199245655184113307406182771551883986136175811729465846716426711874434336712856702904073696329365289638836947949071601329035935934147545790141431917784858915677134464563549369398388897461564784390251008895426870370350373055325456412159527462450307716666562135342777974476413790147920745989989188300531332560955781141255761814244518833008951936740343384877408898668635014760382026947036497330505829502075470443622194141343671731587769901518902067335865753346416929972138284551480934998192804910573050157450993268134962258792769905216697353200002851180689205806901972099742095495708053499718576672633096912981131589654569798764729129317250101206454147172919595010877678244450100978043728000276258592911863272144355741168640239498716930517682362345118136704803658396039707034215057932906454006603026154150876862170112273806872002076515784057583744711574128789756451983132982707995563704543911486243193689287248087077008056503268357596164522717336884548241771086123901580180057259659077665849897858156737207871769400203629911158239380743417540511489127032869134601380294754085222200552656600996261689407028498757009123254704437541001696222181642919889076826210188885801452977502365988483219600310808393007006354636473077631567730255820823373309193618244467252059681779666370070224691161475542684501563864910772817577782804473711899046090431302279927839516069506875926803071774485575561191330492728328616210660081098533799997839017400993463624156686015829959082737530093810266591033234064650412947846948368716725115342076160020289570473709557354367392528577867438068892908897010361548219420866584123908261824575058257309835110468457926735670226708970366574872489875926727658690030434821459133121203738028725847620634218964819183735821450715416464315267001479159316686306092245058960113723927609876522620213866551240767890319303292043072699761284170393986694879716548115801035594595878266011878804799258511986694028288777548725367984551951057212315426018108921022925591197081789460485278218873366039641629681957326410924112691507595738152426184435270902671743540217832990563269330370057418030286863479793929538393295240994803493629647300152090244443549543043736842094845991163070813640549657183507736784166847112332737770608272633093824485904093893988285860276988219199849792646379857758346700730108000743621681616118321544085574127584589728674340853575895762236263074286768470820400412801489751653651566456074021840339885879731718985844311785222298601209778455777441006835180581011455379201212073013093242229856871174216436223701781092583548269687722500261530379638935593880692801932029362581926880500460660909654943785027033116072078832240640264312650988195168907688868874630518104196501864146138401674656855716881410370592337186893623970064800505072675028376425067132855494489900323019325762987298114077939490183790634522026305864786135756076809953081929695680460821980004009146377018574442763510002725716881679103218372963603235413869890233388066338851573371997223327273666309425322788050822962734667420195123002339020373727807498595927311087252551634978902567814501897182340122462128972807735093415660225978884170318922337797535419328937293342000496261420957825898541354598723236663332499989296137422009346085474003307558217117123713439848505953312917449383719169887011010601101859175659594347906323614902392116754095950589585591913296202771352458143026039079928065930932847281080596397323298593235082608450956562453803118056189098760490055827341969406949141137312299045556470444281836284882434484165981981790570268735951697951881078323498905227290923551839331350956724010034634293825951753129756972744987745685959897220547773822366361203899679500294899350747941315591821062929964911851549867965187539526811316150720449236503682311796743153283994463696170961418392335917804883403059338606875305964673919689057776654559248605551466245125345415956769150772893232167928143763868454706252821028128666085375236257845357612326972862252171230490660254569905740671966398042848126728152176949832777750738869910563285013840492232601319858250129616032719080420771555974782017371950847120194062909968696707335292913326052437748639264137763221674801700030740355303153056085078649589291941248811668514971456411276795979694786923374611839774657627214095604062886300360887084703181099478852622768823352539115319989268866153297565120593126909816764283216869436523901145623205914373230557423036497512946031491008596982664632552399383670068220468985920366642925853208012832200063638294012450037014275330215823016994620846129929894640465296353894303356746291917863346638401960442431367490086525197311067838053506083601865726921273120288395769165663712198159010905228467996796813274957098042751314697179237444495950816048024917703268401058780121665739355992215256835227540843453365435500313035870234020044238813382443556948516135497035075173906249023120869434330841783657735742681185834610702915469446422995794340781086508708650675763614062405652239971919070303252280838477382155321349795922091175986104716263303388163389816182195665262313936074857236013967860274385531578365544155827749901189953040348335082471359637505476918681506639697026613852004105486698012562037608185247311391915883095010953292973217916840140664629915633119314991139026843246797196500926499084566442493543839858142367756917984256980208064798420118679755347449563952106812498431209352508364555135393174049805806124957998869518081007343128022974286439057704424216717892503564227813273741802609098703996918280208392704617780999657939000023327468949290652700196320571650479057804740202095669076585871935721955212259456581864398160743736916838304775050100261627679476163048615120315348257562579476812547832628115084879378384600189289718638250844069314190714512934903084427979109018783229927859369997361603831426816637768084813992253256490588562263052190272234243230642442852360060996707780940571855220582632396837454836229150861925337471223377565828537508971871186566930882942254443198291481625581840096117317204218255701874690210591508124582588816687239742526767165681909054388297850097983186578871681061793558705209159489045690776593510324896215771662290632101891305328631317287040630518235197490385076441942647523507081150872111153832376610185999823157263915158931250402708121310697803689825793748488045198284405121777342422771338697198578182082885291503245047538917708571556528770417392789378806654099168514533265009814411456624216102452077437256561933258052810737275851417277429636862595608737416091454169457003819823853891531229014450847092156948642592152931736535412620465825417273923633787637899777190505065046977423243911811641713976979254492925128661325822519094678799751043881026672149571772966269132148648712905143526743286958361210703820728127909787394620066694836793412904555429564286193850982242961960419051787203623633579261714008166075186096211083594864804775011828649937968364492963589024993554056335248430894320587663637461877492993933813964504498443178768107787635040205061444079899178058371767750385353344957972837769396661830572618341021872188601541688614231629193587970078811757526406195404312338384961644516280875691713641368575286397678120486705318337041185397273727747855122590412835127654886615451188815529322037060955134223196057814028520795018800689695024710559778849480377972670527013216402629605278992113740824129404203097806831662634230440378123402494721253345883860676762648193780631562370720321786950602901862895924432451406309569869748543533115957885607296362347653983198818094519709196481590774161692461980122939968725448366415358098023134233648453771644209108781551045880633065987170215402240805981672534660380159356167292910319309281623015603090496484768215035215506258244361987835979219997824323862074033663545087800386914134108768075741585623619259138026211892000935631059972244997099424955266830553004462460350450720165318983517433383881982754460563258378300191997065987861053081001565087100187856785689952140328587650145258544159399461960531059210566193919392786634389348439306733890823772248196441428734329505906113889027843704254187344269019265095545161578181333056388493596683911278051998915237446499319919141682641510212400826747325636516826506051296127259524535775068639340828291694478768876052639999287897715930437658143744614373350821494668427251740110627655409559231070867130443449294355266629273086852781413090103346658555684333984798919078010038167573398320737562097175517203046013799754767396724981164260867794563215464388640308707114501969718803913123582670723008199817932482420546058925819717820257184389750561284349504753982190003403644260506359410162505476090325564053682722477868897653184905087687325763534595528169527527122838187794442925489482720453841621384344190543033757099929556376812420771530924589526133093126802371013192244269143199892828943778112166772073951464098240374259730730558553228568731142861323402342872222937282839118396450323201533955053779688269804920604890721480093377359406441263466447091600745087806473122658157649099737956425154641634378344635832893625856986633716286074410976978739364691790384798543741001280362347360942461366672920578291402234998069728341909152879500168777150564550274269327320209938719067429774310735994926484917160625333247387584729521287005534985372212061658752586972097241081973804752795257565846318919435406445404344448861857695872960990289260517557554717661368066068103862293822293546622765625070236618436280881773718375325425610304079974478200342348120835269060832116865664709846533747816044811466094126455170834473846704081139002417095324400953154749050693420719055673778498181306640686176989596220268012713561928561680438765408025980859781173311631664339124675990784903874158298433532632183736696168956552007066614817944491180458567675479488051174927703967307075189153281530488116296048714391854935830574309424734552827685964209910171129257055183006094558083226866412635714626571415500429897875557958046855240782125087217719242425375676480787045519079561206635076500553253275341446688493529179775884150699431816552542123635047171072904447558541423351618453557495259555592423540967757978085511701754883656547472511006793508927863381039681725706329751850532861690234717743473833739347879403391881723610659411370590577060372333176047273720544796057614757746502664243012386743134486137813910144652335616561716377347821415182674997381513463846943861853891357328696158521987346959116909805464081616362980890878562857537693189768519677731166515743141239826096485920549659659441954007212222975919509016056912064317170888506982131822799010704221040532793254488066186100758705423987724550933230160372358213441217905612087292361011684217978810159507386067551628064884136499499140477005723731891283018653743548148656932978629265961986318235564110214432060090887091482494087876248677325270007632872116783510826285982968038385979177879139825276848356416227672257144061806847798698231335708475608379875440475956206437626943280094928353520353555623279569760871964361903701270268191550817976512933947881158080978255004408141025836241937610618087483817404089374094949263310814686034033508626857397475154343848472642314426922290903719688106901281782923172242852292487665138000531855068148184273054350021583544013044766355529363000558628946008214280638198914568426739667508598835825692725294149267290021079750892671951707315444394810408507094539776595219233017266020939912911846880100115639286895938748955752819758707224222805478155537622037415165728809995719260315928352147461793039809709846211835906229926942936963547472872140354917238675314154929453552486884396440302592091022920200910786922353688667837118841145788733183101436919201154612449156787319384897476739344516145305712637726250719248355392305914468653758454115746147824117740172086138064756872025248482585167480792029666210194896540657131961436020561190627117753597569819728338366170910504392365017704082095523229612950326128619253326130372998449613487198160918059866543807281545335503659392471710685267141513702465265635547984208275839715722608043778401022496071148895099917740041190846946439899593832578468874477704288517009293581151798461298677874914182023257711450074557770659741862768056764292473203981828898840207836688259843875323389811209138463351537868118130299923698077952576757733428144364653393329692647156542878707473207158645893724955048983513727133798562721887815912635566299791795219349283018748881353877471780340678892101781155821492851667219313785866951418206140058230694279116774439767047599077914584644285376867417902386330217481098637797385727093943442304439154599370323438029785456654274464626786054273988349918665767179622346345792612884926335043918499754065044133382157539668173840602057954921583196054351880545438556513086706893206480461161847892257745218628172413162217173314131592508333503735138728072798311401296186127377354862848923631511031168642654992236227948720342157675691768421872673500609548625917716607525985890758196664377727389123867367366685699739032090208786068998184866857979464645713432295456846142381818326209732396301572654867329774450416517214310582893157541947255655686135358770636054970802831399578995768557224969339799433145915810922706989705903375974053678727767610545505051983819386010027679978773023179569125820844265835581504793062964144944794408935874467972459709818902486385244947870763395444847627764541422307142018814324114448539468659367512562393307214431813315494411588563403264888032020407282148214089844807589819562206321009295428670498164739975349987699895135278272618333538354140813602342983389705734745022615921765399725251481720448727553050531112668675700495379600282461008877850962449331421343522361352543726364256196560671019056161029260131474705855795696223927589932806647375689469108834081465790679607997112676660361369137851739441657498927115576840013589167821434250754921205463520181915537710931497387357984720898392659839502922050598530944826997087209105689870900533308521310437522207529632126461545382973970148519110673085961585060845541549355900036413285418083561923921216727336668878019962766739680119922467058451215439106659085851530426612932073503752321179921279241690046765767450121763874156851673155014795886596564947711252673598033282887122658202968692127358873612462294954537452089012392825436941593972730445589829596667108120134086328723385979908726895594956675286830981006219670335290667461707823453274140757742905926790679986472157478052817845875053294475986717618718523258325836088620560220358230908411090314808104576404270645893726634301031522495534376256691823659024029130101263113019831163980750934113546119450276367493371290816173977340226217522534416037339590517873296549191193183355234596771677266014175265112926271138601309821384482932677190403710065295132767811264077867167788042882440354583163533220176944841162663256028570493078283696515668242372167085805954532893207442532868341524042038098295641506018985646643035759809284035817542744197903042147529316468665304831393966903253950447119839961059796564107185841550783577693308801637902106425582858029716828766368905664321997453788024870292899268801594232697904778725627588269563991106953199198538515233268963490169499921209252792675570657582950642873732172730544014793813807395391418105506952954877946193683864495377102364469154430269428095003381511131184613334283689492354921517275041766755258137560279402060979708167415599177930763265295360018480934182998144900059329501529681586966369801258091196177873777136044191732148929298716033523933614792533167380163294089511393722591600427844889167867355778742010254065318333413563363499051155654902113991224880607982667170993295005471025363619509401687604611124122749746572465016092426531594040369461751311313758297657454331416565340202459890733955586052353116909648032992057771771017830186867469744206674312804981628159471326955957410919489528861175344162873506431043886999734052635575575890092007758107674348888929290977531746638479936648942636532453491834703764837252390340282475403609456399338067045001055260763681895919104234829081400441790673410882903038795122033566210816461112412630311888637616876316352292846537200401614800062710794922375226162183712975605348669843245583790814145094013050410772051086456085018122074025542720135215990232221697472025237085687366272712402290016599103271448493533544464453275142413240259127154647599462027734108516901517941749748045640736278675172710087509890293894294821544605831798918168709984936112092697436811821943005409944969991116261710788991605543892438726034305096555993063003742564206888798837227265907394068194428945451162333490874683909888359260339436360057384089543913735083268576349566331828219769895840001320930416034546057834363939334574443527352850358525007820451381316582147444777884992677484253582998573878172147609309113743319445156930880922726041535922358517524903380402307040716944938871889380957000404584525364424228070250471047814455798703679080689651906980460013982382453768956384595656112657695705270723469031414296542028052856673983377017563751377370737406860504447615334165885086867802255227057858770698898719196862987433965246406613076116808106029696852585685232661738098781343105094124406867060787620436327305700095625361925394693544982055940575303433513965863235181952452732554317201120365295569268634230902527184909522038623689005722454626595060670686310831200416763878274768476802002615224465613994914028123810722390650116025274928580980970209684956921494125992500047138046618910191618874590691091721778508151306166566071617697984460407752774446761976655777991492524322137812649415104111853995656348850305031977186299186115035948600775873825702216924562398614721698863097155478750312298392603874371384524402931281762897416277024762722646753171080864471983954557079715035941704977760112761968238752688712430145976733896668366256253793359408953724757183272959290249439782711572919909673899015587087306951752963307842571056314945883679029722285794919799502879213694652705105238083175024770282438356312231272015691930338658955939115194200829330579959674749976503873866969377109774793427075021542098865775575231168093741948009559867900091523808986736410241679933986274729990776718287739702351778427534736020980734732005679444006166433817772531261045670423319720014363937893062304519624017574344629847295520576496047097360149514744657464206799922849199680427233214426894655322970257549059305721911226879877731412829940301501509442177080733073007144744733809317940210188459683924837634841371676804415957696349948495087198728710230239947646466726680814140811068716830833385466075671634052750630522107862266799370550638457628845193453907877990800947920331207562348264967374044282479336242655581860050129840811892223121681806845142039567495184673261529839404519346268493939399193391738828447419815035536860704490119001940287622774686127804302740243558283421893866715335653411900597225305703775487204595244642371369088795368934334504198756801825078829424132851380490614714910990630900670036339055134748562428519723768433927104808712250422207582888862631375009504558813986999070809511003193819064757059773491095991497557114796424346828936173728571549202065633018031088285875772802744408015457944714215518544731351099786789921048351016160426260273092159583303917663475476257224738322448704426490613253589120481436774678778217012174434510256902443567078994801398111592814632522272689731062669947600428743443162116003421725732901376103316483042904877910775644064931298182511105336444378429939503325234066589510965218589660423141578840423763842799493539275095964124427952408363758682625163313989859784538586693640971074045478151519219003175441644233785571478382217562407480085305925739855336322990639892887811833558423806041897808090099330449493284100885474228820748368285241836051618050180111831205858248930758423533054750157967172806577655342461334678952925878910474116844122417447229814048442917002025751449652848873379552850810019987589682949982222036040581683944867604110288281107408279348129190311306300210781349407993248147941159509258361396887954073484329640859823410615032063332380260366088153776838146889069936142003479541466336127583534194808004732192172266903433061151434029313827436910514898647163774165074844598537276314594405702924708563989721265776254561823841587693402581157504242670658130112663427507324928564493553583531962545490069087868443771091955042947981398927712649235154454458948006623591461900660408416059088957844189246167959511175429818637307667830104766393354710504803719006491933488239002136573540559241964893985265604161299433893980162089183023432879537589714923852237125309061876618916877214466992045305434044057055217244290016298181231551232077369637258933656246024568707681815029429306505775103087484187561398720987118502827101244452774483784346617318654642550019990348795270397564221002082546595003725359781356742738561067960707277141833775442711426113380267918183644136050062221671071700889800046012480773314797775618112077991069361425328289584825363952720952599786711878342147210204201985740113462174580192515917608069294375105193161136106685372554676292220135146896861860160464709095981485751041899557775778509894815453641251670193197735612384073680471010853131270785013152693623190182579575382509724601226422692747276612388871993303538027237029492180391837902891094515716114622305286750089692455125323532717389907624761619910496130717617338170937798321765922215876278661086072564596816292808574938235294002017182082138912794690740296783393902249371895207816236380189856417686794183044394782905028529692796119204592935501045422400912912801828267502965550891685784663279572232865336148650483563596182627206784042184256804178603691091540229330827804873844734196118567747344468500451673910632653752314768571414576769553521627471190951354346300529755033002275688248749431146433897430837237475147547989725169601603594806631783486645343403177313568962684584846616865505530738652851871345496921040760273789414415310376776569505615294839227001882133410860224225558667904725823878854894723125906324131079400067890070375084493216380310835806491820509955075446956682237411704999288177942348310827940847484852398180356460264947306054483324538087991347953443667135433751979521914803200244138812281858014176132419936174820101379310725223304436428146952961463732383411080380416330502690222702222479535982437015806912340710315293395662528470804804252157562974267008064214476886721029270684507742657708489566138017180831726378057690879954995423689135470061841508449982121835580301156480086069415869837165700305878615897118609444607366042963271443098822427523662905753230861128307816557806787655473380332812757648341192996331267111352636179626910061368934061027276790701162918889555341801071235989273993488032940083581230625905953323301958276238506201872803799543595806671324743831527772571361176173486055557360750806798803044780507656264364177286238391327486861333840460914601518138162502812474299953954244865674689221018027314430110355452823554715442876974628358409186083841757955041143858881959778758728404693128039954333372532111207432529802143181916698381073950348857259197691166769347820366777069127328994665644979487813556580888655119562161788355031300139702978418679566165640245323490444660172034857205432489168466010616140671862660872464369365518301786835600933716727298403099177607941333677155008281973631387703087553341063174726057002250747265953334419745521198581558828414556356289280314347860723580141981798335956113473904389915776474651250700900617001844762475280850378433829575941545638642931159854186395467745809436283801101552825104202995408399666252163210071704842435077558031495976063324805853603786242040057404566798133446218714546531050199769375396946779018692458862998051536029420312247551859487279592953269661975006707639431679253736519604777507106614884554721757742867561472015665865436776768404182607487587020214926848637752084758634434779438463833521376290225906014633695508201032241489898767991703191053017230664584948110494405215074903398706929473740296565628649908620171550146912270119538785029906472194804997292536606173036443078312709536771133349574430610038943954485617861119427100366764436626631835164982259616248524097743373821849827204094738201997080154743502223347537681305766055291028249801165500542209806007446743557820260953160423589972881314825658239613059697078063409886804159752776646656719290159245057069312638886786202952356934022015620055814135695970342757250944053989855026450401240127444377927531378385835931143659942306771063788306439939610847748531553590855955186576134561848970416984143712969724274241749319824890078871004954813906023103042872275186163964059685695028910522744442601806596057607116436593415244601287021489061367015834420751783182163809410175949971219203074785898474551165384517365425039236742043940997467562951735911181647799933750259863817565772278780814966675505469655882811385686971795118932535921845562656680859941038527499978480679064358067436377176780524070777341747586643165758411166293336463939781581595458481579589192454939237761135501936726609387516807924394109882425011150789420747789000983975583998742425970332881852182304626533735228834027073911036772253256226441037872343009781481925064778607078991559365356473911381995117890604869259269099370445211586206133963560687118206695113977799200353684830669177464923140230961024741756890730046720058443027982599902317221520782974791852430334874243182863176891004767622869139188979170203786885871488254484258619094550229911777734486153501894820946609784424607772033744233401894162907057249569284311415793808513785449686287987252462303622021717701235798502920082321997832100402225365040397325842426631814248642766439925540530019283240526630934657396284829785813687771595013895479371511591196398257403746625412088412706259684951144695682849983317434302384954007503882155695012547366966865677160679618529406765926428556026479408387053852142625400621327033544866155788986429275763121492549178808380392787712773302879447376552175781202623699061201477152289104633931203897907124775125228275019813383176613892165931829970761579167415857216092570368454843721642495431916779722422024576052086386109398310497064002016899327298741086405369043170151336781663530037115494617354111626317469444222308138037695136761309221225871272306438790193963885323959935047678369393318942933078643920956578327772394460789401772861760615493088005146962982363104249524433531022763919056559592502072390082832230394177705126159111846922117592353885362766832773164398934376744704139850059931385742527177841897229151260254839894473925850297811559089334663048157838293035032727335949507350218266897864539073872155827159702060804071091706095424073516014407655739449159200668392977060192260915730989810728051104011272179358640066023075069284431506928261024238736924799411240417575406543056091392716517301853685944923655673444493512147858357465038747475488858553139286630035513628763857852240047497964831080621257398649305105381517459684566343429277912368660367922468115775068975094257388520960576608918651632091502266798518876181718797044235381953750383875590665398848010712427631829154222465549528830597709502920256950994194775893057219236870837499760536478083553624843401755721544318360663405606709026569722738042257118120624968200306362106322516590011537008656174032139555212377078242684227715252246579336946953921814124133246187218615368084548969228880732118959579762362904433319413285568602656742981915528860053794750872058808407933319390897258256966346332787861650824194492220942617388636642358408870455240642580955423557014437676319945597618191236534898394768759529506590250619647898971950572202165721147851326218777056463797059187802463700981205721850502485224019744158350473372804490864678368015887082183539904836875579696777622553779892828647543798436264884377778198605877568828821530794102059527659867272006635307148544129110469341354460345602135899073318200450004216587640266171062789435665081903234841632552597863001056796515411102905312418861763193016245449275058203401159546974809433126335237977811538427831291946906520390478357309641924179708847116368905549371895861063682688957936232176739536788156653715866004537894739317593707962541408988196063767700290436152876958621038888080831712148547106779424547419348968123516343302354377460610923848375408022202924260886681137253751492202942431561844134912970485571548464881265845059169504556002224175130588905707720628760081168304194512019778609916304370217926440846417722256770647891301249583505255291778730985844903749848360608073059990892630586547913339093389356060336538087283923398052837197647949241683537166509423065498546562971449597819014668222239001694757369320293739863796002599573237153149086253043990338327495313956661834570138764045296108141139781272305596047585571623183224975787869341372720217941556612006461176376438047485741657556147370364791564621404178678079799244908560367620694655009942095935080958126804882940749024970224691351977641605633975565727807046356257107953897546460824263222725524481171976147637742758809557160227118952387242096372644369800892973135046812530346373101565321409171637397278819253150353206864467623369724268446649665158458676432177387425537757841866623218329925503601513983432093997809969206913272138692348458558684548082057472400801717022802548289500678064322522529383062472503739995134686070028762233763619025145059744529872898210275362152507693236957353794908293830181580836103225389205080503433290860331479454117486174431618447022256567176901208866484571415155821702883071311377770873497303101467510928931691671408186258431777772768162639773454360902061338564474302987341241811397996972933709802018992018306374310808057283727845553637558308958970944101861968040281950766010847074100227378976439976420265881488918221347395717594192451995184811569809943801915361905966519573553532546368316804376393111528307646920738892523056903868331158568219554509241982908388812122678098256602294543356332975631743556819339416354399704030807979571742948206793697203438475570199128649052215653371603610441371267299854087965142823145037505276982618132992883549851203119589897281203021602321033197689994727458983973532769042904986207074147226417287126179632729344590748589495698221690233679087947858875598263756310441397520767890336070299774497667821678553621288832476112781028097599968466275850068630575991280425531385368369317270424910824670706716659089451901309194664550229281252496245748232954023187854881554143755124632820690464407336070664477493061582158291102574346428930430935012087691376174496533128132025132148509596548231500018307744152697108696331900588105453469486841418764690074146765064700378698868251772690228030829151646240556250547638629841295868038808301113129152489041726605151312955133840970586684822628843685817869044616843299644530429848065218305313769816652961163243012151580348894760719116743426643394935570658367283803448301681788534515633843127361465975816546828338410856461635705291424654474953653716718132592281940877544372230540079162425400227692867267324353172783355828854510270745103705826555674232326275115894226245261853321123057064751468271378364645584586138592351344076924637187855091164962891386812559789178017596207283859305945516467532533035228905869694626266562413824603400537896297064494841622085857382670403971350671673275486833285819122630542703174224528241294218752310946564908115489780795975457116345959977674961464252355979036047218751885347108496174287640569474714126975103320956100414217015245428838590361103041550867355630298323405567239850472735605250527748775201889057463566184030444856399032510303851640700998353957941453472731338348584713914726415156216325362122079264514357565767055127098217062637487681138724727018611580393335039727888725282978217244659534390826767795836726077259399369107728544209953273209016429891882715029138200030810870349764381344103349216029297150508042106491701124962697988474585493642053751611968070594971582198353692182516782250539468441709941913076067105943366944939226384094582285087419481685935686188935304415456557610220878399464289185506890465655867239986090089990538192325466380732266579401610361480360870339495256794222915273069314354638029561335108331761718986531021554492712639421262157322067514166600557945433969779048939568628795485553000780865138108806820735295109115786198165648337907480782682961991354047408333759111701751354902421377619098278575903661337735417687359328256402253062202805143989015589458893146897724188370862099376902640087494321582466653046634914171828060494300327487257695638502506527974901907876583240651980483351631898044289007264262147468785802378523781070245869230081278775209610668771769438254766740117140210740802398108950124473736492881433171182365309251967321113168980083995583363111949770774118924325328001627475441372271556979136972151680463515494929661873893114963143572219854640020274770313048364630407562027641547167961164650994570071554580384289023923595306016359909271433442915130296246678814262940989381844162884999493533823432680068549303344058544746034557376181411809125239981635296254718775925535981173696718011410232332092255164217478006046115798371855756768660958321506886521383908092105780356615470721366083871282291220366639412819695776314188350617749691883935454245154123218781434445516272946196561531400764101809466474917482165486880307177130384496379891228528527095748627359995063742562977217569451950765083169590456351583544993511957988783319366696997580690322365201137253885680908840713183665656444557604097361724505832482629189150297333700025176123848170956363909563262512757428638254162485702930472869405598128214689838753299467648061553831911967524774486306643983284086938906857779529719286681053689373932266590103846348294692337041579660678121724986497288358775536376639146745665577426616140490639921920069035562780793205221022430639799453882781772832738429399552772783259301480082440409819261716515349655950721759686372062026078803628154412897765111183966290249582615344601576293846368484328477690046161852981290418455016524302652821870762552494646269157140728543569051658242283619147356994453989506642333833924249909440291585105158277248502330233390454867951879198652814070819952601794859057646252173723867703468160089898079431920054988716111825837094404729044089415135152492861006679049542588811255021291603912905461811877799137519768082752550504385313014480806143698784703862810694100488266071441370066460120603401806083582944284602566727945755140903297335581882334022342375157375747781178287550942620593383013041466942465482611433049114174092442658380036272102411042210142570371248862489567806421707073727155943412750732326745461021535443206367173040434117003264177690183907569390045386387959322719295659425125362973325081410057369543711939664288449170142703801778962271618750257563423325424645560339294439544286183774348384086326510999155403456750192668545902551684936624434156840519609432859496792831047391367635463679114914026962826843111983937622252621417130086222462456993995625052159472131884105417315281050528599046219206678638267859814068455280462927411957477859919281074235347244625959889614200520316898820903051445251551727897334774258990385937345073903654258484873924932111247719425505478041317588717431195088003113944152707524009933989501620845171968936012111415317868745699989283578245745336089208018302805271648041394142442424446285855949476073415010677559771352825911719465057685738015711498502231723799336019077153159578103590754013585104337188379327630094533816447579994756891755673047560768533439653773866978811936369810017196311493657097539929335790432251895662152850594708579047030563471831906393457079145357571767347487028718376283464354860213710357335405440738084928289093111071083652207493896649651549103386500840299126837849771773238643385172448231104531714198930978861530267417880207554839042991640514256557274791033295760599182541058756872663209780146671434641153687501268210589879700972720833705261269715258399576541254074261287390314303090886172882504555782736419304292903976439255643707060040481638380461882766174970605188648169830119374041879879365443410870249590117591752425178189526130029904491680292303943969041489276797209672166775465626623971279855964289829119673666617156864420729746504691479927497427285606096115177467336608253641825039059888471172679093582737457873507946809283852279124468761434344481663152416967933651420956809953000587208820339398183948515605531670282659640030624689544158550430973985918264219050451804956823113274020640870336441214147134774083846036714328089939291085431409265999434145839538619073657429609706107934503665587980722670362549079099172758737175697225021636204136464274675094563647813490760376008380662567510169490685541703734069810128175210902428928217766158054161599544935998302801805632511613772903831527431845468019712093153304620458751094823864169515945989372900042151367965287876955270475546486501741553860198047596206009545876304786659991522276677447431443210038970553075373261214082883895199410996935794098364407422872245594504602373319544173408530942645168869092235019972886838995505849278437029259716795572080105766750243048863132666190723491572491423157316856018187508734831877558496344280819548330013781059595170902770789494775732355786227043564062533171113883525354983172790467671450542574713990094780619819139329097534717307871607271944469080647064002578652343807015649442199959849638935169283952421466529267290974780424535968641334545151407964787504636089696033347442829631411548541438718973847879817694500415358249595418910513067903852912416245245582619023819922063147753198578433408131859611842051257184479057817397050783332035894491007379643478359363029646886718765532890343156651334757291150786384278128548225821679739252777004263810963264611978615857824854528055591293931384683757296470651113202255341499982026375564878181976082093011780384905981866465263136688427219937764254872994324397262062010799951489292389597385986728402412768933796980965210056819021589392588975068174416788536990406377467436603078535612970597848979810719115963256898912740411492188015794191694950393325125193426269838336681043275592729524219933571677970902095995965571164175598707708814622213180366637630002956378001136925810893433278297473740555596201820230078884766346508132150725373959639282264894149177897641628312607916673750338691624453958105159092924403261176076656255171535614613436855442014170937870409906293477082169670375699518254481025748299767982929671899664604980943645338227361256806836840861988194374144614483824787490023668141700054897836688989427480302335221332322152036518184759950365156506190309650361058510441594969179795630677569069344564712979474160685295283804291535267547745689536407732294997145224059335536902350693441074115613565627527175881220573377814062990340642322126399246103237475059950209606240183308557051323639333549067629047553377950431874849976932370326783711262995992321649257189749456111499315740790826144689122294016950192354719545622282721056492966890859679113016033205471821746209660508302439153325931303132635912283840084268559028829621244702992602579150533786750046144677974057800485225482811307122437878797910043930717324492947359642745860074827185981115487303014818252257513697976764718141727904534672058126482991472558164576190346211536607319611963957989953802191961805672637941223780759508390315392524875878375976277889778530456614948431443862240862768092226062392355357793498460301231823942692946399894951407665586076281746515077205985812377187220585630639505147793514916719384191798530206520855347757958529804307025103364693709492289062528282411554292292808121935426384240078241159981655956664021533787490900541865326314283949963711520506060072684737635049625251257871029588788015622730098763865012872079740451446440756418911947302323388678270497517822558843844264891323914329530572831503058827524590631992773743790136468629603354491691215368980029476423445035469787871678787899968455962183710426357248877805726099967620037954633306918988907373951393954570799266296144271864550013310434824579684643801670625002658931225601673596320903340683208955086450960553392805054118960537180360761330803845315589088436327965787091736446565629213602537069474980108739640708306028551825817629493395903859628283341709505985678845734546881135119376684218679182503264069272348949382352141796919843204917072811226544148239845899548066878933358855560786701486838554006783970563030694638790587010088948585896088710067705230859917864417482119755358506424887758281638664491928069546192755292575235026068166804828546864484593080602061766904328773360550743874803925132556920980083556467238797750529421911518564757948606096573622336038565425945990869799497684715522408128548687966700020114151000688286524547909875563865879565912131913450875999271010284400112305081459552537680895408695148043775623675807930477478727411153170302038396812505552524393001149828181889090014163042808313938790558063953888174401819282924285748811111059926290420769584713735263087859824351854755421962922779029100908731007400707199778187870524504518535114974296214007299971916474723969450934081713558798681579093109787502814650037639019295384564120932179763843890023279498510513299900874720258367764216793302218332161600175832818738653069431998438135381561684833528109997542246344571635019279388055392053202679690600479968414174817485252294140753643839559529799546410169773330654304236734970178092303941820485321566851769214127641755231592893920429988776924069140945596348478800322805831154738357753142668414535240795359281708863706287705932011672831401537590272089616237842238321396856544598969505304861890141629677442646879551339138317924010687595456945193201712329117330612242290725801792175457344158412423271176316476631548558043278115684782730451997970823818669911033056617735232068885212284216611493717401181046163021460631948078223927131579200457772474034090952369230602848380091274992514536375920996070016998746604836209012602558983417138012477386723768354189002198520202991797507764119338614401076477939047630645483418529454892618539975648726692433861779347344166173832657435141375820842769153922614280349062541032335842107235192292772421241967544706979530853216382319337955080744115595444430767593639831940918471875243181681094523449659883547471889092809961383708690356412009156466070866581409644344960940210930288931734268851737897301740073528842523234661843940365950742732967399056472181604002779721298891520973958073340030997458851550013928725255734133209087554214483731637428542941006103211423731707254726586434913484674762255281540012271985711114055835885057120263942458009027955545229049550213859586150403117547141203227449907196351750123563374118250862491435862999200703928470528820126906890596432850223247505004179485837798180011432925387740321896819907029118870969650220617068497121561515084093408819315508650752335333321915470542498322862380045286766662845941908622653820084192236058358687813127645884410354119423481232775399206322075087311622004897283444904461711506341231258253306279214968351808524163640153019126439090090504579291246293169117087031640487879058461922675072901058859033239043604256215759874577842277509621515900319016401244508270982141630797283557023799949572707592647916086096325042327315889938154453865422231428142788913928833486455444225343806215727936486287338835303567250895222006597448814731872334818627254982384158497797841190661282069259896661033054912851425293763548682370901206395830341659688646679550968001823732246480154947163626191805602939700331284143039289008618686249278613629854628106532603403077152443235776825676116113157332374835094080043158081602264841324611047882685946530596773344018285127180014914832600889568222551323294046064858750155016994775486376231890824824486126607449862846932052729148338518459818650043848863973062194252116902445816069777579022616361343606100112665726416996114186053115993348823250915871800094315164307457585386454286977703514669604166763033716745095921318577733564203933237460892642521078648545483383108653085424875492115056294208025828072572800422126958533417149889377643209239374365519609864958331333014239050867431455098716351098238785392595738909552686843164808602406674715952418747619762995584018289408709963330612123936611329989939341266695577345974527670044380078908874211344260594402779709601653602728348443478723717337689902661296858084222728720148459949663694009458395888113519084677097370910109417568093550512619450645944081850084382807761873359579964262875511091100224731165575583849071056982753455735049329925760657385837908130177253806530997386220307435526986891801915592357376782974080975350719665641967687316220738754494578261069482475686554416960745021382871187999736940513266381831922847062441849059565452378054099885594641428097272947413907801482012613422001967310376635835013096368523918274948409638279064621084634880573328857822672519074589384387024381932954760364752277606604770682901540028576711937250813371854399177933900090065849977461203144729519346511326460256953228394146704215591781289052080867413350397989044846263686223537845620233834719380347709649737324772504716231183150677552513669450143009451577454538338656788022414503376884428612920713835432883330515866536057778863607729041568293078347419737020241892563635118162959298668171847399529778154149457395540295187770325260390944509088833333605301799939567752836932511463587052694436272811726704627951852676576628289646960548229649785185137724585939073350440168725812986386016042626252948535344507129211239325611455282163670118238385200334620973086898702049171750216080215055457466791068266795660011614610436251188838062685247749101101223479943088730583870635608235702079298861978672755100833134661272776644949819169630163626798426281702889369987687069556311319214104974553575972004878057960341471084306704987486992372392869517488702849449277456285270435769662973891680627726510111280511369395976311797132020735129102990652769971596851624813859374403342909837519087138217237693400648185584738500278496012304911257072040014498748167943382399864629728763525028889589310608547422047988976950404187698272514234677836218302223774643890835111533770370330095000254445435083539043883443205317933715208403129259183950480633332378338460379282856600701032398163038431487723877945336832922530342458384610302833409803603289811692121161010633668334501245461975722809905500599203307415049533548936602332588019731545875592739714730798619236347183163117436318995170179422677697553132214932243241777337436162459424508039587740948492671989373975330345226271475933009617726471589888479534790132419519215199018161064762589705496177828052671990412295328531523454848982229699078431769197455165630728626715789982326540290079790280859845894505138750124090739964254248942187069661565738978544034079440110534933269384934795506559178287401394270026332074674085019955685300919616164584833289483570526480744220683594370765279432998823614174026718202850334679232573106326139989189854615638946702980997108767030067414763846820011710201084492353493428411801362846335892962264502308446180566983984368899799309098586984620955245914929930608724003505933214282210389430425054207124621380371009054319461801413051537616021853743705640392970465725202576689803700517005143953858619314053834141136389075811238543410427036588529879270958866534594928158852556300481094440789276056932577128761063199301617940897366974889568768701688222111138711690183007100723743107062780926599168112603613695677259817235585521245365188232867084516310825926157157819314736368424444713745443463899514629783507159063244478339636918757709954300669011364494037837834939723140296862084777049130097219658878812061676545896322270071902605678844675760379459057964852997076017051627296332883843680649121027040347848477079415011475122085647380754884679301436889214325482542667612855936450628365205185480108056376914211573422054788811528166321037817222046901541952388260539672886786762195352148666549032260162855337781058363294267584769247537943750591877212275988400732342619510313928360667104567650032007924356006424533086197543529053118239998545928022177905643547127594946912329558948009239740380929227587444334113933998842529007815134131473132140418840929714203809868542334100525765879872318161922803829741970690833138763743283920640484410712647447154080060851369378168642059002373976331864038580781986362822675334938937864804387347837056507417203204609082094297875956640846930049710196223775748753966716043999050079154310446833068020296290807481696456363387286665487271862690201479144328391118244388030133329745358198262791044614515746983163312093572206059896998615875727171265285756309753016717031963148323026677806623711397145536875699821527357437944914027551765900680217344698839471122937228500994731775328890762453713768138319740021047623960430682054915272026021105712691993158934489754334181293951649294242167181380232366798321410318557937587000624449962679306926550619260624690189779375254162964873519683914283397711209853282043605380294683680101739922653756772049182103507392323243158840253067282423008160059268129767837779083238603651399639368505987237876849535852880486379516321511272526329515426917672420784749782911299333994819479609529249325325710959128836118488444001321634634045754004297411774250359360296766501531804651094726904747277614958787856683771829622694671758435888462657963068826845632414748533495368805213792286313894879885523620064976926079326215172070227518709811022123401551290503604546582640939782554195031274203420622596806388508101239991631728181734261882256173939155139383366135379545987688063754330447200343426084604803113921603605187767344452622752815878949254838349750186128370708308331889730197391245568992690864227503699107459227308373933260022247124507140864400902962154717096766285921714129496008644146355244641478923612075761717307967251683078811034125931419475237848534636578809864404548307877230896588242557729193002372952217405561462080464723515394804222980160075176509832019093875993441974232047091634770464499218753075487800207645308295571664170957547715109589962903148123918291023868025619754202030759077899235861285210331547668077295792639475995798911409840980154476447209064676849299045017019141479064499861382535866299647758910011887669679929483587084947681752301801172559159296674793591172219038656544952292554437074734473213599918007412211780050180839023391798775956126230240651146838345233284496383123924837539721179543093663523907592941925583461283811125615221734425088595037484314626942133080433136970235161163234585917595922070195566630700964514594970138920547577554761795367362813732458654635594136395117062084600501586110197318275341265781809003672286334690147048082839048821086389701349504781076527394764493136371884552536185254453155706690240385481387782234298325617610515574878664371652821304769432360799508451081893329525795550752984396319788408437385803571259560786399870015904418957148207454740188400823425024226455427225750371532387807499890529711403418989665645491886303478985446382232691512331369490887366743965466425999352848262557279228109902207637174787865320736127449329768735469708042245036546373146121708606806981743014527152127633230642867270737747513698589333882582696462830203665772266290463301619408828048193632102927709871490246141210138501948732927502208593538097477263721434904905719379687659677641236996340996555603692011576470394967055439937146911131301902635462819960350441215811540076175591419331167835404521175193169356498625508534052349583807149756617540500244416675508256751788424702164637951434948296637185877014508373665584207062589688994953959721198932729370419854991495235325598860553045646078931717326455304133743528030371062789340687588853845239042704245737990303344153480591687713685379136107018975168420097334097057665460612977200503967973098968425717597244708582046435793024487369480331925553881731399793828080090315346379523059300613380239082813254735116946956746120504503227821912293139183455746284256237087829839573714349660745114164428197406184220141139664788775873814671988614605098762242541264823317789704225767836190578917758737952108393423193271463144801331459905686025219493805129752416186660042917355060355344568419489130496639627469151548685260304557606552878109862115168190486374979214654675467084296790557984268165034679595017766715722706471058718791258805465403050085110138843442224022004595207928850360615760426072719683941661379756204011816041371185330939188219355412976456297910620896499575668182730874960841885167313304804873500640852624274075906147079157539419426893401211258354461223917450441165871786136185572087849946377429928636797475312548685095254790873064307997635723025658460237106276906895243462880754503145013457146030066498638071248753780734876377182204717633814409629540172888887180405776276522022159024029659921698768650644306701039736610932944526826917664444625672891014010297175845300332031464805224651594276773318979322910391304340982588031942314764922176625134919725970400024191829895273487819341687393603960769934951422988514134580165478567750468459438980842419995863839455134340222187530549579099177162300008432689956013218150692488743507332432837316175607230098305118424657513049374837379594229360087463391662010777107265530590007758704456951688473428866300963760570435990739811223181635689578050222577087072228833012396670722986629090293327979836327660525181140739458825973695788765205501732543682957264565246729508656145716118828244807708307336274999677515767606801004668742131240772284094476266182567595146707025052375005445874109855469108204223818901946440953642480326452990328177148599895330160930464706656120661610279630295907390215943785064932947147651945733808333378532090495348041143065252113144402763219395096676307363823502672640794273839406115987396955369710894350798303773842857112159311066022717772421548089395473449489529404981114158918417344354194978441973960808765040666580195180089801853178673056723100663477331625398765154346461425714346186360117051916922736759779945217214151242210798723289841146443986908753366261225920421112045993549347737912072818555313276304560068814912347600395331922108125049649869717815437267580890780520801483657401752358913950393147949712649200889191046848457808821546345415249105764396076466880594241381850721077696146721847738438906847056225413577059535652328442036549358887957979038039683914981051384371860172748185470428224491629919738954664623194802269773233175791501510361599206160744060808129658872913298448034670520367339202495588487873436529095337048767752131770176920216984963224013351577289581237676784189948762745223760668305884019976513362377141657780004739988030650175466670154123910487001696510820369042053201715461426995164756257685305714382147949246280255495881657608188248907150517252390737827742367740131894977707891338324707516704345801004724665122450254737759248687509703772468650955836358925708004791097172112773500249938652530150269537535096309378033291922432286353740296560026046922424792867028594866688143771810439995308970765138751679870247468424733721127658849700179557677440872496200442848639809059949073554426481862836714956700485224049434156164857160953646453469479970310983706924420999607734952645516477466314697651000694836120542016588160421239328548295165747704912167054859686231559318284449526586082431852331462885387987727216050918488536270030465489104209168080460439720242650157490165584928322695478674034034564593187379414220403506087317486610880347368944775790689471628465614050305596680007961127099315281105993741700919744987746548368332340518747793404729214259784021325857380924876474751928586084774502218788600887257630085981344302998930783876643747096632042742867042563294835719058087238699047539535657847928605929372333882984584694454475502874889350034909802268864978847293235477872315460709207556569594985196911535586045632997966535152954332439054931509550211383421976008497849216984801875280779179894116959527529057809390011866193469438252704952171933776841692792946875500255940761215963776692388218128400223590921146250908806844194270790320094661036241941246215746310081718179602552151204379655458705570568910852819289910510498018401524313675098399546236424847620300597015997738007652723613509291930813456914322670742118578803786940719752014373401692429619781204722113994733343696583086759430141780758289535699114478576271856282476925009914058742953490061101621667381334645708567496635290234586933347731795003592920896527996621514941095910864919498782991693833643647737759954790586342437908007264499367231363376359208612041014299838642553377333306207537376512119131068765395108786305532482246404116796019732811854977318000401778034962262571275946965672277202696338829248320017785444511880621133975837007612627841318019390040370053005229928950355003355647671995262104750212611210040258930987327372668692871658061100155385902505396017935716113862341898806992007431913357020535377494661401246648778029245259869493590052862300569570337966633726141651392104202302945116168291940153941265579189463045366837643003546335057380335512496197921928381850185295793732584760547369101602795434763704130476760246960650702035384294928262597777831082141468516846232542233079140609788455213990581395034997050417049335661356616322864748600703605074598546435765430037976841901058225539657005747011998512725713471423657093030737869646674319989407600983225690727767548018348238143550555388851609213927492312777086641060940949834625018062829896509115916203376201943585866269411592570099861991123019150004712415960414809673889978025897691024244783811665567574627083834668735941697630098772257140702061006802295445452609436573880133253777550216717382575230811679951098148038180603230676326846387263092435856382540936906514400209228234039277874260330204432068207879541620209110033291727441784152516548456056021396485077352678177481637554057986920647693802490405392568723470348701230771671993528423748620073697194332135656360745954727152601632058288375130818547238971966890087681006649198232558314411791431274321986487025307958468024137988599970956246843366276886815108650908980835091147907402533545858633972225904126386642771840930389073587035095548713307536677105239485374209595884596784078572252681682364681221225122331960113484799628573901721766038000996360116018809154830195127012940832239607034986574758965194799191761649323475801629359305038642245205269840588301343836853724790513770913335647851412591610073029947026301706715715752026991391259599088573765651725241207499835260704281138057386695215638205759817336080364547348319162172537596277204498688973984034618797679263491733797154933142357607752130240729330695980811816699847925354952367857251448988183171672934895827625020346545142846250442114521085197733455993621580620077161666774254249133504274905046005877303622381824390088940693962349016496209483534416056511697132153319243833663538832297943711592491245425097169057010608626646447901146986245922235093950767585236536195502098418891934473740903178866773893752400453384471959351038166430990842041684437730841870142614652753778547975589981075132580276353493266451672427790728545228267736491248894289375061246658224799936022459311834677725620477995501017179574845536908220055278451732768549703847217284345862929321154140162527345593175914445497648833635408386781154995097253235588669826017429325079251282136884476377042501515494504606442551125129238932417202131829644699004101332028618549104549920259043280186731740439040535289376618524950108870987851976074311122537167766190265108673568336129813915579271323189708026977445827928100717777281469436097252816413423176473107860890340412164629356359337764465148129876150829663550203048914630056618314853383310874256557939617984566137680644772945575525889441639688727308779607231549884341773262256374853878820060140561394881896473839804262317868299417915747324023612810373324363977174598295597281553155909111511949788234068767090306486604256322724326139530635276163803317183315265017284883794869518599553667184994934002810703889008654195236006430801086513845118264901320054049438331035345170559156630929211095574349952787097279738547790264257232312930398432627051480580399527696601659805338059696648292118243065277899405483897649037277189723430898796921410513863078569748350417084111952642850874964523278374562906424309787584470668282805230954655426816332318131967698162345589794328906772717808983636012877986035330562257260713820809101068535951978759871242932876419000260634123713382277391881208496343012529589944571551354407648937729058298085970238861924620502887704859969978642174435525643668461696705240702967949210509866041720570046012553152324756169132138090858365336689111977354632664534338050297523525218802366666040264288852046884611776192756367454812638040336268163011260516190295739454792519356436719608468620842632938485664493163057214919459296635017417100504373833605830907403907842593103173932077802103930800099518146819955308057958172313392338406089219209714402483411059337728296300768209764840695431595521366671898090843999004932640533464125508526139875098869902555702492223624226510262509595321684528642889505748906725181166356858306480863555410626101877679269370162758696160963214567027528374513488439366836933378072371549624146994142881521888776238887345119081197072414307660240522481408803450065608155264772725357731797368911523958923779957772638676266497503038634730839347323972733644911731127984780983621579793691826858894495142086626431517558981365789781265968829950816421153711870247333865488905535664168062400695594599164016876773846708461933619500768812564639168688321508661541838889573990299829222787398390100300567062149167009667997248244818861645029494454372041232274741252363298811354251066280711693320692096635153369666294179511343540776196242843027776502957693200739082446625900125986335184606383604149018653711577283238316212663132915873271322371229037485138162365770127890643052025630305569401085449964644220423549382380867544779149731362587531016572044790700709676340539378411058131405942658683987883785295781787429552075688826727286369490530818363374874211941653740315014527813353835352046964500498767962822641060776090983848775552235540167419443826047118944641892518945435279241966605516547078810444320052976711196384558575357590201889548024799454431722679365718159223963826274475373477161409666919489460785525806694073267840685769719402476626079361106178449085075520886140934257741528731949048962682588811616218163908064467899064340137283923957433237522111743177300413791757033705997177844307143119351135052399369349820120067145427766655905263800021207867155980967975221806140430959128178042416319550154565544440315693554318406568531443861994525920512231528255160851581509786026915477670192785428224670402243078947428789939100971034061530530543297009573608117760260598484217592863184117591002754775604248223642952378655335326156508051998964233811627228078015127620156859497243035708517059557451659061129536490869616325914167804200145468277417695316449597385970191691243130446178118039507445119393989835578953954221637793682435729053925392034449805421661310084351552631316937415515456160064624027393148745139057995473420340054192853414442043841026416523833709563379618524547475321576622826960826392946201955467152922611219348224925525901256226742564408805715894372682317994413546573314670863658231246638877424044645013408384668574216695630386886919005865706932332929793638741235654497090469419340214810357358659917700493150081196481044554471009811600039357689371138922445109588032977590685021167860412014693256716130217063255805597213639120947890088699541098639674357199194227753149332407811763409331154585974371486365939803017854900593857454930604491101387970541888470910903909215427481209944210058639214716868808244254097256847540606550340504172367600636439247996241755222847760469904518389422854002549416072791415124511174863111658406240095266982876650115182664333777411523535264779932519026039411805674546881885425168394080354792237903751201769287622193075764792422255955239866072062660320152639310073855903450688761615066613359094450817998457728606399256259766859893820375234955195671180419172755685494879610978619782094671868857141180304839353356792197418183982671952622926684649307527993669039772040258080003602992846593689055346473747936612360330809635706002883632272620003988974470537687055887688982909571650873946002391206552208755822074299182308909335892425174981785921898928772490737497316614269963788561898100619502479585440935226606022078083790935569666416109024696612244238253997732401272763024138603565051676451359696760271085798968005517478649893821649663620739023191325750001203826761453556802457500898724563308982664603620369487510344213458157420942956927504037919116634230794918253380564985092130643456831575986946575691842019989815603108605082638505260801593301449129544787517340642422893834364787996975053834226599159643570742060734348846574445257635798530131299404368615113605619601869156496339193814934348961717885478206793327232276627516225998804931654485081921985132061688483766270135908271899423150375852210855419868321418270047281996524013457031640618761100263959282369334736032571298179598605618744189737260235714224765335959390634366536399034248549836751866747480266109007353060020800321519054941730329155066237759828889825654228521453839629259643619807331186973482115192022667463229603070876739328391233170085160045787425204754655719108702831438117282455259916259230891261369182668543376797623449531223330502969208410156066775748578420586543875012663342783730354077618951822633706270408920586705386719574138312933808785495517873594188181714065911267744287663190319801968609579575957620823658615097839411424925655350372865590081772460800599727892516527652777879287777325384028490556191943268309673034363540317875075708388508256093413745690172211528905327838804103162598383709080684934785767935694853969262102816307187720849683510822051043347183843024334595946111514778368094052515637615194653952696486045939207945255640950272600678523712761984494221718647324517630113662932323905975933987918768143101527856092303514348276891544503100301501599650153759463202771436515517279376014579803221953738321001219369513913557994675504331294524625483237167704647338218484728914501200976564400701116477901623350182360593913474638355283500346160100557921935429319922389293053965654385101976749820012700331922253493050321445408149735466005097328258165247935194666139142129022863327502317474582217963722549877022154175610974790822770150706764636070093815821534483852267205426333877343937611834078618166600543139725808437418542256296056972797703846134712153440265625285797767908136008724686855974043308673822299384042868266931102324760893635306782164931315708360358610487191261973197962989799544209110329352040112058282311579450819503156149364085112438760345026813089967756818787822061173149815150883996144351041457558417463030462086824046298894343065814737256929309541630263016865950874139155954745380761173574037268423501558416401212614197475623971878508184394152202326988693704093357991980291898165872847658762752927772997189381468771494387557041719921263278718406155820648383747152960680395522422891880720738744932209982750686535461620344906442103296614343241507156970807567638641444145503506559792995121477809898802836535237087662563443595581144420982956681868554676992585303449435774323557523658485805593220042460304735735152191522431441111362263265105087518450933610698277036218190331229140700495277378512474732655959385510090458721792954350340837989098558827496076331932856760640856159777764116896441799252914076780611880556586401578109655692759310136293736087341294584738736536763283098957621711283269922014356305226812204488256473458816838802886653034921809058720403300450328593790023486964920564954119031582426620987073691301472013097197080265084543699202667162854202273964243452077523116603877933654890349426347850714840178732197731517844321714459316155940429588678444398638873969451678419907694383901136787920077454616537111424266567923482141699760391003904257470084211344072111017456726080670966531784398917755980844191648490231872967946224807703545265559775223855957930647116299742564484702952036671714502006616702132635485680159276609260048996942832561413417012715632742109893547796081813176686755020804752126167159218434286958663507505911707495598583612866005877381991902538386094137820638617815918821494500047264394995136556155500095460726701827937664212593850331880996107505585636789621882530712415676609549361098829292349207713459734245487740065469942582548685659180625926181299445395137771667072848350559153770720019252046469733579237958283971470267605716336548384101241680370356671560815899688878344145974165470331500460599830244595369550897079508926218305228285160408012024497014629441350494419867084961447995682754894062009337653028201341508279747955114043933044971144092199306082426857742280838200001828992234380995822348183959820645179454001150019856322887420405412450968231246623857823967385639649295548043282174906387287154039259832428700544791211137110122374894827138310764470209566355591005886379424031547450183149977041375929095925735759806234489650111806449118591152088699319459010049653171601885591393854999039019958194846613528184126200453843506939356106916728630128213813725238581656330570497871044206317202518327088689728520303986218151081361196995101380133553297842747212745573601900188426828855201580014819024421886052593002690849898186707303360279278550161808251708638741423717830555051570578203110292200694455134879488600636189200548376953273697149472633247433341356614418077440509713503320592824401689307865375368581614014488714396228150006072316351457942803312676996890249287047204662023691123465235322675109364630002656616126716385458937631326761611395828641826416313992189922157980136357434837841876352672048705940639679291693998183927315163305963290470667773477701565436945094081633632814095323830559382288607470671866961405920669165747849006372015600007274606615156946974252653797197730631012224605891708922588244050059778487679250444681735367061623559216560952852231222890740966239055564597820502068859250037670133602736912875367210720627616506253741705104539927516614870782424456260079744637698483238938523784529262135784731677800758784201786168639462586987350120653160615821684114441818889731314253915644278454446965228651796046091952674141361848608952672976643578722533534503674770518365312646787014860384644692092833293179681323962606459988866138472038156270592498930787931295074228821942476963331610504239228283154807546631196717491914370004049064427921929022358271373427197305229194756380716234848036711426936821514314353299098839609415487336383318384742815395903963997879880400782506578022479220239777746322102590192394172077565933637179052222098727558123585166872069969232825328213257203246221722962345656263348221654918126250637386266064441801523764609557103095196592354649391131060610524084120345228148786396602248062677773902734674398008972707924989935053510174490714669074658323730139909879187680174164549012158056479904250063564449588993932891866924054941507373196998661366258586144520691129251727366562402124947093541591091624533294894400935761186395118869396629595521495114798329777200278103044826002211055269075990369874545308411730775535384064151220973946090735278280335933601394877049082787987462071532275990704090267563920670534626411389866817984739747110938355877254465479585677114991557691758281168978224711050919603241985828788586824238837426002450813046683809642298005581091637007693159923813974835457355974956313663451997233584416736509593360953701587133786066672705182217951378117237080547291241666679506479198922238430087034763865658944389142873552034297615519860312018654071260425032766182251207303211058440762106128731577073847615160345609253344259791758311821526354157260469582698703422202086467058139928880477292390298735847728869678990551441096229979172162197214703663201094557469374966172296452254437292017616652129034280404963248741670093837273107872067629550075955591901408836719967552852324305892616267305203104217028306786627769823915537475683290458865106256955414251061689241458323967619623608168959909721773547853378592240047119118658955873789700820632339399270520460257091762810889392570887977850612167832974659638115125717528245857040366493084053562622370629551026897328071648627887270526485208458025559179827473355110247712832154876314017575759701573919218694111941447556927849922620086301399878321376378394417126704980111764034017197807748083606703583300397400181195987010903230394126181197533491384511137370769590250736748819964143307195187117427664504863685806367142459181069140807123153082071085785420396302309491015629684147829823443637184132545240952083095833217831397172854760302445286042430333300481609170944