90301 2964518378844995449236813997223977665425896538531527171842266888824185534445116927876498514461387187137376497842111383643345528359899682751864765483218837272828872456439626389411132686366973349458397933857757452832758571172462327687962594981327138487624764485238267637757328415456858357466361712869918956639215972178211427268698345287116266925956992469599141979494884642922196279483166375829711561483818814539428418672726266563988282467374363549534141263986483434535722923497325234492575545239442371896443418999533353991533525724547955995649886529585864649881417244958734792487764298965182479493497268827485173157252863438331855783563382126379778142825662889693382281622735494264988992961415785569816998781277587769234215299632236821345447327366497429616795459687231886431428651712263919711827828689843411778676829275936734386139722273661971176144194414174931161112526338732866162374414364684323726751736361764469129573499848759765848231799956544349718346271593675946967928865629976669163846739945921931379623449737671671882458475599951855849779586834562126495784294848977944685783745146692159211494345511939561993561127537621982713541169969135234652893692564329646891642765574215341878346376822919659561199161128749964486617115142778368311627347251259857853275532373843541331162475985751691299134366613424818358528925549572619396941668191846731781764349857976178796588642219784122736397872481282621577354521935148734632716889547563292266346146445541534681652613726987412392585829617778787739631975829731686313613638679913462436156167636834412859356353255128162874952995994316499837962391947388386482759555566458183145979152753664847778861465763668896898526156493384353659747195668638951454881815776282986363451721196235719957312768876691544179961453938327192984818684746247284957442943673925989463979325449915138337557449821231395194117959771626288771485473172839333998927754667121586829795939694332224935713982973623563837497955197254981519672993919735411532592817231741983779386981595748351674368651776389462535668192829758136579373665521751926755255224837995431423786176376472856689558442911623172131165685563279573963125789759537869513396975614584419995478186815592914382948859773593829651681348327913962668884865595412311989637514744217469374263684773219893374172331129944285397493847455275667365866949125269634493399621357574375584496515223255491284342397159236971335577233687876783619769234189488312372159982945831383148794199342995384496183492339711648156528776719436877671833154998845265352228514248375848857296174179261421956597474245426741644171551549511614368146451958741866778758555136858319952294463843818337146994344781389897865722111789838411661985165372394487366567374582345397896914119586556452283984761469725132829316389793768998669122646683486471699154371674932747926158962597338817272686242873372585158616957125457945786353984882231798521932466955878356365886464741872684969674629165474199817163844131791661935129474234388856833451857653743199839664264739975733358596633253291265926264222524333558581616485719967274374954882591127836991871839452949278558195483193572638238136651478153436422523996842556312157129759399687874744895726619177271932922319767325548574722639715192933788517689796551439797886481288546861597359682888225352754145781949154991637144786756726569124112385693742868169837224784696355218924262123323778779745616121578832424254787593362594265583564588254582996242915357222486446437479126914246951881538364228715724312112324824948278661311999575453794985813119729158999649746379565767711882617489646147523868812413415957816397244919534667965622388726774989183867583716865425975593584467959741436785941566958526383198635986442988415931576159638291747527759186736384579123729628259314175617451493566839365352727877716375428913637691869483926373288492421296575455535682154424582513135339671647445465938916217282112513355257543947335122721648964351676922849438866164922389643533824264123991427271833991765224541483368834556891771599719494251662814459323399639744798642677556289359925989189337928747692519925938128516151213262974841212573439124236375516867987716223597948363561424169866277896835412642649248689228175371534171661653772616765864696689953518436563846143264776453141665936447167517438467124145693262376123117437788276436615364588212226122116551525539531989854232763575739342888512969415942138217291543223938793265442749632919835311865253738826272683715139463833176732937188716471594237969176677254229214333121352929728865523925482314526779278284772622159559759955145176251815657552876283153576927339587197985874582452834228368269396223358737787146377145922583154838156523164667932934472779326523124185616392547728842183498187538643227347227415896156948473851594851438572382155281957562737422216685564549316382863516493988211643295461917391577684749178596194843625742115366729633292545912515277271477563972455838539147765591239653787659217239672377875875556396654566731974499278156645782492669149153442788313188482455974952627186159962164258261937198987812566646739995661442397579527929978854731325564765946836671782824329313682676938738777775598125234989454765771462499756269598338437355857127587199756165253393469293157941798686785361727186323854286457377452862893515945643784495552515646227338359518225629559448155639652389857178997141413379358169319283862166432443953963358958158334518124264781689865737967732262688421463922441594928316479462456337329883742142746592336846968289989157997885313547316687546943986857512758745454144712622614355927197975339935849561247658177285311922311526193658394976471538623189882291838549366955351189968782239638161173112967382943338812343985962329812956154991721257683222315939762759846437198738912227694834241981663519379945536519832719264886896477521141838425359191183351529195476972841766562486553269441772583232485485629794489131489618874532484929546845575661374825224532839297513227816929596269492994179596122564964713742433316876345117728848542961259361889755156916173521821464354733574711765475841623662224842392139722962569756963331365687514679642467425719133614455551133997149478929572723922113794614476319139828355748827941934185614636133297957323228998984974153227825251326737322713981479267955231822275882989562929792573464128971489197424673928241992477355527845651616715727349626369161265849936191634541589446148364549182328673443131617171675427737381573288823123679781237767914854781451298824383649158212376554667621197684442233194331428267623511297486351274321453156655514882728593888891344485725387129868654541639974582336197132796997523562619765928618927771785518262924897349794298762265848331283155913918125318215371373211517639495877949369511739819465733787772543923577516986223451678633249139374962856742683337419858388374912621838778275563733629324768369627588794944577267122927581433273928792436243488447279685771429251557191694422187337225815799772736818663579611119726114936617777165642155516568299764489295934685594527894762362142643852348442768284217292778398959982522663221677949935553468363819722227697469366458649637229476621218565599281622853249499294136117138678243962194926818316326141548667662593161568828893278442627932158645986923759746578764528931237453375691184122888957515477349866148453422163412143243923846791188141468397699261362314235377981465425294455683661638418251589599362976724541268927657215661822469898993461295241973461243185473987651177823814463136138793311692459123775562272964484595359363733672385156973785996293438915791788791537231538377182393542272111528271252954433358624359542329951947269379243579946759986377146297174237595339162336246549218559178148856784812667659854599841725125888138733494319429137984882745819786182568247984217676865443134818552934545473157938972671916677572398955832786829186877429924649972389737444846447834773481671255144549785411764924837477537781469987879173625763143331995115764617525126998174466198177765667887912719832243228284523666323883846264397163225853428469692956778675251973889566399226466341244593415299434769444298645341592891314574923886829479168861164161891533816499491287588347979884423857558822847259943929258659519235921257572799945685129544923719254273936812858252161976894569643329396929941317469219278411781926393442876376329513325735384327746854633857766933213914227292426899719491124925725856521161915469692477446449885788885985899944341686196792178124389282223123774127919546983736817217612166679997693966194968258562939592911729874238466369349815263137161357676868369942266892958779652339383655987886149865935668294464324465966758889953762922489496989913263852144152781588346325374742772598311115492447775245659699575376568679681292266646351454581695238661747455445747529566173761267592647586668979255754385116547918127551727149459297183369528959119945733697595148925276288373956754918923368335446664825494545297383353144977791483831638172886277835132961439334695871825842198589829454621583291484228429492969846871514375941137987628739931893977819287843239855359844395594571497613864824592186396545571192974989246998988314176265265657957115914617452923489112196515915423291896665556218823415822842498364689866191825568343259619951724786161127994234274324829249389437792251983763427878862976311258384736986126247412534172465638483363842693925698321771154446471966977585771687463993529258921885591245358666757284698238173964311721853894273845569726493519419839128799457988528284693464866463115938734514552642149962369787645322724251834595685731429428353288452958142198664497859578435317169291862626168838478362624263347969565598649171746856346495579289135635322157386293824659652464874426654625236685355493875394335345626164792851984537244512675895573335425992247192774233846748438966846412878652579845924453618512285199942442247679697972825846458595312365377733178554186487571611991478196165951622238542583742317218668824598572761159922432217635882555123395184136138498365499376937861738454752514323214623462141487576253167196628857335544888191421361275323427468262713714396347543371374234721517242656447886437625481386742518247855289481558118743617716413213576676368979613169874644817242676184889953717638892323848679928691722295217646476554649988655574583976467738867526162397683358435942241942758594943269586297844522385982121165895559715544222747779918696435183965627699817312221932489382598779782675329124158732454321239543493378568556937569118571998151732811185554549818789556511862828688852524966352761244716961358655438228339313735836251151426295758642536572971654114333997143249927232898587116793459845287572321815335433289462295726426125366472346536895821336722979185995137875782393335418529742622872628581976717169187682471392956758317399377845329342235294816776687182617732629554531194318229329911668597574427717724615664376447993746648212533544717171534644733254313837917918754366513663296272554246895297849741439633641874924892627241725863742644982855919757753785771391526997866789453141981825987564184378668618126668724757123995758215267759841598746325845456338166228817617678187757763552997147683295757411515645963598628964318418556856749171748977688313437558529675459967821894151135466751665738821255815947444571563169635268435351522533164234999512523557253498251539812847529752339489954795369482181854296998278911113851883489574982267466138483458177637313923197675835513197199637832512865697554314625484294341875837522353464451223529344391134816397497715374742967826924477474212744382535774498126385942253287621842842782463192247927531567816524213822364468616543344171931934277832253136975794485462876872935591275399418759765394249453543464282388877551431466922926434578776675355712932711696121136355795448468424487117446684276596182755464464458181535638282295613377238239761726541974238836754956977233891194162299153247119639554851944843811559275138547143338482553396814284221761363132272459631247522732639268249616152467117252464976492145762765453765792119583654157421462747491891732718194519536242655651976137144583797794168622184665724232184556323268953144229749992982496995323133259774284451121336954772857334647763556339192887976251412215444459885187333493946862553611698493359174536368252916271542796434657995396821826325571713511357844311954994375288553698129493411229575443966187468728941444326223764322387136256174837994725766391195826958321849232236168474285232488412575441189699935233276633926194844867479343236788354937587588974763812667858541381197417597549854419758983911163828679981418961975455626537819327879235799755392142841156254852585172697933132126954128415678727748169439555934786766728271936329658375514974641585344812691822184897543891485258738861586198954693948527717145221426317184738467858755338673588992354314644918739218681692961549235846443772279855862196166678496967687794577937236556449266668995427992812678423531775934816946416975697634921485942811282765943742855631781137261124144924931592493219374378558123173418476959661825792559535188752682585861929873867616845251429125141785496874599366842671456517869112246796544183858267771828532263215631465285448687591775426966733243435749339117442272253261647336595373851825615584241376629586433731171314267129158796924965526116629282766234123329932191324238194779274583446863891914617429766321131518557557718566753712683797822221288599721487764921115133726735635576652436122184866742891663776949513524682648436336819442135131724175897239977467445726867464679761261593594663387513643816878513817465699966464715111149313591459692464277582289139766544238472349717673773241933257449385116596453592453223849152694283414591644531717982564614264952718935798667796934776195273256659465462213149329188945899473732532449634439951632488922921848965823976488111436529961576213859734527616474972454629172571844729824291954577178326289155336362525464556454151219556784739685448763497221955547475415125678896613853159421586372985763989775925114145238544934263471624134921549199471789246997969494736392768741611228989131725782383526367778622242561942212578392113469783935885954258478119229829523257824656592677288718936888863624152175255793972877843211293945695679133927451394119749169515269697859169222758474684218532588174885653877293536184437344814921947718382459993124561963442214343116757182147827867348741816925995839387727776323963769732591843779486221592634251732237687495486728759548123562489383447416448916635543931466178875263283153242344344914456367493293574991643767545866487757841627577695493371982636124198671342914588738412931516339148994684376839371717496779195497989727922859974753613293392668557679392592888893154546467988917428469376331945777249944856938189653769986928212626376748378712241232763415182861521775328348752257848729138611516453632195769885338365688461348297769589769662759545143186452984747817693452444827822142858196145497816414864682589515293729584861876762941626424145286233477477813529642467697444848483913627423995842771558652668736974588444172483394127146279788222355553313538249471245513379461874913622221138184268158934765181487623379215264848545994211971892372553526927728693727768485625415497325917372535356195378334338752285746788795638339132371526954943677465158777399378121369834363596542844474354581518934647687954451621947378874283619473228246654811874328979469681468951873599691224963883323329931676771129592617162277163492924255648818118399688312139164954717518996138593469737272383953422565241181278495228856864254675752652927738329613975629871836985263116886261489432817927119123295725695358169731673969164889647768996568834367971542714286637979962789114215273621633892155675422848832497238362182256996145845795581183244294946569796747394342744118354928877967772941964365379399153275578728292366238459342218832632385491496967293167434831973994128174981874228711388658332436213375468144253734638467641939892523399911636458856351149279998738454121317314696394436766521327333747175861527467184431756529438673495168257367143756944984556948282487583999644853938258634739939831233475118275531291464487938714148341392584917164819455511127269533369742654679685799121212697585335553457268281471895767579751375491656823678443913812282719163333484829449611929351499694765818325142817752583226355198271488727216793234386744562924164159819317729422454779435228359197831495614198253932938447691126397127845742451358864154697331371533423283591284982731189641712997931526573813771149157174181987191477715858362632393795255692198472889714384179965186786224595886267445594478285913589473279168196284292511289353592343149565395986689544942937648847541949618834227914363867883668525933991328242131157149264832372546358133215564886969715936139961139227114117899913173153948242618344863455424277971775239182234175935673359885988717235237652966111233442622785649178147283325554683553498659692111889583837225436492386626998223958697828368727433427562814648254424836937849271562833457753319618623132939655669614998489666812723196754395156797349437868994682728465942873926618617163911236342756463681922516654781885446157479489915493383945816648956571998371913815646668829956987614911875981454362362191324677799119984172584695783766632983215654783647375745711693729236659158934691789868874913725686442117484367347429699261179683163552134383182485995188427261455462937366259713475162291478216762592954344988543243752512696462759653462463415468943229541413686885299344123241685618332316756848212317159315482551959462119431182725472296433959247383258664161257835885415345182592972374276187674639293886779538157211963743944811963396695691233933496919482931391121768757364382375368577891252188847353818244895488486679534248342743994637449224543271491636848645716614168773436453116382897438624783966991419254548794626284646471168243966269955163241684596964245667477426241338514642546843754514231642157652719246338522534353985413559987592436555341244165445466583981167325682787596815182461862394972397573358969235644627837971132487565874551269633678731282374584151282925343769265523187434297239574149363995591865572914647774686728346532493674263782713852195247726755365136666987549515482374161167577449961382663793968923953765184257342843329966486945813579682758337552424528521713836486989951172212761239973821986856671632333388395737497228578646421735342911358652447564544978154719477114647743724153446987525821416841273799181891476541399792664335587422619717289475294684856627746195182759766524384644113673341928882351892291862746656544536682531972284554286243798387771995962646329333534129699471349455884696623112223974659912356895234676372961246933316616421469539395461711143942961262733379484229556686343339565896637442141148445395775463143772851895911666893454263752995822946146573291218384786618617836468456253898737833548837121241325593385686222969732417376212461791391679349551597793458561366942134721914196872337663453898766839655762176927184955518695235292311422136227884818274924344215721129649579652879334463356796775534211291244697624421237855668469847299481281821717713569579825132544284984439772339947183484265673162829437765933669388261684949259257555563738234448417791471684185791186498779859684659851544255831748476496379669615975769573425629346199748867715361795462997411642436837192635918858482912643947127879766279192273678652938653762222692238889572737766233134822621491468425591197735638361667275922911167874862612612937516138949254137948281589991544268914265234335332449311126639351445977413117821725519584415287286562113478232873875132617718618267112765832714256866153766282119532161554212446454267597833155388347218861585872658254642264987274679588159922786591396386498524731974234926829251977689969945387544487448187772285235891636388937188676692873196741893322692934498683735922184684557867683642165758639237362232619248427474714989873148428867913714885621396742775122441899139196638256518894126278146226259215867171824133721677317918117864289112361455736772166993285831365447815345427982673267428614531377361266758913224846818982137953118554361114126464943529356937377314846614557128169515731197458277421272119678695963478594151698898758773959141396677252221131427165792862117657938963878472549871965373711568222545411256451229935898389595756624495972889926693352665421429544283825239374726124177452382799553137841475376179224471423871225291876975238119277315535387651214233776121829161674781763724331689654466952754748222225518445613193933828264677597129887676133436378993255763699712569977221216216679386472563852252517489314519859542941367986618544193324424397119668359918445654229269648288555575497325511473363986165797732983225815164834186494968158772235973434771341232838329824515478194198718898435473784761559739422598155549436721792554276746747972773679647946822398835974361626639838327191958632448934741638431631214136381527725468658877361543852399287774846338433615454472384723984176654732135917177241771248388126442917585698999783697863946557689119813672521168926293949582593194168114213513347531278459773827852587725743526976751785656977667648128459733988176599572595353277122553655711144555629645829316734253466992438867829297425999857458552411883686821994663977889465971781716192686841313198791373873463611957221831786345281722974332633113567867446289687996641261251353854484661211316248247765365869143559163916944434952635183926213894171362282583655458151812976798552447336765586386132839476318771759822973735667153472194124796314685687257834725246898268832957662217873383759152712295334276861648498798738752191747566947425743785589922185558392433893142545882516634864224755282869932518464151817167797545528357881676832354837335845485729725362762987327675819883487638324458992647839129828651385322727465234829744442618182692827226755943896155779813253366883519513213464361163745974897546993729835865527832556165728738956432549335792238849429251686671473273463119225326563843653447782464892721377825373456258115111612457234746783922784661159711647115998846338736223829984118551557422425534639682585958925727443182546379499243348153556179627253846339698519753355982389558244251818463276799685113638293579224661375183638936175727446597186576232536257433297917972151596395758482999871385632715696731583129732538661398493177582381278596866562569193775394466495437261477865476415615447297883419976733724388199846134261579336171337186479765987423923243789372589545685418532357885456342326512839675719854583862922847832797253624382324555165892793876531919787128824691856696941836955688843612277923997499497675472985753741168972261577434314898478684123523629878737561662123167171618754862667239276178427519485122664786458279386597938385164611395732925175464825611839982711271454329784415468853841471229125793819917573583141788143793786192975517738845787281157547118228985965424915851513936491747581287354945114865198844227811212234369294332759383172611531939888662522879267198622931349459593998339454434529873671127763878528764838196859931774594343472478231779552732762833686583899258871845295443437983414373566439746523454595596827582138616324892446182133491827759126365762635712231871435168783183584121424451762756322648133287183728581652211563671957489577898966853718695595789276727214269125935517752591913464551929946177382191312313926452218661254673566471869792618852764797419723683994434919456555918662656131967762439975958362671517197127582296676449772538197853228912564849668283558457448879928831195976457293984383168532535438698854675616258676578689592318853241111954144257268231151622829922124778816178741456335626825457152774859496199316697739188166815124462722817363556726782885495387847766219351759288984615611499751272122513587568612217457122267285996612384854454249523887566824179583942711683759748239273242435342265375958488817723397191428751329278644925326479978897973876412412649339584148263753655496295548518978547125413868633464417365613246376735594739638316366221214829519148571845494271547377321275186197461834598212925767865633222396596822454565297869861633833824928564481976336272226811455258364877319599726315383596654962355896515523946751898377939341668823997418181887225273782176294777729361243734742455816264584663918399488243359744637686452982173689172954748744678999597396861749826348666572613925191864836929385293844959453183435246294342179552291287894691847614155391553666619925374323338177911256875689315228866332841437671952942836258984862145798313175727366144851754531618158419492182467654648394469756479176628646786975615316527768823161273756249281712441854725592324968351295843438859623445168175932681292998292856292144866852533198816634167282759431348174688721316126417362742236677888828989959254452194553914486271959932429878114453733499446451212133243458874371917394364777966814276561266488218876134662479625522817348523382145519812156823311399553675632622254159935479871165234943689273247556217787811834162869363719357347192815169743829929875312738179947741742174981368572444967152718781452939417276132671438791435736113398281755563299287789825737517499462411663672366934955532841389263281158366942517329232769282689767866685968411467429714258694935454142979231428224269198183628217876286539588931553596741961626669939959899429892764815962569211759957824334271349956252355113443194375472812131811346452582785151927468232999346492139728766857148183693924465977278525964899123517591612199392136592939749243572857638784883766923984197629529486617123143619492843228333873999518917256116832614196686343797228524451625796591596131968767952477452543271478421933698827469555155943232563242875235129575589643881253811833753856197869853986169729555534866223857434688237566885251688843974138492958937533893282451666122243775988394729317391867981552982441988446157372238668958535747458767389752232121815717235747612954191741754227848266916845837582791395628986268229796246523849586924972983586228452747282375357415185659777748776196337179636725295981571789378918153265769696771438586741264292435858494272933572664657889444695322947142251195887221433684233513676539364111425542694873493118711746837475394265988238864482434835212897916299582997791868612516693427514954742317443472435167353947917851657187174722687821842251425299113786356768131514348788651336659691878974213198452852159151463695272899444937194191889715252596694243286655661244231727897298775345485957722191449459918634659439495426156765634153247914143588151448117879744961765513687732928379636629348731569151621941844528391442417786498146984411724632427133686925724287585339522333333919734131418812448281449138687952988225815788328893376473326152191267968427856879273993162519382812169239616929397235952977677187217331274616487525591278138949167624342427253134527985499847187863524921878587484165387529246188161376513611717398245491522696397127448362133696428393871814458684356995286566632781635362385222396598698413946586325343462175345816446575314659448497722766421643229716183533677299748855192642152958272828167873487567853648933588647388722954461214918273487811877168521438393683527532834718723274397962995559835677951118178443653154423118167496845246749281572773716776388673292128965493425352361777121885866495638269325868676375893913725873699179117542981427597847267378661542864194899946451789714662212693921948874736756944545779232248192377421516417131467468514399531778566589988873273139212194817624226585114482167549646433362951118757436967945338889713253547637881495666998577781611869982573616339495512115566773947817245854749244289839461278581455183124744941785741251377145144441667924738897274732142435859665495268623125391185323499141638822591272997544669415764693479219172142858983294573597424599156251436119197796283516476898555763766469894744115274341852738519185413235826418375796547787689757725325512356438594562473996239785991219476833111975197345575546393944688278552357994617659567513758184463681415539356998543926486234897239157766618783262734382878266377773811652894834591462765758916472743974168429137822841845916382148769253434174827717497295895981896214622311288135323226531166882116843548886868547441124933965945689969492886754322215391515938684651342182832727764778148825378191359693474425749111131252411599371918993313413633921573486182497837257449664594958418554349519285138357481844359784882282664577832968968335786374883523284421675497477829263736875128635674236983371742475825847522326395549594742447786287779345785117696644836197751317392968533132541128385274947958885544295559479879795675928812294924347324267611566843668732149277242568184677469999797271815124723895479498487454554728976431229742292794298317762219412959191452736581426929786724443158222738193563453542229551837286178135532878133749494643668411768629779895777337672914556725898121743163643931341666486649294171776941839114285345239761971211392736427144443687562923457134668971888941612848947848124414195525421442571171286316131752571449417466275867449281588493625733595541238978845493769997413616281645582798631269147164778726747937391167637222683516863536927466811522358836831671899563753664999586363213233213138138559258745999511451197286272474482185621582179273149336825234368759523576138296895786628891539334729184979546319988871973896723528711455493159885869883544265181832386953589473721955118647361629132432373433238295613432132299928719263811443353765866761161361685332919699714437515885711611942434818217842487781869765391338583651456453917725111781816333878787178522263578857382189269494155712156139739313184195696183711331994648522388135797437775223516812482719873975586329835217724329512226764866712849192787715875121567894235218368336586431313187971954618434797373487295235473892792884927138116146941826665887957585121912677955372162335493448673187568896517699488354533899319755675384596813448263729173633689124649554724757317421326317415322393647251796782136557175283465861187362255598861429597626192983865835965938498887877789154632557913982488486778965835962211613458688316744938896826928973772819775228162581552598438183555562778589559593374971682522864665386351845345374722841376369694824695766939482994572948738855785657313916711936791257548297169458715521255425488969727498153413756131522812347147957124218725528545492976716611481623181451311896965552446641467654342511788443539212381823554362236462122214763585275185297139724717163846182967285927951665174471521492995758932227959419147224533287144986377564179849375594434686958369698815424843424261845189291353811676394736649894744584868791918879361976578718169574264659389524139774812939922736455375848832679341246483458549151364859832729842113899396687478399598144688296298196957167781551233178814882316786286271785937271662123477152826865249991651868363216272458494978666594558275893924899821314996471287756432499152589287591726778817791997291857346285538347914847297534313853412545242249385936463431825222559982285723578958684264151193987618668459936677936314268627529538744597762763284777715216841494873272669335734212566917426696263334424944187413584175217864767689911762258822345245138499189963414626798795393613166953556352995519652132437175944361152754457382259142852413856725111435269958716746641888771747241676489728313897531452373185518497283222662342664752996847131621543857412236259383519936997369681668928882148364125413763666199927194151582512668232238376396677837322843634432729654921422885941543868762225764952676413289288567846298658293326936156293765761784753592181481616178756188178878223211699625861312521932477246227253877365412978967453848562988471667925836595512924358462871892723823375687818337121312121524787914391442444882726848477378941491199757548179111429444211416817553562323593267111256784864992737662463862494537471233192485774611488381331351472784879554833731878645594279326851551312626611345734596833662553141119224158811643978612883553273769299262412141681248248987222464916512576719114571952999722512748557631119521444316565965544564781684571138163512353496374836823192223262973697295815814867699299893546816746953566933984547247645178584458643638714673677166162838666321693385788926854213129461686875764424168279349914197785589228452834482193774893994948778824775151961526558482153527377967614811189714193196241329838345851458232639723926122362286228527675823621538716638639126345542675932218343549143792928511429373222468777831856317512318373847967449972725227182679189231797612985692689459675165744615178964561979854181499567424253832446354576365786567476217658378772857225629569925399182853593665924862953162321935221222826172153615361283734776571252252794345127116896871938333931932388552218749988157836117453717237851149952511913349295924593424881239937261352357455877732812583254824456475446471335624778955787611123888899463877123146881256458732227432367741883447884686791641771391888612621557511972615965495578774835736845468685717782115589373174152511581229239557829786219353673988694916124599841452673328664267795222925147531349651136866619137357411246826386473981294227175677637976398637711444758389871494363998374112598351745214747929983921865329879512294199548577496117595575916158342431233618289849417233616375511423748495842451777543931419224715351572424873455234482439848123199667473631658347927918395782958468434874718318125823741379242878241186281178185284636913254972766729779172997554276678283373435687997527363868467971249984276877189995617687476561742322595634689171168732739748348233451799665989559635688821192838247472117573182569369357368368115168399662547691483431564175266826142768595329215956892619718444226275487486381645352459166539447998232233958969595493169487914825215197577225692328317193684875971469984461616498391855812396297648743235188941245416417916679915142878425512517994672721335246462245226231887273573259533393636374956639197197679316956624112212149199568492971111415658115588825925916487296436671411633134746235934321725493527938653983496836428442578243623574497683899922528256536998474764694656245798255814659127775743549126611329368116573873423958319857299283196382123921716116355653317893723193673924564933145989191898228582694458912436953366497393121676736919474133216723517871815165148856618747169543812173671124754528846545639471854411389771934471419883859538122513152552297679734215833698312123742228611196821986153232311228336549516553238174689146436749913115222726239673484451488716893283135626913413323899419469758217156172877442556561795921583651482647525836897963359882142154397332721576235181781744189175691465216716195691752999733759938278776134224954832126344969966435614549458937254626223378337294726122213217194452248458199479438118671243133945953472432147738531337748148562563198421931685534724836844672115323319776561475878233827883231471336292116369798522473174137723485778549483246927653371975698311767311939435968239962227245262792639487829787826464677682995565214462445246258949718354572656198891996852478255413491656151261282486174376441419558688593336358177222678663378261995838283214665792188811335162462299438785367397785977492292777894653188692948624237831321425573989698298341472257729251967948346579236225917238874317837322695863485189647361264613366715886987968492131942147374321281793598456384285311842247858378752938414953179685372315198446589943955817748793646526295694268258227924564336834949596597778563244529398478321489557937127395896629215543843772938841776374498811244839165963619578353134419371858355755535659565924329577597264756612614587292165279969653659125524378331917672685886955514525933589932388239878733489264289371151121119229523682733525781974134255378683468583129652144288992598427626789175749591766672999146423682382834719685446697778124934164819354897672547522753418259289596856315959191689584897489149881576161726326345369325249482251731112218841673468482644556939317777671774422411589536583433988512227711924652795243473573411354997531771352487119723559677125752596433113325889743733664341541732399167494926419917575712292586639854547742727228849892442581387117979121572469473667778356913833154681556145666522528687619374946934181196256186164871927687334341531324844474488133771924195661319114687716842489845862664616646597379839283776784881658177432922593343559915732674385996565626451968292249695777691342855669142955236443179533697937583994398863747533685397841223695173846355447792452348793214822876413267969684239459617872173855388663774761444661824778581744767893783347839496654189496576267727368715145113635286416513873674564685184315326964793564678162345446464216341696449153257812986993992363112518832759523585451533655747653329989427718623258473973366734485874275797818275775613924938247385918359742911268879876747519317937336889965321582247932632782146737676945997942526629821836846284577574929159418483631167624172766196192439289395888674493296961835229477917469995416541466865986591795852144687379271174569896272652789544347217938219249993663231922925285245694537513432658612944295786214315192675342266172112859982724459798999955933137659525786741488427475944111997655566436433368581158589669111359234143436241147699128476169772862861419147863865678144142332828397556846319714364275563224457121194687712519176243869341271444368497174122872984211235871935557539186812583232612533361132655515548658139941892189179172526581115391314559327828224586716392975648297396678171368976534274953479637145793393352456266787914739436867326454113559514158724633234917871977449885758957181369396358361839487229689993681711141361621282111666513966961815313814869865333283452575663659993248967914317883876174622554298664149476963876869267845297492551917282855416461991584537967737865445637311899317699911795185481711623764552973167726781115329787987192516662592628234471569458241883689518828139258876623918181549263469556129678468559523299873362625785734285247537764772745554772424362778392786816827432362156434696844511784264329369642477624412341183355975666753383747621711753374776126978923588831172426487953528921174176925374744858284736346217348257481286688472738493681457858248273818567921187759168668568481874475178261594257811786178851452999789991892168559337329199754937555858379733643677793896437839972511129268296249287881584925186527896289237561618746426869973387395686887428121889169826638436417736822196696148814742157483244559496573958294212843852311939754198472514468438413744813732117282337911661892767335115932148128262622275594349492882177483668639416166931165729334817937241339623749547174586376434254948736836863393458973888923829728856234289278338688515613711184589363339623288416854683533487221898577662738222339626754159269329258384819642169757611826236283534446261997746748325327791464352899228347838434837349327983752731434338637382959549297777891764911386479643927973998768475467523858767419632671368869531158697833718757216637576112562539316657552483765182344686862184257889474294271243693139593536224724443239517382423464666365963747567367351981564252421417815437648643364514883667518153892378174837924482758473654221442166751948754159574624859327813593686215638337312633915871137528295811346763533414667391612148317147492132977134398365174664786946625111576239639475693389796726325966885625122582265799767844658344374385441135315875655928641333837147993971555484663998587674884685246768676885565193451544454446251456213865791834966825645243714521115711386698272269764521876942437555685744339945545133458763127549571122525835887786943894257763113284159151635168653737755473645827467396921888767521576315713259272492431434292327893488465255129135826488492654586389982315185152473211283488284129198816563297655844233782977315798353478453361679516637948969385681998492474471879626124536259613458648324998871754137547364214338875265836464817443329647677281439775345492249829347558883635784475181425269593621119377857933895654799122764785839279577566836169481469876941939219983519256582383425181864982189772527789756543771769591348447868186271628338952557598756152365424894596127936427571728585114496196832881497667492555363722543889767393957292716536859566313941562788181615589953582764514933591789423287673932134711455358991869514687859352897657814457692717563446491121481155637939917597918553764791687647598289477893682851993437613346753856766737944113374892457191265411534374292811694634147141298514382943328778692166557289728414471866727248458662758962416178381575242218873688647452522768439221848468677686613719538831337621866212758831824851277731318533657453392754867216956687749215612338434527617238872922614729773955512651289612382256354352149835339184149537972339153171954417476155978357486755382485478999863536837646431483971698258185736764736911137566111484563979636347747571489689475891939613795528937527545136473474141271336961991443642113825493545424424131834792525812582222817484929564933735231616736385234999338813919914996747128294146736329617799144319937569911592427555841671453741194995959727923888552791769716873183999181543277297141439478345763355613974927361811118756759427791217682451814178318482747424794894528551131582246172823323234162156325344317222357286424238527522325142684217364982284181567879865775684947214267811135562483271723939358947895583842193549777985433712567682117472854745253156252326697629145446517411313689112814879317252191949675546674614444741416175567513886726645989431822311795228396138825354245535573529257138179554528251679949449386393673438214681516594142765868564555358354616686329174448514886434168515596123334633518893793137385495777287696792782655435796587174366884987814644375654815997999597769264638837618892411196317295696671373975943659684838296838956145864624185665848743538538711145833739684168371259455919228123286559167412353812727421445559266844158557197378356956147418318879959198679619338958179852166447342449462946293241595663498624621988616569463561964838548194753585191223936371177735398278581211686421364669949658288747599489319684822695836369242753518917971514962272271313841967664394135845745557291773584985558783899949751988421637973853251674154459868386288347521796133641287368643981141162824777577288962513997143943481338363974157133277342461941329574775186724925373362527939698742423162524339366975172285587758779764457443976535683767544819639784554528464588949894448715165315383113575795631448816384895784935696479789974286496617899219955298186218158317843494896772333569994457244893222614267991164319666436557839569351426741366947169729884286732578774326193533592712119252621275299738181564377816515587988456969669795897657697399282842476648493388711432136656742888283345752757538661355886231783948367441195597736559885481831572174143578486453564762887778154167874978612594753854916981934268922763744151317344625875934783452634445744287819679936873354385413991389365386491266477751946587746499651714528933867366949547645292917125949488258323813973372998684533741182744383458223165373485399712416518454877565736445984455934695677281889886865425166953594935313247331395949826874723929625551756438294432131871517356258499237889649343493132831658741253568362858858829672353151895924466844315988647713171311562752595447858141257173243928543328185877896195428236226347613148128671633384722386546736757985217532133564329566358471667289684727154115418743138129314492663637816592481812139619878274673489233674163194688519732485232288664254328163224389429473252638795848592479112434995817845132356666987769591895787871144222883293771569569663318629874544871575555367531481125324519786511279272653644631144596131857884451232671142459974395568723182642688746947651881433676438847483891432945813311958362786381655137729335396214424683975331848343733449521684492418754646186884943265958747523122961461393313682787877884724791837522726445313421471851779556935943686638362659358535425621264482985655449924146558361327266381564135996848224138977421954776163984836214823311537112155126695424328325223217793479273856829223433565488799437162845673514742189654887721561696828763985768119718113627133733568754935535643426761925315326163561299674179475365221455337638191967462748767395872174355418237913358936618535313535119755266215637298391352275699518731336797491144196324789779174757561578522795334723564471521687448665962323686648867323733118391445532125655474617282596872833712478772185938932532958934195634663573346141694948497289258176197584663573561565292845577872526923594346259262597511888978761651695479728283718771892967575223332288123995586237663873824696874649432761699984727386793497619332947776353577242784288369552351793857179255454337791592191411499947351393124581242737818251318175364311862991899722657861592752324829858833559815669374359759489139527631159623855191639661619657364638981284383238427967973212921237272885221963856571411528959843513494832186481414745595143218489818272344681558941561229132699935137371995292375357681673941283386181776351468523351574583729214678874294188724545814586788835791566973722931363491995179321359214652554379621277724699499672837332759716972216886525838617857852893977261768813252553523386577355351714843463254611396497791886856952824587416543357499688378779456874929126899928868336177725394363133784845438749916547728446925527223913554599817451868183925278375984179298879821462851499923761545968748675381696766916653316496573721916832489577696266389558463163534361184776611165784256927282961153511659875468591711733962159371487817756374494679332379852411245155417781876333365563577353512821185252894683818258937684781166152554987146724739526451746335969723487138616674297595623575513423357161357483369125136854851348895478798315757874478288998689991734324371246691996654491938988126472341711293797348771972217113698422778624498172643757887333541321511872984518382953146133721695336397798459821688856747767181193526176633119243811679374595224675651167621481552675671899995412988199198819481553239654654137484697614349731693167826187146578595211986418693497671166675396254216625522427793296177375293757619878694645851875787268941799784199915744839562424518961486769484547796141548951939869753263141991248466492231149739463297241283545372582235672389544372953355582353121192375198393219566776793367817845582393156695834977428248667799511652868721871123262375832591847658174141718975689634892164196237835852661247267514456341911833656929717771114858473553848548964641732624239856859658947654567993677116583194649356612248192329666629652293311987652255166852649663932774845551934527649596779843858486558565737115456436695175379911362729516664753425612788353898159936657866149615843652575278734135516438256662598739354113453529743215876359843181237555997328157732634854249825716179548749465176564172992333781292812223377548674741357925512278299966231192997347271582784287426628425439575359864631911373696547489997458898312778543325521986941755361197862645873578544916968699693269679681945963813156766575294794871455159653473328573818876191138959443485119192387212848637579826151579919148863379627834416186714753143357621885799685141356547981778959228552299989563837752839619219535598973691434351115128882451727389655495795426368858929595375972732293231276959994162727793437533578436125821895262516427498411118562754992242651876137991972689812323111839644746392757963647276528793355222432288372782198485941733952944653359887997785426661462549228227589169287693693694367489424827776331448796999726193658998851856357116589149287436159396676637816799588191117676532837863559295292718741255733225775977768659319528582188521628178167939568994689638433231519969723244688143837534339566212224943759951541935676518975524853378745477377887983844499425595237438966447979749581418662636965692721148283126943239379782245768387784832542723981882263846751195883219276322729721815476179911327885125777119516493571681828616998368658961158822954679753263283588825386763699566313313854341395662373725418745283242414569177591776396317517178889488564719873324817923197192215651571784749244639634445918559466691878588498965292763942353688734168598584237377182839376354973684333266728375141579952255738937394772875461132526288831996495928837885793552888587987535926827676691997379214228673778691162385914974772159659682151365819138898175125578872825338951289994163262554931776174695174135853833291385343693119113533945769758579468583541888321292756624551862191184192834349976435172747788425746726882859734824373712911755493736799298164819757116911182921191545445299324899844173173923439332387823647469559329237137495638518222441474485356424796637426927949816423542856319825757136972325654261123187247468687837643561442788925267564679951373942916588212648168772624634134254395888798223424391132528367692956672626595851991486249844641683258464295245376695186828172296653831151146619112549438833989285557533284498737385597493822656869161797848541832278256726421199255717238462481386794341248799183786463275182294752657767588656615561741188716232598216121238395185771559376291495442724542719767759892243962843731328278884746684872546453276454258138671783296522263367173536872457596961264955366885938467599725788878956293993848827727222447862681844655245877836771686764483139387879583266697954725139165817342855515181832729169544474697655124693245824556148955396872424451494841659612723719345752124955282132764823214551778423443171716331332472333472249847824275256745631345871348827497464564457932478712981142587479453972464114789899797565184673777578538651291784771399568929562318835113379637724214851956449526259826553724165226993875584754762593821578255298386318825678314485736865722346591414618279635246444771492391836314539335735135628893187365414621774237184348472549542911818863131326611351978182775511525455867397673799677776178427948739497441876222624724647219414539938419367133886673938936535138571956495654541534631145716818326558836954689951371477541868396511639478948695538713455247249759897741779564363362486471474444163117938614815597124619525491762726782414259719727558522841359356515592253122842598962364268145819221389628568234591931766796647632918941951146475537563574998754165672185557642218529447735851761543733645871168626284133483469795464471941165273594234232284443355448337775144885328768231942989433612421758468651279344181679325428369647137628794294273932361482564882735292262998289747448244412741477328188145638378645468594355674292373896463524612142347728393243386889914614741963327643741752312623162988845572489361576827467886966281892677898946963316951853529518964663414913179124179953729948788761542639584513362127418782268868855121876957127943723488128631723598757873867354835497144361683234896858111858136238415396125545779884856744986413248113258687747211394853445984424862396679722236915695675538548224546456118567692688251823953921831763316652491745963936838132179645467563623877171121928956291613551993229913549468119332327112332927918681414857694464754286817997236298133458655999479247447613923449569731256511476944523211172779117732337173519637661476554843535319577256123195562179471365723755828963462125641535822198526165265652742285833182115415276494794766432462127212147243983283814253973464395852894554748674337615324241868872416813575848442174899795935648569142952636123574728129543139341856467311874387498934846326983456158773195765658491782736433793254574623325814348868731965337448786684754694433566548622827447544472417224571855853842919766538935214626619428938673643187384919746117333764197291774344239896818215553385549766492312568854758475634359172494481582461815328135586117358336115595314244386632849977587428652789788598628482367895879994165871492823359526962855177141677368848445586149933314371836691866629934534356243113988855943144157651682897173668762785994929624611528785937737295414659351831957747576962494491968957813439373257574873119335535397759229519321528626113785857954693929522884942637629475141744571353858876424368635733571439468153424863149254856696634851117432182658949456264622321193798366532592792716557966331259349791813269984233754373968587934994722391984191193386331558368372347751343239523617479213911144182536184588318296522992371286569356971469726465914982268156866165544955667239914435269338383934669921382311137726419745383856117773487932583842616281222595997357325496178337812287545919358572475176551189866738634739885324361136267647951868786978816584743786587791729229757814997643712227298847838979336246231125885678943219221475739837656592765889984911457543475149367239544891213527495778184513342916755531293713454614144767114627481538974256439535881919564688744219649896753186635718644565796883177922385513673693641894411926332561428992797357383544745896948956538439737821658645339622776641666754358587933443237573222968941875929159935821384284972133251977253691828768689765989919727418148736324865622944422282729578683973719843494658862263123776883791474894373988254274628691631495689872314468214524347171879138128917524153855764843216283231196293752555168996114992624469556663227617116711569568341688222585196544775518462991785544473558491529687795439947364658172171374168396679429944383148983678394359676398119649924379179727596212566556864921342374893666928638226626555995486545751425415251664865938341666172867637647475248831582928916724452479162154228179816579634352169951296899169297486381888846831533566225132977763481924715572447455836763387641545121685725824643259932354523713987318583459214474441345648925382763683581158936221716994663992648742764391715142553568972356395682289665694114568398532865444144863629776748394633267229447236586393564953973652768878629986528576458973681672158162947924295763784263144872357345247862982428726723687696277699476291219337461856276815416855719747311893881494759451817121383573882892812689185561522237272179235492957133172551432926894887281867355244415153664636497125154128196844463848737369479215545367518871617272417898554368787368613462868374486568553358356272758735526186884214415696724977355322373452548866117272721786564381272144369988823889574341156838644553897549113817778939757316123565182594949379622355913853623538113384822681853996666847667323717871355668456915315225299359235739457454422248554322297635333996916846895996374959178125737755234325833429139372522377754185182774449277466125685724367896234958768116284363796262353886258375231736815217976397194946749433591825687672269749858438456919474448967586518542413517965736865894475983437481689135155257829398248799717979424263159764161294318821751816567349647841776975621668544732769947238895514325342598769596586132984434254311724374234836745568628982499885228143898374871225145549584966543138986199645215627892954578354399324764133648492814131149462962322562969889159548614553527754512889423514285967319241585759148751823782853164647772811833766361882234695735212448671222617118216939154678722435999674997221816633532487125241941553868882572786367857222893858474674424172893541311653634351286216328231824584357883477882625589465886438733917955758485644874669117796893361737543153318152153346583712255236235355761383413227531195315487858696893188563935342989169183397967921625519399469573887496111294193791833146563768359392156297639942284679594421271562232519884324532247353491418777577163363622674748596958351183915531864147275759263263162798393213157248841436111458554356444183868395431897915161972869132677862347848629664295293769493884796164734287159732894457218131673683898755676216921815934898345858825136916634748364365117359677874744792414611952632658695433884751649378254383198577785393991614229618938488241797425359346671721872446937923168175855316914437661972695556698442549467758952561844772241335912647297468988328496777731218695143984497283929475632451827877687829126262811913591276148244156341514291312424256433224197156832729168962723416454553226545394842524695657542741294655385893798323816862389811426727893118217239966775698721817496824565464968616946592464158435261138182994834955918295319664261931873442592962295141163557652779599797584692357921261372875336713214513799471385812159939564355194834621935551621213447851673578298613743148283261188963378946127845152867573516314627699586349445392675785585491471854918778675334479437636245247872243735154944622934445676419499995625821275266357812392774661152886174665524263151777477834599693878569439439412145649926318791657693831743989684734737455397431184458323938917248769539951745368343681615943342166256768129149559198977513785428983551571462897595596846458561317747888122865387942921313294725833818675397774213918336194472715423463955968694315169977162152278362771971561584936699711563693348181145937937632138449684434711192713916951139617841225492177568473674813358621116773533492327148753484277673125793313822633252369639168736498273348327944566258697347198521954887123847569659995268133599479831624658557178246947238359778247598665173635541495349612647473243776928561373412689159545192618359471828241848395376732172617669893643465674955426221659673941914911859527857329467224325934587179375234873739454884593821595328418922543728493418376162222862792695746551334857792657161459214426543116137427468466467554293234889616367376662469766157372727816321243275375772386988215185837577571297243273339349247468775493999339623352234891476266355694987938929161584526719883323946415498598578841728912939489483213985955447744516767874788485596264363827569731757319379497671787482665537383325947736873181153992611536456461181976696945912547523251686197578818547538849687461343882214547454522687268471522659694653639375776244745544571626783732321769922429934667946995635795658276317141749156337728373664834818635216247589539539355829822938771828961867768775767668332314978774512435556765618129112526431522228264874531427211173813893869171324966841618276674269884549997141629679799463295321394118288537552362762589749477367797138519424827727465598438515145193463299688753848612543484859639694741787433481797246516132188631992451983929442895262646116228887478776799194398722651758769228284544197734317666528283583978157745578342479336942428989971322385539352774225934497496431921686567188393788326848514658118958274762732193813135419159898974185539662746943539793532925478375968512683779147556281977175148834288546545337974854949184663397173826273363341965368269964879218289566682764151543332159417163864562747877232692211343164567598849944591411843732188774627959853925644249736656763758138781644551969883252374526467777511149652183819124879887161674943492999388393896872534137182744918797987271672466123377812477531113589353599638644351436713444267747661293725988323177596284287252928784558887244859617384398554857355297698291812483811543177795381278347641521629186171728183482418259664455299679156973777113653442399968822176437564764295736422953936573931514436848237766642993697395372787645476441455149698143813245819414799646573349614178819248221769679176929744446151633447375869281914889139896713166789587426915265276252713597465118655928575746814799168965352199935437299871585781753558315111974951891611343112378843574113926217381717651956453751867689293225732676743551662169195821972769932454447244715882367373181154529194743578474858993598771364643531679978868871686811333369254788637935236263568954962367322511628919286612751536113512776293687319167445356897238864822433233348879173789434895363365119527664359954213264117718331877344791151796331345769943284228651925312556222398813779745296179333551679847199628857928235651967129584132654225857482918882367621435133461325792723335341631347568395285267942835344618218364374472588975529714841368295665985173926431916548355221837865422853851317832842238992531788356473682659989137493493472691781716834569266878195279571277262391313849169683314222875825398517681151916188418624857884164851951698215946441841634854687717522626632715229447249697698537296557555767483846148165171926286474322347263682718168321892628152914835987699686661459135493238252346587636582942948457288786353246567773519712584159463219334597739878145783674939739444495612271185512297133185546748187257415365593795134785716891893545222166344316842479571721218473363921195865387334341969697999172221622345286464146968415613724611294937627178233375265339211699898828744634583959421974748196216768732185869796449672338816245724488129615457559579256623992998488328554817177342992898834233522634857576279735165236378773733859786897224973797362889411158153551678439674244977735381312553917269174186948386817216759527687258497458247937173937839168868151799255884587278552555636292369116215778448986976365632362263762279399778457643614564914779975185274829366294515868239168619589229439328914428635916795527538692961413943483419319836698395639882115466714686985475965846426666324875615369928631323139855896826491888366157944568275244578641927748445449693765133157831238415566493546189588938591625253296597759826243682418632436488183777588144759383915885616757455282246395881173481658649317557765978547467817987882488311415732448838876861737428961111189364512314754482369697147775375812479717311491391281434946311542897795939687352712473961685699862873327717882475166177936727372133512878143181918471938735759984196978535597746148616642422228363824986624512842981614557489965386652356139367863544311779517112132732192551781568141921184129152528357953445431859377968671371379857898638859856243192132186529982279576789956232473379582338415676581483577995821724855931166172144688769281322153858918934683835766352125353214421446278557315846313259625497996815878561427525678757458328957761367543368689451379792175255231962565672925383525397611163661661152951693526479437712973119579443436249884177716577315435643216445154494863199224693921573878792688361997161612277224128865622783214995588982685854696336258482422476373196375335577362759916324968566878641314948597935577379756619366183893737981724515935441499329417915618893312582262422666731213215618396391528149996198585721994281252329878822113589994975391435395682183863542673551492496753178794175671873465151312755477153774783137445716423424954683774418113123694822757398436173987686687833319145489826443217334217912726285565859986592835219234548914114448631992999255812811145498975415715521649316174575856318459586485173915682537296766551292545527547636348527614592155711937726969147843323548662252348145485219549752847758579186681614563341241677623463252926346225146844254561648936613696135671948511947569799857293446326845692497177583924676635848275526499187529396292418719921581196413458671131723777429442129484411493295787496164258251144841582557136367896574378219452916822893472839339638692489598429217671264155624535723146941372972468132639463921475388623937268966413415952557695975275667939525678334613145246264926595339655985285654214241125433198656434963726172189685625983927373599448691971511662637145225766487251679679159386613468263158883226374417972248263588754964935411931857521279356792626517845392558117686118122549952195187768332122298232796822339125465937251324782184687327662329762246332358374424581922693195382454398191524885225655869392291431215753334922792849886445866842839716343898841223294723453677368267971523424482951655299674977377955554148921196751468924317336928861576227195653955575244551128486319716957282727576242972923947444849567396158113454513374127831653246456364121517394952724656533352259151271389588984623278777955222194514855367314929871358741341993699763532311133666349778155286289574542532415468966197986546595594371956173735734225177486598989286556375375992525558719585227664314293588624829465524454799214348254879652167329192362411981684334432392353894579134585771151465984977488975932349358266552568761655211699167325823791455944724211897153661848527829681641947544493279719349514941284543445657839433779781736527653573998288317988746467155568772999849989953795893739158281346381586618891918242231996154661327136537655357751589866336638976872495665494447298763841541513236534764384241859124821355432335651895391651667719472613195652855182789189438772786328432618837911516365214943917254618276281789324374639314571214165636881891463272218514249643479682243457941414615654354843116264637266655713345285956684124438429483335353557329695253844662358766124453391978497989498877763567335847457941974736915557728752796953956953718765921935873642613747115347919556752841322461539426262554466316798524515154555867851575971514171162335742186718216777484211956333494622325159177958118796497357516382625963722124159895516719563531799767411388744979711166254783582774184622865252176527222627341285675766592412111565443527975852395546769676989773331911691734549512922987117144159278488928672521314375283891949582531319171236961986982293878882456855317661583543998364878841444536396357198738559267834169935979223326786425959241346954411532668635896496252391825725437774271845712961235644113634629535317625279831934319981684696269239476946739327651858973423679929745315938339133697952477999945449475769969988195856274952853312481978949242942136371631411453662637867925297852985439614335826627351863626384698412149435768481299224542852687166831335746597972778821548834582319952944833653633782643478487711511731489975543524878972342235633782196577547413319563885724972529894198657663138298977749358468194829112419769436372315976647989668439225443752975893496337836693313727185793613753823885138139177134733263194591311357269654539141171274253798757931162799179226717738657582742277737436165478622184772637288559151331823856868288229759653789443832199326512721792381172521552928114964698386396379211927821187725522544737283282169391917786478488935281594911965345894852147552398926947945476255498532834994371588778924586192915165343331937932339774621616821547561357348797174632593426574378241721174711379933477176374524114887265587585223776957672733463176655386355597524548626383911318516854644994956573714577489852236253345285398838713499848225282255221878126883552847965269882624583387778341115149742335916684699299824583976213557245896251537582777675217862858575293115381919417662418869223281427677134654748992135112819286912122533894348563858821516142762924199863341844582328866978193279886625711936171189864258782637631362943691685988118555774933616783422826263821112228346367288991418569662249245583671618483282566474871214276371253411783664693823484157963226116415514378521538974672679122682218786992412288511345983792777163462457312461996334642346491247899718956363455284851494694637873331638446324953677598937923216825567764618351912867822248459191346422467231255913142696264293441386517619716369766514896884978978493634826977384273127523658596912419224443298983766797596384868678887616395662425434169669582875178452336535136796344661373357574225815235723582453768944922187548157544891796155927224215314323556366879567794332785493521587661418935464545821352389775621968247285796917267644264487142915913442135115326756273686626562498871474298442941518489373426483864121628163749211719831428815436623273962554317566586478674597169916393797767545551817174388491712441538759296864647826934792162897885232787698256586724497257969773526715566496313545728667467433182458687171332259999259448591677896751499717714481747962757685379745872324741187373154432176493444546638685617255957649435385686228265993426225826551332895812154841678128638974539713781782287534246842836546968541357891367194219716199862591229149374431456915329729927716512373563426162221185312722852675366428624786729892337747327625575526174484841143832129551437219515394492668747451762232367615395685348365348255726166629317929893957418864499227476252327373416971133556676242771389751587826323424862791567489936848151516673823967952729634558913532775272721524844288893869614975798824991821982545919484527752651976997172441694522662861689822255413268145746972613782168141397674425819422333693796467634713778336667495142947815237954589793954113619384625326233729739687133564324197328997442618417454632873646744488985656626431934243484692746295457922136222696676958221785353634436937445316768181244864928367479364716611665649751359711453635381958685265272532114745829881212148654482849741511392356188113278793153256391923124374583288245737168962584277595182568921846137897228789393258196555923142569369891736616268326599288255515738184812352288254131325387945627899936136435426229333763412974277998654185433978269456726827215868535685132783633519851625367129165151668396862479586619414315829467679788229692845759474473369593381277473734432232184558137878681279253123857731927296332466398359564725599323741181791495472922984582359679493873726318628214416937995548639966915855254154831283599788775275819758896736615746127846449671327185424312738693362338196299838711229832118492973358817162117434356374875594798551176333287478975136118255973334124499241312475145436835238146395989413123651947945718572684765498664771538857554185821551899128263673683846968998637667479263952338846926925961658265695931277916442662764453651318746852217285395387397866734353962755194132871964957262874733513683566647546126291432626945215541766365424411316215117637637674781459968297175661478748147977638138794989152564355566416146745175382336699113124796888817892234545362936549127417896321258772982611837465212457192214272466525715249641852237396382856187688819887195619573854729678757626748676741836657914426898893898783786194462777811952675281834749282153871974938987772728497547113134847132292591113493618686711692714347213319916869973988936378384339836394616877913948581971189978545654398637427817619688859959123852562641389942731249272929729515622282161841482761264631565862676885483674536645443618272441654687591377712762738711767978474461868274821713273552512629651759431682994362458723315629493528361452551147319888756662494694353339928328134818299242219267944878936747438118313473642489113559393232679623842931762824411486124984174853363134556881691488479969694874486578563367814887318543473321278589425723627897945832684684936139362942677826251449392861324733563589177457431216458469965525779396437414184447749679175966562993298146477677631959123978172787213854924751938399398765345678472415635215849935127517714355893278239743549216991243664367936759398356943313325467994185783416832721765556589219812283332646832568577585218188972974341553532377478339328678267184491489842677579167476595659229721196789919243632553889966151982636653214649817451839849126728148852167357137631348232651294993194694126414885646477852561398514479383711513947674368222399527468822828853869938773351811872784786251343778416377741655726175966326846165721456858443887555784957186861348311365165349898293793691595615932879247712555417839685483193367839132495891314315922756586222877714956755263655332723581764757834656134591283794764914526748345135554514651372634186712298788185749813263912691782169896945297514764592632497662989766332432866481111231723787546216349857412486272913384592374617734334299622864216559959776244836729465132283975318393875274522847178435669785824626212361578894674377334846656684216663291254342167641946444165443329556761171646347231239144246679659494976966766396982478429619987513347568433446569481959535936874383241232251555311848546836862777927937253731166191288272323899815766843767823336553275163546916139435594684362551677847274445737399623599551632228893493352351285184158911738177772488658992192547191326881119199631614356779764281151632931534144137436637884799979359498311596839447617423562929239972425358861346891119717455626362249486696822396147581547159542113916878811739585658742746427397625724462779538866519164551459531597925984191873921259745947797939415887789157812324626361633179883724444985175593419429195163683477585162441541176269439368882716143649453234166928426387347968476688742955964676797555341936881675389917575698957383394445489271211178891757793946516377857755641919236857373267118156113439814621329884527635241342191271155697671838965527741317669576337779925662537726389154224872862964127589744854847799376299411267827235213268351164781183615375697132518757863876616428985223336715671944179248637591228274464352462239963245614164756351517284227278291832385168972968659358942177281643989338121675561494849224265417419811459637155119411965737962332385493674937276158339316752165264682928859965437224235172598677457131119182217198833282477348259297214351832323528472792448213364135228845343239419262382632817263254996516493288984189692486322427468435524273592229575722975591353999341428541322684459212226824479766113799954361753726878958837713776358365379129589971363935196677572736923192539235444679239573582314732389786454237321685559997338795344441699172188987184141451626725654126513797874465298397987952945554318688999581686666323559552771775463143849721146332374839856981232496561871793444989426688283499974546665273845933536453814358269829851985411992234144121951613542397183358236563817545841586165447829828626361478316992179453386511915212892963255148626872235521935514447622633332733281314991172168829259652384849429488764151465525345398559274785288221326424799767277749472849988744929233926265124418242265838456881319388324741344174659657476464762588536558734316147563314616136712287395245236879375419987498349538733442517447118292257696853165921835785535423272988251352948699419353777524654669995398712529689691275555772411417714628388638885724834749748352645426188417531391985216964284192469862131588719816564356589987955383614886947928335511756862567317241567142839968914726314876396519824911171352814835179734374193281956112318814746244139735959169727245751693226849396588784414153922773563849762217795658851978194793334345467461993299613188366946913175675438741838569431236843447636292922941333161979728891699214743264864242971319421252478531241434473931533133351816844378522532331154323224556318798783644557598789241391575136642546339515145855373753911919545249565213912895131447932991393754755989164245394464467179179817413757683181818785929392874294733545261744425266989394559777227251886333176815513716313548731149713682613358133635651913769382562286684857146989356582195898383941958264836816919252228672322375745841741768175398387645682331913881914923251515926243777121539229694542398881545249752243758232776888724811735155858431196168842348315271882883137755142711298756232238348329848755593593671411643294234245692681119555171115783936195364633685393938261756957739755358799485552345815933194391716731455659485837211483694238473336481591699451488754299339518525656912833638899736633681172868939697759784976444152393956731789881674742329899315689114331163563812379249291185789522461471253872617396922636811421825196171277189541267596174776227833942284331541852699182723657152779621567249688715138337419939456881278663352631722345214566941133656419951954611198346969227721937646591371177382584394957528747819872987736453526876481345361426146112557785447471989269671487467626462552274945942557983658215198517295697121843318792218836276142452752885942151774361415693862868189561354855519152648498853962627345174589275364525285257776334319652578358676427918727175934723137878327681371228951174461899631837582117197186936935937183494218149592178678456477767947225695788888698727245189196439834672739589895369575925169927542446996923255466576451154616418166133688121247136612317949596664391889329555793976167281462493549799271883546811855164174571171432612647865735566799512126552616791231296465334553967866978551889275691123279946997455218142656348422432353291472765231164441925816891933751157845254718535772288222319755333664281782679114248796781858956184585931533663821854483397129468348591812673139286868559194898629959922125423971978553697159543353545266338888886898779896742429122731766988571711515643876545151556267175813913247615969756372763479919389216356758581397214939155349432418824399657978387891958959848428178378117887531967372285217441655285942971561675779461972633453952411255769842396696295533893857491569923467283488265223599893862147492883575139865523765226279984655226658983677799163396326318856726614688927842534283991166334488968393569714971391212113786719278281514497197894115123354149461687767779347658779858634713724456112385667257695238481819282954246785278852872184216691956376261252568215247378212795491981679134267846134877118524897131937799654752723999887373533234672922446679798779484617324792938678655188567581516874477112941733953364622428995667461743145128319817878688374968628999159391396447167433197988565313732466348813726831274745795394985614278569732584972923484758789372971144997531539189277955185979637937946193329512232456865945879552837236518392994396874952778386812693157964135861215287828423677145389214764997874784443879672559678152736675431923433599745248392113733748829891518765419211412535771658526958578423694293939959758576194683471362181594545441127266237977419541381749188652957878715777547222836756313788916387828686325692386414975124777771253823669143631193456195929121246436562472128693826281994676922273623758938221966852917214126872195135399425595854625577846761858623774448527143746652277771628239131553914985775176272445982936518859364695175915574868648832325863514963681429159891684965237286166744812281575726742281436476525159427656299891235162141627912325167815932781556583422647669146937979464356232757227716969127333186734145339246497827483249667387646567427483847146547911428824643112763453196415986274751391192361286247454283719551816674298454171146546547392858761628574833197496472391425972431274434852347311723658273662464896474549338975638842273496235813872176799479662917476349198595454617575732118949624655799816738265519762665746873696524494182236717518373982433337584432121987553179318692536945398311149815861154227779267488377551129484121833439273882987443852229573429949181194528233175331528589557184981169353854867933653418826856821596316551991344996593968329279182516357148748892713266627751225419531585648985171595343742882714888113964675994758694726583622579334613351624568359544876758244981347239833735616622641649657799686295331837893252828262988954924875328623772894988769391163218149261372593125293363398816142597652126418272577681656263811473193199616732317894176346945212595719339526542166736939385891364439581998162552634617165618196278792953696686671636974499629348865836945698583494144759991998471353487864266765792363469566573791816224495128792793454389512141178569365218746558659661637922743721316453758155336725797921558835951843229556829199282257411628638282532952768579449969945127179644175592294948986932485161777234849286818463153932928812982947275773483214787118829486326262286221297261493983936254659668748348251983356753882131721419884693451584219326498676745215973131377859534757682523745589393191151648926638561339889689426732771811879963352677541713918597527437987824746569446871374874583429247384273125857642523446774862363612138971581827223283624753747669559743244882374142119537269142331961884343353777541195942193989727366822677798315243885338799537673126985458147584954378686553911799149461839313684388254737172713983591763551368146472166374437798351618835475359691219147421251311639921423563582297824312389273973216611316221431354618486941539329281264618341911445297911326251881962746532772528454192622685753278718588229449458429528679385319963393159518182526896278711886745856563537376523184395279642337884383725661534795384732937353652365572743139924489984811688932451478695876781394222664116563379243949263784883158812589727155415743771784122572649592532447242713369926489751648565635685884552417814617861487255562116157283557818833345423236319258329933163563112948797626712893649936173563735516169517774152442933778991299821865336867555228226468957281552871176253557622218754636479182619863832878766577564492743121376653775722439492867775982378444977569413735152643456769615673872328296323825516247135628943622127562491152737379378785342641572167585832152911518799739896555287234865257562833625289419797119481133428145593719299447644275382647115854243352329341477297364155847244396249697269556235888878888787679662427674954836478668557337488612882552173282249191298455913291891959914174783338215892833176428893892895819941633724484851357233624933549862118742339844714537126516251566933656926166376846657312637448729596223883925664794699325533397791311917566222973223655948536167612372557548945653394167197619433954229339847182666279478121571852165398599188875339429577861289643956842238361532846228111483814386265765548257448231876228183198611726433355277176341917974611347838875651338815489713958845278683392877186725321375437987924356124847591954599169674158798695425579641329163378268312484178596548644819863665669545485212168742942547285382632511818911265663359994615615278838762411675873241852744537997333414621291957776697798231858382164955623186153231352817986839422549686836443789861437531324518516964769688193385329145533579338183323225436747619873244614333372675734878722178696151636224442111314573446727168824949624244756534669776141479169961563449333332483419785837189966297959629671568752934596894345243151494479283661756837227599329594844415119933422926151263812597376662175628552684148887989221626375381224831842937935643783939754538641947416911951828718656212112811598295675842481556958573351782115876478683477239735658879265462747946272691475423142718877846261871174436559444635253981895966575326882444838648674146185633244556952781754338245457166888954144696126786477555718818498611513463896235394463583221625723349892549584896814825451184958362213629459293892694412976326312815182924779686935669267183331785311447512124967784797652142595253116635741523771673344188425948125621189135852945187742792466733621644841435223957415499458492892237773598246945668348769278542699483981795696145246299778193352555726139198618321761763778286613566915743261681783713822326523774965432215726622774211956114184643694447966571128736382736729189542781444661244398695583361762389225348778631961942235862933274795291218669757246537613799917697146763339676265694822457341521554237747354982565455856294891496927597465683875595829422959599179461831336169371679432118478194471871696136639679252654867331294824638878175964249533184438999479447214973692445755566949751329189244749837135552953823139246925919254928411123657526321834949358171271625756239111845821325229541722227386736817756351327722393899713136141479834412598658543159513486232169967567646144541572281842589894659263394473676852642617654476935117235637278942762335213315717187762624843652175617729174283162997419155371989224683797856977736678387251278239169943218445114915875847816532693589755981698879255665245213995883345442141285162428687266231378566263981542857435734782819277555386143272466117497198974687532782375838293334747776143911524231653346289768177872298495674211765887264429953553818856581492971934938933577949535714997618713632228747353818373992353933679619488875841117265995981292832598886375276741857967553714481875669875719369458783553899137129557919525159453929835571922697411625139953462449551542941759944459545256672382152623793781954121593298121134947276932627119758468784729544619446258711198547921175623715793226126453951131631785672737438221355167268464394593597564783585197196446338994221921982311886644926384119123257561616473791874266322839552782815983249733871251617533785899471149843698514515195136412717185441259971627718185835515955948211625192245344997489964237683628656277829167935775517939917794578725655899633278968842234323473586262718727396572132324266161156878658742689463559959833586424557866498484284153586184958925991381738836752573871663159597685593148788561425628817949442967791463967285656651686537233233396782346451695713251841856389168218997845328145162642334127774878498483331965743259299873327871867295265526529647188644958757247484876168593276315212525125323396921719645136614952664954265299145347919285175873721471558156365294173741123454557599288166343538848215295798298786746661947537755398163759239427685831412366531833368451754213871342533542524521649486572733982956664229767431121218682373758313499759971951233572383688271286226166396313314739898115118698161527771974877824139123161162267361868936456576689765758128468864555997115919654366398635839392654518881888155897359582843562254156683715248164654652318942447885447473718865146834181685718838844828249974867485831755242258515216526559657588745355684728572661995179386399321361524421249532874627974115681165867858544879264853442151675795422639461782726683736918942554648479944841263445898527625741425318518553738348562295683995443989485565555245895588972865796249382726331526767988238928796285171815987169877225428215757933952858123262424782679597324579928228775729494989339527417915624364623396769331831639668457429161471661776121715785518253722347582933111653687633798722622678756433698586322573483225225444313111824762445466863514891828317537896744916772455637449396359312523881584482953232174533133448293719696484744311271257615667229297972621831315926776234181248622831883798742517576429897245134122838659198553524813463375468914981385633812784727924524693445834293354861738919957827978861432784294669989519837382912537856427674212739749437274787757793818997513196486167739982728646211478735594145831381361943511296365336627528975385745592689249659712144136772515864159465913419572638854952267791722917173492923468487867748572231256384988176515773664542867625276365394214232162421193735592529781935635512877175117253362349857887647654995173539241699259831586414884652181985327837297788527111672651311194645862982763442331134925221282826856175294497786356286743389328444836662547753749562296724468851455241918824526255642194144843211814926962444736733965773846815335845472695122393515783661942829841857373318382292678452454233381671955276245926812278592565535324279772466636746642892972922511833216436634941126642444919594432833244848953682196242833691154339991481758275825128773594687784368735861377527996449445117746342836815274213593895329515647739856151672644834442138493268314498864884579114972151185743833946517658222663972282551469864987947897855447361941214467347931763281836118514244429151895279665341391493111565896786993638289738542116346278111468348726941824634484195162964898551944267583363285176797194652296544756899872953716185665662282432335938827747395621371622493391713681143145465672495417853547582717881866912342734656748998611432292272636757113858687916234421919773469965924779176912568594389536846573259792138437984136262827285674912353199591785542924555142935493446679362153832629829529373823112927554123263568134463134828588399861379275918146319912458678375878467731177178423229472361998831149729763176933657188727626185913762276766575972484497153545783251151145173332478547862118864285973421149312341682387433511982161174712573624187211121958665928612344445837888361238278956453534978286143243582345784285539991178511682762465551572861679351987825522325635769278538347227214968249238762258194744331316637659373886185721362631126931765625122799464817427624672623539271949552295298235399318473235116489521119228514216798524992387612393528631212547685435723337917925481165856256712644342847268857413639774681367953542935437544599171631617681162826991827588546745412855569722489471135681193614915821392179131632381539568188231187558882188321548533144577198624334782184825249333463387528641727182513939216811387187638952996493314554242782923766768299538212321592134985212656417297285782235934751144425545153389766882995989119884493299994689678876735434833463178547794177364585949858684581625681589627979123647564279214837614678356872385259556354121598856362119119153444195712192482224921293637852867344153389898516769416376662438881511524949392478412891884978952748413399582414929767692388151489381547537246653368642993284593821563485349988224685791591519796362515513272537736674996335246497319133185392858757988522862572361122637898983858222355572111996828285864152385722742399812591412512418722297629951686587176458999829591824265431733294834834985527518354976617433354363192869874783922829577786152647119711146361143686984166439993455756872514269973287357225156913163627629678384893257214633926476329775713137735182431248633749235555581461293969571149431594656143148436381414443236256971118148865763222898219819775918648916349891465332687167482285389759197944431163276938672571745886663873245421339433825565332834378826687156443176797176986335657963333546692541937681474165781468456352752411156694341124868452275541396729883468643811791296267725782561664981611549492225884116962513731279112381525187477381485666291192968228589762188444244191825246226347576351974126594727684121343561191167415769761482543771748637673159466694459693464481693575838845546754258827465114894647121912461533911413149753413614317743878695117389236712271171194275522536448232382723111745918184644153877749628795574498951615272946794155762345285978564485356972281335481838243945951457362497963535297268924695788292543156756924663723658656759678733868631622145281887695889481561186651255677512695428659454383385915611674248817733567261682379463193747292298918295714388226219961374685698144899435431248889433721616691643317269839896411381638196595532333976718929171122531699456984397463537884946274179916516394553645961296598367872497427779919255787527832975554564734222776472345166589638679768876872218948531344356268614637286583814369841895699161854371611445221958276645743915264695322789313751228877437275566481557742149636242655887785269879595148185554699376283262319899525239842392291644413931139723711842723698421616991788397391247543498474434336296836986317865728484667928722664476273655852473831844525994313356516497234145196427474777782427813919838531411699216693858185727744966188741531256275586834548472538715552254772699487189258896722477342857266897633258911173972151338632912787644658339776934363441425218318575643691552996133287482435694348817383983147232244268218149278114285159869166741766194894288267375796481857366158168975348287865288422442428982824823561815444877114439113523476691874211763462978177613384931161877192298611151992986931937681693114562261368559795666366613932483633344574712232246125249545665842369216361386143875444219445888913688223925353279483651566367669611787267513529449471739889922881469957687525265119636861387367446929649668897723715562448171756779396464996961663685698897975173982722452394951588398566122648396791374937562877475973932675236728838284442166618955862732869762934134392146826774769153576713413485922634399356571872981968215913619422442943546631935678842681391884248452188836644238736365593752553953468681194887673983514719219432396692679396182394895439113348452764726925947816442817826367328983475193238884466562253812615437297498682423532677595366188781645686258683728291853727623416163714658386474639851119778888218513183641731421129117563317353248526123157896161933274856311541459216579589953577155434692536161561416348443696169248236139529817992699818467913117866584858