5677653067478223950283110704856323189496244166562590902083568101510469083400157416507715062972024070979329434186836518014212514922020952906414098759561092244746948944134886386161117217441815500304728206934550762594238320980011493323917462549798212055143155394627028765019988710925530855385848550426037026807900453448076561326379073875466266202656454111353090098376923549279535181602738137236063655010938882400570843667381988354955049838089036111587215314259645140134932845557606338979394369984997390675231992635423363899787286925083506706969502948228107925527126586266953914108021842534197810569195890281692494688831340032089908597526785935493277401505714615565327905508048475125386958329976419100750665403915544239071079710631706762312714369783691898879932013680921293639508978068845739030309491611984935722538312986899820779931029513096259190389068041029012225177587212221350366161363265587005863594726952988604841178727438914364846441740601195213185828620167541196360431540171489062935941696815551594759776925921224719988570125385750738420913136518416364387915490563306497811462213950498199638785126775557603935331371280253132645212878539932566603722857160435957244108091358928201486202346941666086986111904734882502847431608216904616806289678929103957017948549001681310387179090485197981835846905146174891891949468156340934524039656135225319365171816809251755620334867408434952133814749915578501098748582077390772156148695556756520488686426593708423282848513176214183825485866708027311162589101619002540126797599231347605516788688842955525274208333103755323291185470933450981724134410953273381828921277365448951402508925264457349576203858654894154947573919644691322618573963488972720121096456688859607004342149412425634370939824895596031245297549003530534516096555258383803557568812975327037683208146527882648430628261074743074988641339694537500437534919316715579612672025886829683084015687244215573785374966924232734302027548006475902409091524807337530385295933433774684747237060724853482976319797165540363060042528866064705675481045071488482745622239609276815919527765514888341674545472154655617384945323268325879427732198769598992425852695282225908218094044843196772941470792392214023528012431109304551531860181694057868101222262627781867985145550236047270496759437623312937482505210047087753607369701994643904525520338004375102072272746037489042076976413924132469644347096000217915557950474611675010810510542333999794731203371972964916070204694563947178405602809290807938498844249056807367657577668461200085519514105932607464231077107216778629130624894540063261982703480242256229618073189506704975223247563196057964282243813301823158905324930737255579861291473799690132536609335983979009147526486490743404347836223133048790448198172413948631264677082862916736543894289153279747546733925608263553082097325309154738121692418874172472115745761234047106358245763001222797363487892613249073549940072351188536226587812719074069076301520374006655336518515922839460613750251916450111963556749796868133158340996007103559123103789692918843943544264629632043321281582467761116543915978173506635783020706918563864352279620293862174244946792089524752714843220447962357037345208683864349771815602948642376996764050595462644205599364592282868374424970245666216152602831017954397795819486108823184367579264794573065014725518926463110146616064471973356907709445767871532249786884129710581425002880943268136824346328476529129308303729543225769491349991913944884157011444920970105005196591079585297341843931951561071631748797217951135529624870078142326195816612725288141628626540772391883545818446260323296840818058246590182926543685904588660575399959067269914272873221198246786772789515506034321644864688367945123074535239761926312881718403925223786210296389020308470320613146415147166805708839786729880104845360076757238112090763651671056682699365198900109275530708813582751798207108119046500671462810096165095705617521282359406787887403903584056808036262212890679429820179584265078795927116284127109226185602119989581202820342063985603263484383232352645670986285745172410948371517872340438066641258400594322583361505549356010236186136579827253313967802514538146850417390026457844634885349153849880620632378063426915449355739627780843181087339920475410984857635620048147970872920471560045709371376290988976279216472487958995133753841649376397935273079879482757032206133763567195593470418693307537151528885694153491533303734497212465354814239689733163447896617963599980404372255662916605267963313211352880015682874544171877209530776055067625812267774861681545622227824586077304072469528782345577350709417247745091953731066523369449380005880389475848955618944898837947425454401986881343148627410104956592942131719954278031782802208967151475657543070874952243463369075222887542859937333557904230148760949704089073716172962385309276371351750758139856042271811838466691876952876851465783975159005675753459636212368946334840740317983239292824160965698073048179978301221414821917476384788506593423546797189281929667036996645088443013832750953829523222886485329631014290285667520842130779301274375894823389142137440427358585022602084323338652396349184942545805013556989755985629538932297777378634322297896358212116335112850723155475265890721033676188473455870328944433516719077796633089666708503047408089097777440849705475335740481390290077711806777225858432471600639747419609377009685538776947910985737607635345204857635329021129693363126650180565339861873986955292504260388445079956033432127656816333371115713608212666878543135869196217899150082349926881194780690222001926024269151830059428587510811913516042068241247290048700782873235849145970195814819790869057371965880477597088579549535431179266854902751469216261125778986813508998164300331068270757646238588488205636770876793779533257015954884458025013783160013439140736125660562074442768860204128292914481438745180466243363786606897345489263871918642989368929509343991827215307272560406309260104494686407048765021172702728748298657208002879381598779041916835691421221509547696573487679252822965097248293963621079737762055242851675494891153250234901216740925183633112238653677178299863966574948269493258626434263250647205799525574800762416842167232952422485032512599830414631364650903151654906155038170644880246337652727117733347155219698722456112395117890224940462432204550262501113802924428474728949404530781902283586928776258043994447426626855203896774399204504948790353048568947514054084534939718843157903898650166574028521493287602303783548665212625487627955726056335690556178330888641337909505248708763371115203167291081942566437213541663193500239338533799333154419686995346379313267546580895336304904539177108525389037026650281781235252962825454357160825954032255780087269805341167150745158374953951788778203410135109715643048444512380211652675186167622036970321660682847014623249012215802945101179454165638062063285776060581699635051625421727146624321389549413918081623796510173506744699530822730892272823941292976335299282456546773055459679866500129057303958535931586544531281294209030425388882030795148377596926920973402390594673188025775377060068318548697055474376843480297394135080850656103531125564693423846445420586107450573129699031315060603752362118175497467360501107278544781993711350107843804015832797165265646772892577957369942112838455929697876123819655540862055991493462149762154119774750965555605041266243558970948414410076637131367991347134238070422530293917044843077791214122274527547848643037335114236758975428273967822135979491815590397940867163846160758697789249378072059866251967942802581415343251566543179366060340609850395710877422849776372317478353492963041893077944682814652488737034439518826621189471836085968661115067959611739776860479065832043559245206380357034181088571876131166687325351165573772639817520746305147773889447824097079822996637141928217252935344151034233997601793624440734278793997320719470659021566549977846236978049087052055202866853638252859764663378683104390086449275450427893130909329869868402439985028718121222164140126977210118721602424647963377380087709821704864016581277505344352132115385761173822049700335770083305834301528810014094128605604034628059111902014513026896367861333139050250551903306985521208341755660685731931362951504635579644201279853056182487538001559413934062057352971229972872937879273670885611919031939217510308325793781343544448542473124164097567835070324868723960282708208954748245388765647933051232152058422357985762326020325559774070822068857433666369301967844342334640526260537273104201095420763227279906959676097528627279246569397397993950660422284912936593422152941247303346565066259818260485770894525959516012738629546694261341793289241942216088042601137262341770794899111729534805918734979156135514536608661041543426914830443005558129086281346688370853908209854777775393438006944930320150036514281811165976660064096112226887205487504101778874284906128706537176837257424202721211833614367075769494136667940162245616153961438377891557251268493064770166219156835981716933782089556563194109793391463157425724680237656067047376522837580153511544210916710448090384032147409554085087668703513641055269009055454052829600051316511048048044690006388258254495047241056850210210859774609048643367572158289211306274644648513850507823641673803431996360212697658440715972353606896432553713588323404902238508188732988369718651991381504465373157456282264020119258419955483808544162489981902838779674222602467883132021211405382250672932289977391503725876304629697981219107946096478965505068937736857768462162709505165762566339925602458765935896412089245979961432787553047636278576400007904157325170475248966713364465165570312920078592489051497933459907049231249198347242392185520421226159384293027852091300862905137753781111524309519740736037640426795816968398350224308911675717397878574314259282713515682254993781539071496425607058526841241619863870010753223929781465690761748135137203625028906043602678853767380011474976876581841119004471119210358856443191386408408846067988024900554974103743583378074772685075130527037412761109907484743240764827521362649750650498963287364746498535899775730880776095821205855718398275849937904514106227812394223150635629319871281914696925357763826489321308427618187780315092484133066106059810629407539149387890107727422304477327181095924704824506349580028761579688270741223683318377389256304272009074297565907835573598129547747755175832432116663922835890674340968552795916683975269859817351348203473974632930557542524259494214661958412615771425777103042564930136077249716959427247551808291304902736617303256970735815745986477640211042377975048630114703340015147341589376881644665136471582106830099926505679136750308456766340459342002579593269209045711356492436647894853270200104676811551795469149635962082003570162318598034049903409708019366472614563376771662912983794720378630096323091268459758137500637501500242552778524599302162136986037051317594446806746053376964668374515264719499073789016603160908359986467407304782784454761862607596232982723292571916493570740509123421793013260362001469433493316758928339666703013259193532974559342276142823134559479732020475410638353546969314262245448595137201037491088020556771325175799419623363572374320007139747216167129566914141684684308373094611334390081406664133673400700262306745853903560083340781861998239814399689046054498567654844667648087956951666015961737211678343241047632899401907181902070904238433107487437538356447744745278111431170813676401145810295712623776984076333083208780819391554931630137771070400288360209465858921035702910950989815846882378170373954145231339211806485712530677062477001144166346995466720787583831531655162797496943516594343626780945552832571266628287712185863868424608865092655583265573050446398758645154420978305852268213842628582008440548378854180001396669417727572626463259667778917673515288045308944379236013814672023652456986780217141843134601803268404103781802527701025495685002953374742833195866079528086697883220695888207883491343152821610932992581301089438573889071233226526775806915958805294101325658300078569160666556076596739204034132089005162727425084758688091515724624231413256765230009818069631004527778104870394405396292165376829506417904034574014633859497170030782472876323835298683632349343311658846579952481240503838762004169053601597735959019392179489806801172332015511413453770619609280408631843494645981358320380218359122317756121729955798727858684606948614236318303983855530408869554315749480321729005558509486441883468306439601501167027965510798144985629590651767469266817897611109762622687763410436018898669889756019277054305448050940706684660371209005445089995989960639196133364364818317306995891954864587924350841683413012602797284633425860844012354765025205023487720216301802048514117747349688461492122203518379891565399368115354577807259097076122762799500046593283009908715338605984845859509827238229000633594092576061012995728541451424774283431147348538011966001153621150593608442396207303904129592707767127972202822652053475425695471184971192384640945292845315952160568777916470465085379800496602769536337974021620257247286947223187711519021193119833661256078386168229122331652545901037634473180902924158224588179273046494802893186601434982799727022771161341769320563951231213916183399434510553509905129250642260690544005151411412025940005232392456957462614855057652763286525770466113474959465220596825578045182703040536482914073655203017536716121275813015422888409711564145868085567969511709640621878293889687244931882962937999177007396364189572661858151951869660409036544402768854679865951828868862427967144029497473979161057834187873587090040788186002107991409196555354458437346946166966017926681117552305139724341038639331099101867197610683117221194028237248334044715883205937147540463187921326708297617210024788725033835978649478149861963332214718191799654502326313409843064545365535401951184725075069476820466020570666875257864370317900946659716873460996772209240030135700771369716715383604538641755335403640511292831102555420695139770135186216590610876418488001078081500222981953940582430330538347597620819004398457600734888622471243225125665400160234622495632856289702268718835959311660123409137007334105998484325591504955868579302723322261604253414909486344285557890116387713154555593238756202091003732513829384844277043674883094468629912841335752567834212621168920822107240816072855287550766659741962686668375650289935011677642738996563401966084088589657411695485142582688287785644609341510158673922180019887341702747808814781074292303282027298472252144512720249589908100930787002326778050085933923844838806516848516322320823216600183974535129071703045037459129138426979491309470874388134156169911509548788636614153976382098990150005874737309815112840050849964065552036776758269444549534420927483786363039965800365218761864602971618021918598524156033119679977039841032892755261864286144141945839942221496023110538243667752236130452602304616679594860635969582528898029590158118504568154013366145058917033844794141057568895419015806519893363787983649529060962553104193530819608962914921928273594914367448318205407999191029378869206941782603253943963165003980910504683853178573979386886185177228796072390257544573262980507220009706946061826284601809850673673554258854037765226306391359726072497382795562184725455591463170420159338985194676212871928235377492435324843311042229411245783532875308893234339651503727206669846487267680023989149412243809893532268027030338342283517808887240477370073116940269521301190914051789796007701828880911130222637806785496166358136238451474647428006645262897611344189337801644454119736026898922440473153228773284168870559342596633059471258577094871926861010783088026251119828306508185397365774677392514496237887706235962540908648999339962751431054651905906770660504400776819015470661261848905055405582173075513670796980781387827376693090552929999698776805587325984394350542542501378069517359848388713777021382420326288013008836617085797925278200939731031924595394974676294025118082196398858498986353073485907805025765640489388913320669169950463039694643671462795862788774820133192556824961230827005972355378787043725121255337048635961408287981264777903437241105692832761550676153943297021132602886162317385901295615417631801190707938777367496068500363454663644448215941780387147273629096360804625120399438152870233242888868221844874718633821955279557333266450938410273565750287233977303958942784712169744763586884614910814193574781656132591280642143125634092570646250519737892016428992491648712448409472152363906806045210092336286124440787177768473094003247965677021199807684421721232666352810622842832690043226449605231523596871064324338760305365999051411199205638171057088515115020261371202875683888697458960462588726956134702080940695581538797679364078458656741800369412382059985483228094779850886837066361269807130049416401490073889416542523246350202943093000489331095248573208338623932242381224423958815136979832135460698721263569350963561554778314384167384741686672039184661493921347175549618376579598054293585720438082053881449308203633981554607406702190235175906269668824284925606815939447047774630512931434094685278223937704178229522676175543061983386067584317369537144708115204642259908449175138853233144675039364365100017631416849153621124160696107118972023607623095118524684305016904116487249559160923491822424025436184809864770773012204547959402011491488855932244464928714654955005243039522846293695566031427038652965927102732101757350503306162368950771054264330176226567274501307484589906449467080746573924154803251252896833541516273575081561897912191874139390918275873029209900110207711640732560057450470371382312184348422679685421479506644985294639571849807350497358912400020493341525406241380125917258350400844907448072211333925650496537511001856664986119402967016760421621817573071682532739530217269322513271579648991274138259985918270597755720519637151076964556483533318880832806621729425881529873105094187468030203145733986974284894202049852972397861269957386765285480375573802699725711449026544183121778069329391963008010665184596674580523452659060861938446906664022174420795792878062817517274676894346425005282089371032759117807341984584103412349543728640430164362721231573707752034909942968494776890057338104317807702908847324914029762573004795566866641473875387253511811390947523198236624152988339421650745498817741404829128052994159124774555339570962975780979385307874230773720716014582580529059837251238601683394743001063969942778902863921361735046242549444721611897190327400015639984839311472652471514254365828727211142299555792943369895388260082197326281751055492372910746845055797425501707356584875950534040529361921102837586974569523038081028111331614363060416479872681783605738890236533685332210489567927591381305069337861182230197989739877008515448234343666785474447334135096531364898255823470815648162661325561941867359707898463279546788234429516252222912858185130718642084945671803105380108712894758957451019109410948068940239604490135337247298293100095118079518532166891620550970079591408350213520110272337324422482532377408751873800034876329668811159899775962242356743476442334549439307903127463037485030263618651592282505341745494097123484250309637897432506155565277616041082045835678838544190627389093102306980447330184694667305205625865564509342451921387127658110707263724658904096134947712623794420792267057467180674355518888221300527222079787845370931829652782835568865844539067150332207586869325112797150067872806137985562405016386001107885075789588035385996625235446225733311269073501100863386920653126457683691952162248686289344667213071340445652986745473407963694092136281857045610167508294664163386004189884455571222052528935373074492481837485617823075979416814264512706444916798006604555136663014294939320000811471937440107409938321364464555603896531652393386129366703258829208862037267506219246926252145065952255082842473498081716921437033359867142399739648719412566379605591306545529483364206562299250819040695157096422953519848764845749809324034677973325309186660145126158662130937260891819476591014620596700793529509690638388599952901681661913974843906745594580780849005106594988279943402951930924925446196594321216666952145147630175795444886018674379684298052070659194672374142679647067963170135145513840265523487193989207220835496781807359608327716736468452091669840576547489150834470326535791776733497136052135573616269839907580930743358561129490127001002761854839174031244193205016116492578062979482607026347958670219577473671619870582226912879901958606064225113172494196383284370240947379991218558968596924362486471118107339184970720422958107845966886610528925008050246166841448126898840643244059174790484528341021806960385791709188136689523726816403532101282191004763725098679320673894012331442819281790667500567956358692836028947127183944990795421290574286081893512906306475028148205723431521972273813551153978808371715977065292574939045442222160331829636155413806710254587893926119072698139419190126684364667378376535359300210323091438894631468122657688619752051204094457604516782541313298494615025570330782460625857186035507009556680768905077553371975525236282951928818426172419607259882411706808790532250401461197175427507298168212447598735944662204964783609421676435208893250480976455816859026670100089415463451106687263165823943951993449894904673309626219504999189433322713280510583214174564572416748020358400569880207764111453038930975826873861882658179315618411519091788064153429236268739581732631710617132475408125999957020394565537240597047959559444257386833486111161875671626570095733416755466673761228481048148622073748395052439551400504418381588863793298541497637688029967116993372602556706579348141147958558895155411182739773688893599444333959500619992879238118477422856241292263153440474285133885161796916142568802959388992280797967569173330211416444334652731428284192535557608352785151425577496815079525295020309925067525365956553416946558689672188931478073629070674330198166374278326223596493461994914820468996838450700349796995497970926826509344414459439038677365468150700635187632576489357183730545615789298951219867802511984949401070099895017904794955144648589797797786288088457842467821780769439108736535480265511294473449482403286940488415966096533877726066385989927879365974538815698394022511413290137725188079648477880131283503626499917814779626405418637098360010902683161033784235199909736837838007414627905339958948912506299199841204005648544438320580219129104334745200154508431499510422443877351872998358291330291244589966601799989724643777806030489476046225214196651939719423571419123745377787343547429371728879881266793571316661404341414202280307987244475141282617868299417548347061419024252524201130071736660367518521957209720833841025681728470323428149111105590792360532380413866680592713372342678632961012499067127308635970138001308400750656468109972570684494635575550516253174062329488838391858404565191508915147186979719804745101721971862387196794665555020540713810097335145724281747350404586867866609114786205380025066524100997657579048669107200716368789878644401306163083804885512491379233773814521839110509160409647571949330782866888938855806861628723657635912500394270860457510492858522023373313740736871533672968811023351782067140828081359645427529965043250075157956092056609362258853288296701596206412172009234110438367947197828469686987811222276113817626409246214903684807135747038890431466087477746227030615328108252398997745520143857918441362187327217981533557833534489615833676397096150506390653091953546904533343068019748703013218662353706130437348212083494725681927297901055789501710150532091293913703808377327409415578788907209679969807530381232789667458288146043033887826949218284020848753468771150932536558386889874749196973089072336082820508495860889576985893126725917067916503591549237826138801302019801552811076990672395286316627618763955162752820159678210982744610016522708080096064895883168529620382553351461067446025442294167295541887023129974676120440866696140339032454352810432576663322946080984139665956999157713056240948947350327812502428190505139233138874906798949291011062686509912700100870675604716812081631623904925003170631002794902165338729121721048101212581981298821694517780894704935183282401283443905673662133526145573713941396697165532845108813360742037267936742205480000991338302616342036701931580591590724665826561864435539797757816988345837593670124678647323104703638122971249351728583325636016480202490624559621580812376087625645895957312375523515842451113788268764595723385736311666778046973759109681020593225481159964651936947815017077300959065061437521216007509307148133040547780543675375035076880693008062841806273701214811409579970787061151778148279761812869856825521747824739667633825001987670233307080564420184576076275042065405214261613732199707425939235875497923085458678648480983907495035827125761538303252250641490904486109776930870196421495635725173893771364351461103252825398806295663709244391402828000640531150726097021550700993894858811927909609311467548547827213194296096067998145909754546277587017626323122047537513067695453155927669971285949700107967413839321188076204808878999685427700642851769399879757646514067838802198364293281157912563070753544853780210538743435691099074439824293214277042496956165063506499918240767472711317033639990639521455522279541683386740649603666711363591545714053727781652018699726185239800306688357522824783766384817808939597332195477856223851343023816866500729267042775060295507998675226398324139406912032592291158780310253666606307601851080205074116231597168898558744853873481902525675491271127991486774122212465932471608711411669347759080326820178338210352519553229127160852860793615750902957280193819805191161523098199485203322614694113320482792501550071303674134556989927296457612710850227731196785787417153824195181203976195874343194800293602210331638358945379798289208669991025199024818356335253183040939132651553035961694119538932036959124389683289349751715509702408320858826145189165336897778018841836729434952879302091768579464558220264650937878177354112158613546562037031819636461983108060425072275089260134880079399206248856084682519623001109148168893678386745006069370491315221100578306081591298126266307830951008849448607726648265996779774875769603463146811647237805882370846717164589160334058849337664759430146694511644159934877644129062186746207371787780268932344251569144765502781459586379614139296200686247515661519246117621540271240965616182234169880642807924148135606314648164042017207090505328999530004910315617447257207740630593694185226898543368099873947996366775308088832278077065459159885463093891785902810627163078957504814104372863145217023320226977458878206492817348041483405193838726546196478203117255606216509472036755403234545371942574224272476041692925370817012279692119356961120312840932733961821032978674786827112105378774957061368126604287098219757634129836062885446965675596572235658631338526170767234794441675240004238090717884518098532600224225658468539318779688432702725257723679432464342200154425708223096353206553087218333875345178577103424189488200043321856473220030483801840761765008293841173276215605790767833444263657774092714274854830524979396751438937119547022506559056085651804608410374186436092908606162343813665692111755464764525242576858224794005181628104657281438124946426827445518338894522665578062715397042504437227679945502309670110914174518341019913564895862974966483945770972873239619105493899438832419407685908870881330619663446787638406097984962105177134588257021871471169566877494208657482285462509625682369118539495143471917268131709036947801750365612813630454624528222903088115786967321476838391114414723635103809641789372201323764246610131412476654582803945322757418421673811476935115400042318059992150441589272783334348670485475791735893811080414958816864312981055644026135176672454031572760975430942556073741986499547723820474469715322696895445499172554601048010542812492046585503859219423325379651801015674224600532484817355311502604171503064117366848683125375536053114410932768343102525052616211622074177344278699851467629250413621138973390160155291054989021493617404734850965495500999902042303154538023110750210310200514755160524326737702834865886837312928971313987668941327916600332624422563961738522765566126250423965122428691454721277890416568855468610580635107225004056712598035906954927438260761277958108012502108600454270357585270191093254574334480818943602230249349674021565003094889259473497432400812069579979467483430780523864855052919907853691935903956332718324525526212571764365661204576419862414045202489916472503061602699830235865113105743003300471630513647234745155629930360417570632907721105711284287224275022186386168279841979398120547050369908614542437524564376431236362263125679812575022459192226953289592060041309911166176309094323382689693824725831549289189521869128098471943436690518427380576599408246330684243394237075033792732567191269794133557365969248412678498524494907262098595410252529368120670060787087946587613865792614781797875574278837698974454616184263040598025909668466901373981318712771584175132088678806195337108386544962475773530421031664385214978374521198542685798965493925312150612731686955434220860153795011072256415010653085171287667168366691233744800119736965621347274933067431922034907693166301138622939773975178579349766496519472775643931459316341327966518555733397791836777412544231992758331661330524191833197610700085928085229271790984293955036034626435958985054152572978471084547290796585181606963250008106651380459018536697293618618539195223379271034794423884756609529152589406519999441720296957919824072023785684629801921517208191609802270749201191384536257176336227544629540669897251877594228950605167112188068893980640162958028545257466372162460534540846649593129876404720967010464558213263675563214696792494441806727144402069380849528768202392975789220437375450402289109349646115148281928474515844755699653265889608791648190674059519484801499459338403313370886738686177216161195045376614792375244851583109319823451022401649263658806127168140486599830004921296187809516430579239223223726956664354316969016040962395677362939365707393204919006235803639932879440180410911912546027391384661616625677778960114827566604171333006573240137158531387057475608009656980093808762890596343813714670378387768634824983628910381759787625492266748147409300348524403165705031706511362292236188528845426929099751887007231949892787229822831807986797520614504873506498681861660339081153604092442092860047113246155360721130374674860964786000726262335549587045421428996607770306640194142857309552342012789710484403918293933988213424692674622062364184587876798030500867320637963382740527107910961947789743430868042095806507693798476441794781685985566116876255193848917395554052509121819434054338130979525921281204385238734177991088940533661881220753627144933042846890267355588653025739223627811501628363921787080564587940631891054880282351159116574269233412628007035370486407064591524866128929732269318968775224386862484277141478409206183606044621969497212359199120748009713186373222043279189191176086958376904236530958867787994592298025616140793889676454154614933745316921900389356992317888272556187880980018944644886564481646255033021123927492870436884049774277580692095734022066654168035463211280589063565772338754658104426655604611068645979754210130683348819381498352840726257261229564456484534369544627242068191157503241694131096558273480399505365689859363472038966204243204731390385212650854740371705135509749777298563649014052122735396360237967824188190696818192632368482189961380209369941850124350299418314453483419314409512948067019841396645087018469410605411223207347011510212168009060512744164899600852883199900817978142569049919095283693683674371286542457359359887147506873311539294549385210199913664251693747776120168790809700067592751026793416532402482353469118384596166508162403642987224246174534240991818058322511344778485949363463644440282534679056895489416752116551689833300315004552594160371037195089420451951416665172110324143752694630826967634242564596000475644118190887651075322781482529194505314493268366998177316579588948480820256083672590322979827711569652677385653913945142135807063929196925480881176690913594390792601393842930158718819279609678849079454657762634416433404361145153099454130493845499839276490005315250674724109658642660219319951476544016427392267524555497483530285787330169395148594143882145274843576583522146096400899013630025373031384509208959938949313415953257496956887672576461492744339755495090778545703449589863296272812321308253833177036012342069340573713638921239942644888194029177448812704928822186675484986994649530700293085394051509998688052006076105414043449509509368173483081702353758003053913940767115424695930206116412713108185896449918401422143785956377185775319301141394608976572219937504036066281321791599247568461211725432151294363522556203059281454998203333870122388009414332578978799132510533871671523056314111091914266219696764926222963474673774290822792468860493699037495872392375654801688737106000859336666904479959118991601311497430197788135120132932003234474127237005919432546839149473911333066767369202566150065012304538844511257187334050066567808351145597613331165670676333124950064614486719936493550284696091098569908579472012377496956565765611612460317628855605391057533195356593534207193763293399052471007757110540250526955395201458659335146100226288884413033288044087591211334963851293607025839338097218342848133353724426910943742464309583406832205657348333708955495354704488709274908832203009558194664012983801301285406817773582058450758048278497948629496755950896861675502342036808847422018008785952403747941631416268560370149635986260965128379995842979094058556173179681528518002390299705550278596555617569479609739709365392241897368124061032905986813352577766403216712916117705386621889655295627298580102872401173362227856428148007117304555763199322017750674474196927482959368301502377335882301094743039976806056294027505836036410723711301906635038789373976518590962003293956550339276563225185182492711107863996813470803311830070251472258548120577557899082189115362587432355303159948846065077503762515841381697591476182789449825087661709869528776385654508581189856036013976853581057507365574560163865163758007212063709357804821207714099900631937217243034426546328737728791884615340744196741483366138908096558192266775350508835548449258804623950527153213196641586401392765150112938269589244402043283550065077371197155070420735153409516024851970785293335419024475327039415512681211554196008546188882824385654875931441051815424312595924589966559694700882434875124727175072728798268357500998510083791308680460397122973972833831211342101257286909297595878262483518839955784474304153641468706068942847426864204620084230000716501796538215646018026549540611371451114936590191903658612674702957168562211221422897658826307592309165487519762941607589229979200226765527493787957616538526446469146698447726411272835788333070994554399171723840123692525823822388718735907292204674937510992121003876477296427995488130139442552830588217959758397201224179434718877698394369299919132559592974851511340786706607621987936233619860005083754324197285978691063959050568834267786405903873980375271337210747425176767054452480018141863947680207874589034272383297384788457578265624527055293513352821776524341813376172691053498771858501936027464071341446896763849790993596332740974128707384769748738187721095093405386124501475359167949049659900538151511669294110914919984974928844995161091503504006094482975859359866075226676087686135433929954930547179737446115828362664569053118925909753364856783950417322734526127092329714493789820562836299901600933814253632515662956575466536620901437790042509894451998551213314557237232592472818018874096327872695329589826108900797296838516886419367359960861840560244196784325362097993089163220244664232674200410109517524947971347761039459500611573335820527752538632687547609867190782735510764638897651422408128296570031108572461227369510423243890994005962118231077039171496886876387874085918016829736986664252880667075567478050034722388813001067765321078984087450699470770977754286493381780526595433510618384713452881060012772215577638567948283472679670948170737400356041870217484342437255328068094798885807646080234069591398208778666156911619643159109249179947703428020181156461472306223218998340243261476123361501133555355299314640798400736896010475011530561036005856930529220277878932999192703298882844867994672575865774955274163357844533991258735202707235752188862325725840724255526359934143930262745229302837380926919334738755039652592776514517109143616492005961211499150601321245507256556142264414329380423657217932597202429961403332484750571364524344696683724167316891848975437871230909372789510100394182636423557647684863815935964483656399754429287773065559146684950690565918836614020686590259655714770371165826339497056072048519097024241834567407103800115967866679104287633483294585696183879537557976640088418866325944231285930738302301252038671266699827311395135476591895662899458330172312835473132312889168013957074206599036350681879786698983780211860774409578665644203092471592688655106153920584904314561611879744365071463411812244790862950825361968015456547861231327623605142249140685240036260393155426031265270238863866582622938570184210737851747023782044247195203634717593667370748052486295716180651401767505589384633352934552618758835685144173646972275620982767550119733141415103320993082259014026099314465085418517815141043456056087434942584435127732936271987586339723082425047810004731839688221104503745359131242616809867680800250535170084208470050936705785701765272381802649655748328996567643271519699964839303245135882557974136095982475316630254832098795209808407745276940975358668447067958709573091786784220186920627412292259569738406838947549612364694819875848699382277932993139598089976451310358576379569982842740747492524659517244101090285569533372635001063787208307436982846274537148245513343274017606990528972797511073417835237008797849637906668876118991525235004789753543210097719519761284885363248593914024705657533761240787011960262764145701464741966044755842978145659130277651747342827302699413079983000775850685877608867718126124425492087046533394171852764487829379687482045475883078255794487424383021236883462760696275624476805217341029476653723341914351941563307400457012494729920356451608938789724436686159041186732993797675648182750466371489162352732499053872158194722860886012395534530828133952434621609311550004558640454750093566627668723824280055100686785131704460343725254260770848417020291747871153779105273367219921051126804019387207835161883775981193783185124855548055243611219329608027530016570475909361483415376288931943600658248284322664201929723828288253078896338695026218190583301226533323956816429040859917258471024466762454096990086087813660763110896132541131240849621987064475464178322546660744717806512959496903836090666731202983544830889480764473439112333632096470459497474821164186429783082739785635473865982490033012310584563036674960459708812113355413870283841237383254135357683125512530915049887213727352110433984237239744632463735560772825123547371255718964348994072255867222959084656452986776283508095817012920486031339007635086896477188480528132265266929528218966674513565488604220823886718604262714071619489911094382054914341612020182020022221669965366701962174292405507720896893439109206413942282833516606285628539569211505834117579139758311174131052212705227974987863695713226332553834456153642439798370793336692976322938393546416354423767426724366660590854506231674050893465901567527502062696854260349696286443295956252512298624759628247891211716332694813686151013948737859930664833214683208400805678464467423807238797027968049517463809552943666546358145950902648939994189555110855760255345510413402921877499474950985410071023463756834674512917905557654866103578262620082373074539295771491749565837846173471934963441581755612296080698946030436870038114785004603763567271225802906827296796266633999716938429720412232811448101401473177019992033267548792502752890107809809103439183052203588868989779760670014932338668927803692579545513614008332198090771141308352913285795629839749816921061807108527006679653637519202318499119072773440406769420441672522443441629073014681633777845097242686759756068426690968742352186344020995601454114110095220448173676676236471993305304837982799057625248996185516057540339508514386801700318960575329362223174512293363405291258881728050377838058495745265491370552358395178084824308935485513578804743251169642082976424075332123698024140105313601253651295517977779193214745116232508727288076744663084459961695855628456354929385784239126386871344289915317246825248261999577701129121652487069583419508555236349361537875571530881831797320055092155932490644633817096838934434659243582656019401101894687121697521870135747697808988356179339091189293867536317205041758692591710639916779401132736812771920101165156724664788952643820023033259765438805373179333626728032457434978868396714647010692495741584972758698269624426495744319467965141000836799242891375807754450964064158828742022269840516952958465971753538831067042193799995831438504968841057752971341340834987848344129324100307532667751149933767270102513653307564349454357724541562814179419276600546981754119365656064916933603658356432853780245952453047307773508252437815840435680985726493754679823605199133791790262912398766758119629542822091028319659425000911973838020220423265220163673665753146048070113449961088346613199413117925037381388587411073392343665357961609847696347545985119575011708978852622256910509021079570751548434606922523674686783641727972725195888031309767436800072760043662240044284161904584582868862129443558976492583031590777564886721177975524883186236313069458120338126688166475109730147182905049852420336984504488492201402906881033167866227765615936086387966179596373005782244838446174871499448186486055389763517235622871716634272987416492754578040337409172590799540180465923728851502519879858713822879471844620880042929905886168356303498851830944146137615232178808247033217211635248910543750540465268580311474009901955221385421958807938186586576671204332985080961755563222889556776110408916013189746069347203971683724625237645519225150980288456729182715470932955460559687422104013384931924220776722691433643155494987189602679241511664029445994383001061228153305471974918418947257463595410851398495987838623459196455096171211151659433295631650205705422543759824867197761827947528060225691584060880567759444297093025685733130228384059004523223535193767081003941447447800223586196463171282686720475265288646256803220349517280237853482247973563885820881500533319768093780037415908086146199531517316684798439030838453072036187818587057891895888724032335043735683488168258736618112355859223891130047972756327239474969982372485590288564196920867364363690849398427273693285372108545804888728661398658087515736680170659532308437303201963436005112278132362216056377573927537149467280527748354092749132895619656384436111046446720634824485341089422143248993565639121669204303355679994894150724646803723254599156056536952034498179451787236241956510205408958866701889603238424185105656552338909198159582334742353928673817718737553502745219555847705087868632397748922554509083864373059913252927829085435334710157562564889182864862316849321347193349828736923400731325357592201645528492194445418541186935166320882722032586027982001794300942931203417665368057367446977071264395746412048854581235922629856296870411625500069192785948934654231383455006012031309904807263797825270871483786826816397123493285703881039308980672301013363791362651754784583641871073410789916182257626185559637845287266258966192955673128192877306122757544163359817239149427267870055800216651543276281234950638744234366921185513241365751825799123569152370931256482968040510532888804032126351990186991052006394285789001636726845544640951580018587487651333918462936921070171020779534667069806009791908916118196059516212203804783974765377297992844576896287665052439067897597871239919637393909242249928688375509590554294684508723626595332992951907436805355238601261804094389580233923459083843079159669098047171463808706091498313379389294001158438319019159990337376295606811655586498403303347174804474055211760419250591925643123660076697774716731890983457760126233893570051624803992247024047760140407412674155545770583987663778719460637143798365324613389757529475448253532469091463701676439386830756110356356592862030673611395470081127762412709003061432562109118321007349529529826969126436358281391136088940923529532175810649788991600404597859803111603777755645705855315000081393563840515170651247878488497537883268229837902036714653402166844271103087887080762228678984579906016425103912099221089978335236837580090392591413621519352975669318317446606858110372317615271213054899460145967005237098525647942422478483080780304004866430235478626565963942072483870413536184056712209604801140537578832551956527758719109324388035929274360012897679580512050854447374801813192960928970275361805543023115434721723611649285375920222644187660732004179197634227250514932708872182509519372895510572966246123442792744672952414471768392915359529894261457799146213043344879822702138384154068780095329816799069383211637043912912454335015921950272445149530722978412014506702739973498342425612563765116896069067406240592064210687209888594590231966915211642711441320289739862959550172247519663896925898775061926033368119085465157646523020123837263085983530146801563966088372099407096359464055101507106043253103803549585991402552373077403713103457305904045201538846686957278514355855350980044928597183900762297783329318412905864573963940160949381222064265751219505990017012940162479896471502452052153955159176414403041202447753978364870897538989383503758524811657145124888776615066441293775840655177665533104711355484852447513031897441861233478927413757519912002746823056393296047322173065365530122428168587182824131448075629641984700559377550063218025587451640021076913779875297099558303568570688389766644263063929859106063032870856510947343646531542149553740826477562297661224479794640924006653400630307529077046400503913588929093133896803508158209591949842742056445025485291121080175160334640295898336956068276394800944419438017851556153980610001096437381182978023738037198208307950798817014817290004824644475271341232933425145255737101659177311434638081696122696316571599220464837745905628888420187337359496880665165728607459468201937977655722248810681326373203396194869431655547515648386606946655042085251806557121950510215871475684109380936658854816937415553121541570574139024406009841407729973121188591593034644539770452350773881640800203668121109245581558837002182102479382502527075130024724933143490439680932640164266739233558998041019003377394710494417772572376588588815654036176517395652990648496288843356064616445910109264003732516951657029664255375392793176328913179981858273811440610927660462870878054882273317488581247393681668564942169501240098223963321487244648965915130149062368790839664028925416029144140376245339395708690142755769173211936469499970839854139606524845038685625523507592905966618002505474936589849509809495057858019656159807792752643582188964775641256137907272546805113909487041176889580208552243754045093798905584543574420754029434033412203861216673015080483436840182403789911588880499538881566684934203205354242281135923180758151672002638052380494097406482307575875048944182232731572120451118695290185503826000257470515626496015024685967577693440401074714325938496993751511856896093475808491331930306457632222822279760500733937077622386609992210196257231625322085323094094315335950773846478687220530039470003508676060608477299253256104204564432138208155874709135855276633087301121036623094017692210973282912124238890200711470791799117319522955834864935083153222144975828023517994498996201634858246838731092892331131761925300225808771880179403526692884424447928706985902943205875164506040743523212712007337924530981586660022444615916759451905093152729831176548039715750951460876159042259803617698164250396473189093218209661430256771701358767666098828885929054722803038904671371263142745650123313617408975003239544818384396727189839627238551416997825265837646539591225071222811504120614478032992114722845026287609770118021210432904189691310081958070872903057248666536767876972779767958363188954618284072669847723529365674579030859356523507280632668136593596572418160520259312589403062412069311137180215147405445851092209231344162183707448992578687918831976393611982726526873631422316504143505603876538125599632973524048499969257801723282156343705100049045060751824252477112482003008012519695888203550361510810121022284153731561816953104196219311630055329575667352773192813754928033576523090736903222504879371174531184483566166498749137174381835943492749365015980803510049132737177341387988477457819914837100817552780579426262954945428239321086365313365982287672224148071280926468894492710588701216123242345991770129491549429541154589813302580502542606648503718277168409757708063223987748120947654504579250156488777552364368134584032968974612599255481927740299603999797159409424972165849969939239208023974817204511105002005928859752159530261723844445655258143118324388314587871326892327131452385724565014802035714947660705044626183694184488969454110291805278987256774213019955376496577105904730307829230226763403161871472845886679592615282633049126364558146803853125754917321233960326240930316638103695327451858991516509641305125585118963149938189740704945468927439335659543451436407991547439183117682646982126776476530374293504373547236559127774437565984344781135959605517295748594093428807010616676128958522382881223114825996564276172925263451674096488078724151869062589834002401150967730155331347696580980131346342126142785819679327326430575200522136304996964997729373420041093217957457053542215152495409609931627463178522754369609159120113385132450303688014085091013025354978213243511413911521722125661158979204665807199351423736202317115145601182902847999363983215037541102321511706405431730162665320531764826096646190364370546078122209681281955664791129283981894024983111216873353566494782962375774196217905340697246725012240827236868569093163898560061396379093779636546952242198104334971881159112777363697807627151648736952874141988258038700525680564259446961150975779650702271327753608394509507185050020358480256626465916877686191103238086102775412903691450069180414222933210852052422567574583524956250582668864116363110669912418133292458335746472894951853094818237472305880527807292477787168091739960558500390010368036853652826822878628757869895609384659942524802675541327306876805270275537018285849971602390071509626189981719293281351691698858721340348410449868904164234019982127251002156133033449863274273596312422737441744099085313841200831084357102277787696227512632716824350160397166925548309673945537963970919726419074804861155618414702703785337235626102318880721202483752395128691201533422494625863148388990869999043395645108685909847737713602607947501112980581465238910370641336197218417565712236137265229463072704645402973106719536068914212592967507704014796740347148670829126886556068537212247951828811724402168764618449664360552433516056262049501455312759704047408004721035986121663948828233973874357450049662829124007920227615040895890856149051562254277048543622212208912928074299727521486749061391193385293623605357595170187216426864383756016551300928946667310996434809411076207399193750592581135615657764384024033419568727930402068734273685189530487369152202419282700178786630689315231551893721092000879543611553076231421703903114202166427673080604846026417829250566119977275346831533184967982938659557285829403556974371069263129185804396337693381818925852264272763192826695924106998583710237503823116775268678277136417440291684995662299067885608350004123391790357586582271741677787100549628754412161399573641310121175047922464781810868132373486594008890147515607784508845283833243033147809479248609483001495710123538328275290160009300440021034397120048577683784625760773977316138233091759128690277354642373096919218394316186203038403640940531563402833452172476326681786740996236529964182329062730809583573107859846354597504777868716164584360344970430280757434215931389815840347390429594248670263391373958983722875725259126143482610905794077355927452465179427789779359866502095830187604547315293228105865174658776436981623243575496983490966743486185358673020579267517613397636354990767060117044895566896660205794771587509203783249929585515195663722572403772006008967419038505977125475743954564450102015875463186623298694040486507708395942350023452222726775425105045639875978213545718396939459064527505192924378950789383229225687438058240788673652680012944513367262097165022397656668953414751477787404907246902668454706271328197937338052752918864245962005924618442257422624500034620921423995839064807079439542905008240549122039510328272226517027842806719022083015832055707509393574255167465876450665236987816274600226963541286252876475166784154276973327456172450097513282707125812145980607943942603022293015507822311381175460730142472784334126358597615161145260507885229731467327088504728344395173705779926658356216689523953571851429311986722443102054450808993145177375057291602918353434234648166893498228398689425868291656572162502424263022064551370546203510760903420832039494532687317769745836289263567516079338079746720214932969315077784718515590163294697894726323001572334984901220790479951594804051394783184306385423329579950465594063481812550193535482478414073580829911266276629177324266664022005906022750312330072599255668968469072347389512629879795361157094901136965927289277157694719519019132829421240168973732114075976899182024248364162436748155752442450663187914420774359174759093239205514316859837262180666665089919570001697571208526693259758759617718977724855607366682667433404185983655041611348017273017368877365621235397531433160562308285922594617257910154470527767685188337808624326442899842528386904748428381723468657631893722412986739568640087952626805188320619292148912021716088669288020182011226128431502211177195907015216449162905166387504214714515147882898099605244094526907358972751931741601136635087678413210586770854915138791309177919341409177162664188968198116817841992800616883392198018920511296485775737425765075886678720859408975549282868476954522494480420228872801098935631094233781834956744025235138791801234613897282967360994407376567680151530259555292281731469115874889932068913532761834081902480879773079970324601785283384622610697905892925385564083411884045005805394687225871270612790104715296735203935513740702982992473093677108591143427598896096333743010830680805157817696395929294605698757847452133903532135155516085861655391615005369682298840449036291731892403939997226100145148768941031271575574397907021646513318512740898355885586388543105536497662751597185643272127447091640416682841559113441753408108272213982166321233687853294015842174462689312446814599919421905112669938969114796256148180281803060063859870250975590309437517824820216293329316965906840692385877909528950891488078763722061549349291097176224132008381688833777796896613236759059998056830217986676237661247143132948632653441019732499623338652946700975310521495745617041816100781779311463603187648453545156234412343490851169833779133648362803048497472589572940864138065346651490147405352647633156963597152292317058684848612927623972798028359065924319271473136534814616442358941372290347760414895257992237132260580524290332721357047271084200369312832965148373088805914435471402785982597324733514115558005256425013273906479831252708518143886387714015663647762033895719097636408910586840527830110681691465105907955640792486597666735971482072778332412750310077750347585793071805156322353361036171820409706997402035370717820438510550531120971285712783475518370436490512600728209578925487325469018079339312242290093631474920832649573514849169278542780172255419477739223130157901179197412054092775797111126927045064705001401688258960083775580086566167208477393290208675233232888594325163803122143011534957146995428045435747962363426812636236889683126691498625967659912635223182504174214177674349230594016435685102634041809243176226738471940561724239410344651384957795990046129643585529095123629409908003725690958411310833295246136047310970975827968952272896510114955042040622318213441721372394890394609661993715169332479609198128699565755137654587824795704527486342917521296654437916487949688322514367497162506307946740719641992339178894145785570154125089179412320219624102750775188797715656899911884204570547166935607162852744832262710764570174745452747012406732013090447565039584769560801475676075020886390249725671762809477075578657286301283741817008045852310275994525743028210910725310542579168521096408229221304835980147054917127768680603833227826830646148850536404565849271954548602217103166706253748665860314175407118424105820195961458589007547359102612194214711967716626481216137398608129691797568231879990613352212025095174821744832731893238459752351879251336819092272595340326652839765908580599816166601743318592579069828887768475146220651411768675557346023970585117273324591368914758360668717228046388838974866232168135006738533271064962448072389102702376230557653150394201430350620857570525291606746166319354316301159101731802576183725660191732947867030221478097479945955129324010824947085894631535121744686088170574373862226489002177635344151119646933266805815133896321736958813516942632114737017740824519301653347510822205007881864226266432767518591821431110397729445088365016976069102324354036071680526028725321332664000413111370322035807449673830340391713840983186777421488772817846027401599818586238377255536221833674824815664397235951505137311688060542118548361966017520362420236381692457383480181844970123256995155300139577586670168181416105611151164121870548655463615225887993010522719864629175537069658348759702084060423331984681546481266137446842984228416885040689705419263847046578310008602670550192028313128775616626587754819829121053375142714376034700181173085281528143314842445926944052460089141055496871126718312828164163187283823410633215156448255771080808181433597828333077803370578558477611970763596904784021078834771433630616966666035538646529007151415586282849552106960523523239380848566751716926623685038461300485332018199882455813327163393432076278087066211893135851291645842569378174706985209894014188762919956763244942573452954372149441336913348732089335630167481325559151585459768702265381020262818833991537403284401039242278560453742996746174525629544872628663048348912520072644509986159026421255047309317671122020735647389405910751692459672884858423161102704779849185052330826769085205476843838847352686778445354874411006499374019288865700235622174275824852254282168739762325542060553949274693919782658991556752808202139699980868134033288863054975188148037023936430768644959446065979873585888522698453958903619107185433921884143999385276647557366800202481896295134752316071808499410758838558072447789386567306358323207153060215983922579310045887208024320442041443690632646135956758291236541685955018272995481067986010665733229731659958597603491102279742175059124010960630970181408483791206129630627790798807957896165296918882954623793583289069675205896784979431801159588484342973463131538572663888837685020327663987130998255543426185697739496794508507423977219938498171111890241102944232064057897614835915049250444878075470260921315906411436571959866414430433664155806959606802799431874927394810390096056646915958046549378750899999595169860456361915953738718707767283160206942034629903884655422150577598182396868759137503146351408158967207883768672432756482632548344075854121098232517166429674409916592915014938189905548515956957507808310703522513178929525110971752683664926288505397259861969135393650153771531071896883979983412888894172225432512200598586938216096514746380642862922781474295904656030769723910113392439969450916519586569851972211465451497488030099646631739950106752801550454563538192275261382968148303359706159069296823052258163904339310926923852545840065982272616647640233528872366463952189451116880914276064300047433651607718407498915611051156899155325097937686487049244460049065597107891650208002927373378374934744533609729520813650097834338703157527499452443709719593036806122874524560714185166026329010622910472929900419026738371372344636683876866917820594332470604168836113700492274324768015085402385007377427745278654555054604842442280922707225090446052412906140468561832565064119724976266880927884068214720232204701328916019807203035517640861341474375986966797001552226303437585912511208977688744076707140809401762883671449224721401116207148214502860914947310450672292907839289566567062894849806126326000038985642458637022012725358069062961435771535347558720356163069256409977130665320203239945251277817815538695237257681575090228900792255115638463222389889901892871106618182029352680578569649936156718636839775033090956811715420102966659637131430425117398931041247803866580623776398137021135260040337096068436176989792805432437570379985829436035004394838071839867855438382095596025418326409486172615444643202805356289939978586747392757177468994622616603552137876052760506306778039609055269946651828979510197991961966593497152345133194103903100396046395001346850179690081401430145774385419005122091100240484508176604156157670979199224363723631291617323090098007030467749112232403135445454355058195879781014255669213769194700510198076177603279191567486957018027834552313640659706554250951764547902234598554435180506601877232922155605451904413474044222945248463024670760102550964387681106052464822899919265261709568788394531013203105121658738784553482945047378788200466249017563911106700547326146282816828675966186757802544158787079651519015634309180344750638436401553455028469478402988051905546791147640586533384672478678222892916780739382720188436293016306507175258287569677511130542183733450085904660628479593648866130485594184541613451401865752475424073482947008453503680265402044542990185886731082450587037342807096114603276485630789493238418118729290518166620709749072923734517546598314087067032949131515967712371103602318112317331582088850087208668800611953686734943828927757514395367552810583087370263938789229765410701760168906922215194116082534605881897787380611220632340604065543632401249201423597722882398853116467581511754103886175304289501147906067232743132749389708768983773370103378782056984965741649916344354791579775474971455519511246682051219297835222378930991116775980112131815448685589588799367866977281373917786334292162109995583311449741519153672999109008657988133017168183541831752662527216029331157976321514680956108920633577682480022173642737358241304662431689792010385659394229350727060139118410448914853376202385082106017958903894289627247585084294806592492772100162897645154673064723963130351477767522047505911384781094130278054706911761253492860969483500306886588654870119306303351602743321079844322334364905330490775008106190622865292793227277344944765375337523143412845563207692168706230992316668942499720589706676290390522298082332314363243910640670722941850193324851175476530608670965151160592987195642306466233320835951001209918583823460094326410016117347249197470816926369000002724458282191949931633269270381553999817037222116389706633761817216198992724946574545118484666387007906178573230685296045511140940631358206529698118823384498593657782613266225147920358707657912791953379902516319344115981673952147485475636367292704302460755970618165729365194475805042028515587403076912432979469064276028586327625216560757603600037730599221094516162138908369362145195028227678295519309135172386806408220998827478309223830069659200133122014762693525909906972902915338530016276538128128716016308932895807524188900812694395026810090680342851651632901431043735735704838024280353654808902375959439913825244380655136936264759602604086611049114728321947413384654053725839841213156250092431896302785268252384699315324567657398666193018347716748270736401241017726138062743318145119869093194977680487651083807429306315724222980028893992282925955587160682881894673063281584080649355313691770147544963012511575410942212490414268755067329476018103334573524041927424166013714525968315777172364017534145426989575306974792039530294608250859706247945424627581600071806981862597291733206054115223313002299558278351771487909521862273503458276111299447137190287504864100037649879713537246365026502022025899776648001826463065625828020600687352152335981288750333245206364009215459948177952095310840577977999544539346041240882866923620410474828853467692770967559921973010403389635404672779434427525926977206169709277445398830682175872502129199127961400293362670157318530450462259300429866023139871634780726042983035012624938925098566549254453756358610013906415362027942497773318170281672213850052846095863104021059116348723738913623219530933138059793666949831203625588681995800780146740734964327885643843323401426100283670102980445830163503656366384751772960015508615976341978606072240447548009960467091189949657981936681591488534333552457323111215984033182036479725071703015246744248666860517599096177579094679193950547598258257974722732299109495550200135061758231504724735784230360384880966899059521905473907934073452559148043096286734125918415761917831736146865548960452394970172855039653240895691747077475582878371347771750320594392040508886624758526602744794234548598387049415378048213792125670429368162014641445377647969527579516323534999034661436123176834885518872361275642885598806599977529416643860334612262052611609361312976253396868085281552713650881188804144820738357412784049028236117531023096922673941456369282894558650069752920324560106025304860636732607900942499419122653149112786957757842181033045201515537715311096870189393697128380933614245354942050989259071809892263688214719915914939946027016333701523094086587981975688389023393556956355014702800469298290639984670216827298488525444274338236694726308128976838383801234168838200941854752345283664798205088819913009575819437703273193692483375785632123167847265584944293630118672994201095711270775295658669537827357456938165142662127094057830565311904820344611834634049822989511612194238799882356761744942994065374798667656991677742236436842479959726591181358032356099684822818881430659784597722422481873165944088053022481263506844932348833342157550708924384969452686570804129885855658186572428786344324837725300876684242594363007440824506037115883318578005305149131691205027505937794505035650574734964466117700480940454029077540946483194865914909044446454119203942261748239739644188834355286671897061895869833242135561199757846543732319203538841408527593288942216558578831616756519378697491713478225009261847598435305055127574396907823017777520150765288935465055848140917770796862490383920436010935937705784361510649942095697781284054522969110185089288848617845240793099901029537565450311095520599999890093956712367498598141100190180189485067303042992816927937055064013629350754954135827621336933445717743729114637120982115819254725400872794157979977189760795168618796966482179167985862931447319298895533751767466952246491222142031584950036873578792432554879072131626629307654534888034511529742904676607373827216119571724608898256917744127958560527799169948873475159662368215277947853847635072597554890612249933728003876384643309889851175078441352639368722162141137245752697722995932715032247450185650910793993586867460695341459925017196485744431178238872918910412121870445998015939717018819961274461406095806499461163054940168504655254744494341557953357474325891317891331775821626962709142721862542785953446508204575499762859113382977222882713160710687962873212400232421792018189157844132553704727060240441250275050473728099571388302356582509015063435345293322152498156307318925268892312744960210025665407399825704945210607728731297847577450020425047117980853983767424270272314829530328414802279921458475717299153295046527755747993730311031057377981634419984774058199302507345033206748747214620439379620454968289963838559011065092964000506335221615461462669169465965916659182353809945202129065652254810728963343248868181097653878369332238563997774683792558946772715939885185962421700066950537708391380999495738909015601664344284412402451925816717278434879397838188323526008779407341839768452261194557267035086821904881726052172538354058666248339827990595813076801317174808732724414574156463053295002493367539080537043680995324825174401165073027822281280813295803344560067460153471599571801492827283289036141499548506787836019737065078683722687537215999591474281788647029398042773362222379898076930643672487654980212459448245839903271519285674695941885710303204631883701369739323412984914345808996267404378200642941343887368267994634171902067261395684410346035599916106303039278737289213926476367077618011938812530462754301048746417219402284548584859299493368919640591819363122618548587914716771730922959272533397145947418086260252448475638968682276028927554670924762335222090218920813679036029506739352551683585666033937639699262208563631080547150543207276293424370643841806511576907624344797125199574654316564254926451830543152019575016773199591237421575891102050661339658617841683731220430635602835891662446504878990933907577760340406750300888687681072739415440590166206385153912129393334889838955585213728110322362695174068964422044316238371607876484991787230434876509446507294933422501325379766327361011741144587738870408385927764865040154612386173214142645421807411437998137854176591866308489230383173096771289949025655504428466873182859078072974540091533380068386661579376574028138291639636474031299127884397101031194158806319438451149678499592701227007649682438542509448307578791402276235488343593538479227107257585209857781031495232255965690459989864632836985409735222782827725712176469157708681104482665348919237883899669538758196453098899813501881758701576396041341131112563742817688836575170314437559805289461230014661279201754510400928965198199566784614780232272374271881690657226697176299427755282460520595228897615244297062581827870939462352113647166873121204992985932277489754560248560781281470074391030015471596352420658796804233447449996045680933999879559983327072062677245338638625571460893500806174898422295157605851831191182890379112441057828304498607826016143065210416298129578349122833448845376427056969927861774057301286724367072779761548725121861090762108816183060224097610807006073293184793109132631302483193791021439818139142305546884103583785829811724649880444023544902380863854027492480424937392792920917392895644882935329158328510611350640105584877310226168910972118272292841239060093609501608910838067342475371481752612782674757563298445973122297469737005471137557401099412641497361162700823689439639580844994730857128100579413377335410909383378080891958999237060501502530967776866961860894591642702065152820406003290279728983164370985268218929248276259048454892890317138021056983508413358738027068781694709498758609935819611318286456836875651411414995866008927562256833408550691091687397180846162746196942002111370110828913629804413117318539777788771662925816358670401255233001989055348939565332373508132443631546171964921464702052976120484538246343836972342548835547595059974518901599734098882337196792790141042292175675563707517297466481695915133790247627489108855404573164687957081854592503399940307614182887696871230581911915946718126415274852985033135336821502324966583978267761084517200351583080639036953630739290011147205604678572268521605524625730460021588446672435696148501185131144293138705048607221172280804018447861631146007739947176256668512398452676377050045762398954815045991258986691705272411317898302991017806475646173315456235075265467158705360987329874498095521168873753380388110098537446999015903279607646557666420164854865455783753527173840592619095581127706071323131525574745745203416186883925249391949423998518960579158450074014108151541303209356272027035537958863018159489315032334148701406392694409357399892036541311462191360801847576566769324565612822968049224982538115148504165358554459381779033854369219626251116562491678672967403325387913025781031199066253003435964766068647740950866582882135622198705660344430426075354567130440310987912456498106631198801956988076867103753664238457248433121938615435701078402257081824147331202745316424275590208381805639759034665318745395325264444018984997354986760300832468813314213602448937513643737084875207738099343247908373746545932563336146080405195922307951455711045659268308818411641446691162367822859689571313488522292408745437623691548770028981100441216759521880045923925813033078209885748926031523826418712120940829403206919172454106077299283376217647238255401911519248277604236990724649189381533567494155588178250614633662726073822237795613538500063430602210592826505166410371388631692923083266926543295223361134304507906333926570999422769972303863653286579236236278455442683070335654312235968586431976244641774240782906502361014212846211388803981272822168260781965696734515913130313639555534621180853215816220252515561024587606782013595217243505052164622383951163522054889130635852324553959066329634112036000685917473868875417371892006616685277024401289830678758058629297725437977106089146011817670690372816603313021035647828696756793084645987389483057840609274954252716214053991306180151089574090262994499799920538654862710210346536076955848802767253535557591255853448032822109925278824573708283538441634944936464356704084813267011284689072729154735233724141842060438336609615098622094508683980033976647609118070280730509998901309073734656554582555605505306536533917372027485640101762302955619000747940789353474540770966537438402207276211558913080087640484234555383004169060369468132281614170709000526432569515339657728245316216269812179030663538311145776398925916124037004458299404971501403904617021831377106147535695836126688490574601311035788248831544213052100570602815383208091246768073293250321502131562471695362160499815847007221477614784311528667649134834667804566044576638594259162556012793250964421094843379285541153433868855208407992229258812938281568454084825614847763654847776932778186569031515292557042819402780598255158309839184999170111399359274799530523432831749851090036954334387439873166341226336430026569908641539946571603347080093649540305568553210370705413413878832863329275596624795246687975858135477495955617097512180978463276714464959421221082290388125542124660066019241359689617530085307874971683508633691563327436066844241400850614984141473126823408832082067129628032170592275526319628834647609412730799017560101173056421192144318397398155176393799432551875207046885790217947216150315592123838416086017802524240281841053437289987599389642067186260376720548447206145109415124850898460415369089793214156779154233180132668576556978393970895329638741918776421128958355444076940714916893446558454290834332037009500189533289034564547080283084935953907225239795150858986285778274664397911881306481270908476304760290082271311950187278026756122252351579600806824652454039652977212469330321904469615019984182813150184126316853715326215634825230249661203988360892524087579003128194215513449429781190948958271080502063408451329548633428255364415621062817040905868101037673025587784975770770267188392050462910789287855823959777516722868060149067842335620598350032319115139036820053516676412525757679292206888983335902654806471149068388976764198698963353091205112940738314824694580925335456077262346187660039598581125670278004339957724837887646858325452263796692464847626390986829374601970649986470133872861553480950058113012759772059346491830936031843254420307612557206480473186271696039179831186806554592810537696300217200329000665115396440110841873693736637793204844588509584771041414088757088563921872730208312454952738447394686863047167908244730913857596964551955672472297771772058818404960055613950180957034330111062459464036422441547350883805002258104618351506650486474855356582302864799850526565102697233992132419899884937593014274007306519861750648132881292710110850402488564628441620859021042128279418374837681854939932046359177029867340018103597580894520438240237962973883243902081534588302436222429808223523821975333174427040382372295547920127660087439244273510839383186199955054707721159400584423841460455051431204329370429861145291337932085206649676729606720350583277485005779647319270852987936364012613191155987904990288072618110382701816415106605623531702614652922014765276847310763843104579772973349977662393379663074422499696021029885025352328625177317386099101080592138360133750591220829739948908211058172447406529511585480370102308115460100862723972420458578809611157177163446733076122979869721837655372716399797300508584466650415942223863832663623572928684635230552938212588841208590459822355300693515764558688538584567792232301652229684552406364710480714944019341210665916542023072144549940974106162664219511928233697592680100716082414366459383742502760770742440791228874812196346513680765910099112009481690234995354331922921943143181251374873409842034337522837255381518996337222435969611905620269310210944666819406377568020156087109193569241291828685487403111922842198123242425283832582894096280590313747090528902160450850588638770045744706696912957043192965733738213783353944240054464650233517448717043347872877313789702164908779583817605882614092972288688456314705566055326726023252110066607077634230762445048463685681251959712246322666171918286745960165047361993250978070808572178185799426625041149956936794901820399341914519733628322992492584524559740192065438360560809067529075959969276719656602693609352360855851779351316987246516552788874350538573615203038689344513400846990758019640043801835397638722412487298152157548721351124997148487117033359003876012124614338277099792027928316917239691134062862741954747588179902872986492779944139513262089070367665215592596900861298407405441108739298448138214334284924569670553473317130052596914316863731786133475298294543144576253537715339686205135589893351987340012645513243756204294620828553654819371695061792121683775620986477404674280350573632019571670317167525043179136400601569736768474236830247161711871937811587334757341365171252330534325474107583318454062197431584016553074832264019516735588637038694091585802213265848497350064923333591172394621205155880886289623982199429891912537016004733795093202245134326679381982465735334665989403945603641740097570004570069019314975239414513270381738835746778165699631093310448512406970657474043907116458592454604202267014518819630376125461932352689380832724697735357994187322580429503875245028553353771504762814875153787389145571848998475766154779047776790347422222169636351738733511180215968180497361097270044495514636122040080826035853857307858312934239348331934529805635321263466980915858942404485959582618954652744229124464913409467639535900275708610167658009946719662152280750622638404304399970936152480465528791641072402309493019357303956725980197348589428830765405890473072081815773626509576026606753051369441019481031089681252827233369314516454567765624859042775012043595130596363936311326693204419869382342079462004246806227779656584828036973284608398021798753312794608395624185925827906872214493964793366775267750451138450809195674901678105871926039985965885442942009910407500203192798277721915226218269929049369638466148340963684411313318355218065789613600068410651082917448255823784155152004079177469103038511890305921122539557394215628580670701293416770725455887449307474445575926694666212890545576213758315817586053674964918565196572314805663268636022424370890548879259815241004717059486575539417332214739949421126175823386327160382865760702825532115453096802941137704885067611823379789460664887558046553215498735713650626104860765410741281065536991063774260336878852070176630230436814230364052837035053716840894575909046541725529134406181170628229123877959512425866585602665487300787473434777364912572739387027095843196674400891149423361164874459778446896976191033379586963419387232821419028132560528225666695318590742654578735797619175844376236310576023806375036054539067691322379072362990504209763660339461609606833132283613680946070916187047731055374645003007705707315010894999426990491701572042773285374764716406555625873077255673110687059790345918595893628186507576371351396997747337699408059816454680829428293026796737643524270739712664594897566140804267794768749906465845601316306823692079843844580075545777308091451758643037586693157735575374429595360774423082407281738365708767394371813122372191274000681557397734816228465785812323391547276050441064911599081313653807535230284491883032941182557838581015133672761164369577732516464675199557733840387335118479016574183049813207246989591348249907316720611932767355305440365365097660631835101847478022069595104961935128639723471274580440950447641153026998245473822966062017871997299989814351734931537848536725454442423869033436599374137800355890142529423766325353776557592072086338271548180726193759408706914548465620449511221506556427018473210872926888000161816458250107529517709487298304585131066077820771451400139970428942148855548516662802825822865769974769313165732912205797074641538915946353937129449928736190254156640386779492336329203823958473048176744693826569580872167015319227802371664310379356673475916839520767923365492338096433935619672648331677117451261805208869726091825992704559775866396273156855937536717172140636375092317902406250821539844817455055386086326041034198173564210815344052695390593913821177608690125521890320480782165273033992915577657799738816023550854244545092858527500381094349434858203812098851601640849284127503434716026811972146121149652413766248840422529833455670635877153887662605967841297864828305121409266436023718948624006847459600637280983265159921332016762733896514602939445437570772458731011662122426370814561649894767969036248580127209665820709276063966591449561392258830811839436733482537584713938822804097941624963117965347630513804203907169655077764298962013394725126832898496262692598790139611123717007946563833092972996957160441251946603096305692891487294248464669329629269829118366086410367733665628654546558394093645681464731203069413178907407772241487950071487339656556397074399447232330479102178723452160699644377600748668976748094300370334771532517383271856765106143277754908160808236321998518132550325816723713536168368129942197230811484855118825662574568788501682731217738611287444991879620899163295078830058802392479442521537867464257353244574721666829972768405830666080438810077660557833774267333031175966064730895578956383016429637124830214293841747475787329382105588619038423698336804547485796244115129072431265856310068638263784396203447664159881887741567835365995349006521419508272439122759359993904557708758586820742028054944244790470346105887862165971466890369316341961450236543040197776703745470576712845590905914792373747284241923108768758240729966231960494697007883669493566452186272321781582370736685031687805423756934083210383942555714494047413017515847976361526198547952794005757341038765927537491186456966432266370257849602341560116702446673300435110080315561682353607264595649251269301868026352612449999553478505535621524260421765665611959819463035188604657834400961167059095399918779234918358455561376276815707684508000846681248375002784264932483284368937051999409778105608946375702695301490341328148709593220700069590749884916830701661994064071021005084475159220396485982399492502100558173096135784372512551712032188905315928507934295441623836145936567060920624143698861154869363920726728880295565442567043080382355937816946502147304018417545771375166760310635465867618462040277784460492565101688350296401528397733782049559727663682333485214998266570425398164422756004636035862519662202028461647357710423019361327548850697761597278310711758981736511580366416243085057232020194845904931682207615121844056176551141545614945706228403818536281396550021526096628569851714432662218320573182844700695876210586718651619937212682752339051010791656727621342601886110016227296461133905040201499100112744574111324715310341481392414788236657780262894928077117358727641216095021210603500321057930605727326839960030381413628312372955687371277380328460722664902297766594622350382238211588078298964623085211259573404562360289086459857489514561811368604633631387262911862319400637498961225464181482578800750814564450673119537676823704889861328763721043096863456836214201433200682896196873129802433963006437406785404182404385638925335089729308948457707146609502036644627667452398169983554514718382844510356596303391657108680529803354480040781011286997865917898223672776745956075675451943733556923290975460167635171375659914516836923470587340868995550442803586189526584319395194749894084333051913662003033552927906304748044145502712115460763453183668472997447629931487554899208665413702447219203351116506527483925206541272193429630390942691094524179397516969823852957217326878396235087683666952247079711499229852451129595281416223104344267153409521480009151874194628155871111164202312338516935308113600721937358590833784388818639009171275011960954323851642415415433651162369354887163237589030684059166402338827534957605519687082009749983865528914785347215924124109007383845747215749470962485805805544928502224898846943281771352906409259582962856441869946181482023958917114499044120125744982295581482203643658070183668166395944093213588844641750127933672167667089447231706882994698056372139937872506776465665134039676890784562822400147613126620588277256613996146251022445008167084810481771495021224569070897596077015293432044266623620619469076788318651856373045317479425323091832698883511826457295147679079162432220572764300120644402310326560782840027558570635086317349006075360362128985049557199824824422068005218006611567386268651104300200832643304561299926881902342463556721052408638520209409643880136818014264028871902842806185209891792118621418509783063782312302471693555606566435742111343673811081336906652396871182317685067275309909665995682701033891307124755756722212781061165455585307873448010342610727933588047678456790602737999071774123037894640220380654354261338851264944418440579544070406540426642046588332480344842982547690255469117950209243627916271930956402314119230164437229846940036686828230263270723445330024028696379102238566638983416519021881518439753619373171513175077266328271257519547864016434941768300138353104059846248991385552383406231541057031666555694249588839562616821535791457926441400393240401194357827962764419650689004055264799472278455996952920931346862342290418363962658840934078664999118269096392657432526933790299111937937566721575828411881800722915608365048205887638817008080371832779283004682355247947745782966234262563032267891595360848145878295452855082861020557642567144063519794203489582648312678383789131011541889848012844101039318322433587766641552737257351393135478837603378423607322168398611269142813241083354197313243005131146327751850295704446870171794808541226302432903458035152222713568780421764965300114629941113579357300576072503614186071292540486226273970131503911628758013051683311609722883275337202013319588910081963252579103824135577526418426512947194105498811378021673415177461281792232023250163230672199936054223457659085191424582701795300723178934942452604053334503044127534338822078338743177527931344097531313621454238656309192337747590622095131565420060970203987637700009522689121237225346744508288289141419331554387912586037865684508759693858386188337931627296647522582877606314258942115844509261510897568200725620931425876702954934691421404967950102780360656040519652802209095015384321486091052018208539438930579001140750955257087930883787734634849825820346145849827295978342827810392437142636518248836771053745875128833007659583476143249623100612506906672530877592926888109271531222899043130990182861781719872095284289503692610807086157145345963392342602874964663288092537034463607878155552018347246400113550911608513178370204939670692058140210072489316347830898968174989901018256288823616796682409998899990725444337608377936286176065955937582925796523317936654250756349098390969521953757312838813548448387374227422897538812703057802730577900742932785677848154834118165955930234402079854679053564380976579602053260245702608965393391948909104430464035396192622061165056977421577071500120482699705311008750807605766878827186067598709574664425901589471189896556326273630173673732679788777322964681055073331614971850637360666025220837261332730915088825882484017191818042225226825707296445946755847642974406189669488032527102796561758298907873812715078789068614789618509296678940457326233094473434394223981886831664297507054398827359648836410686006866571010992728793676327386997674231342431604583841473201801568982026369530988362419830010177066279805769867694945928930047844562443929805674069662555669453800044347327895301367523080925316310854697486916153905204306937579565924763354069450080421014862819311898124631677685728839325607549738551914082850333217159719474447202394802188221543269230278612442672163372295350786609727599833101418755075510589249222972865275427202809350419343366654840478010740920956008942388944339376288252354440141935264169692530258084319854968062699005964228243141583568955852021022529041875290458704600295407600863768955584520400961990540301397774569018571521618807951982021898245157014176248128814013325405320845547054788590382893125776208292847552921770819008411088618447722477770857939849791899651595368515383368152047916105070220867618257583499604306016523646722594319068417478818419171446129478800717568306197039947191813750631713479210839633538258439714888050398329313377730565309280769664604437479817580537177196173139600154801882530694311121748052012037427605959929450572646552754967719479065967903950125870055442113160167664454850962450555000222638745411867342349684639240272435310861058882027086459484402756287373478257569368913951302678207934382218075902793189320588308102540871778269448857799847688499653741818744689575254138997847713188279154522570005419318003885294021937399647747299120031429949342546275140925644567660702607631885413038020685131808989259912191642045857826330520318243144454529723309191734787718643057593955837268278351829501465761511916400237155980072022179746807999640773489978975188495360951750725892231128926544384921926002184764987100992657195588671382590077465285285541250808776805065172829347975539755746613304801418600545332895861445007447837079949903437727313458959703486194188188422204935370276146595204623531484614018656773488037658121475513985496251838277071846759896348736275801984801519693378257991765393973072462523493720556345512051449847093355694077032666118423578453263598067565278435156099456202628978785542079913438138074604967865734298495497731645452922419195769198048687450515060353694614181101905773518579185211580041560770870358609467475007156260316384461597367313051661477093135873210460197938334400658358761249670617737420264604770505372507465537300053089450928978516867613176807902310355458255117794565872563263594620266081693373729317664990349801938537796034307338005494428419602466136849380014924473916857728064678263191203605052344020802608176093312433893308532045025295103812144498778118072376878408029300525064842653560797375216018048000517091267524593331852464369170222022248000460793889135662689602804039930076146434358914172143334847740857462106641433850165409983667742598709463507992909559447814588838718655016806007053907789147021802777379069660376666444368161251439267263230267833588914831057200137864287214908356158641847678782578907728218054679533628495364511411184006911388232694443970321572791192794822755915459756889036315425704197462954490475153057798331912431177463812950476872551495686829947783075360307085241490958631535204611147288087611751746600864394766971709508360445620281378717293881051912849893455484511392112500706908183072418957319558860021191782690908249145886741628630749927187288003017506170342106180073891510320722473191125445054152441693635608956266378923528944188248601172077794332224577371889614474691998768102324872619798759106675765632452794172433412298108866442906151420848192434653574451095296912155140050393769116552751380081297811917956333244900175204312532223415110743167558676297628982104446968042359115972592265053273728425229464475963222458954282664407920976313910232577363882048598291298920222245592339718922772602731624756981431774746539716077351423898596630718282936818525351493782632305487216500281043679718097361592140971531550765122004913650800024022275431518021321712187168171683801445506408530612921648555613004149609240093165457521387949249663624549559975411274302107022998350715661568100337768088781081817999466622543576353261149348529219165728072330076392516541393225241824622965962592843498537959484666028225811171366706569365313779382214706914150731497324855233162494874566972955095837213846262402899346034239839322054438064304594538131554548570785229025566015469282448902850838451464920521178097341141427410366403895958075985619833986727763404794289097695167141449111988228708137046806312126270181380103083996601381923135853872010031339728499527719032618906208201445428277129991805166066786517652194021744734924440157825576242561964139513015450575257805439685881395257558104261797578012980579708234099810336415262074263321292115525506630381818115641084103325877338001030211033507705116548036770570783705919279040661315219996943012493094922937903135767656251653803202705998698002678343069224515845115605465376534478874797259743354925462009663000888358173057483975422622698908987722540946694082534797957857746428782877447945198678464159924577445623477162781648595001093450295868105922100364224824924279399975796398519545068440942360309397877406357212819654748084025055843583219040321297661460962468052300732647679898554701797044849080154428195175921491570375859768874226136643146396443580066042820352066621946685220578674378561696992555750318931998766294051120810176642783687777654274780802984091666935293060825253721711000409575269799095088614987168268209266882751661270131639355172002929517893059286200464309927127410372151467486116253694696418250398514660309920646015484125041071822398329221396007555067661879961290123156296996651258914101008237349665295984549764566987187010745711240738283150607305024825900471605788606922083724237710200257428996756459658030454135156282934823408144010813969382908527820202552467878860257196386149822943109455143029145864593218201496806752376679684170639051971020611396623291160588541556644746818957610049156204068214988353045831603617622252669580988824128712873144807032399258346228741622900215705419758783518141016188478500071622507475727641843451299149256319569306989653837273403317232964820861450315708535875107930227610796941983463216893414107230902972577665901333012464875698788086233000600834145382879338217116749150110294609247424358289091676681702821292216968404232232309067138411540872468309832156396293017859914991238169042257997516917703694193227134039265054815407278547057389103506432948429070798652458197117468111416258255235091336256977724635787402228752351495110708580044622362685461607846357438396391763990269806976651296940889419696085011092690356485080168110179778389589758883421030056967075952780739614493835039044740448943222396267717091605510985029924246586102984684844405494006999423072782071449834374924335024977374543841995979417910353956453191655930039637579360305791336656711305419472139166197767901676257388939876099006726493183240875604408385085095667207526941038699149987586095551382044638732602516405264863329557762125009279521272798184526472248461062099042169349157600257472318425624529736760686447473220452394866318391978046791548860816145522254083281195774928805896500162388797116225702295076565216223451330042664245564072639251974220453467734159606113487412500933979225099514585107546287548532930863473324873393148767521385578555802235613052366243995133780546136350821127364088388991260324948674667879516024862752889812316283640327389981378643931813145763138170909908145900203495809486700517618608412913044393873812592544315176018319723152440832091346787305916848710126461555754889567298799473354477124279755144190819698645981428130568543067476468428382981023847904758065702458291020318421806506072878359695424527559491572132830028963923475937783632880103487499295688035528397660959969308057976545448990830607792699620435233887321121214375045214277221844132965088219747242873291023118531828337158132867045374577999752934777593307683487924482171056340727576916675914706144362577102284942633200892273988325672393612006269599689906295037694834295406023083051042671185945439858409012410726920187306800343239179080222304996005836426461885703712845075574175769301057246826198382880438956422362578292875595433721765550103449796526814373816199365921942387367019601138420149076679874103839540401524467581499166043554848792843995442190340356961317701580864164609828963998695727507665742268729611507907766349090866431667540412662353130774684660304571325466623969273250718285325873915552114501539864945864396974275821042593647534928505034632159732836185550313716567061534759723917536181213684240957101586469850513132354622047042853911658543695008234606901616992293459213672273197667258429129358704635992229639395121974886712692055555887740780293480878550819025581069833911931289377132214216774881865256450588516239450872559048124740386334286809855842108102924409537171509180166651961782975425378086146164271937024192399832469277992518046139942352591585722659449600504128112348608857320595530401561083895130090875518577121272338536926449449437089946669897030984577221166119928813489379173171639352579180173955203230158465638663821739847242763187202058621598970054939753020349060276048297185290683669062096092010624553262891850126122331930232304750176355541564276400603737967442450196740897324065036400106951296215980070702108712352373068197828417414494615586722069376295977828560010581040622829866496993776633644693897869152039788387755319783152532229134448326255930472440765019231155690432158651798932918519433658118161487242322116417268212578399116354079212523175892724071810832467975806059466046328726807980237924414020976671203075765464587280721234231899919227894341890528691714248327229252031576655618577659173916738663977024689251018883890191775642039731100136248126415525702367560544765888403226967529000337094048514092943275862515515558267672523923217644120481033599425192445747079833256394498857899319653138935918343973323209998920895208002504438726168589488281260891791951495367984733671509626615784989129656444927295345307979557955968933588970799233764561416111718502951748728641018474616337518469754829701576777525096620481328294787657804472235734407446679599977632323860184757108952619569456120462749867233053859110167003725861146022856261556568574385658244359061347963128875632060636451986883027814126004578884947592681370672454976687045823317176445682650996393052856349681499133701966066605010296931900159063443530237907508628321412437434878132266956716579302554807550038851188774355003044300780436549425633411856457761192170224978920484825011756433643860992380272320713314490143508895994133251484565897346360611501091514839087443023767404575726825077460379113426893643090662255853500637558900580844154211536012372336181982030125640061115827164407016204418520095192314806612052863494946799808318549039601817193543047616507448203107168259068323627489149883703123840675572404877615530518989292686753210551949701264215114133302977308354558429656087608012443641471217673515581199959860115489627758515877425644530517628177139814766254096560014175838755478459926551951617729236720506143989872438633705487401083144758147035389142413961702810225600515218846751903309470762785245306828602378479709757823101636166849610958796777652345756919536211272268147715481725300992855487604931746528077149770879054602363866031684491216284261177537864151754912362493011438645308185690776168495644945198063593412071149765515079574094990240691898003980541058906305704739898988799187141247137868348822801690579488292427140827651544724994041